otus_lisp's profile picture. A purely functional dialect of Lisp.

An extended subset of the R7RS Scheme with FFI and some SRFI. Tiny (~ 64KB), embeddable and cross-platform.

Ol (Otus Lisp)

@otus_lisp

A purely functional dialect of Lisp. An extended subset of the R7RS Scheme with FFI and some SRFI. Tiny (~ 64KB), embeddable and cross-platform.

Angepinnt

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.


#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.

otus_lisp's tweet image. #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!

otus_lisp's tweet image. #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!

#Ol #Lisp #Scheme #R7RS We have become more Ubuntu (Mint, Pop!_OS, etc.) friendly. We launched our own PPA! launchpad.net/~yuriy-chumak/…

otus_lisp's tweet image. #Ol #Lisp #Scheme #R7RS

We have become more Ubuntu (Mint, Pop!_OS, etc.) friendly. We launched our own PPA!

launchpad.net/~yuriy-chumak/…

#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: github.com/yuriy-chumak/o…

otus_lisp's tweet image. #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: github.com/yuriy-chumak/o…

#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!

otus_lisp's tweet image. #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.. github.com/yuriy-chumak/o…

otus_lisp's tweet image. #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..

github.com/yuriy-chumak/o…

#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. github.com/yuriy-chumak/o… Comparison of same "hello world"s. Left side is "before", right is "after":

otus_lisp's tweet image. #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.
github.com/yuriy-chumak/o…

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 :(

otus_lisp's tweet image. #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 - github.com/yuriy-chumak/o…

otus_lisp's tweet image. #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 - github.com/yuriy-chumak/o…

#lisp #Scheme #r7rs New #Ol version 2.5.1 released! github.com/yuriy-chumak/o… 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.

otus_lisp's tweet image. #lisp #Scheme #r7rs

New #Ol version 2.5.1 released!
github.com/yuriy-chumak/o…

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.

otus_lisp's tweet image. #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: github.com/yuriy-chumak/3…


#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). github.com/yuriy-chumak/o…

otus_lisp's tweet image. #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).
github.com/yuriy-chumak/o…

#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 :: ?

otus_lisp's tweet image. #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: github.com/yuriy-chumak/l… github.com/yuriy-chumak/o…

otus_lisp's tweet image. #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:
github.com/yuriy-chumak/l…
github.com/yuriy-chumak/o…

#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!

otus_lisp's tweet image. #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: github.com/yuriy-chumak/o…


#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 :]

otus_lisp's tweet image. #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 :]

#Scheme #r7rs I keep making reference docs. `(otus async)` this time. This is very very helpful because each sample is autotested on every code commit (regression testing, yeah). But I hate to write text, not code :( Btw, #Ol has Actors "out of the box". github.com/yuriy-chumak/o…

otus_lisp's tweet image. #Scheme #r7rs
I keep making reference docs. `(otus async)` this time.

This is very very helpful because each sample is autotested on every code commit (regression testing, yeah). But I hate to write text, not code :(

Btw, #Ol has Actors "out of the box".
github.com/yuriy-chumak/o…

#lisp #Scheme Just interesting fact - Ol consists of: 1579 strings, 1121 symbols, 12 inexact and 6 rational numbers, 3452 compiled functions (used by 5924 procedures and only 173 closures), 10764 pairs (as part of lists), 1649 vectors, 2606 dict. entries and only 2 constructors.

otus_lisp's tweet image. #lisp #Scheme
Just interesting fact - Ol consists of:
1579 strings, 1121 symbols, 12 inexact and 6 rational numbers, 3452 compiled functions (used by 5924 procedures and only 173 closures),  10764 pairs (as part of lists), 1649 vectors, 2606 dict. entries and only 2 constructors.

Loading...

Something went wrong.


Something went wrong.