toad.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server operated by David Troy, a tech pioneer and investigative journalist addressing threats to democracy. Thoughtful participation and discussion welcome.

Administered by:

Server stats:

240
active users

#clisp

0 posts0 participants0 posts today
screwlisp<p><a href="https://gamerplus.org/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a> <a href="https://gamerplus.org/tags/workflow" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>workflow</span></a> <a href="https://gamerplus.org/tags/GUI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GUI</span></a> <a href="https://gamerplus.org/tags/mcclim" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mcclim</span></a> <a href="https://gamerplus.org/tags/commonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>commonLisp</span></a> <a href="https://gamerplus.org/tags/emacs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emacs</span></a> <a href="https://gamerplus.org/tags/ecl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ecl</span></a> <a href="https://gamerplus.org/tags/clisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clisp</span></a> <a href="https://gamerplus.org/tags/slime" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>slime</span></a> <a href="https://gamerplus.org/tags/leonardoCalculus" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>leonardoCalculus</span></a> <a href="https://gamerplus.org/tags/eepitch" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>eepitch</span></a> </p><p><a href="https://screwlisp.small-web.org/lispgames/LCKR-object-oriented-simulation-simulation/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">screwlisp.small-web.org/lispga</span><span class="invisible">mes/LCKR-object-oriented-simulation-simulation/</span></a></p><p>I have to say, I am really, really happy with how the flow into the thirty second GIF reflects my ideal computer useage.</p><p>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.</p>
Glitzersachen<p><span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> <span class="h-card" translate="no"><a href="https://bots.robots.rodeo/@scream" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>scream</span></a></span> </p><p>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:</p><p>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). </p><p>So querying the default directory comes about as a side effect, sort of.</p><p>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.</p><p>And the version comes in from the place where the "empty argument" is expanded into a pathname.</p><p>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.</p><p>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?</p><p><a href="https://hachyderm.io/tags/clisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clisp</span></a> <a href="https://hachyderm.io/tags/common_lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>common_lisp</span></a> <a href="https://hachyderm.io/tags/commonlisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>commonlisp</span></a></p>
Glitzersachen<p><span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> </p><p>Now, how do I remove the version from a pathname. In CLISP:</p><p>[1]&gt; (defvar p (make-pathname :directory '(:absolute "tmp") :version :newest))<br>P<br>[2]&gt; (describe p)</p><p><a href="https://hachyderm.io/tags/P" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>P</span></a>"/tmp/" is a pathname, with the following components:<br>DIRECTORY = (:ABSOLUTE "tmp")<br>VERSION = :NEWEST</p><p>[3]&gt; (describe (make-pathname :defaults p :version nil))</p><p><a href="https://hachyderm.io/tags/P" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>P</span></a>"/tmp/" is a pathname, with the following components:<br>DIRECTORY = (:ABSOLUTE "tmp")<br>VERSION = :NEWEST</p><p>Is that even legal?</p><p><a href="https://hachyderm.io/tags/common" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>common</span></a>-lisp <a href="https://hachyderm.io/tags/clisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clisp</span></a></p>
Glitzersachen<p>On CLISP:</p><p>(ext:default-directory) =&gt; <a href="https://hachyderm.io/tags/P" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>P</span></a>"/tmp/" </p><p> (equal (ext:default-directory) <a href="https://hachyderm.io/tags/P" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>P</span></a>"/tmp/") =&gt; NIL</p><p>But </p><p>(equal (pathname (namestring (ext:default-directory))) <a href="https://hachyderm.io/tags/P" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>P</span></a>"/tmp/") =&gt; T</p><p>And this now is not a typo. Gonna ask again: Anybody has any idea what is going on?</p><p><a href="https://hachyderm.io/tags/common_lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>common_lisp</span></a> <a href="https://hachyderm.io/tags/clisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clisp</span></a></p>
Gene Pasquet<p>I wanted to try <a href="https://toot.cat/tags/clisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clisp</span></a> instead of <a href="https://toot.cat/tags/sbcl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sbcl</span></a> yesterday. Turns out it's compiled without POSIX threads support in <a href="https://toot.cat/tags/debian" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>debian</span></a>, so no Bordeaux-threads and I'm too <a href="https://toot.cat/tags/lazy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>lazy</span></a> to recompile it...</p><p><a href="https://toot.cat/tags/commonlisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>commonlisp</span></a> <a href="https://toot.cat/tags/lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>lisp</span></a></p>
Alfred M. Szmidt<p>64 core monster, half a TB of RAM, NVME disks…. And <a href="https://mastodon.social/tags/sbcl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sbcl</span></a> takes 20 minutes to compile (<a href="https://mastodon.social/tags/GNU" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GNU</span></a> <a href="https://mastodon.social/tags/clisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clisp</span></a> — I like you but you’re slow!)</p>
vintage screwlisp account<p>clisp -modern -E UTF-8</p><p><a href="https://mastodon.sdf.org/tags/clisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clisp</span></a> <a href="https://mastodon.sdf.org/tags/commonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>commonLisp</span></a> <a href="https://mastodon.sdf.org/tags/lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>lisp</span></a> <a href="https://mastodon.sdf.org/tags/localisation" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>localisation</span></a> <a href="https://mastodon.sdf.org/tags/youCouldHaveHadMyZorkmids" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>youCouldHaveHadMyZorkmids</span></a></p>

What u will c is 21 languages #ada #awk #bash #basic #C #clisp #C++ #COBOL #Forth #FORTRAN #go #java #lisp (mine) #lua #Pascal #Perl #Python #R #Rust #Ruby #SED calc app srvs <=>stdinout. C,C++<=> sockets, 23 thin clients /w NO dep. besides C #xcb #sockets. 21 thin server in C,translate stdin/out to/from sockets in a language agnostic way. What you WON'T see are any #browsers (1000x footprint of my thin clients) or fonts, ask for #retro computer clients youtube.com/watch?v=Esv6xHwZRY

An unfair line comparison of #ada #awk #bash #basic #c #COBOL #clisp #Forth #FORTRAN #lisp #Pascal #Perl #Python #R #Rust (straight and with junk DNA removed using C pre processor, ya I don't know rust well) #Ruby #SED the ada c and lisp can be used as guides for optimizing if you know any of these. I'm slowly going back through now that these all work for calc bitbucket.org/timcdoc/antibrow also note these all produce the same(mostly) tiny over the wire to thin client via stdin/out

This goes for the rest of you, if you can improve on the Rosetta stone 17 languages (and it won't be hard on most of them :-P ) feel free to send me a shorter/clearer version. bitbucket.org/timcdoc/antibrow then #ada #awk #bash #basic #c #clisp #COBOL #Forth #FORTRAN #Pascal #Perl #Python #R #Rust #Sed (others but these are the easiest to grok under those dirs are calc and some other apps depending. What language should I abuse next?

bitbucket.orgBitbucket

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 😅)

Where are my #clisp peeps? I suspect most lisps can do these kinds of self surgery on themselves, hopefully close to just as easily as the lisps I've written? Not the right way to write factorial, but hints at ways to write self compilers etc. I never did add macros, but I've never needed them.

#clisp mostly working #altair emulator runs 4K #BASIC but sin() is broken, should fix it today. 5717 bytes of human readable over the wire to a 252K footprint thin client with no fluffy dependencies. and no 300M footprint browser. Shown are all the commands including 5 RLE HRBitmaps over the thin client on the other end of the cloud/network. code on bitbucket timcdoc antibrowser clisp altair

@WorkWithKirk oh, I wouldn't even know how to chatgpt. I do have some pretty crappy mix of first (or near first language gui cloud apps) and used all the time languages #ada #awk #bash #BASIC #C #C++ #clisp #COBOL #Forth #FORTRAN #lisp (mine) #Pascal #perl #python and yes #SED implementations of calc, some paint, altair emulators under bitbucket timcdoc antibrowser if you know any of these I could use some optimization help. You can see runs to NOTbrowsers thin clients in my "media"

I'm not saying this is the *right* way to write lisp code, but MY lisp handles this JUST fine, #clisp may or may not but you'd have to bend over backwards and disable the COBOL like anally retentive bumpers! 🤦 (Cackles maniacally, now I can haz nap!?) Why yes, this is like self brain surgery, hi, this is lisp! @bunnyhero @WorkWithKirk A good way to write factorial? maybe not, a good way to self optimize while running? ABSOLUTELY 😜🤜 @DRSpalding FYA

I was yesterday years old when I discovered modern lisps ( #clisp ) can't directly manipulate their own functions from within their functions (de foo (x y) 'thisgetswhacked (rplacd (caddr foo) 'thisiswhatgetssmashedinto)) or that scoping was so effed up it should be and is in my lisps if a variable is used, and it's not in the variable list going into the function you are in, then it's global, otherwise it's in the scope of the function you are in.

Where are my #clisp ppl? Quick question, what do I google gir best way to quickly access a slab of 64k bytes? Porting an altair emulator ftom my lisp (I hacked the poo out of fast mem (deref ptr 4 1) etc) and I kinda want to do this right for clisp. TIA