Age | Commit message (Collapse) | Author |
|
|
|
or backslash on Windows.
Purpose: Prevent tricks to get hostile code running.
|
|
into 'sverker/maint-20/alloc-n-migration/ERIERL-88'
OTP-14915
OTP-14916
OTP-14917
OTP-14918
|
|
similar to the ones in OTP-19.2.3.1
|
|
1.2.11 started bailing when avail_out==0 regardless of whether
there's anything to flush or not, and there's no point in adapting
the old method since it was vulnerable to bugs in other zlib
versions which updated the deflate parameters even on failure.
The api_deflateParams test has been expanded accordingly, and two
white-box cases in zip_usage has been updated to make fewer
assumptions about the output; the validity of the compressed data
is what matters, not whether it's exactly the same as the test
vector.
|
|
|
|
When presented with multiple valid but concatenated streams, the
old driver returned an empty result once the end of the first
stream was reached, and kept doing so even if fed new data. The
new driver/NIF returned a data_error instead.
zlib:inflateInit/3 has been added to control this behavior, but is
not yet ready for public use.
|
|
OTP-14527
|
|
All operations will now yield appropriately, allowing them to be used
freely in concurrent applications. This commit also deprecates the
functions listed below, although they won't raise deprecation
warnings until OTP 21:
zlib:adler32
zlib:crc32
zlib:inflateChunk
zlib:getBufSize
zlib:setBufSize
The behavior of throwing an error when a dictionary is required for
decompression has also been deprecated.
|
|
OTP-14520
|
|
|
|
|
|
|
|
|
|
* sverker/refactor:
erts: Introduce struct binary_internals
erts: Introduce erts_bin_release
erts: Init refc=1 in erts_bin_drv_alloc*
erts: Init refc=1 in erts_bin_nrml_alloc
erts: Remove deliberate leak of hipe fun entries
erts: Remove hipe_bifs:remove_refs_from/1
Refactor hipe specific code to use ErtsCodeInfo
erts: Refactor ErtsCodeInfo.native
|
|
|
|
|
|
which serves no purpose after all the
hipe load&purge fixes merged at
32729cab75325de58bf127e6e8836348071b8682
|
|
* sverker/ets-table-identifiers:
observer: Polish crashdump viewer for ETS
observer: Polish Table Viewer tab
stdlib: Remove ets_SUITE:memory_check_summary
erts: Improve reduction count during table cleanup
erts: Cleanup table status bits
erts: Remove now redundant 'id' from DbTableCommon
erts: Remove meta_main_tab
erts: Pass tid argument down to trapping functions
erts: Print table id as ref in crashdump and break menu
erts: Replace meta_pid_to{_fixed}_tab with linked lists
erts: Correct erl_rbtree comments about yielding
erts: Add ERTS_RBT_YIELD_STAT_INIT to erl_rbtree
Fix node_container_SUITE
list_to_ref/1
Implement ets:all() using scheduler specific data
Rename fixation count in ets table to avoid confusion
Introduce references as table identifiers
|
|
|
|
|
|
|
|
* maint:
Ensure prim_eval:'receive' wont clobber def_arg_reg[0]
Conflicts:
erts/preloaded/ebin/prim_eval.beam
|
|
|
|
def_arg_reg[0] is used for storage of timeout instruction
when a 'receive after' is executed. When a process was
scheduled out inside prim_eval:'receive'/0 due to a function
call, def_arg_reg[0] was overwritten due to storage of live
registers.
prim_eval:'receive'/2 now calls arg_reg_alloc/0 which
bumps all reductions and then calls arg_reg_alloc/7
which will cause an allocation of a new arg_reg array
since def_arg_reg only can hold 6 values. This ensures
that the timeout instruction in def_arg_reg[0] used
for the timeout wont be overwritten.
|
|
26b59dfe67 introduced the new 'AtU8' chunk to support
Unicode atoms.
make_preload strips the pre-loaded BEAM files so that they
only contain essential chunks. It expects to find the old
'Atom' chunk.
Teach make_preload to read the new 'AtU8' chunk instead of the old
chunk. Also produce a nice error message if someone by mistake
compiles the pre-loaded modules with an OTP 19 compiler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
* maint:
Update preloaded
erts: Correct type declaration of match specification head
Conflicts:
erts/preloaded/ebin/erlang.beam
erts/preloaded/ebin/erts_internal.beam
|
|
|
|
|
|
|
|
|
|
* raimo/diffserv-socket-option/OTP-13582:
Tune 'tclass' semantics
Implement IPV6_TCLASS
|
|
* maint:
erts: Add nif_SUITE:t_on_load
erts: Improve nif_SUITE:upgrade test
Don't leak old code when loading a modules with an on_load function
Conflicts:
erts/preloaded/ebin/erts_code_purger.beam
erts/preloaded/ebin/erts_internal.beam
erts/preloaded/src/erts_code_purger.erl
|
|
Normally, calling code:delete/1 before re-loading the code for a
module is unnecessary but causes no problem.
But there will be be problems if the new code has an on_load function.
Code with an on_load function will always be loaded as old code
to allowed it to be easily purged if the on_load function would fail.
If the on_load function succeeds, the old and current code will be
swapped.
So in the scenario where code:delete/1 has been called explicitly,
there is old code but no current code. Loading code with an
on_load function will cause the reference to the old code to be
overwritten. That will at best cause a memory leak, and at worst
an emulator crash (especially if NIFs are involved).
To avoid that situation, we will put the code with the on_load
function in a special, third slot in Module.
ERL-240
|
|
|
|
|
|
Implement as ceil/1 and floor/1 as new guard BIFs (essentially part of
Erlang language). They are guard BIFs because trunc/1 is a guard
BIF. It would be strange to have trunc/1 as a part of the language, but
not ceil/1 and floor/1.
|
|
* rickard/remove-old-purge-strategy/OTP-13844:
Avoid selective receive in code-purger process
Remove old purge strategy
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/global.h
|
|
The code purger process handles vast amounts of messages when
there are lots of processes alive. A single message in the
message queue that does not match will in such cases cause
lots of extra work. The code purger process now always picks
the first message in the message queue, and by this avoid
this extra work.
|
|
|
|
|