Otus Lisp (Ol) is a purely functional dialect of Lisp.
It implements an extended subset of the R7RS Scheme, including but not limited to some SRFIs. It is tiny (~ 64KB), embeddable and cross-platform.
You can use Ol on Linux, Windows, macOS, Android, BSD, webOS, Solaris, etc.
#Ol#Scheme#Lisp
Finally! All the issues with FFI are resolved. We have a green table with no red Xs.
Time to test all the examples, some third-party programs and libraries, and... we'll be ready for the next release!
Sorry for the three-month delay. But it was worth it.
#Lisp#Scheme
The Ol test matrix largely upgraded. It's now available online. Tiers of hardware platforms support introduced. It helps us create a truly high-quality product.
#Ol 2.7 expects to be very important version.
https://t.co/Sdtpeqjf97
#Lisp#Scheme
As a part of preparation the next version (#Ol 2.7), the automated testing script has been updated. We now have a new test matrix not even for x86, but also for mips and arm64, including big-endian architectures!
Github actions will be updated soon.
#Lisp#Scheme
Large RESOURCE-SAVING update to #Ol! Backport of the owl-lisp i/o scheduler.
Already in the master branch. Soon in the new 2.6 version.
1000 working threads: 93,3% CPU reduced to ✨0%.
New features and code comparison shown in the now-before picture. Stay with us!
#lisp#Scheme#Ol's reference docs are always up to date because it's not just a text, but code examples that auto tested every time they're pushed to github (and while being writing).
And, as a bonus, it helps to avoid regressions.
The Ol's reference: https://t.co/HWmH0lDNli
#Lisp#Scheme#r7rs#Ol received an automatic one-liner!
Just do `(write (read))` on any Ol library and you'll clear the source code of comments and unnecessary whitespaces.
Yeah, really. Just read it and then just write!
That's it for speeding up reading! And for "portable" Ol!
#lisp#Scheme
Continue upgrading #GTK-3 #Ol support. Reworking examples and adding basic docs.
I'm thinking about GTK-4 - is it worth to add support into basic library, or move it into external one (like newton-dynamics, ol-algebra, etc.) package? Hmm..
https://t.co/y1qNowlICA
#lisp#Scheme#r7rs
A new high-level #Ol interface to #GTK-3 started. No more hard to read c-like calls with long lines, just a clear lisp.
Native calls still available, sure.
https://t.co/EmT7OFME0S
Comparison of same "hello world"s. Left side is "before", right is "after":
#Lisp#Scheme#r7rs
Made a multi-platform test (PI calculation) using void-linux toolset.
It can be seen that #Ol works (at least) with long number math under arm, aarch64, x86, x86_64, mips, ppc, ppc64.
Only ppc-LE has not been tested because I can't find how to emulate it :(
#lisp#Scheme#r7rs#Ol stabilized "standalone" feature. It's something like appimage or flatpak, kind of. All required libraries inside single executable.
And I'm using it in real life, it turned out to be very convenient.
Sample folder with Makefile - https://t.co/MniWlYhyb7
#lisp#Scheme#r7rs
New #Ol version 2.5.1 released!
https://t.co/rGjh87NMoX
It's time to start updating packages. A lot of work, a lot of OS tests. Will try to create more packages for more OSes.
#Lisp#Scheme
Single executable ought to be enough for anybody! :)
#Ol got a new exper. feature - portable (or private) venv (smth like flatpak or appimage, all libraries inside its own executable).
So, just run the binary to run a program!
Check image description for details.
#Scheme#OpenGL
I tired a bit of Ol's FFI refactoring (aarch64 assembler is not a pleasure), so did a cleanup of Ol's OpenGL samples. No thirdparty libraries, no C. Only #Lisp (#Ol) (and blender3d).
Latest #Ol (2.5 rc1) is required.
Source code as usual: https://t.co/NvQwDjDKlG
#Lisp#Scheme#r7rs
This is a very important step - adding infix notation to #Ol. It makes math coding so easy and natural (I'm using it already and I'm happy).
One of the main features for release 2.5.
Started making help notes (which are tests atst).
https://t.co/3CLf5mDhCN
#Ol#Scheme#r7rs
I'm thinking of a special character(s) for the `infix-notation` macro. This macro is very useful for those who hate the prefix math notation that comes naturally to #Lisp. But a lot of (infix-notation) may annoy and litter the code.
So \, or \\, or @:, or :: ?
#Ol#Scheme#r7rs
How to utilize more than one CPU core at a time from the single core #Lisp machine?
For this particular case, I did C matrix multiplication with #OpenMP. And voila, great speedup with great scalability.
Sources:
https://t.co/IAy8Dj6DgL
https://t.co/Y3z9DKe6bd
#Ol#Scheme#r7rs
Calling #Lisp function from #C function that called from #Lisp. God loves sick recursions!
Green (top-level Lisp code),
then yellow (C from Lisp call),
then blue (Lisp from C call).
A part of algebra package (otw) with native math functions. Full GC respect!
#Lisp#Scheme#r7rs
Updated #AI sample (samples/ann), again )
Mainly for testing gtk-3 library wrappers, heavy floating-point math, and highly GC usage (10 GB mem used, a lot of temporary matrices with 7k elements each generating).
It works well!
Source: https://t.co/jGu3x5Q0TK
#Lisp#ol#Scheme#AI#gpt4all
Otus Lisp is a language so clear,
For AI and ML, it steers.
With its ease and elegance,
It helps developers innovate without resistance.
--
Not steers for AI right now, in fact, but I'm going in that direction :]