Releases: vygr/ChrysaLisp
FrameBuffer Fun
The host GUI interface for the ChrysaLisp compositor function table has been separated out from the host OS function table.
As a result we now have 3 new make
options. GUI=sdl, the default, GUI=fb and GUI=raw. Just add one of these to the make GUI=sdl install
to choose.
- sdl, the same driver for SDL library that we had previously.
- raw, a software only driver that uses SDL only to show the final result. This is for use as a template for new drivers.
- fb, a software only Linux Frame buffer device driver contributed, with great thanks, from Greg Haerr. Tested to work on Raspberry PI3 and up, Apple M1 NixOS and a few others.
We will move away from the SDL event interfaces for mouse and keyboard over time !
Many thanks to Greg for this contribution, it has opened up a whole new set of platforms where we can have fun.
Regards to all
Chris
Wicker Man
Hi folks, good time for a release tag.
-
There have been changes to the pre-binder that have significant impact on the code. The pre-binder no longer steps into quasi-quote forms, this was always incorrect behaviour. As a result several issue have been spotted and fixed.
-
The pre-binder now will pre-bind lambda, macro, quote and quasi-quote function call sites ! This has had a significant performance boost.
-
boot.inc predicates have been changed to functions rather than macros.
-
New NetSpeed app ! Measures currently available VP register, memory and reals ops/s performance for each node on the network. This is a dynamic measurement, if you are running other processes then you will see the values react accordingly.
-
New time terminal command to allow simple timing of the duration of stdin. Use like make it | time etc.
-
New make command test option. For a quick build stats over 10 runs for your current platform use make test.
-
New Hchart UI widget. Netmon and NetSpeed apps changed to use this and restructured the source while doing so.
-
Improvements to the Riscv64 translator files that have saved around 10KB of boot image from that platform.
As usual read through the STATUS.md file to see all the changes and the git logs.
Regards to all
Chris
RV64 gogo
Official tag release for Riscv64 port. I'm sure some further optimisation will occur, but this is a great example emit
file to look at. 435 lines to bring up the Riscv64 platforms.
Many thanks to Martin Wendt for his tireless remote test cycle to allow me to get this done with no hardware. So, now we have 5 platforms building in under 5 seconds (on my old MacBook). A good thing (tm).
Install build on VisionFive2:
https://www.youtube.com/watch?v=xZGjFP0gNBY
Then native build:
https://www.youtube.com/shorts/DhOC7wWRcnk
Regard all
Chris
New Year Cheer
Happy new year to all.
This year I have not been able to add as much as I'd like due to family circumstances. But this tag rounds up all the years changes and tidy ups.
As usual check the git
logs to see all the updates.
Thank you all for your understanding during this years troubles.
Chris
Winter Wonder
This release wraps up work for the year.
The PCB demo app has been updated to include the solver and this has prompted improvements and unification of the vector math library, the reimplementation of the (nums) classes, VP vector SDL, including addition of VP vector ops at the VM level.
Take a look at the STATUS.md doc and the commit logs for the full list of updates.
Best wishes to everyone
Chris
Autumn Haze
This release concentrates on the numerics side of ChrysaLisp. Number, Fixed and Reals and the vector variants of these.
Some new demo apps have been created Molecule and Mesh that pushed the need to tighten up the number formats and vector functions. As well as providing a good test bed for new Canvas methods including a new highly optimised :tri method. Take a look at the NUMERIC.md document and the new libraries in 'lib/math/'.
Extra work on converting the Editor functions into a GUI component that is now shared between Edit, Viewer and Terminal apps.
(eql) and (find) now use the same comparison for the element test. They can also be used with more object types. As well as making this faster this has also led to the creation of new fmap and fset classes. Faster versions of xmap and xset that use (find). (case) can now cope with polymorphic clauses and vector keys as a result of the (find) improvements.
As always check the commit logs and STATUS.md file for a full list of the changes.
Regards to all
Chris
Summer Rain
This release concentrates on documentation and polishing existing API's and features.
- New extendable native Editor application is now in great shape, more extensions to come.
- New implementation of the GUI Terminal application with cut/paste support.
- Rewrite of the source Viewer application with cut/paste support and reuse of Editor action functions.
- New documents on MACROS and CLASSES.
- The GUI is finally moving out of experimental phase and has received documentation on EVENT_LOOPS, EVENT_DISPATCH and the UI_WIDGET system.
- New Template application to aid easy creation of new applications based on the latest frameworks.
- Improved Real number format sin/cos/sqrt functions.
- Textfield widgets support cut/paste and full editing.
Lots more polishing and additions, see the STATUS doc and Github commits for details.
Enjoy, regards to all
Chris
Summer Breeze
Interim release to bring the latest changes to the tagged version.
Main change I wish to put out is the newly rewritten Editor and Doc apps. They use a much better system for application organisation as well as pushing the new module system construction for applications.
The Docs app use dynamically load modules to handle each state of the application ! Allow dynamic extension of its feature set.
The Editor is now well on the way to a full project manager IDE, but so much progress has been may that this drop is worth it.
The assembler/CScript , parsers and optimisers have been broken out into individual library modules that I hope will encourage people to take a look and study.
Enjoy, and best regards
Chris
Spring Snow
Spring is sprung and time for another release.
The big changes over the last few months have centred on language data structures and consistency with the lower level VP structures and typing. So (structure) (getf) (setf) (enums) (bits)
are all now available at the Lisp level and share the same typing system as the VP level (def-struct) (def-enum) (def-bit)
.
Also a big push to adopt the +xxx constant format symbols throughout the source to give the (prebind)
the opportunity to act on constants.
New (if)
and (or)
implementations bringing speed improvements and reduction in use of (gensym)
symbols.
New implementations of (def-vars) (def-class) (def-struct) (def-enum) (def-bit)
that remove the need to quote symbols and remove the need for the (def-xxx-end)
functions.
New launch script options.
[-n cnt] number of nodes
[-b base] base offset
[-e] emulator mode
[-h] help
New (mail-timeout)
feature to improve animation and mail read retries. Along with new Farm
and Global
classes for fault tolerant task management.
As always, check the STATUS.md file for the full list of updates as well as the repo commit history.
Currently the x86_64 boot image is sitting at 161KB, the MacBook Air M1 is managing a full system build in under 0.2 seconds ! and Raspberry PI4 is turning in under 2 seconds full builds.
Thanks again to all the contributions and discussions from other third parties, thanks folks.
Regards to all
Chris
ps. here is Mr Martyn Blyss running a self configuring heterogeneous network of a MacBook M1 and a Windows 10 machine, via a usb3 copy cable.
Lockdown Revolutions
New year is here and lots of new changes. As we move into the new year we are moving forward with new features with a drive to expand the host systems and networking. Soon to allow linking of multiple hosts to form larger networks ;) MacOS gets new support with the M1 silicon platform, some record breaking system build times on the new MacBook Air laptops of under 0.2 seconds :)
Big changes to the networking with 24byte NetID mailbox IDs. NodeIDs are now assigned at boot time and are independent of the host IPC link filenames.
New vp64 bytecode format and target, Emulator mode, and installer with minimum sized snapshot.zip file.
TUI mode has no requirement for SDL libs. And now works on MacBook M1 with rewrite of the boot process.
Extensive work on new Lisp classes and libraries.
Check out the STATUS.md file for all the updates.
Regards, and thanks to all the contributors over the last year.
Chris