ChrysaLisp

Parallel OS, with GUI, Terminal, OO Assembler, Class libraries, C-Script compiler, Lisp interpreter and more...

GPL-2.0 License

Stars
1.6K
Committers
13

Bot releases are hidden (Show)

ChrysaLisp - Multi Login

Published by vygr over 4 years ago

Time for another point release !

Check commit history, and STATUS.md file, for all the changes.

The system now supports multi-user login, user preferences, scroll back history on the terminal, a new Mandelbrot demo (got to love those images), new wallpapers from Nuclearfall and now renders its own scalable fonts without use of SDL_TTF or lib_freetype etc.

Boot image size of now 161 KB, and puts in a full build time on my MacBook of around 0.3s.

Regards to all

Chris

ChrysaLisp - Yule Tide

Published by vygr almost 5 years ago

Last release of this decade !

Great contributions recently from Nuclearfall, we now have a very nice logo and wallpaper :)

Junk mail protection system to avoid stray msg's landing in the wrong place or no place at all....

Options to run single buffered GUI, but we will have to wait for some SDL crew fixes to fully switch to this method.

Read through the commit history for the full list.

A very good Christmas, New year and New decade to all !

Chris

ChrysaLisp - Frosty Days

Published by vygr almost 5 years ago

So November arrives and the Frosty mornings being again.

Lots of good updates since the last, so about time for an official release. Please read through the STATUS.md file for a catch up with all that has happened. The emphasis has been on moving more features out into Lisp land providing it does not effect performance.

New Chess demo ported over from my old C++ simple chess, and that pushed things forward on the bindings from Lisp to sequenced streams and a new mailbox polling/selecting API.

Enjoy

Chris

ChrysaLisp - The Number of the Beast !

Published by vygr about 5 years ago

Much strides to fit in with standard Lisp syntax and many more optimisations.

New documents viewer to allow browsing of the docs/ .md files. I might remove the Sphinx docs build stuff in the next release once this docs browser gets a bit more sophisticated.

Added (bind-func) to allow pre-binding of functions. This has huge performance improvement, but is not always desired, so functions can opt to do so or not, plus you can disable this globally in the boot.inc file.

So, why is this release called "The Number of the Beast" ? Well there are now exactly 666 functions in the image ! And that also happens to be the number of calls in the call profiler before I used (bind-func) :) So how about that for coincidence :)

MacBook full build time is now around 0.3s and image size of 153KB.

Enjoy

Chris

ChrysaLisp - July Juggle

Published by vygr over 5 years ago

Time to put another stake in the ground. There has been a lot of renaming and movement of methods so need to create a new release bundle for all the folks that are just using the release zips.

All the VP lowering optimisations have given a great improvement in speed, on Raspberry PI3 it really shows up, it pays to support a relatively slow platform to make sure your changes are not getting lost in the noise on fast platforms like the PC or Mac.

Boot image has dropped to to under 160KB on the PC. Which considering there are new features since the release that had it heading towards 200KB is a relief. :)

Enjoy

Chris

ChrysaLisp - April ABI

Published by vygr over 5 years ago

Big change is the reorganization of the obj/ folder to have common ABI binaries !

Reduced the snapshot.zip file by 100KB and as the Darwin and Linux platforms now share the x86_64/AMD64 binaries it make the test cycle easier. If it runs on Darwin it must also run on x86 Linux :)

Enjoy

Chris

ChrysaLisp - Windows Bliss

Published by vygr over 5 years ago

First version to carry a Windows port ! Many thanks to Martyn Bliss for pushing this forward, and for jumping in the deep end to show that other folks can do ChrysaLisp dev :)

This release also had updates to the canvas drawing engine. Anti-alias polygon draw option and canvas super sampling are now available, even in combinations.

I've retired the idea of a separate new/delete stage to the object lifecycle as it just will never get used.

Check the commit history for all the details and check out the porting issue for the saga of the Windows port :)

If anyone out there has fixes for the Windows TUI pressing return key twice issue or why the gettime host call on Windows dosn't give the correct time, feel free to join in.

Regards

Chris

ChrysaLisp - Yule tide ABI

Published by vygr almost 6 years ago

Lots of new improvements, but the big ticket item is the simplification of the host platform ABI in readiness for the Windows port !

Hope you all have a great Xmas and new year.

Best Regards

Chris

ChrysaLisp - Windy September

Published by vygr about 6 years ago

Lots of new goodies in this release. Check back over the last 80 commits for the full list.

Biggest reason to put out a point release is that all the GUI classes have moved over into the gui/ folder rather than being mixed in with the general class library.

Hope everyone is safe with these Typhoons and Hurricanes around at the moment !

Best Regards

Chris

ChrysaLisp - July's Just hot !

Published by vygr about 6 years ago

Hope everyone's enjoying the heat wave !

This release has a new system of dynamically allocated mailboxes, and the mailbox id's changed to be a single 64bit ulong of the local mailbox index and the cpu index.

This removes any memory address info from the mail headers, and allows tasks to hand off mailboxes to another task on the same CPU, something that may prove very useful.

As a result of the 64bit mailbox id's plenty of code has gotten simpler, and the Lisp bindings to the task system have been improved.

Regards to all

Chris

ChrysaLisp - April Showers

