freenode/#lisp - IRC Chatlog
Search
16:31:02
Bike
i'm not asking what eq-ness is, i know that, i'm just wondering about the definition a little. "pointer equality" is the usual explanation but it doesn't exactly reflect how a lisp runtime actually works.
16:32:01
beach
oleo: EQ is always identical usually means "if it is EQ then it is identical" which is the same as EQ => identical. But maybe you meant something more.
16:32:20
oleo
where stuff may seem to be eq on the surface but what happened in between changed stuff already.....
16:33:58
Bike
the glossary has the term "fresh", and i would take "fresh" to mean "not EQ to any existing object", but it doesn't say that
16:36:13
beach
Bike: Often in language specifications, it is an attempt to explain something that is obvious when implementation techniques are taken into account, but that become obscure when implementation techniques can not be referred to.
16:36:28
beach
The C language specification is way worse than the Common Lisp specification in that respect.
16:38:23
beach
oleo: When an object is no longer referenced, the memory location it occupies is typically reclaimed. And then, a new object may very well get the same address of the one being reclaimed.
16:39:53
beach
oleo: But if you hold on to all the objects you create, you might run out of possible pointers. But that will happen much later than running out of (virtual) memory, and it is safe to assume that it won't happen before your computer crashes.
16:40:54
oleo
i'm just not sure on all the implications now that you mentioned reuse of pointers.....
16:49:47
beach
If you have a 64-bit architecture, then the address space can hold 2^60 CONS cells. Now 2^60 ≅ 10^18. If we assume that it takes say 10ns (= 10^-8 s), it will take 10^10 seconds to fill your address space. There are around 3*10^7 second in a year, so that will come out to 3*10^2 (300 or so) years, unless I made some stupid mistake.
17:21:41
Bike
weird question. defclass has a compile time side effect of making the class name bound in the compile time environment. then subtypep might be used to query its class precedence list - but the class might not be finalized (or finalizable). what happens?
17:24:16
random-nick
if I have a declamation in a package, and use that package in another package, does the declamation exist in the second package?
17:25:52
Bike
proclamations are independent of packages. you cannot proclaim something "in a package".
17:27:20
Bike
proclamations usually last forever, though some implementations limit optimize declarations to a file or a compilation unit
17:31:02
Bike
no. declaim is a helper macro to ensure that the proclamations are made at compile time.
17:34:42
sjl
random-nick: assuming you meant "file" when you said "package", the answer is that it's implementation dependent
17:34:54
sjl
see https://trac.clozure.com/ccl/wiki/ReleaseNotes/1.9#Limitingtheextentofload-timeOPTIMIZEproclamations for more info
17:58:51
thetabit
(format t "~A ~A" item1 item2) where Item two might not have a value and thus I dont want format to just print nil
18:02:56
sjl
which means "if the argument is nil, consume it and print nothing, but if it's non-nil don't consume it and process the middle"
18:06:58
beach
oleo: With a 32-bit architecture, you would run out of address space in a matter of seconds.
19:17:13
pjb
O(1)=k₁ O(n)=n*k₂ There are k₁ and k₂ such as for any n that you can store on an actual number, O(1)>>O(n). But usually it's O(1)<<O(n), even assuming that n cannot be bigger than the size of the memory.
0:04:06
learning_
what's a good resource for learning to do threading with CCL? the docs just confuse me
0:12:20
pjb
The only specific things are ccl:process-interrupt and ccl:process-suspend, but you're better not using them in general.
0:13:07
pjb
Don't do that with slime, since swank has open sockets, and it'll fail when reloading the image.
0:14:27
pjb
But it should not be needed, since slime loads it automatically. Unless you want to be able to launch lisp image independently, and connect with slime after the fact.
0:19:00
learning_
I'm reading CCL's page about images, I realize now what you were talking about the executable. That's pretty cool, just modify your lisp system to be the application you want and then save it, and then bam instead of a lisp dev environment, you just have your app
0:20:07
pjb
While developping, you can keep saving the executable lisp image with the default startup function (the lisp toplevel REPL). And when you want to deliver, you can save it with the main function of your application instead.
0:21:16
pjb
On the other hand, since having reproductible builds from sources is convenient and desirable too, you may instead have a script used to build the application from the sources, calling quickload etc.
4:26:09
BW^-
and, a non-deterministic algorithm in the sense of http://courses.csail.mit.edu/6.854/16/Projects/B/dynamic-graphs-survey.pdf connected components, what would that mean, how does it impact us that it is non-deterministic??
4:30:18
BW^-
beach: ah so it's like "make 10 iterations and each will have a 10% probability of success, hence you'll have 100% success in average in 10 iterations"