Current section

6 Versions

Jump to

Compare versions

4 files changed
+25 additions
-2 deletions
  @@ -144,12 +144,23 @@ Opt = [{ext,{Packer,Unpacker}}],
144 144 {ok, {ref, Ref}} = msgpack:unpack(msgpack:pack({ref, Ref}, Opt), Opt).
145 145 ```
146 146
147 + ## Misc
148 +
149 + ### Float type
150 +
151 + The Float type of Message Pack represents IEEE 754 floating point number, so it includes Nan and Infinity.
152 + In unpacking, msgpack-erlang returns `nan`, `positive_infinity` and `negative_infinity`.
153 +
147 154 ## License
148 155
149 156 Apache License 2.0
150 157
151 158 # Release Notes
152 159
160 + ## 0.7.0
161 +
162 + - Support `nan`, `positive_infinity` and `negative_infinity`
163 +
153 164 ## 0.6.0
154 165
155 166 - Support OTP 19.0
  @@ -1,5 +1,5 @@
1 1 {<<"name">>,<<"msgpack">>}.
2 - {<<"version">>,<<"0.6.0">>}.
2 + {<<"version">>,<<"0.7.0">>}.
3 3 {<<"requirements">>,#{}}.
4 4 {<<"app">>,<<"msgpack">>}.
5 5 {<<"maintainers">>,[<<"Kota Uenishi">>,<<"Yuki Ito">>]}.
  @@ -1,6 +1,6 @@
1 1 {application,msgpack,
2 2 [{description,"MessagePack serializer/deserializer"},
3 - {vsn,"0.6.0"},
3 + {vsn,"0.7.0"},
4 4 {modules,[msgpack]},
5 5 {maintainers,["Kota Uenishi","Yuki Ito"]},
6 6 {licenses,["Apache"]},
  @@ -47,8 +47,20 @@ unpack_stream(<<16#C6, L:32/big-unsigned-integer-unit:1, V:L/binary, Rest/binary
47 47 %% Floats
48 48 unpack_stream(<<16#CA, V:32/float-unit:1, Rest/binary>>, _) ->
49 49 {V, Rest};
50 + unpack_stream(<<16#CA, 0:1, 16#FF:8, 0:23, Rest/binary>>, _) ->
51 + {positive_infinity, Rest};
52 + unpack_stream(<<16#CA, 1:1, 16#FF:8, 0:23 , Rest/binary>>, _) ->
53 + {negative_infinity, Rest};
54 + unpack_stream(<<16#CA, _:1, 16#FF:8, _:23 , Rest/binary>>, _) ->
55 + {nan, Rest};
50 56 unpack_stream(<<16#CB, V:64/float-unit:1, Rest/binary>>, _) ->
51 57 {V, Rest};
58 + unpack_stream(<<16#CB, 0:1, 2#11111111111:11, 0:52, Rest/binary>>, _) ->
59 + {positive_infinity, Rest};
60 + unpack_stream(<<16#CB, 1:1, 2#11111111111:11, 0:52 , Rest/binary>>, _) ->
61 + {negative_infinity, Rest};
62 + unpack_stream(<<16#CB, _:1, 2#11111111111:11, _:52 , Rest/binary>>, _) ->
63 + {nan, Rest};
52 64
53 65 %% Unsigned integers
54 66 unpack_stream(<<16#CC, V:8/unsigned-integer, Rest/binary>>, _) ->