freenode/#lisp - IRC Chatlog
Search
3:27:46
asarch
One very very very stupid question: If I compile the newest release of SBCL (1.5.5) with an old version (1.4.8) will this resulting binary differ from the one compiled with the newest release (1.5.5 with the resulting binary from 1.4.8)?
3:30:18
beach
asarch: The result ought to be the same. If it is not, then that might indicate a problem.
3:35:49
asarch
cmp ./src/runtime/sbcl $( which sbcl ): ./src/runtime/sbcl /usr/local/bin/sbcl differ: char 307242, line 681
3:51:46
akoana
asarch: beach is right, the sbcl binary contains a build timestamp like hostname-user-yyyy-mm-dd-HH-MM-SS
3:52:42
akoana
asarch: may be you can see it with grep -a -o -w yourhostname....................... ./src/runtime/sbcl
4:07:13
akoana
ACTION suspects that could be done in a few lines of Common Lisp, display n bytes of both files starting from the difference
4:07:19
asarch
OpenBSD's cmp doesn't support the -b flag, however, this its output (every ; represents a newline): 307242 61 62; 307244 60 61; 307248 62 70
4:08:22
asarch
$( which sbcl ): /usr/local/bin/sbcl <- This was the 1.5.5 compiled with the old 1.4.8 version without '--fancy'
6:10:02
akoana
beach: now I've done a quick and dirty (and bad style but working) cmp replacement in Common Lisp :)
6:18:22
edgar-rft
I think we did a little mistake. The sbcl binay is only the loader, while the Lisp image on my machine is stored under /usr/lib/sbcl/sbcl.core. IMO it would make much more sense to cmp(1) the Lisp images instead of the loader.
6:53:35
akoana
edgar-rft: good point, seems sbcl-core also has that build timestamp, beginning at byte 32
7:02:31
akoana
edgar-rft: the cmp will get tricky if you compare identical versions compiled at different times, how to ignore false positives only differing in some build info...
7:12:26
edgar-rft
akoana: I'd just simply count the number of different bytes. If they're more than say 10% of the whole binary size then there's something fishy. If they're only a few then it's probably because of timestamps and similar things that can be ignored. In case of doubt I'd ask on #sbcl.
7:18:09
edgar-rft
If you really want you could use a hex editor (or Emacs hexl-mode) to look at the context where the different bytes occur.
7:20:26
akoana
edgar-rft: oh, didn'nt know hexl-mode, does it handle big files well? (fearing my emacs to suck up all my memory)
7:25:52
edgar-rft
akoana: I just tired it, Emacs loads a 47M file without problems, after M-x hexl-mode it took appox 15 seconds to convert the binary mess into a scrollable hexdump, Emacs needed appox 100MB RAM for that.
7:28:03
akoana
edgar-rft: thank you for sharing and trying so now I'm ready to dare to use hexl-mode :)
7:31:42
edgar-rft
akoana: there are also hexdump tools for the command-line that don't load the whole file in one piece, but I don't know their name or their usage off-head right now.
7:33:25
akoana
edgar-rft: yes, on linux I'm using xxd, hexdumü or od for that - they can easily handle GB sized files
7:39:50
edgar-rft
hexidi? I only know Heidi, the little girl, who lived with her grandpa in the mountains
7:50:29
scymtym
akoana: for printing hexdumps in cl, there is https://github.com/scymtym/utilities.binary-dump
7:54:34
akoana
we are on the hexdump trail since asarch asked how to compare sbcl binaries hours ago - lol
9:20:44
JohnMS_WORK
Does anyone know of an example code for passing a C++ class object to the embeded common lisp library?
11:10:16
samlamamma
Opinions on if and maybe how we should get multiple packages of the same name and perhaps nested:packages:in:lisp?
11:45:11
heisig
samlamamma: There was a paper discussing this topic on this year's ELS, called 'Symbols as Namespaces in Common Lisp'
11:46:11
samlamamma
lieven: I saw that the ABCL devs had a thing about that, I couldn't find it in the docs though
11:47:33
samlamamma
heisig: It works well because we're forced to make it work. Having versioned packages would let system maintainers keep older dependencies without updating to the bleeding edge. I'll look up the paper
11:47:46
heisig
samlamamma: The paper is in the conference proceedings: https://european-lisp-symposium.org/static/proceedings/2019.pdf
11:50:51
samlamamma
LdBeth: Assume A and B both depend on system C (and defining packages A, B and C respectively). C updates with some incompatible change, B wants to update and A wants to stay. I use both A and B, how do I load both A and B in my Lisp image?
11:54:32
samlamamma
I know, that's my point. We're forced into a certain culture because of the limitations of CL.
12:21:30
beach
samlamamma: first-class global environments these problems, but they are obviously not standard, and no implementation uses them (yet).
12:23:26
beach
samlamamma: Oh, and if you want more information about SICL and Cleavir, we hang out in #sicl.
12:24:21
samlamamma
beach: I don't listen to it much anymore, but yes that's where my uname is from :-). I'm idling in #sicl as we speak!