#LispWorks

2025-06-09

Started to work on a label-pane "widget" for LispWorks, text pane with support for minimal html-like markup. Inspired by Qt's QLabel. So far looks good. I got a strange alignment of letters with smaller font sizes on Windows, but looks ok in Linux LW. No extra dependencies, just LW. Lists etc still not implemented but basic formatting is in place:
codeberg.org/fourier/lw-rich-t

#lispworks #commonlisp

2025-05-23

Submitted a bugreport this morning to LispWorks Hobbyist and received a free patch this evening already. Love LW!

#lispworks

2025-04-24

Finally got some time to implement Wizard pages/dialogs support for LispWorks CAPI:

codeberg.org/fourier/lw-wizard

#lispworks #commonlisp

2025-03-03

With LispWorks 8.1 (here on ARM64 / Linux) it runs without X11 (xlsclients then does not list it as a client) using Gtk+ 3 and calling (capi:screen-display-type) returns :WAYLAND .

2025-03-03

LispWorks 8.1 has just today been released. Incl. support for GTK+ 3 and Wayland.

lispworks.com/news/news42.html

2024-12-02

a quick hack for #adventofcode2024 Day 2 using #CommonLisp in #LispWorks

2024-11-17

#lisp #commonlisp #lispworks #symbolics #lispmachine

Made the KR frame system from the UIMS Garnet for two Common Lisp implementations work: LispWorks 8 and Portable Genera. I used this version: github.com/ury-marshak/kr

Typical problem porting code:: the initial value for structure slots is undefined in CL. The code assumes NIL.

Attached a screenshot of the KR examples in Portable Genera, a Virtual Lisp Machine on an Apple Mac mini with M4 Pro.

2024-05-17

Spent whole yesterday's evening on implementing word-wrap function (to split string by provided line length in characters) only to find out today that LispWorks already has capi:wrap-text. Oh well.
#lispworks

2024-05-08

Apparently a problem of boundling dynamic libraries in OSX is an [in]famous one. While creating a binary with LispWorks DV for OSX I've found that my app uses osicat, which generates the libosicat.dylib, so I had to bundle it together with the app.
LW solution seems to be trivial for that - I've just embed the library into LW binary, instead of copying the file.
To do that, in a in a delivery step I do
```
(push :myapp-delivery *features*)
(ql:quickload :myapp)

;; Special handling for osicat. We need to find libosicat.dylib cffi-wrapper library and embed it into the image
(defun find-osicat-dylib ()
;; "/Users/fourier/.cache/common-lisp/lw-8.0.1-macosx-x64/Users/fourier/.quicklisp/dists/quicklisp/software/osicat-20231021-git/posix/libosicat.dylib"))
(let ((osicat-dylib
(directory (merge-pathnames "**/libosicat.dylib" asdf:*user-cache*))))
(assert osicat-dylib)
(car osicat-dylib)))

(fli:setup-embedded-module :libosicat
#.(fli:get-embedded-module-data
(find-osicat-dylib)))

(fli:install-embedded-module :libosicat)

```
This allows the LW to embed the libosicat.dylib into the binary.

In main app function I would just need to load it explicitely from the embedded module:
```
#+:myapp-delivery (fli:install-embedded-module :libosicat)

```

Now delivered app works fine even without libosicat.dylib present on a target computer.

#lispworks

2024-04-29

Питер Норвиг: автор лучшего в мире учебника по ИИ

Питер Норвиг (Peter Norvig) — выдающийся учёный, один из отцов современной ИИ-разработки. После сингулярности ИИ точно оставит его в живых в знак благодарности. Норвиг не только хороший программист, но и теоретик программирования, учёный и преподаватель, в длинном резюме перечислено 58 статей, а количество цитирований на сегодняшний день составляет 78 830 . Основное признание Норвиг получил как автор учебника «Искусственный интеллект: современный подход» , который в наше время считается самым популярным учебником по ИИ в вузах. Эта фундаментальная работа претерпела уже четыре переиздания.

habr.com/ru/companies/ruvds/ar

#ruvds_статьи #Питер_Норвиг #фильм_Сеть #учебник #ИИ #вузы #JScheme #Scheme #Java #Prolog #Lisp #Franz #LispWorks #парсер_натуральных_языков #Cyc #НАСА #Deep_Space 1 #Remote_Agent #самовосстановление

2024-04-26

Finally upgraded my LW license on OSX to DV. In contrast to Personal license it supports OSX Dark theme. With the Jetbrains Mono font and Jetbrains color theme it actually looks good!

#lispworks

2024-04-20

My browser for offline copy of flibusta library is getting better by day.
Now I can parse fb2 file format extracting annotations etc + cover image, which I can show on a screen. Added calling external converter to export to epub so it could be opened on any device. Almost "feature complete" as I wanted (not only minimal set of features).
Implemented with LispWorks Personal for OSX.
To avoid memory limitations while parsing fb2 (basically xml) format in zip files I've implemented pipe in-memory stream using producer/consumer model with conditional variables, and to parse "on a fly" without building whole dom in memory I use cl-xmlspam library. No fun without solving technical issues ? :)
Will upgrade my outdated OSX license next week so I can produce a binary for my wife and friends who use macbooks.
Source code is here codeberg.org/fourier/cl-homeli

#LispWorks

2024-04-15

Also have a flake for #lispworks however I have a lot of problems with how to store secrets in #nix , currently I've settled for a license.age encrypted file in the repo, and the decrypted file is added to git without intending to commit (apparently that's a thing).

curtosiscurtosis
2024-04-08

@louis@emacs.ch I’m always conflicted about . They have some fantastic affordances but the Hobbyist license fees are higher than most “professional” tools. Certainly more than I can justify for my scale of projects just to not have them time out. And multiply by not running the same platform on my laptop as on the server in my closet.

To be clear, I’m not saying it’s /wrong/ per se; the economics are what they are. Just sad that it prices me out.

2024-04-05

In case if you happened to be on OSX and want to distribute your simple utility written in LW Personal for OSX to your friend, and can't afford (or hesitant to get) the full DV version.

IF you still able to run it within the heap limitations of LW Personal, the solution is simple:
1) Create the bundle using the quicklisp.org/beta/bundles.htm bundles facility so you don't need to install anything but fresh LW personal on a target machine
2) Create an Automation script which would start LW and calls your lisp file which loads the app including loading the bundle and sets up all necessary stuff. Don't forget to chmod a+x this automator script so you can launch your app just by double-clicking on it.
3) Provide this script along with your bundle.

You can combine all these steps in one script. I've ironically created a sbcl command line tool which does all that for my project.

Here is my Automator script for that:

codeberg.org/fourier/cl-homeli

#lispworks

2024-04-03

I've written 2 articles in like 6 years and now 3 more in like 3 days, what's going on!

Today I implemented a lexical environment eval in #commonlisp (for #lispworks) using a couple of relatively unknown (at least to me) functions in the LispWorks runtime. Let me know what you think :)

blog.dziban.net/posts/lispwork

#lisp

2024-04-02

Quick article about delivering a #lispworks application, the remote debugger and library troubleshooting.

blog.dziban.net/posts/deliveri

#lisp #commonlisp

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst