Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-06-20 | Update preloaded modules | Hans Nilsson | |
2017-06-14 | Update preloaded modules | Rickard Green | |
2017-05-04 | Update preloaded modules | Björn Gustavsson | |
2017-04-25 | Update preloaded modules | Lukas Larsson | |
2017-04-10 | Update preloaded modules | Lukas Larsson | |
2017-02-27 | Merge branch 'maint' | Rickard Green | |
* maint: Ensure prim_eval:'receive' wont clobber def_arg_reg[0] Conflicts: erts/preloaded/ebin/prim_eval.beam | |||
2017-02-20 | Ensure prim_eval:'receive' wont clobber def_arg_reg[0] | Rickard Green | |
def_arg_reg[0] is used for storage of timeout instruction when a 'receive after' is executed. When a process was scheduled out inside prim_eval:'receive'/0 due to a function call, def_arg_reg[0] was overwritten due to storage of live registers. prim_eval:'receive'/2 now calls arg_reg_alloc/0 which bumps all reductions and then calls arg_reg_alloc/7 which will cause an allocation of a new arg_reg array since def_arg_reg only can hold 6 values. This ensures that the timeout instruction in def_arg_reg[0] used for the timeout wont be overwritten. | |||
2017-02-17 | Teach make_preload to handle the new 'AtU8' chunk | Björn Gustavsson | |
26b59dfe67 introduced the new 'AtU8' chunk to support Unicode atoms. make_preload strips the pre-loaded BEAM files so that they only contain essential chunks. It expects to find the old 'Atom' chunk. Teach make_preload to read the new 'AtU8' chunk instead of the old chunk. Also produce a nice error message if someone by mistake compiles the pre-loaded modules with an OTP 19 compiler. | |||
2016-12-20 | Update preloaded modules | Lukas Larsson | |
2016-12-07 | Update preloaded modules | Erlang/OTP | |
2016-06-20 | Update preloaded modules | Henrik Nord | |
2016-05-10 | Update preloaded modules | Lukas Larsson | |
2016-05-03 | Update preloaded modules | Björn-Egil Dahlberg | |
2016-04-15 | Update preloaded modules | Lukas Larsson | |
2016-02-17 | Update preloaded modules | Hans Bolinder | |
2016-02-02 | Update preloaded modules | Lukas Larsson | |
2016-01-26 | Update preloaded modules | Lukas Larsson | |
2015-12-16 | Update preloaded modules | Björn Gustavsson | |
2015-12-16 | Update preloaded modules | Björn Gustavsson | |
2015-12-08 | Update preloaded modules | Björn-Egil Dahlberg | |
2015-05-12 | Update preloaded modules | Rickard Green | |
2015-03-26 | Update preloaded modules | Henrik Nord | |
2014-04-01 | Update preloaded modules | Björn-Egil Dahlberg | |
2014-02-26 | Update preloaded and primary bootstrap | Rickard Green | |
2013-12-09 | Update preloaded modules | Magnus Lidén | |
2013-12-09 | Update preloaded modules | Magnus Lidén | |
2013-12-06 | Update preloaded modules | Magnus Lidén | |
2013-09-13 | Update preloaded modules | Magnus Lidén | |
2013-06-12 | Update preloaded modules | Björn-Egil Dahlberg | |
2013-05-28 | Added preloaded prim_eval | Fredrik Gustafsson | |
2013-05-28 | Fix receive support in erl_eval with a BEAM module | Anthony Ramine | |
Using the low-level BEAM instructions, we can loop over each message in the process queue and removes the first message that matches, without receiving them all to later send them back to itself. The function prim_eval:'receive'/2 is equivalent to the following pseudo-code: 'receive'(F, T) -> RESET MESSAGE QUEUE POINTER, LOOP: case PEEK CURRENT MESSAGE WITH TIMEOUT T of {ok,Msg} -> case F(Msg) of nomatch -> DECREMENT TIMEOUT T, ADVANCE MESSAGE QUEUE POINTER, GOTO LOOP; Result -> RESET MESSAGE QUEUE POINTER, Result end; timeout -> RESET MESSAGE QUEUE POINTER, timeout end. To not break Dialyzer and other tools, we use a stub Erlang module which abstract code is forcefully inserted into prim_inet.erl afterwards compilation. |