aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2012-01-11beam_load.c: Don't show unnecessary context in errorsBjörn Gustavsson
For errors that occur after reading the code chunking, saying that the error occurred in the last function in the module and in the instruction int_code_end/0 is just confusing.
2012-01-11beam_load.c: Remove useless call to next_heap_size()Björn Gustavsson
The idea was probably to cause less fragmentation. Even if that would be true, it is irrelevant because the short-lived allocator that is used does not have any problems with fragmentation. In CodeNeed() we will simply double the size of the area used for code instead of using the next heap size.
2012-01-11beam_load.c: apply/2 does not need a special caseBjörn Gustavsson
It is wrongly assumed in the BEAM loader that apply/2 is a BIF and must be treated specially. Also make it clearer in ops.tab that apply/3 is a BIF, but apply/2 is not.
2012-01-04Merge branch 'egil/fix-compiler-warnings' into maintBjörn-Egil Dahlberg
* egil/fix-compiler-warnings: erts: Use re instead of regexp in testsuite erts: Remove unused code in testsuites orber: Use modern list guard in testsuite orber: Ignore unused variable in orber_tb.erl xmerl: Ignore unused variable in xmerl_uri.erl syntax_tool: Add missing type information hipe: Suppress warnings for unused variables hipe: Add type information to cfg_info record tools: Use literal formatting in erl_memory.c asn1: Remove unused variable in asn1_erl_nif.c ei: Remove unused variable in ei_format.c erts: Add missing prototype to DRIVER_INIT runtime_tools: Fix signedness in trace_ip_drv.c to_erl: Remove compiler warnings heart: Suppress compiler warnings erts: Remove compiler warnings in inet_gethost.c erts: Remove dead code in inet_gethost.c erts: Remove dead code
2012-01-03erts: Add missing prototype to DRIVER_INITBjörn-Egil Dahlberg
* The DRIVER_INIT macro will now produce an prototype for the driver_init() function in addition to previous behaviour.
2012-01-03erts: Remove dead codeBjörn-Egil Dahlberg
2012-01-03erts: Do not profile system profiler pidBjörn-Egil Dahlberg
2011-12-20Remove bad assertRickard Green
It is possible also in non-SMP case: 1. The process receives an exit signal and is set in status exiting and inserted into the run queue. 2. The distribution port exits before the process has been selected for execution and cannot remove the link half on the process since it is in status exiting. 3. Process is selected for execution and when removing this link half the distribution channel is gone!
2011-12-10Merge branch 'rickard/alloc-opt/OTP-7775'Rickard Green
* rickard/alloc-opt/OTP-7775: Fix thread progress debug code for has_reached_wakeup()
2011-12-10Fix thread progress debug code for has_reached_wakeup()Rickard Green
2011-12-09Merge branch 'pan/win64-fixes'Patrik Nyblom
* pan/win64-fixes: Update INSTALL-WIN32.md to reflect changes in R15B Make erl_alloc.c use correct strtol variant on windows Set absolute limit on number of threads in ethread_SUITE OTP-9130
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-12-09Merge branch 'raimo/64-bit-driver-api/OTP-9795'Björn Gustavsson
* raimo/64-bit-driver-api/OTP-9795: (22 commits) driver_SUITE.erl: Fix sys info drivers emulator test drivers: Conform to updated driver API runtime_tools's drivers: Conform to updated driver API ws's xwe_driver.c: Conform to updated driver API megaco's flex scanner: Conform to updated driver API seq_trace_SUITE_data/echo_drv.c: Conform to updated driver API erl_interface tests: Conform port_call_drv.c updated driver API erl_drv_thread_SUITE_data/testcase_driver.c: Conform to updated driver API float_SUITE_data/fp_drv.c: Conform to updated driver API port_SUITE_data/*_drv.c: Conform to updated driver API port_bif_SUITE_data/control_drv.c: Conform to updated driver API send_term_SUITE_data/send_term_drv.c: Conform to updated driver API system_profile_SUITE_data/echo_drv.c: Conform to updated driver API trace_port_SUITE_data/echo_drv.c: Conform to updated driver API Remove support for old drivers without ERL_DRV_EXTENDED_MARKER built-in drivers: Add ERL_DRV_EXTENDED_MARKER and version numbers Bump driver version to 2.0 erl_driver.h: Enlarge type on return value from call erl_driver.h: Enlarge types on driver callbacks output, control and call erl_driver.h: Enlarge types in driver output functions ... Conflicts: erts/emulator/test/driver_SUITE_data/monitor_drv.c erts/emulator/test/driver_SUITE_data/timer_drv.c
2011-12-09Remove support for old drivers without ERL_DRV_EXTENDED_MARKERBjörn Gustavsson
Because of the extensive changes in the driver API (and especially the change of return types for callbacks such as 'control'), we can no longer allow drivers without version numbers.
2011-12-09Bump driver version to 2.0Raimo Niskanen
2011-12-09erl_driver.h: Enlarge type on return value from callRaimo Niskanen
2011-12-09erl_driver.h: Enlarge types on driver callbacks output, control and callRaimo Niskanen
2011-12-08Merge branch 'rickard/alloc-opt/OTP-7775'Rickard Green
* rickard/alloc-opt/OTP-7775: Fix erts_thr_progress_wakeup()
2011-12-08Fix erts_thr_progress_wakeup()Rickard Green
2011-12-08Make erl_alloc.c use correct strtol variant on windowsPatrik Nyblom
2011-12-08Merge branch 'lukas/bugs_and_tc_fixes'Lukas Larsson
* lukas/bugs_and_tc_fixes: Fix test_server test makefile for windows Only step pointer arity steps Link with LIBS after ETHR_LIBS Save +M<S>t data as true or false, not the number Return true/false instead of num for +M<S>t info Return correct format for info about sys_alloc Add explanatory text for tc failure OTP-9800
2011-12-08Return true/false instead of num for +M<S>t infoLukas Larsson
OTP-7775
2011-12-08Return correct format for info about sys_allocLukas Larsson
OTP-7775
2011-12-08Merge branch 'rickard/generic-thr-queue/OTP-9632'Rickard Green
* rickard/generic-thr-queue/OTP-9632: Give elements of lock-free queues some time to be deallocated Fix cleanup of elements in lock-free queues
2011-12-08Merge branch 'egil/file-info-opt-utc/OTP-7687'Björn-Egil Dahlberg
* 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
2011-12-08Set BASEYEAR to 1902Patrik Nyblom
2011-12-08Set lower limit of years handled to 1601Patrik Nyblom
2011-12-08Emulate localtime, gmtime and mktime to enable negative time_tPatrik Nyblom
2011-12-08Change name of bif universaltime_to_seconds/1Björn-Egil Dahlberg
* erlang:universaltime_to_seconds/1 changed to erlang:universaltime_to_posixtime/1 * erlang:seconds_to_universaltime/1 changed to erlang:posixtime_to_universaltime/1 Let prim_file.erl reflect these changes.
2011-12-08Fix negative time in seconds_to_universaltime/1Björn-Egil Dahlberg
2011-12-08Remove OS taint from datetime conversionBjörn-Egil Dahlberg
2011-12-08Add utc <-> seconds conversions bifsBjörn-Egil Dahlberg
2011-12-08Let univ_to_local reflect HAVE localtime_rBjörn-Egil Dahlberg
Handle error cases when localtime or localtime_r returns null.
2011-12-08Fix types for gregday in erl_time_sup.cBjörn-Egil Dahlberg
2011-12-07Fix cleanup of elements in lock-free queuesRickard Green
2011-12-07erl_driver.h: Enlarge types in driver output functionsRaimo Niskanen
2011-12-07erl_driver.h: Enlarge types in driver queue and alloc functionsRaimo Niskanen
2011-12-07erl_driver.h: Use ErlDrvSizeT for size field in ErlIOVecRaimo Niskanen
2011-12-07Merge branch 'sverk/packet_size-http/OTP-9389'Sverker Eriksson
* sverk/packet_size-http/OTP-9389: erts: Remove truncation of http packet parsing and return error instead honor packet_size for http packet parsing to fix OTP-9389
2011-12-07BEAM loader: Fix bug that allowed loading of more than two versionsBjörn Gustavsson
In commit b67d3e5447f4b2bca3ed92f3db84adb3f79f9b16 (which cleaned up handling of error reasons), the test of the return value from beam_make_current_old() in insert_new_code() was not updated, which meant that it never was true and any number of versions of code could be loaded for a module.
2011-12-06Merge branch 'sverk/big-float-cmp-bug'Sverker Eriksson
* sverk/big-float-cmp-bug: erts: Fix bug in large big/float compare
2011-12-06erts: Remove truncation of http packet parsing and return error insteadSverker Eriksson
This is a slight modification of previous commit by Steve Vinoski For backward compatibility of old users of decode_packet, I think it's enough to return error instead of keeping the old line truncation behaviour.
2011-12-05honor packet_size for http packet parsing to fix OTP-9389Steve Vinoski
Allow applications to use a packet_size setting on a socket to control acceptable HTTP header line length. This gives them the ability to accept HTTP headers larger than the default settings allow, but also lets them avoid DOS attacks by accepting header lines only up to whatever length they wish to allow. Without this change, if an HTTP request/response line or header arrives on a socket in http, http_bin, httph, or httph_bin parsing mode, and the request/response line or header is too long to fit into a default inet_drv buffer of 1460 bytes, an unexpected error occurs. These problems were described and discussed on erlang-questions in June 2011 in this thread: http://erlang.org/pipermail/erlang-questions/2011-June/059563.html In the original code, no buffer reallocation occurs to enlarge the buffer, even if packet_size or line_length are set in a way that should allow the HTTP data to be parsed properly. The only available workaround was to collect headers and parse them using erlang:decode_packet, but that approach has drawbacks such as having to collect all HTTP header data before it can be handed to decode_packet for correct parsing, and also requiring each and every Erlang web server developer/maintainer to add the workaround to his or her web server. Change the packet parser to honor the packet_size setting for HTTP parsing. If packet_size is set, and an HTTP request/response or header line exceeds the default 1460 byte TCP buffer limit, return an indication to tcp_remain that it should realloc the buffer to enlarge it to packet_size. Also fix the HTTP parsing code to properly honor line_length by truncating any HTTP request/response or header lines that exceed that setting. For backward compatibility, default behavior is unchanged; if an application wants to be able to accept long HTTP header lines, it must set packet_size to an appropriate value. Buffer reallocation occurs only when needed, so the original default buffer size in the code is still the default. Make the line mode parsing honor packet_size as well, for consistency. Add new regression tests to the emulator decode_packet suite and also to the kernel gen_tcp_misc suite. The documentation for packet_size in inet:setopts/2 is already sufficient. Many thanks to Sverker Eriksson for his guidance on how to best fix this bug and also for reviewing a number of patch attempts prior to this one.
2011-12-05Merge branch 'rickard/generic-thr-queue/OTP-9632'Rickard Green
* rickard/generic-thr-queue/OTP-9632: Fix handle_async_ready_clean()
2011-12-05Fix handle_async_ready_clean()Rickard Green
2011-12-05Merge branch 'sverk/deprecate-nif-reload'Sverker Eriksson
* sverk/deprecate-nif-reload: erts: Deprecate the NIF reload mechanism OTP-9771
2011-12-05erts: Remove duplicate erts_unblock_fpeJovi Zhang
The second function erts_unblock_fpe is not needed in here.
2011-12-02erts: Fix bug in large big/float compareSverker Eriksson
Bug caused faulty result (big_SUITE:big_float_1) and an unhandled floating point exception.
2011-12-02Fix time typesRickard Green
2011-12-02Workaround for the -1 problem of mktimeBjörn-Egil Dahlberg