Size: a a a

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

2021 February 19

RS

Roman Samarev in Язык программирования Julia / Julia programming language
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Довольно много сервисных функций типа srcdir, projectdir и пр.
источник
2021 February 20

RS

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

АО

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

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Иметь возможность обернуть куски кода, которые долго считаются, но нужны при каждом запуске, неким средством для хранения
источник

RS

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

АО

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

RS

Roman Samarev in Язык программирования Julia / Julia programming language
К слову, начал смотреть - https://github.com/blenessy/PersistentCollections.jl
источник

АО

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

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Андрей Оськин
Ага, посмотрел.
Было бы наверное хорошо сделать это в двух режимах, ленивом и активном. Чтобы можно было выбирать на входе и при необходимости принудительно синхронизировать данные с внешним хранилищем.
Не всегда. Например, у меня лежат словари в виде текста. Надо векторы для них просчитать. И эти словари меняются редко, а время вычисления векторов - несколько минут.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Андрей Оськин
Хмм, я в этом случае обычно базы данных использую, но это видимо искажения профессиональные уже.
Сериализация…. Зачем мне думать о структуре БД, если я могу в JLD поместить почти любой тип, включая коллекции
источник

АО

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

Ха, я как-то раз делал страшное и pickle хранил в базе прямо бинарными блобом :-)
источник

АО

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

Но в самом деле, жить в JLD такой функциональности как-то неправильно.
источник

АО

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

RS

Roman Samarev in Язык программирования Julia / Julia programming language
В моём конкретном случае речь идёт именно о хранении промежуточных результатов, исходники для вычисления которых всегда лежат рядом
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
JLD сама обеспечивает интерфейс ключ-значение, поэтому могла бы и сама покрыть необходимые для Dict функции. При этом, у Julia в стандартной коллекции Dict есть метод get(f::Function, collection, key)
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
То есть, если бы библиотеки сериализаторов для себя реализовывали стандартные интерфейсы, то PersistentDict как отдельный пакет был бы не нужен
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хмммм...
А как они это сделают? collection и key выглядят как что-то достаточно произвольного типа. То есть это будет type piracy
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Collection в этом раскладе - их собственный тип
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Просто не получится того варианта, который я предложил как jldcache
источник