Age | Commit message (Collapse) | Author | |
---|---|---|---|
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. |