Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* maint:
[tools] Update erlang-edoc.el to include @param and @returns
|
|
[tools] Update erlang-edoc.el to include param and returns
OTP-14217
|
|
Conflicts:
OTP_VERSION
|
|
Conflicts:
OTP_VERSION
|
|
|
|
|
|
|
|
* hans/inets/ftp_bad_return_checks_patch/OTP-14203:
ftp: allow different timing sequences
|
|
* raimo/efile_drv-read_file-use-fstat/OTP-14184:
Use fstat if it exists in efile_openfile
|
|
* sverker/bin2term-zlib-bug/ERL-340/OTP-14159:
erts: Fix binary_to_term for compressed and zlib >= v1.2.9
|
|
|
|
|
|
OTP-14205
* rickard/magic-references:
Add binary overhead for magic ref/binaries
Adjust the only usage of exposed magic binaries
Use magic refs for maps merge trap context
Use magic refs binary_to_term/term_to_binary trap context
Use magic refs for distributed send trap context
Use magic refs for unicode static NIFs traps
Use magic refs for binary compile patterns
Use magic refs for list_to_binary/binary_to_list traps
Use magic refs for compiled match specs
Use magic refs for re:run() static NIFs trap
Use magic refs for code loading state
Use magic refs in trapping processes()/ports() BIFs
Use magic refs for NIF resources
Implement magic references
Implement erts_refc_inc_unless()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Magic references are *intentionally* indistinguishable from ordinary
references for the Erlang software. Magic references do not change
the language, and are intended as a pure runtime internal optimization.
An ordinary reference is typically used as a key in some table. A
magic reference has a direct pointer to a reference counted magic
binary. This makes it possible to implement various things without
having to do lookups in a table, but instead access the data directly.
Besides very fast lookups this can also improve scalability by
removing a potentially contended table. A couple of examples of
planned future usage of magic references are ETS table identifiers,
and BIF timer identifiers.
Besides future optimizations using magic references it should also
be possible to replace the exposed magic binary cludge with magic
references. That is, magic binaries that are exposed as empty
binaries to the Erlang software.
|
|
|
|
* maint:
Atomic reference count of binaries also in non-SMP
Conflicts:
erts/emulator/beam/erl_fun.c
|
|
OTP-14202
* rickard/binary-refc:
Atomic reference count of binaries also in non-SMP
Conflicts:
erts/emulator/beam/beam_bp.c
|
|
NIF resources was not handled in a thread-safe manner in the runtime
system without SMP support.
As a consequence of this fix, the following driver functions are now
thread-safe also in the runtime system without SMP support:
- driver_free_binary()
- driver_realloc_binary()
- driver_binary_get_refc()
- driver_binary_inc_refc()
- driver_binary_dec_refc()
|
|
|
|
|
|
* maint:
Dirty schedulers should not touch scheduler data pointed to by process struct
|
|
OTP-14122
* rickard/ds-fix:
Dirty schedulers should not touch scheduler data pointed to by process struct
Conflicts:
erts/emulator/beam/erl_process.c
|
|
* maint:
Use a hole-marker that cannot be mistaken for a valid term on the heap
|
|
* rickard/hole-marker:
Use a hole-marker that cannot be mistaken for a valid term on the heap
|
|
OTP-14201
* hm/escript-emulator:
escript: Handle symbolic link to a standalone escript
|
|
* maint:
Store messages for 'rex' and 'error_logger' off heap
file: match enoent and enotdir in path_open
|