aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2011-05-13Ensure that stack updates are seen when stack is releasedRickard Green
Ets tables using ordered_set could potentially get into an internally inconsistent state.
2011-05-13Merge branch 'bjorn/fix-warnings/OTP-9250' into devBjörn Gustavsson
* bjorn/fix-warnings/OTP-9250: Eliminate alias warning in gcc 4.5.2 erl_trace: Eliminate alias warning
2011-05-13Merge branch 'bjorn/fix-binary-overflow/OTP-9118' into devBjörn Gustavsson
* bjorn/fix-binary-overflow/OTP-9118: Fix overflow in list_to_bitstring/1 Replace io_list_len() with erts_iolist_size() Make port_command/2 reject non-byte sized bitstrings io.c: Make io_list_vec_len() less general iolist_size/1: Fix truncation of result Test iolist_size/1 with bad arguments binary_SUITE: Remove workaround for avoiding stack overflow
2011-05-13Add needed barriers for write_concurrency tablesRickard Green
Ets tables using the write_concurrency option could potentially get into an internally inconsistent state.
2011-05-12Merge branch 'sverker/halfword-printf-relative-terms/OTP-9292' into devBjörn-Egil Dahlberg
* sverker/halfword-printf-relative-terms/OTP-9292: ETS usage of erts_printf %R erts_printf %R for relative ets-terms in halfword-vm Another halfword is_same-bug for ETS ordered_set
2011-05-12Merge branch 'sverker/halfword-high-alloc/OTP-9291' into devBjörn-Egil Dahlberg
* sverker/halfword-high-alloc/OTP-9291: Present 'low' memory count for halfword-vm with erlang:memory() Fix faulty values from erlang:memory() on halfword-vm Allow allocator disable for high memory (better valgrind for halfword) Expand the use of high memory allocation in halfword emulator
2011-05-11Fix code:is_module_native segv on deleted moduleSverker Eriksson
2011-05-11Merge branch 'rickard/gc-other/OTP-9211' into devRickard Green
* rickard/gc-other/OTP-9211: Fix bad assertions Avoid scheduling of processes being garbage collected by others
2011-05-11Fix bad assertionsRickard Green
2011-05-11Eliminate alias warning in gcc 4.5.2Björn Gustavsson
2011-05-11erl_trace: Eliminate alias warningBjörn Gustavsson
Avoid creating two variable names referring to the same memory area, because that can cause aliasing warnings in some versions of gcc.
2011-05-10Present 'low' memory count for halfword-vm with erlang:memory()Sverker Eriksson
2011-05-10Fix overflow in list_to_bitstring/1Björn Gustavsson
Noticed-by: Jon Meredith
2011-05-10Replace io_list_len() with erts_iolist_size()Björn Gustavsson
The io_list_len() function returns an int, where a negative return value indicates a type error. One problem is that an int only consists of 32 bits in a 64-bit emulator. Changing the return type to Sint will solve that problem, but in the 32-bit emulator, a large iolist and a iolist with a type error will both return a negative number. (Noticed by Jon Meredith.) Another problem is that for iolists whose total size exceed the word size, the result would be truncated, leading to a subsequent buffer overflow and emulator crash. Therefore, introduce the new erts_iolist_size() function which returns a status indication and writes the result size through a passed pointer. If the result size does not fit in a word, return an overflow indication.
2011-05-09Fix faulty values from erlang:memory() on halfword-vmSverker Eriksson
Use of Uint instead of UWord could cause overflow errors on systems with large memory use.
2011-05-09Allow allocator disable for high memory (better valgrind for halfword)Sverker Eriksson
2011-05-09Expand the use of high memory allocation in halfword emulatorSverker Eriksson
Also add 'low' field in system_info(allocator) SHORT_LIVED is still in low memory
2011-05-06ETS usage of erts_printf %RSverker Eriksson
2011-05-06erts_printf %R for relative ets-terms in halfword-vmSverker Eriksson
Conflicts: erts/emulator/beam/erl_printf_term.c
2011-05-06Another halfword is_same-bug for ETS ordered_setSverker Eriksson
This one is less likely to provoke error as one of the terms is always NULL-based.
2011-05-06Make port_command/2 reject non-byte sized bitstringsBjörn Gustavsson
Also rename the fun_to_port/1 test case to outputv_errors/1 and test sending more kinds of bad data to an outputv-enabled driver.
2011-05-06io.c: Make io_list_vec_len() less generalBjörn Gustavsson
io_list_vec_len() is slightly more general than it needs to be. Specifically: * The only caller always passes ERL_SMALL_IO_BIN_LIMIT as the value for the bin_limit parameter, so the bin_limit parameter can be eliminated. * The only caller never passes any NULL pointers, so there is no need test the pointers before writing through them.
2011-05-06Merge branch 'ms/beam-fix-format-specifiers-in-erl_exit-msg' into devHenrik Nord
* ms/beam-fix-format-specifiers-in-erl_exit-msg: Fix format specifiers in erl_exit messages OTP-9262
2011-05-05Merge branch 'maint-r14' into devSverker Eriksson
Conflicts: erts/vsn.mk
2011-05-04iolist_size/1: Fix truncation of resultBjörn Gustavsson
iolist_size/1 would silently return a truncated result for iolists whose size exceeded the word size. For example: iolist(lists:duplicate(256, <<0:(1 bsl 24)/unit:8>>)). would return 0 (instead of 4294967296 or 1 bsl 32). Rewrite iolist_size/1 to accumulate the size in a bignum if necessary and result the correct result.
2011-05-04Fix bug in halfword emulator causing ets:select_delete on ordered_set to crashSverker Eriksson
2011-05-02Merge branch 'ta/driver_entry-typo' into devHenrik Nord
* ta/driver_entry-typo: driver_entry: Remove gratuitous paren and fix typo OTP-9254
2011-04-27Merge branch 'sverker/enif_is_exception/OTP-9150' into devSverker Eriksson
* sverker/enif_is_exception/OTP-9150: add support for checking if an ERL_NIF_TERM is an exception
2011-04-27Merge branch 'sverker/erts_printf-halfword' into devSverker Eriksson
* sverker/erts_printf-halfword: erts_printf %be to print integers of size Eterm Fix use of type BeamInstr in hipe_debug.c Conflicts: erts/emulator/hipe/hipe_debug.c
2011-04-26driver_entry: Remove gratuitous paren and fix typoTuncer Ayaz
2011-04-14Merge branch 'maint-r14' into devSverker Eriksson
Conflicts: erts/vsn.mk
2011-04-11Merge branch 'rickard/process-status/OTP-9197' into maint-r14Erlang/OTP
* rickard/process-status/OTP-9197: Fix thread unsafe access Fix lost wakeup when process garbage collected by other Only set status P_WAITING when needed Add testcase for process_info() badarg bug
2011-04-11Avoid scheduling of processes being garbage collected by othersRickard Green
2011-04-11Fix thread unsafe accessRickard Green
Fix thread unsafe access to process status field introduced in OTP-9125.
2011-04-11Fix lost wakeup when process garbage collected by otherRickard Green
2011-04-11Only set status P_WAITING when neededRickard Green
The status of a process was unnecessarily set to waiting before the process was enqueued in a run queue. This bug was harmless up until OTP-R14B01. In OTP-R14B02 erlang:hibernate/3 was fixed (OTP-9125). After the introduction of OTP-9125, the previously harmless process status bug sometimes caused erroneous badarg exceptions from process_info().
2011-04-07Remove truncation error in key comparision for ordered setPatrik Nyblom
2011-04-07Merge branch 'ta/erts-unused-vars' into devHenrik Nord
* ta/erts-unused-vars: erts: Remove unused variables OTP-9205
2011-04-07Fix format specifiers in erl_exit messagesMichael Santos
Fix an error message by using an unsigned integer specifier as seen in a tweet by @metabrew: #erlang VM crashed with "no next heap size found: -2090496108, offset 0", suddenly allocated all available RAM Also correct mis-typed string formats in bif.c.
2011-03-30Remove gratuitous paren in driver_entryTuncer Ayaz
2011-03-29Fix duplicate entries in stacktraces after calling certain BIFsBjörn Gustavsson
Calling a BIF thaf is called as a function (such as process_info/{1,2}) would leave a non-zero value in c_p->cp, which would lead to duplicate entries in the stacktrace.
2011-03-29BEAM loader: Simplify handling of the func_info/3 instructionBjörn Gustavsson
For some historical reason, the transformation of a func_info/3 instruction to the internal i_func_info/4 instruction is more involved than it needs to be. Remove the gen_func_info() function in the loader and use a simple transformation.
2011-03-25Merge branch 'pan/valgrind_xml_log' into devPatrik Nyblom
* pan/valgrind_xml_log: Make xml valgrind messages end up in xml log OTP-9079
2011-03-25Merge branch 'pan/system_info_procs_crash/OTP-9140' into devPatrik Nyblom
* pan/system_info_procs_crash/OTP-9140: Make erts_printf %T not recurse on C stack Corrected fd_driver and cleaned up some really old code in win32/sys.[ch]
2011-03-24add support for checking if an ERL_NIF_TERM is an exceptionSteve Vinoski
Add the enif_is_exception function to allow callers to determine whether an ERL_NIF_TERM represents an exception. (Currently the only supported exception is badarg since only enif_make_badarg exists, but this will likely be expanded in future releases.) This allows NIF code to call other NIF functions that return ERL_NIF_TERM and properly check to see if the returned terms are exceptions. Without the enif_is_exception function, developers have to create their own means of checking whether a function creates an exception, such as returning boolean success/failure indicators or some other special value indicating that an exception is in effect. The declaration of enif_is_exception in erl_nif_api_funcs.h respects the order of declarations required to keep compatibility on Windows. Add a new test to verify the operation of enif_is_exception. Modify the erl_nif man page to add a description of enif_is_exception and also to clarify the requirements of calling the enif_make_badarg function. If code calls enif_make_badarg, the env passed in gets set with exception information and so the return value of the calling function MUST be the badarg term returned from enif_make_badarg. Also clarify that the result of enif_make_badarg may be passed only to enif_is_exception and not to any other NIF API functions.
2011-03-21Make xml valgrind messages end up in xml logPatrik Nyblom
2011-03-21Teach win32/sys.c (fd-driver) not to leak readers causing init:restart to failPatrik Nyblom
2011-03-17Make erts_printf %T not recurse on C stackPatrik Nyblom
2011-03-16erts_printf %be to print integers of size EtermSverker Eriksson
Existing %bp to print pointer size integers does not work in halfword emulator to print Eterm size integers.
2011-03-16erts: Remove unused variablesTuncer Ayaz