169 похожих чатов

Здравствуйте, играюсь сейчас с сериализацией/десериализацией пользовательских типов с JLD2. В

моём типе одно из полей -- DataFrame. Следуя документации расширил JLD2.writeas, и Base.convert. Проверяю в REPL, как десериализует мой файл после перезапуска сессии Julia: пока не вызвать using DataFrames вместо датафрейма каша из столбцов. Так и должно быть?

Моё наивное предположение -- метод show сохряняется куда-то рядом в jld2 файл. Это не так?

Так-то в целом всё нормально распаковывается, если вызван DataFrames и модуль, где объявляется кастомный тип.

3 ответов

30 просмотров

jldopen("example.jld2", "w") do file file["mygroup/mystuff"] = 42 end # or save("example.jld2", "mygroup/mystuff", 42)

Alex- Автор вопроса

Столкнулся сейчас с очень труднообъяснимым багом, который даже не ронял рантайм с ошибкой, а просто вешал скрипт так, что приходилось CTRL+C-шить. Дебаггер же в VS просто крашился так, что я не успевал толком прочесть, что именно сломалось. Эпицентр проблемы: попытка выполнить JLD2.jldopen, а конкретнее, внутри do-блока обратиться к существующему полю файла: JLD2.jldopen("filename.jld2", "r+") do file object = file["object_name"] # именно если имя валидно end В REPL не воспроизводилось: читаемый jld2 файл не битый, ничего такого. Дебаггер вылетал с негуглящейся "invalid struct allocation". Помогло сделать git stash и пойти по шагам, от момента, когда всё работало. Оказалось, я сделал файл исполняемым (chmod +x) и добавил наверх скрипта не разобравшись шебанг и такую вот конструкцию, взятую откуда-то из Дискорса #!/bin/bash #= exec julia -O0 --compile=min "${BASH_SOURCE[0]}" "$@" =# чтобы запускать было удобнее ./script.jl Когда убрал это, запустил обычным образом julia script.jl и вроде бы теперь не вылетает

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта