Age | Commit message (Collapse) | Author |
|
* maint:
compile_SUITE: Eliminate race condition
|
|
Compiling the same source code with the same options may not produce
the same BEAM file because the compilation time is included in the
"CInf" chunk.
|
|
Conflicts:
lib/snmp/doc/src/notes.xml
lib/snmp/doc/src/notes_history.xml
|
|
* maint:
Update primary bootstrap
compiler: Correct live calculation when get/1 is used in try...catch
|
|
* bjorn/compiler/get-in-try/OTP-9867:
compiler: Correct live calculation when get/1 is used in try...catch
|
|
* maint:
Look for port in priv/bin/arch/ as well as priv/bin/
Fix on_load handling in modules loaded by code:load_binary/3
|
|
* lukas/os_mon/work_in_source_tree/OTP-9883:
Look for port in priv/bin/arch/ as well as priv/bin/
|
|
* bjorn/kernel/on_load-bug/OTP-9875:
Fix on_load handling in modules loaded by code:load_binary/3
|
|
|
|
|
|
* raimo/parallel-make/OTP-9857:
hipe: Fix rtl dependencies
erts: Simplify toplevel makefile due to better dependencies
erts: Fix make omissions for void emulators
erts: Fix dependencies between targets generate and depend
erts: Cleanup dependencies for target generate
erts,tools: Fix parallel make for erts/lib_src
erts: Fix parallel make for emulator zlib
Conflicts:
erts/emulator/Makefile.in
|
|
Consistently use external (remote) calls to the BIFs element/2,
setelement/3, and is_record/3.
|
|
We want to be able to write type specifications for BIFs in the same
way as for any other function. Currently, the type for BIFs need
to be described in erl_bif_types.
To avoid extending the compiler and Dialyzer with special directives
for providing specifications for BIFs, we have decided to let the
loader accept a local definition for a function which exists as a
BIF. As an example, here is how a stub for lists:reverse/2 can be
defined:
-export([reverse/2]).
-spec reverse([term()], term()) -> [term()].
reverse(_, _) ->
erlang:nif_error(undef).
Essentially, the loader will discard the local definition of reverse/2.
Other functions in the same module must *not* do local calls to a BIF
stub. If a local call to a BIF is found, the loader will refuse to load
the module. That is, the following call is not allowed:
reverse(List) ->
reverse(List, []).
but the following is:
reverse(List) ->
?MODULE:reverse(List, []).
A few words about the implementation.
It turns out to be too complicated to actually discard the BIF
stubs. Although it would be possibly with some jiggery pokery in
ops.tab, the code would be difficult to maintain and it could slow
down loading of modules that don't define BIFs (which are almost
all modules).
Therefore, the stub functions are kept in the loaded code, but
their names in the func_info instruction are invalidated so that
module_info(functions) can filter them out.
|
|
Format strings as string not integer lists
|
|
|
|
Merge from R13B maintenance branch (snmp-4.17.3),
fixed appup and source diff (there is some between
snmp-4.17.3 and 4.21.6).
Merge branch 'maint-r13' into bmk/snmp/snmp4216_integration/r14
Conflicts:
lib/snmp/doc/src/notes.xml
lib/snmp/src/agent/snmpa.erl
lib/snmp/src/agent/snmpa_agent.erl
lib/snmp/src/agent/snmpa_trap.erl
lib/snmp/src/app/snmp.appup.src
lib/snmp/test/snmp_agent_test.erl
lib/snmp/vsn.mk
|
|
|
|
* maint:
Correct two contracts in gen_sctp.erl
|
|
* hb/kernel/correct_contracts/OTP-9874:
Correct two contracts in gen_sctp.erl
|
|
|
|
In "13.4 Running a function when a module is loaded" in the
Reference Manual, it is said that:
A process that calls any function in a module whose on_load
function has not yet returned will be suspended until the
on_load function has returned.
That did not work if the module was loaded using code:load_binary/3.
Instead, the callers would get an 'undef' exception.
|
|
|
|
|
|
binary should be binary().
|
|
* henrik/wx/fix-pdf-name/OTP-9850:
Change the name of generated pdf file for documentation consistency
|
|
Merge from R14B integration branch (for inets-5.7.3) and
fixed appup and corresponding code-change code to work
in new version (inets-5.8.1).
Also some minor (R15B specific) test suite fixes.
Merge branch 'bmk/inets/inets573_integration' into bmk/inets/inets581_integration/r15
Conflicts:
lib/inets/doc/src/notes.xml
lib/inets/src/http_client/httpc_internal.hrl
lib/inets/src/inets_app/inets.appup.src
lib/inets/vsn.mk
|
|
bmk/snmp/snmp4173_integration/r13
Conflicts:
lib/snmp/doc/src/notes.xml
lib/snmp/src/app/snmp.appup.src
lib/snmp/vsn.mk
|
|
Mib server cache gclimit update function incorrectly calls
age update function. The gclimit update function update_mibs_cache_gclimit/1
incorrectly called update_mibs_cache_age/2 update function.
OTP-9868
|
|
|
|
|
|
In the following code excerpt, the instruction marked below was
incorrectly removed:
.
.
.
{'try',{y,2},{f,TryCaseLabel}}.
{bif,get,{f,0},[{x,0}],{x,0}}.
{move,{x,1},{y,0}}.
{move,{x,3},{y,1}}. <======= Incorrectly removed
{jump,{f,TryEndLabel}}.
{label,TryEndLabel}.
{try_end,{y,2}}.
{deallocate,3}.
return.
{label,TryCaseLabel}.
{try_case,{y,2}}.
.
.
.
beam_utils indicated that {y,1} was not used at TryEndLabel,
which by itself is correct. But it is still not safe to remove
the instruction, because {y,1} might be used at TryCaseLabel
if an exception occurs.
Noticed-by: Eric Merritt
|
|
* maint:
Update primary bootstrap
erl_lint: Consistently reject local calls from guards
|
|
* bjorn/compiler/bif-call-bug/OTP-9866:
erl_lint: Consistently reject local calls from guards
|
|
|
|
* egil/fix-error_logger-calendar/OTP-9854:
stdlib: Refactor to tag all times in error logger
stdlib: Use utc time as base in error logger
|
|
* raimo/64-bit-efile_drv/OTP-9820:
file_SUITE: Assume 64-bit windows has enough memory
erts: Badarg if port output overflows iov_len
prim_file_SUITE: large_file success depends on wordsize
file_SUITE: Increase timeout for large_file
file_SITE,prim_file_SUITE: Accept old OpenBSD pecularity
prim_file_SUITE: large_write - meaner test data and check result content
file_SUITE: large_write - check mem size before creating huge binary
erts: rewrite efile_writev to handle partial writes correctly
erts: Bugfix - driver_deq freed wrong length due to short type (int)
prim_file_SUITE: Add large_write/1
file_SUITE: Add large_write/1
file_SUITE: Refactor large_file/1
file_SUITE: Fix unix_free/1
|
|
If a guard test (such as is_list/1) has a local definition in a
module (or is imported), erl_lint will reject a call to it from
a guard if the call is not at the top-level:
foo(L) when is_list(L) =:= true -> %% Will be rejected.
ok.
is_list(_) -> ok.
But if the call is at the top-level, it will be accepted (and
cause a crash in a later compiler pass):
foo(L) when is_list(L) -> %% Will be accepted by erl_lint
ok.
is_list(_) -> ok.
This inconsistency was an oversight introduced when it became
possible to override BIFs with local definitions.
|
|
bmk/snmp/snmp4215_integration/r15
Conflicts:
lib/snmp/doc/src/notes.xml
lib/snmp/doc/src/notes_history.xml
lib/snmp/src/app/snmp.appup.src
lib/snmp/vsn.mk
|
|
* bmk/inets/inets573_integration:
[inets/httpc] The client incorrectly streams 404 responses
[inets/httpc] Add proper code change code
[inets/httpc] Add test case
[inets] Add proper release notes for OTP-9847
[inets/httpc] Fix the selection of session for keep-alive mode When selecting a session, the "state" of the session (specifically if the server has responded) was not taken into account. Attempting to fix this, a "state" field (actually available) has been added to the session record.
[ftp] Fails to open IPv6 connection
|
|
Reported by Pailleau Eric
|
|
Cancel button cause a crash, and editing an object without inserting
a dot at the end caused a crash.
Also improved error messages a bit.
|
|
Fix crash when more than one index was set on mnesia table,
reported by Eric Pailleau.
|
|
OTP-9783
|
|
|
|
* ia/ssh/test-maint:
Remove generation of new test keys, use checked in test keys
Improve test case structure so that test should pass on all platforms
Exec test case should ignore stderr messages
Do not run ssh_to_openssh_SUITE if there is no oppenssh server running
|
|
|
|
* raimo/opu-fixes:
inet_res_SUITE: Improve portability of run-named
|
|
Use a make timestamp file to condense dependencies to some
part(s) of erts/lib_src build results.
|
|
bmk/inets/inets573_integration
Conflicts:
lib/inets/doc/src/notes.xml
lib/inets/src/inets_app/inets.appup.src
|
|
The client incorrectly streams 404 responses. The documentation
specifies that only 200 and 206 responses shall be streamed.
OTP-9860
|