Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile
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.

ID: 1470333808138412032

linkhttps://github.com/yuriy-chumak/ol calendar_today13-12-2021 10:05:08

183 Tweet

42 Takipçi

2 Takip Edilen

Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#lisp #Scheme I'm working on an "infix notation" macro that adds the infix math notation to #Ol. `a + b * x + c * x ^ 2` is much more readable than `(+ (+ a (* b x)) (* c (^ x 2)))`. It's the only thing keeping Ol from becoming a truly ideal language. github.com/yuriy-chumak/l…

#lisp #Scheme

I'm working on an "infix notation" macro that adds the infix math notation to #Ol. `a + b * x + c * x ^ 2` is much more readable than `(+ (+ a (* b x)) (* c (^ x 2)))`.

It's the only thing keeping Ol from becoming a truly ideal language.
github.com/yuriy-chumak/l…
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

#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.
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

#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…
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

#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 :]
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

#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!
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

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 (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

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 (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

#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 (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

#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.
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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 #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.
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

#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…
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

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 :(
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

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":
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

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…
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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 #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!
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

#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…
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

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

#Ol #Lisp #Scheme #R7RS

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

launchpad.net/~yuriy-chumak/…
Ol (Otus Lisp) (@otus_lisp) 's Twitter Profile Photo

#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

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!