Skip to content

Commit

Permalink
Merge pull request #622 from JuliaIO/numbertypesfix
Browse files Browse the repository at this point in the history
fix reconstruction of UInt32 and add regression test
  • Loading branch information
JonasIsensee authored Nov 25, 2024
2 parents c97edd1 + 6a1b429 commit c91153b
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 18 deletions.
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

0 comments on commit c91153b

Please sign in to comment.