Size: a a a

Язык программирования Julia / Julia programming language

2020 June 28

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Там много интересного на самом деле.

The compiler optimization level can now be set per-module using the experimental macro Base.Experimental.@optlevel n. For code that is not performance-critical, setting this to 0 or 1 can provide significant latency improvements
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Это очень крутая штука.
Разумеется неаллоцирующие view тоже мега штука.
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
Очень удивлён отключению depwarn'ов
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Андрей Оськин
Там много интересного на самом деле.

The compiler optimization level can now be set per-module using the experimental macro Base.Experimental.@optlevel n. For code that is not performance-critical, setting this to 0 or 1 can provide significant latency improvements
Сделано для Plots?
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Кстати, кто-нибудь пользуется сохранением скомпилированного кода, чтобы уменьшить время после перезапусков?
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Для Plots да и других пакетов тоже.

Имхо HTTP.jl тоже выиграет от этой штуки. Если это не какой-то высоконагруженный сервер, то тратить время на компиляцию достаточно бессмысленно.
источник
2020 June 29

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Свет наш, Takafumi (tkf) очередной Мега пакет выпустил: https://github.com/JuliaFolds/LazyGroupBy.jl
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Это конечно потрясающе, один человек наклепал пачку пакетов, у некоторых мне кажется даже аналогов нет.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
это уже больше похоже на рубийный вариант lazy
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Только он ещё и многопоточный из коробки
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Причём он не просто многопоточный, насколько я понимаю transducers.jl там во всех вариантах сразу сделано. И много потоков и distributed.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Кстати, я у него спросил, можно ли как-то использовать его пакет вместе с DataFrames и он ответил
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
One kind of interop is to use LazyGroupBy.jl with DataFrames.jl through Tables.jl interface. For example, this already works:

df = DataFrame(a=rand(1:3, 1000), b=randn(1000))
sum.(x -> x.b, grouped(x -> x.a, Tables.namedtupleiterator(df)))


Since everything fused together, you can use native Julia syntax to, e.g., filtering the table before taking group-by

sum.(x -> x.b, grouped(x -> x.a, (x for x in Tables.namedtupleiterator(df) if x.b > 0)))


(Another possible interop with DataFrames.jl is that maybe some core component (i.e., Transducers.jl-compatible reductions) can be shared with DataFrames.jl. I think DataFrames.jl devs have some interest so let's see :slight_smile: )
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Так что для тех, кто много работал с R это хорошая новость.
Можно крутить обычные датафреймы, но лениво и многопоточно.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну и ещё он рекомендует посмотреть на пакет https://github.com/JuliaData/SplitApplyCombine.jl

BTW, treating arbitrary Julia collection as a "DB" is a quite normal approach. https://github.com/JuliaData/SplitApplyCombine.jl by @andyferris is a more comprehensive tool for this.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Кстати, а кто-нибудь пробовал пользовать этот пакет или StructArrays? Очень интересная идея (по крайней мере в теории), когда можно легко оперировать с объектом либо как с массивом структур, либо как структурой с массивами.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Например, тот пример, который обсуждался пару дней назад (для которого изобретались всякие currying штуки) решается так

using SplitApplyCombine

join.(invert([[1, 2, 3], [4, 5, 6]]))
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну или в красивом пайп стиле
[[1, 2, 3], [4, 5, 6]] |> invert .|> join
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
Андрей Оськин
Кстати, а кто-нибудь пробовал пользовать этот пакет или StructArrays? Очень интересная идея (по крайней мере в теории), когда можно легко оперировать с объектом либо как с массивом структур, либо как структурой с массивами.
StructArrays удобный и полезный, часто пользуюсь
Работает без проблем, хорошо совмещается со всякими OffsetArray/ShiftedArray в разных комбинациях
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
Товарищи с quantecon пишут книгу:
https://quantecon.org/quantecon-textbook/
источник