digitalcourage.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Diese Instanz wird betrieben von Digitalcourage e.V. für die Allgemeinheit. Damit wir das nachhaltig tun können, erheben wir einen jährlichen Vorausbeitrag von 1€/Monat per SEPA-Lastschrifteinzug.

Server stats:

832
active users

#clisp

0 posts0 participants0 posts today

#programming #workflow #GUI #mcclim #commonLisp #emacs #ecl #clisp #slime #leonardoCalculus #eepitch

screwlisp.small-web.org/lispga

I have to say, I am really, really happy with how the flow into the thirty second GIF reflects my ideal computer useage.

Basically, I write a clim command that steers my leonardo system "like a person does" via emacs-server, visible in the background of the straightforward clim interactor GUI I generated in a couple lines.

screwlisp.small-web.orgLeonardo Calculus Knowledge Representation: Object Oriented Simulation Simulation Lisp Useage (Great Example if I do say)

@sigue @scream

Oh-kay. I have been foollowing the code down the rabbit hole, and I am a bit out of my depth here, but what I see are two things:

1) (ext:default-directory) calls another function CD, which can change the directory. If without an argument, the argument is created by merging (the non-argument) with defaults and doing logical path translation, then it actually changes the directory and returns the pathname calculated before (the new path to which it changed the working directory).

So querying the default directory comes about as a side effect, sort of.

2) I am not sure about what actually happens in this default thing, but what seems certain, we're doing a call to chdir(2) every time (which has no effect when the argument is the working directory already except when the dir is unlinked (**)). We would have to call 1 system call anywhere here, but this ... and then I don't know if it doesn't call getcwd anyway in this default/normalizing stuff.

And the version comes in from the place where the "empty argument" is expanded into a pathname.

I think I'll really be circumventing this all. Instead of UIOP:GETCWD (which calls EXT:DEFAULT-DIRECTORY) I'll just redirect my GETCWD wrappe to (osicat:current-directory). Which, BTW, does the right thing.

But really, I am not sure if I shouldn't try to raise a bug here (not for the implementation, I am understanding it not good enough to judge it, but rather for the spurious :VERSION which also cannot be deleted). Any advise?

CL packages are the wrong way to implement packages in Lisp. As I explained in a discussion two years ago, packages implemented using obarrays (or equivalent) don’t work reliably.

We have a much better basis for Lisp packages in the shorthands mechanism. It only needs to be completed.

Richard Stallman on CL packages landed
#clisp #emacs
andreyor.st/posts/2022-11-01-e

> The reason namespaces systems do not fit well into #Lisp is that they have to operate in ‘read’, in the choice of which symbol object you get.

Richard Stallman on Emacs Lisp's future

andreyor.st · Emacs Lisp shorthands as namespacing systemIn Emacs version 28 Emacs developers introduced so-called read symbol shorthands. If you’re interested in the rationale, feel free to search the Emacs developer mailing list for the discussion. However, it does seem that not everyone likes the idea of shorthands as a substitution for namespaces (or packages, if you’re coming from Common Lisp).

TIL: every run of #SBCL has the same initial `*random-state*`, so sequences of pseudo-random numbers are not so random. The solution is super simple: `(setf *random-state* (make-random-state t))`.
It makes sense considering what a #Lisp image is... but it's still pretty surprising compared to other programming languages. (And doesn't happen in #ECL or #clisp 😅)