Serialization

Предоставляет сериализацию объектов Julia.

Serialization.serializeFunction
serialize(stream::IO, value)

Запишите произвольное значение в поток в непрозрачном формате, чтобы его можно было прочитать обратно с помощью deserialize. Прочитанное значение будет максимально идентично оригиналу, но имейте в виду, что значения Ptr сериализуются как битовые шаблоны, состоящие из нулей (NULL).

Сначала в поток записывается 8-байтовый идентифицирующий заголовок. Чтобы избежать записи заголовка, создайте Serializer и используйте его в качестве первого аргумента для serialize. См. также Serialization.writeheader.

Формат данных может изменяться в незначительных (1.x) версиях Julia, но файлы, записанные предыдущими версиями 1.x, останутся читаемыми. Основное исключение из этого правила возникает, когда определение типа во внешнем пакете изменяется. Если это произойдет, может потребоваться указать явную совместимую версию затронутого пакета в вашей среде. Переименование функций, даже частных, внутри пакетов также может привести к несоответствию существующих файлов. Анонимные функции требуют особого внимания: поскольку их имена генерируются автоматически, незначительные изменения в коде могут привести к их переименованию. Сериализация анонимных функций должна быть избегнута в файлах, предназначенных для долгосрочного хранения.

В некоторых случаях размер слова (32 или 64 бита) читающих и записывающих машин должен совпадать. В более редких случаях также должны совпадать ОС или архитектура, например, при использовании пакетов, содержащих код, зависящий от платформы.

source
serialize(filename::AbstractString, value)

Откройте файл и сериализуйте данное значение в него.

Julia 1.1

Этот метод доступен начиная с Julia 1.1.

source
Serialization.deserializeFunction
deserialize(stream)

Читает значение, записанное с помощью serialize. deserialize предполагает, что двоичные данные, прочитанные из stream, корректны и были сериализованы совместимой реализацией serialize. deserialize разработан для простоты и производительности, поэтому не проверяет данные, прочитанные из потока. Неправильные данные могут привести к завершению процесса. Вызывающий должен обеспечить целостность и корректность данных, прочитанных из stream.

source
deserialize(filename::AbstractString)

Откройте файл и десериализуйте его содержимое.

Julia 1.1

Этот метод доступен начиная с Julia 1.1.

source
Serialization.writeheaderFunction
Serialization.writeheader(s::AbstractSerializer)

Запишите идентифицирующий заголовок в указанный сериализатор. Заголовок состоит из 8 байт, как указано ниже:

СмещениеОписание
0байт тега (0x37)
1-2байты подписи "JL"
3версия протокола
4биты 0-1: порядок байтов: 0 = малый, 1 = большой
4биты 2-3: платформа: 0 = 32-бит, 1 = 64-бит
5-7зарезервировано
source