aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc
AgeCommit message (Collapse)Author
2011-11-07Merge branch 'bjorn/fun-improvements/OTP-9667'Björn Gustavsson
* bjorn/fun-improvements/OTP-9667: sys_pre_expand: Remove incorrect comment compiler: Eliminate use of deprecated erlang:hash/2 beam_asm: Fix broken NewIndex in fun entries beam_asm: Strenghten the calculation of Uniq for funs
2011-11-07beam_asm: Strenghten the calculation of Uniq for funsBjörn Gustavsson
Funs are identified by a triple, <Module,Uniq,Index>, where Module is the module name, Uniq is a 27 bit hash value of some intermediate representation of the code for the fun, and index is a small integer. When a fun is loaded, the triple for the fun will be compared to previously loaded funs. If all elements in the triple in the newly loaded fun are the same, the newly loaded fun will replace the previous fun. The idea is that if Uniq are the same, the code for the fun is also the same. The problem is that Uniq is only based on the intermediate representation of the fun itself. If the fun calls local functions in the same module, Uniq may remain the same even if the behavior of the fun has been changed. See http://erlang.org/pipermail/erlang-bugs/2007-June/000368.htlm for an example. As a long-term plan to fix this problem, the NewIndex and NewUniq fields was added to each fun in the R8 release (where NewUniq is the MD5 of the BEAM code for the module). Unfortunately, it turns out that the compiler does not assign unique value to NewIndex (if it isn't tested, it doesn't work), so we cannot use the <Module,NewUniq,NewIndex> triple as identification. It would be possible to use <Module,NewUniq,Index>, but that seems ugly. Therefore, fix the problem by making Uniq more unique by taking 27 bits from the MD5 for the BEAM code. That only requires a change to the compiler. Also update a test case for cover, which now fails because of the stronger Uniq calculation. (The comment in test case about why the Pid2 process survived is not correct.)
2011-11-07EEP-23: Allow variables in fun M:F/ABjörn Gustavsson
Currently, the external fun syntax "fun M:F/A" only supports literals. That is, "fun lists:reverse/1" is allowed but not "fun M:F/A". In many real-life situations, some or all of M, F, A are not known until run-time, and one is forced to either use the undocumented erlang:make_fun/3 BIF or to use a "tuple fun" (which is deprecated). EEP-23 suggests that the parser (erl_parse) should immediately transform "fun M:F/A" to "erlang:make_fun(M, F, A)". We have not followed that approach in this implementation, because we want the abstract code to mirror the source code as closely as possible, and we also consider erlang:make_fun/3 to be an implementation detail that we might want to remove in the future. Instead, we will change the abstract format for "fun M:F/A" (in a way that is not backwards compatible), and while we are at it, we will move the translation from "fun M:F/A" to "erlang:make_fun(M, F, A)" from sys_pre_expand down to the v3_core pass. We will also update the debugger and xref to use the new format. We did consider making the abstract format backward compatible if no variables were used in the fun, but decided against it. Keeping it backward compatible would mean that there would be different abstract formats for the no-variable and variable case, and tools would have to handle both formats, probably forever. Reference: http://www.erlang.org/eeps/eep-0023.html
2011-10-27Remove unused */doc/src/make.dep filesBjörn Gustavsson
These dependency files was once used when building the documentation, but are no longer needed.
2011-10-18Merge branch 'fm/enif_is_number'Henrik Nord
* fm/enif_is_number: Add NIF function enif_is_number Conflicts: erts/emulator/beam/erl_nif_api_funcs.h OTP-9629
2011-10-17Correct the docsHans Bolinder
2011-10-04Merge branch 'dev' into majorBjörn-Egil Dahlberg
2011-10-04Merge branch 'dev' into majorLukas Larsson
* dev: Prepare release [ssl] Step version for patch 1178 Touch crypto to provoke patch release (again) Prepare release
2011-10-04Prepare releaseOTP_R14B04Erlang/OTP
2011-10-04Merge branch 'maint-r14' into devRaimo Niskanen
2011-10-04Merge branch 'maint-r13' into maint-r14Raimo Niskanen
Conflicts: erts/doc/src/notes.xml erts/emulator/drivers/common/inet_drv.c erts/vsn.mk lib/kernel/test/gen_sctp_SUITE.erl
2011-09-29Merge branch 'dev' into majorBjörn-Egil Dahlberg
* dev: Update copyright years
2011-09-29Update copyright yearsBjörn-Egil Dahlberg
2011-09-27Merge branch 'dev' into majorHans Bolinder
* dev: Improve the generation of man pages Correct XML files
2011-09-26Correct XML filesHans Bolinder
2011-09-20Merge branch 'dev' into majorHenrik Nord
Conflicts: erts/aclocal.m4 erts/include/internal/ethread_header_config.h.in
2011-09-20Merge branch 'ta/docs-fixes' into devHenrik Nord
* ta/docs-fixes: Fix misspelling of intermediate Fix typos in erts/preloaded/src Fix more misspellings of compatibility Fix misspelling of kept Fix misspelling of compatibility in ssl_basic_SUITE Fix misspelling of compatibility Fix misspelling of accommodate Fix misspelling of exceed Fix misspelling of accidentally Fix misspelling of erroneous in xmerl_xsd Fix misspelling of erroneous Fix misspelling of successful Fix typos in instrument(3) Fix typos in dbg(3) dialyzer: fix a small typo in list_to_bitstring test Fix typos in cover.erl Fix typos (variable name) in erl_nif(3) Fix typos in mod_esi(3) Fix trivial typos in erlang(3) OTP-9555
2011-09-19Prepare releaseErlang/OTP
2011-09-16Fix misspelling of intermediateTuncer Ayaz
2011-09-16Merge branch 'dev' into majorBjörn-Egil Dahlberg
* dev: Move init of smp rw mutex from init to sys_args to make sure that it is initialized before the first erts_sys_getenv call Move erts_sys_env_init() to erts_sys_pre_init() Remove _DEBUG from start_erl.c Spelling correction in erlsrv doc Convert windows start_erl to take rootdir on command line Add command start_disabled to erlsrv Add global lock for erlsrv to avoid races Change start order so that service_event gets initialized before it's used Conflicts: erts/emulator/sys/win32/sys.c
2011-09-16Merge branch 'pan/win_erlsrv_stop/OTP-9344' into devBjörn-Egil Dahlberg
* pan/win_erlsrv_stop/OTP-9344: Move init of smp rw mutex from init to sys_args to make sure that it is initialized before the first erts_sys_getenv call Move erts_sys_env_init() to erts_sys_pre_init() Remove _DEBUG from start_erl.c Spelling correction in erlsrv doc Convert windows start_erl to take rootdir on command line Add command start_disabled to erlsrv Add global lock for erlsrv to avoid races Change start order so that service_event gets initialized before it's used
2011-09-15Fix misspelling of accidentallyTuncer Ayaz
2011-09-15Fix typos (variable name) in erl_nif(3)Tuncer Ayaz
2011-09-15Fix trivial typos in erlang(3)Tuncer Ayaz
2011-09-08Merge branch 'dev' into majorHenrik Nord
2011-09-08Merge branch 'fm/external_size_2' into devHenrik Nord
* fm/external_size_2: Add erlang:external_size/2 BIF OTP-9528
2011-09-02Merge branch 'dev' into majorHans Bolinder
* dev: Update documentation and specifications of some of the zlib functions Conflicts: erts/preloaded/ebin/zlib.beam
2011-09-02Update documentation and specifications of some of the zlib functionsHans Bolinder
The functions zlib:deflateSetDictionary/2 and zlib:inflateSetDictionary/2 accept iodata() as Dictionary. The functions zlib:crc32/2,3, zlib:adler32/2,3, zlib:compress/1, zlib:uncompress/1, zlib:zip/1, and zlib:unzip/1 accept iodata() as data.
2011-08-27Add erlang:external_size/2 BIFFilipe David Manana
This BIF's second parameter is a list of options. Currently the only allowed option is {minor_version, Version} where version is either 0 (default) or 1.
2011-08-26Merge branch 'dev' into majorBjörn Gustavsson
* dev: code: Optimize purge/1 and soft_purge/1 using check_old_code/1 Add erlang:check_old_code/1 check_process_code/2: Quickly return 'false' if there is no old code
2011-08-25Add erlang:check_old_code/1Björn Gustavsson
Add erlang:check_old_code/1 to quickly check whether a module has old code. If there is no old code, there is no need to call erlang:check_process_code/2 for all processes, which will save some time if there are many processes.
2011-08-18Update documentation for erlang:raise/3 and erlang:get_stacktrace/0Björn Gustavsson
2011-08-18erl: Add +L to suppress loading of line number informationBjörn Gustavsson
2011-08-18Implement process_info(Pid, current_{location,stacktrace})Björn Gustavsson
2011-07-29Merge branch 'dev' into majorSverker Eriksson
2011-07-18New allocator: Address order first fit (aoff)Sverker Eriksson
2011-07-12Merge branch 'dev' into majorSverker Eriksson
2011-07-12Merge branch 'maint-r14' into devSverker Eriksson
Conflicts: erts/vsn.mk
2011-07-11Prepare releasemaint-r14b03Erlang/OTP
2011-07-08Use separate memory carriers for small blocksRickard Green
2011-07-08Merge branch 'lukas/erts/enif_make_reverse_list/OTP-9392' into majorLukas Larsson
* lukas/erts/enif_make_reverse_list/OTP-9392: Add version comment Rename enif_get_reverse_list to enif_make_reverse_list Remove extra allocated heap fragment Added enif_get_reverse_list to nif API
2011-07-06Remove deprecated concat_binary/1Björn Gustavsson
concat_binary/1 was deprecated in R13B04, but already in the R10B-2 release, the documentation recommends using list_to_binary/1 instead.
2011-07-01Rename enif_get_reverse_list to enif_make_reverse_listLukas Larsson
2011-06-30Added enif_get_reverse_list to nif APILukas Larsson
2011-06-22Merge branch 'hw/fix-doc-typos' into devHenrik Nord
* hw/fix-doc-typos: Fix typos in the epmd documentation OTP-9387
2011-06-20Add more specs and typesHans Bolinder
An incorrect spec, rpc:yield/1, has been fixed.
2011-06-08Add NIF function enif_is_numberFilipe David Manana
This function allows for easily determining if a term represents or not a number (integer, float, small or big).
2011-06-07Spelling correction in erlsrv docPatrik Nyblom
2011-06-01Fix typos in the epmd documentationHolger Weiß
2011-05-27Convert windows start_erl to take rootdir on command linePatrik Nyblom