Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-08-15 | 2.0 kB | |
Udat source code.tar.gz | 2025-08-15 | 33.5 MB | |
Udat source code.zip | 2025-08-15 | 33.8 MB | |
Totals: 3 Items | 67.2 MB | 3 |
Udat
Mainly work on some ease of use extras, and some reworking of a few areas that improves the reader throughput.
-
Terminal app fix for user input.
-
New
(bit-mask mask ...) -> val
function and(bits? val mask ...) -> :t | :nil
macro predicate defined to go with the(bits)
bitmask definition function. -
New
(eval-list list [env]) -> list
inplace list element evaluation primitive. This is making the:repl_eval_list
method available at the user level. -
Improvements to the
case
macro. Lots of new features since this was first written ! -
New
(macrobind)
macro. -
New
(static-qqp)
macro that only does a prebind pass, no static macroexpand ! GUI UI macros now use this. -
Major tidy up of the
lib/asm/vp.inc
file. Use ofstatic-q*
where possible and removal of redundant type conversions. -
Reference counted
netid
object for temp mailboxes. Create one via(mail-mbox)
and no need to explicitly free anymore.(free-select)
call is now gone, and(alloc-select)
is replaced by the(task-mboxes)
function which creates the select list using(task-mbox)
, for the first entry, and(mail-mbox)
for the rest. -
Reworked the
lib/task/local.inc
class. Added a few more options as well as tidying up the code. As a result the build times have improved again. Worth spending some of this gain on new VP optimisation checks. -
opt-redundant-branch
test added tovpopt.inc
. This test looks to see if a constant based branch is being done when we already loaded a constant into that register that we can static eliminate. This can happen with inline code embedding, AND as branch instructions are a KILL op for other searches, it's worth checking for. -
Rework of the symbol interning system for the entire OS and Lisp engine. Removed redundant methods and streamlined the base method used by
lisp :read_sym
to operate directly from the stream buffers without intermediate copies or string object churn.
Enjoy
Chris