libera/#commonlisp - IRC Chatlog
Search
4:49:52
hayley
src/code/load.lisp, look for (define-fop 17 :not-host (fop-load-code ((:operands header n-code-bytes n-fixup-elts))) ...)
5:41:09
beach
Speaking of which, I seem to remember that there are a lot of restrictions on the environment into which a FASL is loaded, compared to the one in which it was compiled, that it seems it has to be loaded almost immediately after being compiled. And if so, the advantage of creating a FASL file seems not that great.
5:41:32
beach
Plus, there are restrictions on the file compiler, such as some objects not being possible to serialize.
5:42:20
beach
But I can't remember the relevant section in the standard that talks about such restrictions.
7:16:46
jackdaniel
circular references require fiddling with make+load-form and make-init-form - in some cases it is not possible to serialize properly invocations to these functions
7:22:39
jackdaniel
regarding restrictions, I think that it is mostly about referenced objects - most notably packages
8:19:55
loke[m]
I have been trying to use postmodern-dao. I'm not a huge fan. I'm considering writing my own dao metaclass. Send help.
8:37:28
hayley
Prior to software engineering classes I would have answered "decentralised autonomous organisation". The former has...something to do with retrieving rows as objects from a relational database. Now I forgot.
8:37:30
jackdaniel
beach: make-load-form page of the standard; all "externalizable" objects may be referenced, but creation forms can't contain circles - to handle them initialization forms were introduced
8:38:03
hayley
In the Spring framework for Java, you have a "model", "service", "repository" and our instructor would call one of the latter two of those the "DAO" and I can't bloody remember which, because no one else on the planet does.
8:38:13
beach
jackdaniel: I was referring to the restrictions that I seem to remember about what's in the environments.
8:39:05
jackdaniel
ah, no; I don't remember the section, that's more from memory how fasls work in ecl
8:46:03
specbot
Additional Constraints on Externalizable Objects: http://www.lispworks.com/reference/HyperSpec/Body/03_bdd.htm
8:55:07
jackdaniel
I wouldn't say that these restrictions are severe enough to say that "fasl must be loaded almost immediety after being compiled [...]"
8:58:19
jackdaniel
on the other hand this restriction is one of major factors regarding the speed of loading fasls - all symbols and packages must be resolved during the load time
9:02:50
jackdaniel
yes, for example loading asdf.fas on ecl takes a few seconds (compared to 50ms without it) - a lot of it is about creating symbols if I remember correctly, but also creating classes etc
9:04:37
jackdaniel
(save-lisp-and-die greatly mitigates this kind of issues, a feature ecl doesn't have sadly)
9:06:23
beach
I wasn't referring to just the difference in performance between the two. I was referring to the role that loading code represents to either the user of a program or a project. And yes, I was assuming that the image would be saved in a final application.
9:14:08
beach
jackdaniel: Also I am confused. Are you saying loading asdf.fas (which I assume is a FASL file) takes a few seconds? But then what does 50ms refer to?
9:20:26
jackdaniel
usually people require asdf at startup; I was referring to startup: without asdf - up to 50ms, with asdf - a few seconds; so I was referring the startup time
9:22:34
jackdaniel
regarding how useful it is to have precompiled fasl - startup of an environment for developing a program that has precompiled dependencies than loading and compiling everything from scratch; admittedly if someone never restarts the lisp process then it is only a minor nuisance
9:40:03
scymtym
::notify junkrunner i was away from the computer for a day and a bit. i don't use discord, so it's probably best to leave a message with the bots as phoe suggested
9:49:07
scymtym
jackdaniel: does the time for "startup with asdf" include asdf initialization? at least with my setup, asdf initialization dwarfs everything else, including loading asdf, because the initialization traverses a directory hierarchy
10:19:54
beach
There was an interesting article in a recent CACM about the mismatch between a modern programming language and relational databases. The authors preferred to create their own persistence library for Java than to interface with a database.
11:13:57
AadVersteden[m]
https://github.com/madnificent/fridge with related libraries https://github.com/madnificent/database-migrations https://github.com/madnificent/cl-validations https://github.com/madnificent/versioned-objects
11:18:20
AadVersteden[m]
The readme is best viewed by source, perhaps formatting on GitHub has changed or perhaps I didn't know at the time.
11:52:45
contrapunctus
AadVersteden[m]: PR created. I usually like to specify the language of source code blocks so they can be syntax highlighted, but I couldn't find a way to do that in Textile. Also, I'm new to both Fridge and Textile, so hopefully any errors I made are still outweighed by the benefits. ^^'
11:58:13
AadVersteden[m]
contrapunctus: That's super kind of you :D Not sure it's the best code but it is more approachable this way.
14:32:12
pve
Hi, if read-char reaches eof and returns an eof value (i.e. eof-error-p is nil), am I allowed to call unread-char with the last character read from the stream?
14:35:39
beach
Reading the dictionary entry on READ-CHAR, I don't find anything that says you wouldn't be allowed to do that.
14:36:55
pve
unread-char says "Invoking peek-char or read-char commits all previous characters". Does that mean I'm not allowed?
14:40:38
beach
"The consequences of invoking unread-char on any character preceding that which is returned by peek-char ... are unspecified"
14:40:49
phoe
I understand it as "if you read char A, then you can call (UNREAD-CHAR A) iff you have not called READ-CHAR or PEEK-CHAR on the same stream"
14:41:14
phoe
so if READ-CHAR returns some character A, and then you call READ-CHAR again, you can no longer (UNREAD-CHAR A)
14:41:53
beach
That's correct. But it also says that if you READ-CHAR an A and then call PEEK-CHAR which returns B, then you can't unread A.
14:42:15
phoe
pve: it doesn't seem like the return value matters, what matters is the fact that you call READ-CHAR *at all*
14:44:15
pve
ok, my thinking was that the "position" in the stream doesn't advance if we reach eof, so the character might still be eligible for unread-char..
14:48:25
phoe
so a string stream could work differently than a network stream or a file stream or terminal stream or some Gray stream or what not
14:50:14
beach
Technically, they can do what they want because it says "Exceptional Situations: None."