Age | Commit message (Collapse) | Author |
|
|
|
|
|
Conflicts:
erts/emulator/beam/beam_emu.c
erts/emulator/beam/bif.tab
erts/preloaded/ebin/prim_file.beam
lib/hipe/cerl/erl_bif_types.erl
|
|
|
|
|
|
User tags in a dynamic trace enabled VM are spread throughout the system
in the same way as seq_trace tokens. This is used by the file module
and various other modules to get hold of the tag from the user process
without changing the protocol.
|
|
|
|
Add probes to (mostly) the efile_drv.c driver and other
file I/O-related source files.
|
|
* maint:
Make sure disk_log does not write too much data
|
|
While disk_log eagerly collects logged data for better performance,
collecting too much data may choke the system and cause huge binaries
to be written.
The problem was addressed in OTP-9764, but the situation was not
improved in all cases.
Thanks to Richard Carlsson.
|
|
* maint:
Improve erts_debug_SUITE
Fix calculation of fun size in erts_debug:size/1
|
|
* bjorn/kernel/erts_debug_size-fix/OTP-9991:
Improve erts_debug_SUITE
Fix calculation of fun size in erts_debug:size/1
|
|
Conflicts:
erts/preloaded/ebin/prim_inet.beam
|
|
* ph/fix-enfile/OTP-9990:
Update preloaded prim_inet.beam
gen_tcp: Use correct specs for accept and listen
prim_inet: Catch system_limit in open_port
Fix returned error from gen_tcp:accept/1,2 when running out of ports
|
|
Funs would be calculated using erts_debug:flat_size/1.
|
|
|
|
|
|
* rj/fix-global-spec:
Improve global:re_register_name/2,3 spec
Fix global:{random_exit_name,random_notify_name}/3 spec
|
|
Both functions always return `yes'.
|
|
|
|
* mh/create_cookie_error_msg:
Specify file name and error on create_cookie failure
OTP-9954
|
|
Both functions return pid(), not 'none'. The one that always returns
'none' is notify_all_name/3.
|
|
|
|
Strange that the effect of this bug is not more fatal.
Kudos to Fabian and Tom for spotting this one.
|
|
New errors found when adding specs to erlang.erl and
removing them from erl_bif_types are examined and corrected.
Some errors was due to faulty specs, while others were actual
errors in the code using BIF's.
|
|
|
|
* bjorn/erts/bif-stubs/OTP-9861:
beam_load.c: Allow stubs for BIFs
beam_load.c: Don't show unnecessary context in errors
beam_load.c: Remove useless call to next_heap_size()
beam_load.c: apply/2 does not need a special case
|
|
* 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
|
|
* bjorn/kernel/on_load-bug/OTP-9875:
Fix on_load handling in modules loaded by code:load_binary/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.
|
|
* maint:
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().
|
|
The {error, enfile} return value is badly misleading and confusing for
this case, since the Posix ENFILE errno value has a well-defined meaning
that has nothing to do with Erlang ports. The fix changes the return
value to {error, system_limit}, which is consistent with e.g. various
file(3) functions. inet:format_error/1 has also been updated to support
system_limit in the same manner as file:format_error/1.
|
|
The appup files shall allow upgrade from two major versions back,
i.e. for R16 they shall match back to R14. They shall no longer match
for R13.
|
|
|
|
* ta/sendfile/OTP-9240:
Do not use async threads on DARWIN
Fix cleanup when sendfile process crashes
Return {error,closed} from sendfile if closed
Do not use SFV_NOWAIT as it does not exist on all solaris
Clarify some code comments
Make solaris use sendfilev
|
|
* egil/file-info-opt-utc/OTP-7687: (39 commits)
Remove time_t specific test in prim_file_SUITE
Update prim_file.beam and prim_zip.beam
Add types for posixtime_to_universaltime and the reverse
Set BASEYEAR to 1902
Set lower limit of years handled to 1601
Emulate localtime, gmtime and mktime to enable negative time_t
Document file:*_file_info/2
Fix compiler warning in unix_efile.c
Change name of bif universaltime_to_seconds/1
Change options to prim_file:*_file_info/*
Remove dead code
Catch errors from prim_file:*_file_info
Testcase for utc <-> seconds conversion
Fix negative time in seconds_to_universaltime/1
Remove OS taint from datetime conversion
Add utc <-> seconds conversions bifs
Let prim_file validate ctime in file_info
Teach #file_info spec unix epochs for file times
Add file_info_opt tests in prim_file_SUITE
unix_efile: Zero is a valid number in utime
...
Conflicts:
erts/emulator/beam/erl_time_sup.c
erts/emulator/sys/win32/erl_win_sys.h
erts/emulator/sys/win32/sys_time.c
|
|
* file:read_file_info/2
* file:write_file_info/3
Document options and time behavior.
|
|
|
|
If the socket is closed by the remote end, sendfile
now returns {error,closed}.
|
|
|
|
* ta/docs:
Fix misspelling of chosen
Fix typos in erl(1)
Fix misspelling of 'turn off'
Fix typo in reltool(3)
Fix typo in gen_sctp(3)
Fix typo in mod_responsecontrol.erl
Fix typo in erts_alloc(3)
Fix typos in ssl_cipher.erl
Fix typos in expressions.xml
file: correct make_link/2 and make_symlink/2 docs
Fix typo in test_server(3)
Fix typos in io_protocol.xml
Fix typo in erlang(3)
Fix typos in tar_SUITE
Fix typos in erts/preloaded/src
OTP-9787
|
|
* ao/fix-change-time-inval-dates:
Fix a crash when file:change_time/2,3 are called with invalid dates
OTP-9785
|
|
|
|
* sa/dialyzer-fixes:
Correct callback spec in application module
Refine warning about callback specs with extra ranges
Cleanup autoimport compiler directives
Fix Dialyzer's warnings in typer
Fix Dialyzer's warning for its own code
Fix bug in Dialyzer's behaviours analysis
Fix crash in Dialyzer
OTP-9776
|
|
* hb/kernel/too_greedy_disk_log/OTP-9764:
Make sure disk_log does not write too much data
|
|
While disk_log eagerly collects logged data for better performance,
collecting too much data may choke the system and cause huge binaries
to be written. (Reported by Klarna.)
(Logging data faster than the speed disk_log can write to disk can
still cause problems.)
|
|
|
|
|