freenode/lisp - IRC Chatlog
Search
21:13:43
pjb
notice that extensible sequences implemented in sbcl still don't exist in the other implementations.
21:14:16
aeth
Extensions need to be (1) designed, (2) agreed upon, (3) implemented in at least 3 major FOSS implementations, (4) have their quirks wrapped over via a portability library, (5) and then people need to update to the latest version
21:15:46
pjb
No, I'd say you need almost all implementations. Again, extensible sequences in sbcl only exist in sbcl. Relative package names only exist in allegro (I've got a conforming implementation in cesarum).
21:16:20
pjb
What I mean, is that we're underpowered to integrate them enough implementation for them to become "standard".
21:17:19
aeth
pjb: I disagree. I think if you got the code in SBCL, CCL, and ECL, you probably have enough support to just assume it's going to be there. Other implementations can then add the features or not be able to use libraries that depend on those features.
21:17:42
aeth
That's not "almost all", it's less than half, but it's probably a majority of FOSS-implementation users.
21:19:24
pjb
on the other hand, you can call pathname on a file-stream, so you can get its length by other ways.
21:19:56
_death
I think it was my first sbcl patch.. though I've not used it since I played with Gray streams
21:20:47
aeth
pjb: I think the big issues are how you could extend the type system and collections in a way that implementations will agree on and how to get that into enough major FOSS implementations.
21:21:26
aeth
In the long run, I think those are existential threats to CL. It wouldn't take that much for people to switch to other Lisps or Schemes that *do* have types and collections that are much better.
21:21:41
aeth
One of the main reasons I am using CL over Scheme is because of its rich (relative to Scheme) way of handling collections.
21:23:52
aeth
There are a lot of collections missing from CL or only available in CL without being able to guarantee the type of the elements. And none (afaik) are immutable and FP-friendly (although I think literals are treated as immutable like #() and '() and "").
21:24:44
Posterdati
I've got a problem with sbcl 1.3.16 quickloading iolib: OPERATION instances must only be created through MAKE-OPERATION
21:24:51
pjb
But then, I just consider CL as a kernel language, and implement whatever I want over it…
21:26:04
aeth
pjb: I mostly agree, but there are certain things that can only be (portably) efficiently implemented (at least in a language like CL) by the implementation.
21:27:00
aeth
pjb: Two solutions are to implement them in the language implementations themselves or to portably provide a way to implement them efficiently. The proper solution is probably a mix of both.
21:31:35
_death
aeth: this reminds me of tcr's named-readtables.. he wanted a with-readtable-iterator operator.. I ended implementing it for clisp (some .d code, heh).. so you can start learning about your implementation by making small changes like that
21:38:49
phoe
Inside the SLIME debugger, how can I go to the source location that signaled an error?
21:49:52
phoe
look at https://github.com/sionescu/iolib/blob/master/src/grovel/asdf.lisp <- the last commit from Fare actually fixes this
21:52:58
phoe
XachX: we seemingly need to update iolib to take an ASDF patch into account. https://github.com/sionescu/iolib/commit/63ebc989219cd257511caeb7c8e9a067179be39f
21:53:24
phoe
Posterdati: basically - pull the github master instead of the quicklisp version and it should work, or apply my patch
22:10:42
gendl
Hi, does anyone happen to know where would be listed the UTF-8 external-format designator for various CLs? Or is there a library which abstracts this?
22:10:55
Posterdati
I pulled it in quicklisp/local-projects, but it downloaded one in quicklisp/dists/quicklisp/software
22:11:35
gendl
but I think that :utf8-base name is allegro-specific, it would be different in different CLs...
22:28:14
Posterdati
phoe: but now I'm facing another problem... The software I written it was on a ci20 board... I rebooted it and the UBIFS was corrupted... :(
22:44:17
phoe
a nightly reminder that we have three tasks posted on the Lisp Guild page at https://github.com/Lisp-Guild/lisp-todo/projects/1 - if anyone wants to post something simple and defined that needs to be done, or if anyone wants to grab a task in order to gain some experience with Lisp on real-life code, feel free to click.
3:47:05
aeth
Is there something that is like mapcar or loop ... collect that doesn't add NILs to the resulting list?
8:34:59
Grue`
aeth: yeah it's called MAPCAN: (mapcan #'(lambda (x) (and (numberp x) (list x))) '(a 1 b c 3 4 d 5)) => (1 3 4 5)
8:47:10
shaftoe
if my function's argument is a list containing one specific type... is there a way to help compiler beyond (declare (type list x))
8:48:34
Xof
if you know the length of the list you could (declare (type (cons integer (cons integer (cons integer (cons ... null)))) x)) but that's really a terrible idea
8:49:48
shaftoe
i have plenty of functions that take lists as arguments, but i've always wondered how to optimize them further
8:51:28
pjb
notice that there's no optimization to be have, by declaring the type of all the elements of a list, since cons cells are the same for any type of element.