freenode/#lisp - IRC Chatlog
Search
11:39:04
p_l
beach: well, it would be nice to appear - but that requires actually having done something for it to happen ;)
12:17:27
phoe
beach: about CCL, "Instead it defines an info vector (disguised as a structure)" - CCL tends to do that a real lot. From what I have noticed, a lot of internal structures in CCL are actually tagged vectors, where the tag tells CCL what kind of a structure that is.
12:22:09
phoe
p_l: nope, it's a different trick that CCL uses. The resulting object still prints like a structure type and has its own distinct type.
12:25:10
phoe
(defstruct (foo (:type vector)) a b c) (type-of (make-foo)) ;=> (SIMPLE-VECTOR 3) on SBCL
12:34:36
phoe
There are things called ivectors and gvectors in CCL that are tagged like I described up above - but, amusingly, CCL's method-combination-info objects are neither of them
12:34:38
montaropdf
I have some strange configuration problem with my common lisp environement. ~/common-lisp/ is not in the asdf registry and some packages seems missing from quicklisp.
12:36:52
montaropdf
Message from quicklisp: You already have the latest version of "quicklisp": 2019-12-27.
12:37:18
montaropdf
Message from the client: The most up-to-date client, version 2020-01-04, is already installed.
12:39:02
phoe
https://github.com/quicklisp/quicklisp-projects/search?utf8=%E2%9C%93&q=informatimago&type= gives me nothing.
12:39:44
phoe
montaropdf: quicklisp/quicklisp-projects on github is the ultimate source of information for what is included in QL.
12:43:05
phoe
on my machine, asdf:*central-registry* ;=> (#P"/home/phoe/.roswell/lisp/quicklisp/quicklisp/")
12:44:02
phoe
maybe that's the cause - if you've installed QL, it likely is set to ~/quicklisp/local-projects/
12:44:36
montaropdf
I just check now and look what I have found: #P"/home/roland/quicklisp/quicklisp/"
12:50:58
montaropdf
So, I will add ~/common-lisp/ to the registry from .sbclrc, seems the best to do.
13:50:31
Demosthenex
can someone recommend an xml lib for outputting graphml? i don't need to parse, just output correct xml
13:53:20
Demosthenex
i thought plump was focused on parsin? i suppose it'd have a method to output somewhere too
13:58:05
beach
phoe: Do you know the reason for that? My guess would be for reasons of bootstrapping, but I am only guessing.
13:59:25
phoe
beach: I do not think so. ivectors and gvectors are used galore even in the bootstrapping process. I think it's just style inconsistency and one could fix easily that someday.
14:01:55
phoe
Large chunks of the method-combination.lisp file are at least 12 years old - we don't have any earlier history.
14:04:44
phoe
Coral/Macintosh/Clozure Common Lisp is an old implementation and I think that's its heritage that we are looking at right now
14:04:59
beach
But it is also possible that it is a bootstrapping problem. If CLOS is "bolted on" the way it is in many Common Lisp implementations, then, at the time you need method combinations, you may not have classes yet.
14:06:30
phoe
that's true as well, since CCL has its own bootstrapping process where method combinations are actually loaded close to the end of the process
14:37:11
Demosthenex
Shinmera: i rapidly imported a sample xml, was there a quick way to dump the sexp object of that?
14:38:17
Demosthenex
pardon, i thought that went back to text. i'm just trying to examine the innards of the objs returned
14:39:07
Demosthenex
ok, the other module. i did read all the functions in the main doc before asking :P
14:40:45
Shinmera
Windows 10 comes with an ssh package pre-installed, if I remember correctly. And portacle is only a download away.
14:42:02
montaropdf
pjb: hello, with regards to our discussion about my lisp db project. TBH, I am not sure to have understood what wise man tried to teach me when he says that I was doing my project backward :(
14:47:09
beach
montaropdf: I would have helped you, but I think the entire concept of a database is fishy. Either you limit yourself to storing simple objects such as numbers and strings, in which case the entire thing seems useless, or else you allow for any Common Lisp object to be store, and then it won't be EQ to its original when you read it back, if the original even exists anymore.
14:48:37
montaropdf
beach: A database is a concept, so it doesn't means the storage is a binary file ;)
14:49:29
p_l
beach: from my understanding, the database part is very low component of the overall image
14:50:11
beach
p_l: If it is universal persistence, then that is exactly what I am advocating, as you might know.
14:56:31
beach
p_l: I don't see why. You could always erase part of it when you start up, pretending that there is volatile memory.
14:56:35
p_l
OTOH, I professionally deal with things like "the machine is gone - how I can ensure continuity"
14:57:53
beach
montaropdf: It means that there is no distinction between the stuff you can do with RAM and the stuff you can do with a disk. It all behaves as if you had random access memory that is persistent as the disk is.
14:58:24
beach
montaropdf: Multics had that 50 years ago, and Unix made many generations of developers forget about it.
14:59:59
beach
p_l: You mean that "the growing divide between speeds of different storages" also had it 50 years ago?
15:01:01
montaropdf
However, the week-end passes by, so I had time to think about it and to test some cases. I am currently thinking more and more about getting away from my, traditional, table approach to store data, to using sexp trees. I am also targeting small volumes of data, nothing the NSA would be bothered to search in ;)
15:01:11
Nilby
Thankfully true universal persistence is there without any effort, now to control it nicely though you need a redesign from processors & L1 cache to offsite backups.
15:02:15
p_l
beach: I see it often enough in how it impacts code that deals with just CPU - the multiple levels of caches, how much latency there is. Also how swap became much bigger impact compared to how it used to be, as the difference in speeds between disk storage and memory gone like crazy, not just the latency
15:33:08
Nilby
In the old days when I went to open a file, sometimes it would text the "operator" to load a tape. If the operator was me, the system would deadlock.
18:00:55
pjb
Then, databases have to deal with KEYS to identify external objects and internalize. For symbols, the key is the package name and the symbol name. But for random CLOS objects, it's more complicated: the programmer must specify the keys… Even for cons cells, or lists, you start to have problems…
21:31:29
akhetopnu
Hello. Has anyone tried using clack + TLS? I don't see any info in the docs clack's docs about it
21:32:57
akhetopnu
is the assumed setup reverse proxy tunneling requests/websocket connections to clack and clack just serving everything without encryption?
21:41:42
akhetopnu
I'm tinkering with clack + hunchentoot right now and I know hunchentoot supports SSL (not sure if they mean literally SSL or maybe TLS too), it's just that I'm not sure if clack can pass through the TLS certificate paths for example
21:42:33
akhetopnu
I would like to get encryption all the way from the browser to my server, however if that's not possible then I guess I'll have to settle down for a reverse proxy
21:46:24
Shinmera
often the reverse proxy is on the same machine as your lisp instance, so it doesn't matter.
21:49:44
akhetopnu
i'm trying to setup a (mainly) websocket server (+ http(s) wouldnt hurt to be honest) and clack + hunchentoot seems to be the most 'reliable' way
21:51:39
Shinmera
you can setup nginx to do the https websocket handshake and then delegate to your non-https websocket server.
21:54:10
Shinmera
The above is how I offer https://shirakumo.github.io/lichat-js/?hostname=chat.tymoon.eu