Published by vygr over 6 years ago

Time for a new release. Plenty odds and ends improved and tweaked. Large push on reference documentation thanks to some nice contributions from Alex Davies.

New 'make' command from the terminal to simplify building the system and docs:

make [doc all platforms boot]

No need to bring up the Lisp and fiddle with the various Lisp versions of the build commands.

Native implementation of the 'partition' function to speed up sorting and others, plus that's a nice demo of calling back to Lisp code from the class library.

Simple hex dump command 'dump' to ease people into writing command line apps. Will get a follow on doc sometime as a tutorial app.

Best regards

Chris

ChrysaLisp - Ready for Febuary

Published by vygr over 6 years ago

Well after all the changes to the UI properties system to be Lisp set/def compatible and a new FFI way of binding in native functions to the Lisp, and such bindings being created for various UI components, system and STDIO classes, we now have all the command line apps and all but the Terminal UI app written in Lisp !

I think that deserves the bump to Lisp 1.3 finally on the Lisp sign on message, and a new milestone release.

Without a doubt the ease of creating UI and command line apps just took a big jump, and the system boot image size took a reasonable reduction, while not much impact on the performance of anything.

Regards to all

Chris

ChrysaLisp - New year. You've got mail !

Published by vygr almost 7 years ago

Total re-write of the underlying mail system.

Now implements zero copy send/receive, zero copy multicast send, ability to send and receive reference counted string objects between processes and multicast of strings. Large messages/strings are fragmented and reconstructed with no extra copies also !

Take a look at tests/global and tests/global_child (in the tests/test.vp file) for a demo of the multi-casting.

So this means we are now in a position to allow the Lisp to send/receive strings from Lisp processes and they can now take part in all mail functionality including receive and handle GUI mouse/key events !

Now I need to hook up the Lisp to the mail system and the new GUI property system and we will have Lisp only GUI apps that can do anything they like with messaging and so forth.

Getting there ! The goal here is to have Lisp being the prime language for writing "normal" application, with exposure to the C-Script and assembler level for specialist apps only.

Best Regards and a happy new 2018 to all.

Chris

ChrysaLisp - Christmas Cheer

Published by vygr almost 7 years ago

Last release for 2017 :)

The UI widgets are now using a Lisp compatible properties system, so we are in good shape now to start manipulating UI widgets from Lisp code.

Lots of other little tweaks, check the commit logs for the full list.

Next job will be to get UI applications written in Lisp, not just as a side thread calling over to a VP thread doing the actual UI code.

Hope 2018 is good for all.

Regards

Chris

ChrysaLisp - Never November

Published by vygr almost 7 years ago

November already !

Release time. Best to check the commit logs for all the updates, theres been quite a few !

Things have moved far enough from the previous release that it's a good time to create a new one for those people that are just looking at the latest release tag and not pulling everything from the head of the repo.

Enjoy

Chris

ChrysaLisp - Multi platform pleasure

Published by vygr about 7 years ago

Worth a release now that the multi-platform tidy up is done. obj/ now holds all the binaries for the various platforms and cpu's in separate namespaces. A source build to generate the 3 currently supported platforms take 5 seconds on my MacBook. :)

Also the concept of a hash_map based environment chain has moved into the class library proper rather than being just part of the Lisp class. The component class also now inherits from hash_map and this is going to be where the GUI objects get all the properties system from. It will also mean that set/def from Lisp will be able to work with GUI objects directly, so this will be the next thing, GUI to get some re-structuring and some love.

Regards to all

Chris

ChrysaLisp - PI GUI

Published by vygr about 7 years ago

GUI on the PI3 is now up and running.

Enjoy.

Chris

ChrysaLisp - Holy Cow

Published by vygr about 7 years ago

I say Holy Cow and I mean it !

Major bug found in the heap allocator that has been there for over 2 years. It's so embarrassing. It was allocating 16kb blocks PER object rather than 16kb blocks OF objects.

Memory usage for full build has now dropped from 300MB+ to a few megabytes, plus cache usage has gone through the roof and full build times have dropped to 2s.

Plus the PI3 now puts in very respectable full builds times.

Sorry for the huge cock up, but we live and learn :)

Regards

Chris

ChrysaLisp - PI in the Sky

Published by vygr about 7 years ago

First version up and running on PI3 :)

Debian Linux based PI64 from Github, https://github.com/bamarni/pi64.

Further work on optimising for the PI3 is needed, but this self compiles everything just fine on the PI3.

Needed to change a couple of syscall functions to fit in with Debian Linux on the PI3, but both OSX and Ubuntu on x64 had the same syscalls available so things turned out pretty portable.

The bootstrap is now in C, just loads in the sys/boot_image file into ram and jumps to it, nothing fancy.

Enjoy.

Regards to all

Chris

ChrysaLisp - Remember September

Published by vygr about 7 years ago

Major push on Aarch64 ARM code generation, feature complete now. Next step is to prepare the platform isolation layer for the ARM Linux on the PI3. But I think the ARM codegen work is worth releasing.

Added 2 new VM ops, vp-land-rrr, and vp-lnot-rr, that expose the logical and and not to CPU specific feature generation.

OK, now to push on to get the 64bit PI3 Linux port running !

Regards all

Chris