Age | Commit message (Collapse) | Author |
|
erlang:universaltime_to_localtime is leap seconds-aware (since 2008),
however erlang:localtime_to_universaltime is not, which gives
surprising results on systems configured with leap seconds-aware
timezones:
1> erlang:universaltime_to_localtime({{2012,1,1},{0,0,0}}).
{{2012,1,1},{0,0,0}}
2> erlang:localtime_to_universaltime({{2012,1,1},{0,0,0}}).
{{2012,1,1},{0,0,24}}
and completely breaks calendar:local_time_to_universal_time_dst:
3> calendar:local_time_to_universal_time_dst({{2011,1,1},{0,0,0}}).
[]
Signed-off-by: Piotr Sikora <[email protected]>
|
|
* siri/erl_prim_loader/archive-scripts/OTP-10071:
Update preloaded
Add tests for problems with handling of primary archive
Add comments to make erl_prim_loader primary archive handling more readable
Fix erl_prim_loader errors in handling of primary archive
|
|
into maint
* gustav/stdlib/gen_server_enter_loop_global_scope/OTP-10130:
Change testcase of gen_server:enter_loop/4 with global scope to match on result of a gen_server:call/2
Correct guard matching in gen_server:enter_loop/4 to match global scope in ServerName without timeout.
|
|
erl_prim_loader.beam
|
|
Thanks to Tuncer Ayaz for co-authoring.
|
|
This commit introduces no functional change. It only adds comments and
changes some function/variable names.
|
|
The following errors have been corrected:
* If primary archive was named "xxx", then a file in the same
directory named "xxxyyy" would be interpreted as a file named yyy
inside the archive.
* erl_prim_loader did not correctly create and normalize absolute
paths for primary archive and files inside it, so unless given with
exact same path files inside the archive would not be found. E.g. if
escript was started as /full/path/to/xxx then "./xxx/file" would not
be found since erl_prim_loader would try to match /full/path/to/xxx
with /full/path/to/./xxx. Same problem with ../.
* Depending on how the primary archive was built,
erl_prim_loader:list_dir/1 would sometimes return an empty string
inside the file list. This was a virtual element representing the
top directory of the archive. This has been removed.
Thanks to Tuncer Ayaz and Shunichi Shinohara for reporting and
co-authoring corrections.
|
|
* slf/dtrace-nif-N-probes:
Remove crufty scaffolding code
Add 1024 separate USDT probes to dyntrace.erl and dyntrace.c
Conflicts:
lib/runtime_tools/src/dyntrace.erl
OTP-10143
|
|
* slf/dyntrace-comment-and-func-cleanup:
dyntrace.erl comment cleanup and unused function removal
OTP-10141
|
|
* sz/dtrace-message-send-fix:
DTrace bug in message-send
OTP-10142
|
|
* sverk/hipe-arm-fix:
hipe_arm.c: remove dead code
Workaround gcc bug affecting ARM debug build
Fix compile error of HIPE enabled DEBUG emulator for ARM
Fix hipe bif calling bug on ARM
Add armv7l and armv5tejl as a recognized ARM architectures
OTP-10137
|
|
to match on result of a gen_server:call/2
|
|
to match global scope in ServerName without timeout.
OTP-10130
|
|
* hb/kernel/fix_spec_disk_log/OTP-10131:
Correct the type of the disk log header
|
|
Thanks to Niclas Eklund.
|
|
|
|
|
|
|
|
erts/emulator/hipe/hipe_arm.c started out as a clone of hipe_ppc.c,
with #ifdefs to select ARM-specific code. Somehow those #ifdefs
never got cleaned out, resulting in fairly ugly-looking code.
This eliminates the #ifdefs, deletes dead PowerPC-specific code, and
keeps only the ARM-specific code. I've verified that the exact same
assembly code is generated for hipe_arm.c before and after this patch
(if you compile without -g, with -g there are unavoidable changes to
the debug data).
Signed-off-by: Mikael Pettersson <[email protected]>
|
|
|
|
|
|
Bug introduced in R15.
|
|
|
|
|
|
* bjorn/compiler/eliminate-bottleneck/OTP-10123:
sys_pre_expand: Eliminate bottleneck for modules with many functions
|
|
* rj/fix-eprof-doc:
Fix nonsense of eprof doc
OTP-10121
|
|
* tab/fix-indentation-records-emacs:
Fix indentation of record fields in Emacs
OTP-10120
|
|
* rj/fix-et-doc:
Fix typo in ET doc
OTP-10119
|
|
* ia/ssl/recv-bug/OTP-10118:
ssl: Fix bug in the handling of remote connection closure of {active,false} ssl sockets.
|
|
* rickard/thr-prgr-use/OTP-10116:
Fix faulty use of thread progress in handle_aux_work()
|
|
Use a gb_set instead of an ordset to store the set of defined
functions in the module to avoid quadritic time complexity.
|
|
* ia/ssl/pem-cache-bug:
ssl: Fix pem cache bug
|
|
A general case clause was put before a less general so that the less
general case would never match.
|
|
As an optimization old thread progress data was kept and used in
handle_aux_work() in erl_process.c. This could cause memory to be
deallocated at a later time than intended, which is quite harmless.
This has, however, now been fixed.
|
|
ssl sockets.
|
|
* ia/ssl/bottlenecks/OTP-10113:
ssl: Test case fixes
ssl: Avoid second bottleneck in supervisor
ssl: File handling optimization
ssl: Simpler PEM cache
ssl: Refactored for readability
ssl: Use md5 as file ref id instead of filenames
ssl: Move ets:select bottleneck in server
ssl: Renegotiate updates session id in gen_fsm state
ssl: Use ordered_set in cache
ssl: Move and avoid ets:select bottleneck in client
ssl: Reuse session check optimization
ssl: Avoid supervior bottleneck
|
|
* ia/ssh/missing-reason-in-catch-exit/OTP-10112:
Improved handling of multiple closes
|
|
In some situations, the indentation of record fields in Emacs was
strange. This example below shows how Emacs previously would indent
two similar pieces of code very differently:
some_function_with_a_very_long_name() ->
#'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{
field1=a,
field2=b}.
x() ->
#some_record_name{
field1=a,
field2=b}.
This changes the indentation to be like below for both cases:
some_function() ->
#some_record{
field1=a,
field2=b}.
|
|
|
|
|
|
Do proc_lib:spawn_link instead of proc_lib:start_link as synchronized
init is not used/needed anyway.
|
|
Avoid cach validation with file:file_info/2 as this i too expensive and
causes a bottleneck in the file server. Instead we expose a new API function
ssl:clear_pem_cache/0 to deal with the problem. As we think it will be
of occasional use and the normal case is that the cache will be valid we think
it is the right thing to do.
Convert file paths to binary representation in the ssl API module to
avoid uncessarry calls in file later on.
Also add sanity checks for openssl versions in testsuite due to new
openssl bugs.
|
|
* lukas/otp/install_with_whitespace/OTP-10107:
Update to work with space in include path
Update to work with whitespace in exec path
|
|
OTP-10109
|
|
|
|
Instance of state variable that are "updated" in a function is called
for example State0 and the last instance, that should be returned, is
called State possible intermidiat versions are suffixed by increasing
numbers. State0 may be rturned in error cases.
Avoid nesting case statments.
|
|
Aviods storing a lot of data
|
|
Only use ssl_manager for selecting new ids to guarantee uniqueness,
but reuse check does not need to be performed by the manager.
|
|
The session id keept in the connection processes state must be updated to be
the id selected by ssl_handshake:client_hello, failing to do so will
cause a crash if the session is not reused.
|
|
So we can use partial bound keys for matching
|