Download Latest Version Udat source code.tar.gz (33.5 MB)
Email in envelope

Get an email when there's a new version of ChrysaLisp

Home / v3.4
Name Modified Size InfoDownloads / 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 of static-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 to vpopt.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

Source: README.md, updated 2025-08-15