freenode/#lisp - IRC Chatlog
Search
0:06:44
parjanya
using quicklisp, having loaded cl-base64, I tried loading another package that uses base64 (a different package), but it complained that base64 is a nick for cl-base64, so it wouldn’t load. I opened a new repl and everything went fine, using base64 alone. this kind of clash shouldn’t happen, right?
0:10:58
edgar-rft
parjanya: I think you first must (shadow 'base-64) the nickname before you load the base-64 package, then it should work.
0:26:54
pjb
parjanya: yes, this kind of clash can happen, quicklisp doesn't guarantee anything (it only tests a single system per image).
0:27:25
pjb
parjanya: and developers don't listen to what I'm telling them, to name their packages and systems using the reverse domain-name convention.
0:27:58
pjb
parjanya: If instead of cl-base64, you used com.informatimago.common-lisp.rfc3548.rfc3548, you wouldn't have that problem!
0:31:01
pjb
(with-output-to-string (*standard-output*) (with-input-from-string (*standard-input* "foo bar baz") (com.informatimago.common-lisp.rfc3548.rfc3548:base64-encode (lambda () (let ((ch (read-char *standard-input* nil))) (when ch (char-code ch)))) 'write-char))) #| --> "Zm9vIGJhciBiYXo=" |#
0:35:10
Xach
"compile" in the sense of gathering them together, not in the sense of code compilation.
0:41:41
pjb
oni-on-ion: with an in-image virtual file system, you could install all the sources in an image, and compile and load them from the image.
0:42:47
parjanya
that’s ok, it’s just that this was the first time it happened :) it’s nice to know/remember about `shadow' too, tx edgar-rft
0:43:43
pjb
Yes, but shadow doesn't shadow packages! You would have to rename the existing package before loading the new system.
0:47:21
no-defun-allowed
The filesystem could be a hash table of pathname ⇒ content vectors, if one wants to make a fake (most of) Un*x file system.
0:50:42
no-defun-allowed
Or, if you want a hierarchical file system, then you have nested hash tables for directories, and vectors for files.
0:50:56
oni-on-ion
pjb, that would be awesome =) i really like the smalltalk way of having sources+changesets in-image
1:16:24
pjb
Fade: you use gray streams to access data stored in byte vectors or strings. You need to implement a directory structure, so you have to implement PATHNAMEs, and OPEN, DIRECTORY, etc… For those, there's no gray stream API. So you may have to use vfs:pathname and vfs:directory, vfs:open instead of CL.
1:17:08
pjb
Fade: have a look at (the quite incomplete): https://github.com/informatimago/lisp/tree/master/future/vfs