freenode/#lisp - IRC Chatlog
Search
2:06:14
peli
is there a good lightweight routing framework to do something like flask or sinatra in CL?
3:36:27
beach
peli: You get more answers if you tell us what those things do. Not everybody knows, and not everybody is willing to read the documentation of those things in order to answer you.
3:42:30
aeth
cliki says caveman, but cliki is also notorious for being like 10 years out of date. https://cliki.net/web%20framework
3:44:59
aeth
peli: There's an even more lightweight (but a bit lower level) one that caveman is based on: http://8arrow.org/ningle/
3:46:02
aeth
And the web server I was thinking of is Woo, but all of these web frameworks are based on clack, which runs on both Woo and Hunchentoot (and some other things)
3:47:00
ahungry
caveman2 has a 'start' command that supports booting up with woo, hunchentoot or wookie iirc, but thats again thanks to clack
4:02:19
benjamin-l
I'm trying to make a class that extends the built-in array class like this: (defclass map-array (array) ())
4:02:48
benjamin-l
sbcl doesn't like this, and says that the metaclasses for common-lisp:built-in-class and common-lisp:standard-class are incompatible
4:04:07
no-defun-allowed
The CLHS page for BUILT-IN-CLASS explains why this is not possible in portable Common Lisp: "A built-in class is a class whose instances have [...] special representations."
4:09:27
aeth
There's probably a portability library that can implement extensible sequences on any implementation. You would just need to import those sequence functions instead of CL and extend a class other than sequence outside of implementations that don't permit extensible sequences.
4:09:42
aeth
But then the user would also have to do so, and it won't work for free with every sequence-generic function in every library
4:13:10
Bike
yes, shinmera wrote it https://github.com/Shinmera/trivial-extensible-sequences/tree/master
4:15:18
aeth
benjamin-l: you'll want to use the library Bike linked to instead of directly using SBCL's API
6:11:28
nwoob
do you people here recommend going through SICP if I have almost none mathematical background?
6:23:27
aeth
okay, you don't have the majority, but you may have the plurality, but https://portability.cl/ is probably a biased sample
6:26:11
aeth
If you mean missing altogether, the most noticably missing thing is no portability layer over sb-unicode afaik, so no portable unicode-enabled alternative to sb-unicode:whitespace-p among other, harder-to-implement things like sb-unicode:casefold
6:27:20
Shinmera
There is cl-unicode, though it's not as fast as sb-unicode and is missing a bunch of stuff.
6:28:18
aeth
It doesn't look like it has either of my examples (whitespace or casefold/foldcase). It's in my history, but that might be one reason why I don't use it.
6:29:36
beach
nwoob: It depends on your objectives. If you want to write pragmatic Common Lisp code as opposed to understanding the basic ideas of recursion, encapsulation, etc. you are probably better off with PCL.
6:58:16
pjb
nwoob: I would advise to acquire some mathematical background, this would help a lot to be a programmer, and anything else too, nowadays…
9:13:44
White_Flame
hmm, so if I have a lexer/parser that takes a character stream, how best to integrate it into the lisp reader for a non-string sublanguage?
9:16:28
flip214
Is there an easy way to compare two hash-table trees for EQUALity? Apart from using ALEXANDRIA:HASH-TABLE-ALIST recursively, then sorting, or so?
9:20:11
aeth
the only potentially tricky part is that you need to know if you didn't cover any values in the hash table not being mapped over
9:21:16
aeth
The laziest programmer way to avoid this issue is to have a counter since you can easily take the size of a hash table at the end. Or even just do a size comparison first. If the sizes aren't equal, they can't be equal.