0.5.0-alpha
·
24 commits
to master
since this release
Process
General
- New
selective-receive!
macro to receive only matching messages. See docs for more info. - Simultaneous calls to
receive!
are not allowed and throw an exception. - Added
:flush
option todemonitor
fn. See docs for more info. - New
process-info
fn returning information about a process. See docs for more info. - New
processes
fn returning a sequence of pids of all the currently existing processes. - Unlimited process' message queue. No "inbox overflow" error.
- New
make-ref
andref?
fns for unique reference values. Such references are returned for example bymonitor
fn. - Removed
monitor-ref?
fn. - Removed
:name
option ofspawn
fn. - Removed dynamically bound var
*inbox*
which could be used to receive process' messages. - Process is tracked (present in known processes list) until its initial function exits.
- New
alive?
fn to check if process is still alive. See docs for more info. - Allowed sending/receiving
nil
. - Significantly reduced process' start time.
- Improved message sending/receiving performance. Use own channel implementation for messages and signals.
- Reduced amount of code generated by
receive!
for special cases (e.g. zero-timeout). Pid
is not a record any more. Can not be serialized automatically.- Added docs for
exit
fn with no arguments.
Tracing
- The only tracer is allowed for the system.
trace
fn returnstrue
/false
instead of tracer-ref.untrace
has no arguments. :spawn
event is split into:spawn
and:spawned
.:spawn
means thatspawn
fn is called and relates to the parent process.:spawn
means that a process init fn is spawned and relates to the child process.:terminate
event is split into:exiting
and:exit
. See process docs for more info.- Some events (like
:spawn
) can havenil
pid when produced by not a process. - Fixed sending
:receive
event before the message has been actually received. - Fixed
:message
value of:send
event: put the message, not[context message]
.
Async/await
- New
map-async
fn andwith-async
macro to avoid unnecessary async/await. - Renamed
async?-value!
toawait?!
. - New
async-value
helper fn to make async value from a regular one without usingasync
macro.
Timer
- Fixed "busy loop" in
apply-interval
when timeout is0
. - Docs: added information about timer resolution.
gen-server
- Monitoring server during a call. Allows exiting immediately if the server has exited. Caller must be a process now.
- Removed redundant async/await during the
call
. - Fixed gen-server crash on getting its state with
get!
.
Other
- Added project URL to the project description.