Paul J. Davis
e80bbc0f67
Add rebar/Erlang/Jiffy version compatibility tests
преди 3 години
Paul J. Davis
fff893a47e
Test skipping enc completely
преди 3 години
Paul J. Davis
8f0c8321f2
Fixup building on rebar2
преди 3 години
Paul J. Davis
75cafb4166
WIP: Allow rebar2 when compiled correctly
преди 3 години
Paul J. Davis
4faa508758
Drop support for rebar2 as of Erlang 25.0
Erlang 25.0 removes the ability to load modules compiled prior to Erlang
22.0. This patch replaces the Jiffy's `enc` based build system with the
`rebar3` port compiler plugin for Erlang 25.0 and newer.
преди 3 години
Paul J. Davis
60043d5604
Jiffy 1.0.9
преди 3 години
Mojken
a6bc8ee730
Fix typo in README
преди 5 години
Nick Vatamaniuc
73ba656378
Update enc to exclude linking with erl_interface.lib on Windows
2c92afb029
Compiled with the oldest supported OTP R15B03-1
преди 3 години
Paul J. Davis
37039ba32e
Fix support for R16
преди 4 години
Paul J. Davis
effc3c9a68
Jiffy 1.0.8
преди 4 години
Paul J. Davis
3f478cf0c5
Remove unnecessary `maybe_map/1`
Thought slightly harder and realized this was unnecessary.
преди 4 години
Paul J. Davis
a3c36d652c
Jiffy 1.0.7
преди 4 години
Paul J. Davis
6c88f830fd
Fixes #206
преди 4 години
Paul J. Davis
1388db4e64
Finally write down the package uplaod command
преди 4 години
Paul J. Davis
046035068f
Jiffy 1.0.6
преди 4 години
Paul J. Davis
f74b04fd11
Fix bug in bytes_per_red option
Turns out this was never implemented correctly since it was referring to
the original bytes_per_iter atom.
преди 4 години
Paul J. Davis
6dadc0cd22
Jiffy 1.0.5
преди 4 години
Paul J. Davis
685f14ef60
Silence compiler warnings for tests
преди 4 години
Paul J. Davis
1df5ac5997
Update rebar/enc binaries to R15B03-1
The recent release of Erlang 23.0 removed support for loading beam
modules compiled under R14 and earlier. Thus we're now forced to abandon
support for R13 and R14.
преди 4 години
Paul J. Davis
2f73ba9afd
1.0.4
преди 5 години
Paul J. Davis
0ba322e421
Fix binary leak when encoding large strings
This bug was due to an interaction between two optimizations. If we
attempt to flush the buffer before any bytes are used we refused.
However, in enc_ensure we were not checking whether the buffer was
actually flushed so we would allocate a new buffer for the request.
The easiest way to encounter this issue was by encoding a raw binary
longer than 2041 bytes (i.e., `jiffy:encode(<<"stuff...">>).`).
преди 5 години
Paul J. Davis
e60916fb15
Version 1.0.3
преди 5 години
Joan Touzet
265be337f8
Force Windows to export inlined functions
преди 5 години
Paul J. Davis
4c30454f8d
Only use -flto when supported
This adds a dynamic check to see if -flto is supported by the compiler.
Co-Authored-By: JianBo He <heeejianbo@gmail.com>
преди 5 години
Paul J. Davis
fbf43f7231
Update Travis-CI Matrix
Apparently Travis-CI has dropped some of the older Erlang versions. I've
also added a run on 22.x
преди 5 години
Paul J. Davis
ba09da7904
1.0.1
преди 6 години
Paul J. Davis
4a3785eb70
Use from_array instead of positional versions
преди 6 години
Paul J. Davis
591448da47
Fix backwards compatibility
преди 6 години
Paul J. Davis
9ea3b106ca
Remove accidentally commited rebar state
преди 6 години
Paul J. Davis
56b25bb6b7
Fix R14 support
преди 6 години
Paul J. Davis
dd831c4f2c
Fix support of VMs pre-17.x
преди 6 години
Paul J. Davis
37b41dcdc5
Fix support for Erlang 17.x
преди 6 години
Paul J. Davis
ea54777856
1.0.0
преди 6 години
Paul J. Davis
bd687813e4
Update readme with the exception type change
преди 6 години
Paul J. Davis
8813ee3eec
Upgrade to double-converson 3.1.4
преди 6 години
Paul J. Davis
496d7f0ccd
Change errors for bignums to be more explicit
Co-Authored-By: Stephan Renatus <srenatus@chef.io>
преди 6 години
John Högberg
48ff666091
Remove -fno-strict-aliasing
We don't do fishy things like type punning so it really isn't
necessary, and supplying it prevents certain optimizations.
преди 6 години
John Högberg
a3b03d5aec
Get rid of separate unsigned/signed buffers
преди 6 години
John Högberg
a1196ba754
Never expand the encode buffer; emit and restart
This greatly increases the performance of long string encodes as
we won't need to copy intermediate results over and over.
преди 6 години
John Högberg
0a72ec40ba
Fix erroneous state check in the decoder
If the input contained a mismatched end-of-array/object, the stack
could become empty before a call to dec_curr, which would look
beyond the bounds of the stack. If the value at this invalid
position happened to be st_array, we would pop too much from the
stack and overwrite the data that came before it.
This commit fixes this by letting dec_pop return the previous
state or st_invalid if the stack is empty, letting us exit
gracefully if the state isn't what we expect it to be.
dec_pop_assert is identical to the old dec_pop, tearing down the
emulator on internal errors.
преди 6 години
John Högberg
feaf10f2d5
Enable link-time optimization on *nix platforms
преди 6 години
John Högberg
ac950d657b
Move all atom checks under enif_is_atom
преди 6 години
John Högberg
6bc427e405
Use the result map for key dedupe
This is a wee bit more cache-friendly than using a std::set with
string keys.
преди 6 години
John Högberg
58c49522da
Refactor trapping and trap more often during decode
преди 6 години
John Högberg
706527d100
Skip erroneous UTF-8 validation for atoms
We requested atoms in latin1 and then handled them as utf-8,
erroring out on some valid atoms and performing pointless
validation on others.
преди 6 години
John Högberg
182393ff6a
Use enif_is_identical for equality checks
преди 6 години
John Högberg
596a61ebfc
Replace sprintf with a dedicated integer print routine
преди 6 години
John Högberg
ae712b58c5
Skip redundant enif_is_empty_list checks during encode
enif_get_list_cell fails when the list is empty.
преди 6 години
John Högberg
798e4a7dd2
Use realloc instead of doing it manually
преди 6 години
John Högberg
e274565cf1
Walk through strings once when encoding
преди 6 години