amoroso, to Lisp
@amoroso@fosstodon.org avatar

"Common Lisp is not a beautiful crystal of programming language design. It's a scruffy workshop with a big pegboard wall of tools, a thin layer of sawdust on the floor, a filing cabinet in the office with a couple of drawers that open perpendicular to the rest, [...]"

"This historical baggage is a price paid to ensure Common Lisp had a future."

https://stevelosh.com/blog/2018/08/a-road-to-common-lisp/

#CommonLisp #lisp

louis, to random
@louis@emacs.ch avatar

I have a feeling that Quicklisp slowly fades away into an unmaintained state. While still being the CL library manager & the CL online package library.

I believe there is an incredible amount of manual work invovled to keep it barely going.

Should we try to reform and renovate #Quicklisp and move it to a point where it appears to be a modern package manager & repository like any other language offers?

I probably sound heretic. I just feel that Quicklisp is an unopened treasure trove and vital to #CommonLisp 's adoption.

What do you think?

glitzersachen, to Lisp German

Dear hobbyists, which online communities would you recommend for

pkw, to random
@pkw@mastodon.sdf.org avatar

(ql:quickload 'split-sequence)

split-sequence:split-sequence is awesome.

The bad thing is this was my opportunity to really learn loop, but split-sequence does exactly what i need.

svetlyak40wt, to random
@svetlyak40wt@fosstodon.org avatar

I'm thinking about support for ocicl package manager in Ultralisp.org

Interesting, how many people are using this (relatively new) package manager instead of quicklisp or CLPM?

Please, respond in comments which package manager are you using for #commonlisp!

pkw, to random
@pkw@mastodon.sdf.org avatar

I'm REALLY enjoying programming in

I don't think I would have gone down this road, if not for @screwtape 's advocacy.

My snap judgment idealism and Java OO hatred made me assume scheme and lisp1 was they way. (not saying it isn't this is just for me)

It's kinda serendipity because I have OO baggage in my brain from C++ and Java. CL's CLOS is so much nicer, but my previous OO knowledge is a foil that has helped me take it in.

I still haven't even gotten to macros yet. :P

amoroso, to Lisp
@amoroso@fosstodon.org avatar

In 1984, 40 years ago, Digital Press published the book "Common LISP: Reference Manual" by Guy L. Steele Jr. and others, more widely known as the first edition of "Common Lisp: The Language" or CLtL1. It was an early major milestone of a Lisp standardization process completed a decade later.

http://www.bitsavers.org/pdf/dec/_Books/_Digital_Press/Steele_Common_Lisp_Reference_Manual_1984.pdf

#CommonLisp #lisp #retrocomputing

rml, to elixir

in terms of industry programming languages that any programmer can hit the ground running with little to no ramp up, does the best job imo. I never used ruby, but its all so obvious you can just get to work. and for distributed systems that need to scale in a flexible way, the eliminates nearly everything that makes webapp development horrible. it's hard to make a good argument for any other industrial virtual machine. implementations being the exception.

amoroso, to Lisp
@amoroso@fosstodon.org avatar

I'm looking for a Lisp resource I run across but can't find anymore.

It's a Common Lisp reference similar to the HyperSpec or possibly based on its text, but with a clean web design and modern HTML formatting. The name of the resource rhymes with "spec" or "hyperspec".

Does it ring a bell? Can you help?

louis, (edited ) to badminton
@louis@emacs.ch avatar

Setup a simple HTTP server from stdlibs that responds with a simple "Hello, World" string, no logging.

10s load test run on MacBook Pro M1 (using hey).

LispWorks 8 (Hunchentoot): ~11k req/sec
Racket 8.9: ~15k req/sec
Clojure 1.10 (httpkit): ~28k req/sec
Janet 1.29: ~35k req/sec
SBCL 2.3.4 (Hunchentoot): ~44k req/sec
Go 1.20: ~120k req/sec

louis, to golang
@louis@emacs.ch avatar

Go, a modern language, invented in 2009 by Google:

=> runtime error: invalid memory address or nil pointer dereference (let's crash)

Common Lisp, since 1984 by many:

=> NIL (I'm fine)

#golang #commonlisp

ramin_hal9001, to random
@ramin_hal9001@emacs.ch avatar

I just built and installed ECL #CommonLisp (hompage) onto my computer, and after playing around with it for only a few minutes, I am quite impressed with it!

  • First off, the entire installation is only 40 MB, so this is definitely one of the more compact Common Lisp implementations I have ever seen.
  • It emits C code, native shared libraries, native static libraries, and native executables.
  • It uses libffi for C interoperability.
  • It provides ASDF, and the ability to install packages from QuickLisp
  • It implements Lisp standard processes on top of Pthreads
  • It provides some bindings to Qt4 for GUI programming
  • It implements all of CLOS

All of that in just 40 MB (not including Qt, which you need to install separately). The only drawback so far is that the documentation has some gaps in it.

But I definitely want to play around with #ECL some more. The trouble is most Common Lisp packages written nowadays only support SBCL. I would like to see how much of the Common Lisp ecosystem I can actually use through ECL. I wonder if I could maybe port something like the Lem text editor over to ECL instead of building it with SBCL, but that might prove impossible.

Anyway, my overall impression right now is that I have a very lightweight but powerful Common Lisp compiler at my disposal now that can easily be embedded into any C program I want, which is very exciting!

Thanks to @screwtape and @rml and @louis for turning me onto ECL!

amoroso, to Lisp
@amoroso@fosstodon.org avatar

The Common Lisp code in "How to Solve It in LISP" by Patrick Hall (1989) is a bit archaic.

But this work is unusual and intersting in that, unlike contemporary Lisp books, the examples don't focus just on AI but also a range of ordinary programming domains such as math, business, data structures, simulation, and more. Plus the cover is the weirdest of Lisp books.

https://openlibrary.org/works/OL6380850W/How_to_Solve_It_in_LISP?edition=ia%3Ahowtosolveitinli0000hall

#CommonLisp #lisp #books

screwtape, to Lisp
@screwtape@mastodon.sdf.org avatar

y on only on @SDF public access unix.
0. in NZ

  1. and not cold booting one's

  2. And hence stapling an user interface other than streams to my planner bot from old computer challenge

  3. Some new gophers arrive from activitypub @silverwizard @nuintari . But what is item type t from silverwizard's static site generator?

  4. DWIMification jokes in @alexshendi 's part of the last show's thread

~chat irc

louis, to random
@louis@emacs.ch avatar

Found in a Common Lisp style guide:

Surround class name with "<" and ">"

http://labs.ariel-networks.com/cl-style-guide.html

It looks like this convention hasn't caught on, has it? I kind of like it.

#CommonLisp

amoroso, to Lisp
@amoroso@fosstodon.org avatar

I'm checking out the Lem Common Lisp IDE, which is essentially Emacs in Common Lisp.

Here's the ncurses backend of Lem in SBCL under Crostini Linux on my Chromebox. Having used Emacs for many years I feel at home with Lem.

https://lem-project.github.io/lem-page

louis, to random
@louis@emacs.ch avatar

Interesting: it seems that does not have a PARSE-FLOAT function or something to that effect. It has PARSE-INTEGER but to parse a float, you either need to build it yourself or use an external library.

Or did I just not find it in the specs?

svetlyak40wt, to Youtube
@svetlyak40wt@fosstodon.org avatar

Today I have two things to celebrate.

  1. Our team took third place on the largest russian hackathon LCT23. And of cause backend was written in
  2. Today I've got 300 subscribers on my channel!

lispm, to Lisp German
@lispm@moth.social avatar

#lisp #books #commonlisp

A few years ago I have created a visual overview of (mostly) Common Lisp related books... Good thing: even the older ones can be useful, given that the core language hasn't changed that much over the last years.

louis, to random
@louis@emacs.ch avatar

TIL Tail call optimization is the default in most modern Common Lisp implementations. It is not a Scheme exclusive any more (I was under the impression...).

But, how do I find out, in SBCL for example, that I do a proper TCO function call?

pkw, to random
@pkw@mastodon.sdf.org avatar

(musing)
What's the function to map over a hash-table?

hashmap ... nope
hash-map ... nope
map-hash ... nope
maphash ... 😋

ramin_hal9001, to Lisp
@ramin_hal9001@emacs.ch avatar

The Scheme language's small size isn't necessarily a strength

So I was reading through part of the EmacsWiki and in the article on the Scheme programming language there are references to this ancient online debate from August of the year 2000 at the comp.lang.lisp Usenet group started by the late Erik Naggum, who was apparently a somewhat opinionated and inflammatory individual, who brought up the Scheme/Common Lisp debate on comment thread about someone being confused about how the CASE clause works.

The Scheme language standard at the time was R5RS, Naggum's argument is a common refrain from Scheme fans such as myself, and he was arguing with Kent Pitman ( @kentpitman ) who was one of the sub-committee chairs of the Common Lisp X3J13 standardization process, and is the editor and maintainer of the Common Lisp HyperSpec, an online form of the Common Lisp specification. Kent Pittman's reply I thought was very well-reasoned, and worth re-posting here (quote):

I just absolutely don't believe the Scheme standard is fairly cited as a model of a "better" standard. It is enormously vague on numerous matters of consequence. It omits really essential functionality that would be needed to write any seriously portable programs. It was stagnant for years on quibbles over some of the silliest syntax details. In my opinion, it's a toy language. There are real commercial Scheme implementations, but only by the sheer will of those implementers who've gone beyond the so-called standard and written in the things that the standard ought to have said in order to make the language finally useful. It achieves its "prettiness" and its "smallness" on the back of just plain leaving stuff out where it would appear to "clutter", and whatever you think of CL, I personally reject any claim that the Scheme is a model of improvement.

(end quote)

I wouldn't go so far as to call Scheme a "toy language" because the parts of the standard that are well-defined are solid and very useful. But yes, it seems the only useful implementations do solve these problems not addressed by the standard in completely different ways that makes it very difficult to write a Scheme program on one implementation that runs on another. Try to write one program that runs on MIT Scheme, Guile, Chez, Racket, Bigloo, Cyclone, Stklos, and Gambit. Try to even compute what set of SRFI (language extensions) are common to all of them. Most Scheme programmers have to pick just one implementation and stick to it without much hope of ever porting their programs to other implementations. It is possible to do it, easier than porting a program from Python to C++, but still not at all as easy as running the same Common Lisp program on SBCL, ECL, ABCL, or Franz.

So I do agree with @kentpitman that there are some pretty important details left up to the implementers simply because none of them could agree on what to do and punted the issue rather than resolve it. Later (after the aforementioned Usenet debate) R6RS would try to solve these issues, but that standard was mostly rejected by the larger part of the Scheme community due to a lack of consensus. Much of that work lives on in the SRFIs, while Chez Scheme (R. Kent Dybvig) seems to be sticking to R6RS and is one of the most well-respected Scheme implementations, and a kind of flagship of that standard.

I still have hope for R7RS-large though, which might end up being even larger than X3J13 when all is said and done. Unfortunately, recently John Cowan, chair of the R7RS-large standardization committee threw his hands up in resignation a few months ago after almost 10 years of trying to hammer-out consensus over details of the new R7RS-large standard. Daphne Preston Kendal ( @dpk ) has taken over and is fully capable of continuing the work.

It might be interesting if some Schemers could get together and write a new fully R7RS-compliant Scheme-to-Scheme compiler in R7RS-small Scheme, with all of the COND-EXPAND expressions in place to run on all of the major R7RS-compatible Scheme implementations. This compiler would simply translate its input into code that the host Scheme compiler can compile, deferring low-level implementation details to the host. The compiler should be one massive file that you could just load into any Scheme compiler and it just works. Then this compiler maybe, just maybe could become The Scheme Standard. A good starting point would be the work of Marc Nieper-Wißkirchen who has written Rapid Scheme which compiles R7RS Scheme to another host Scheme, but it only supports Chibi and Larceny as the hosts.

amoroso, to random
@amoroso@fosstodon.org avatar

Uncommon opinion (but not necessarily unpopular): I love languages with large standard libraries. I enjoy flipping through the language documentation, scouting for interesting functions or classes that may eventually come in handy.

My favorite large library language is Common Lisp but of course there are many others such as Smalltalk, Python, and Java.

#CommonLisp #ProgLang

fosskers, to random

If you have ecl installed and a moment to spare, could you try:

(ql:quickload :slynk)<br></br>

as well as tell me the result of:

gcc --version<br></br>

Please and thank you 🙏

#commonlisp

louis, to random
@louis@emacs.ch avatar

TIL: Function designators in Common Lisp:
(funcall 'foo 0)
(funcall #'foo 0)

Both work, however, if there is a function named FOO in the lexical environment (i.e. via FLET/LABELS), #' (= FUNCTION) will use that while ' (= QUOTE) will always ignore the lexical environment.

#commonlisp

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • ngwrru68w68
  • everett
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • rosin
  • GTA5RPClips
  • Durango
  • Youngstown
  • slotface
  • khanakhh
  • kavyap
  • DreamBathrooms
  • provamag3
  • ethstaker
  • osvaldo12
  • tester
  • cubers
  • cisconetworking
  • mdbf
  • tacticalgear
  • modclub
  • Leos
  • anitta
  • normalnudes
  • megavids
  • lostlight
  • All magazines