Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix reconstruction of UInt32 and add regression test #622

Merged
merged 2 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 19 additions & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
## 0.5.10
- fix regression for `UInt32`
- **Deprecation**: Do not rely on JLD2 to load a compression library. This feature will be removed in a future release. Instead explicitly add `using` statements into your scripts.

## 0.5.9
- fix regression for `Union{Bool,Nothing}` array elements (#617)
- fix printing issue in `printtoc`
- fix printing issue in `printtoc`

## 0.5.8
- Stop using `Base.module_keys` as it is removed on nightly

## 0.5.7
- Fix edge case for uninitialized Vlens

## 0.5.6
- Add Aqua tests and eliminate method ambiguities

## 0.5.5
- Experimental support for writing to and reading from `IO` objects e.g. `jldopen(io, "r")`

Expand All @@ -27,7 +31,7 @@ that may get GC'ed while storing is in progress! (#603)

## 0.5.1
- Bugfix and added test for bug introduced in v0.5.0

## 0.5.0
- Improved encoding of committed datatypes.
This fixes longstanding issues but new files will not be loaded correctly with JLD2 versions prior to `v0.5.0`.
Expand Down Expand Up @@ -58,7 +62,7 @@ that may get GC'ed while storing is in progress! (#603)
- fix `Upgrade` for Singleton types

## 0.4.50
- Don't hide exception data during loading and saving (#569)
- Don't hide exception data during loading and saving (#569)

## 0.4.49
- update compat bounds
Expand All @@ -68,7 +72,7 @@ that may get GC'ed while storing is in progress! (#603)
- fix behaviour for unnormalized strings
- add missing method for load_attributes
- clean up `using` statements

## 0.4.47
- fix loading structs with more than 256 fields (#558)

Expand Down Expand Up @@ -107,7 +111,7 @@ that may get GC'ed while storing is in progress! (#603)
- restrict default Dict encoding to Base implementations

## 0.4.37
- Update Dict encoding for latest julia
- Update Dict encoding for latest julia

## 0.4.36
- compat bound for TranscodingStreams.jl
Expand All @@ -129,22 +133,22 @@ that may get GC'ed while storing is in progress! (#603)
## 0.4.31
- fix UInt32 truncation error for absurdly large array sizes
- move test-files to a separate repo

## 0.4.30
- allow loading compressed files during precompilation #446 (@marius311)

## 0.4.29
- added `Upgrade` feature

## 0.4.28
- compatibility to julia v1.9-dev (@eschnett)

## 0.4.26
- fix identity relations with custom serialization

## 0.4.25
- remove leftover debug statement

## 0.4.24
- read-only support for `JLD.jl` files
- read-only support for many HDF5 files. Most test files of HDF5.jl are covered
Expand All @@ -155,14 +159,14 @@ that may get GC'ed while storing is in progress! (#603)

## 0.4.23
- Support for `const` fields in mutable structs

## 0.4.22
- Fix reconstruction of partially initialized structs

## 0.4.21
- Add explicit type mapping
- Add explicit type mapping

## 0.4.20
## 0.4.20
- TTFX improvements
- Add a comment on jldsave (@BoundaryValueProblems)
## 0.4.19
Expand Down
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "JLD2"
uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
version = "0.5.9"
version = "0.5.10"

[deps]
FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
Expand Down
2 changes: 1 addition & 1 deletion src/data/number_types.jl
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ function jltype(f::JLDFile, dt::FixedPointDatatype)
elseif dt.size == 1
return signed ? SameRepr{Int8}() : SameRepr{UInt8}()
elseif dt.size == 4
return signed ? SameRepr{Int32}() : SameRepr{Int32}()
return signed ? SameRepr{Int32}() : SameRepr{UInt32}()
elseif dt.size == 2
return signed ? SameRepr{Int16}() : SameRepr{UInt16}()
elseif dt.size == 16
Expand Down
19 changes: 18 additions & 1 deletion test/loadsave.jl
Original file line number Diff line number Diff line change
Expand Up @@ -847,4 +847,21 @@ end
loaded_data = load(fn, "data")
@test !isassigned(loaded_data, 2)
@test loaded_data[1] == :a
end
end

@testset "Issue #619 - Number type turnaround" begin
fn = joinpath(mktempdir(), "number_type_turnaround.jld2")
types = [UInt8, Int8, UInt16, Int16, UInt32, Int32, UInt64, Int64, UInt128, Int128, Float16, Float32, Float64]
jldopen(fn, "w") do f
for t in types
f[string(t)] = typemax(t)
end
end
jldopen(fn) do f
for t in types
v = f[string(t)]
@test v isa t
@test v == typemax(t)
end
end
end
1 change: 1 addition & 0 deletions test/runtests.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using JLD2, FileIO
using Test
using CodecZlib, CodecBzip2, CodecZstd, CodecLz4

function better_success(cmd)
fn1, _ = mktemp()
Expand Down
Loading