freenode/lisp - IRC Chatlog
Search
7:56:48
beach
Work is going fine, thank you. I am currently preparing my slides for the ELS talk. And yes, I work every day for around 10-12 hours.
8:02:51
saganman
Yeah, it is brought by people and government with their carelessness. Anyway you work relentlessly beach
8:04:31
beach
saganman: I think most researchers work all the time. One can't just turn the brain off.
8:20:33
remby
what is a lisp image? I know it's a binary that holds the interpreter, but I'm not sure how to picture this
8:23:08
beach
It is a bit long to quote it all here, but you can read it yourself in the Common Lisp HyperSpec.
8:31:03
remby
I think this is just kinda hard for me to imagine cause I'm not experienced with low level stuff, but I'll do more research
8:33:25
beach
Just think of it as a large graph of objects, each object taking up a chunk of memory, and some words in the chunk may contain pointers to other objects.
8:34:04
beach
So, a symbol will be a chunk that has a pointer to a string that holds the name of the symbol, and another pointer that refers to a package object.
8:35:04
beach
Executable code is just a vector of bytes that is tagged so that the operating system accepts that it is executed.
8:37:25
Nilby
ACTION laments that operating systems lost the ability to save a restartable image for any process.
8:38:58
beach
remby: Code is truly executable only when it is in the primary memory of the computer.
8:39:19
beach
And then it is just a sequence of bytes that the processor understands as instructions.
8:42:23
beach
There are lots of details that you need to know about to understand everything, of course. Like how a function calls another function, and how a function can refer to its arguments and its lexical variables.
12:08:17
daphnis
i couldn't find a straightforward way to checking that "foobar" ends in "ar" for example
14:39:00
lotuseater
hey i ran into an interesting problem recently ^^ an algorithm with TAGBODY and labels 1..13 has a step with "now goto step Z+3" so I calculate with (let ((next-step (+ Z 3))) (go next-step)) but of course that didn't work, as no NEXT-STEP label is there. i got it to run otherwise, but my question is is there another clever trick? :D
14:41:35
phoe
lotuseater: if you mean something like computing the tagbody tag dynamically - nope, that won't work
14:42:21
phoe
I mean, you can make yourself a function that accepts a number of sorts at runtime and contains a CASE with a series of GO calls
14:53:24
nij
Has anyone used Kenzo :) or even better seen the author hanging around in #lisp? http://www-fourier.ujf-grenoble.fr/~sergerar/Kenzo/
15:14:28
MichaelRaskin
Josh_2: what exactly are two states of the nose suitable for use in counting??
15:26:39
Bike
(defmacro computed-goto (min max val) `(ecase ,val ,@(loop for i from min to max collect `((,i) (go ,i)))))
15:26:54
Bike
i guess if you wated to be really fancy you could define a computed-tagbody macro to get the min and max for you
15:35:10
jcowan
phoe: You can't just eval the go, you have to eval the whole thing and use quasiquote to subsitute in the appropriate go tag.
17:09:37
nij
Amazing: (sscanf "000000004713b902: 00000002 00000000 00010000 0005 01 19462 /run/WSL/8_interop" "%x: %8x %8x %8x %4x %2x %5lu %s") ;; => (1192474882 2 0 65536 5 1 19462 "/run/WSL/8_interop")
17:24:46
dieggsy
splittist: you have (sscanf "123 abc" "%d %s"), i'd almost expect (sscanf "%d "%s" "123 abc")
17:27:43
splittist
dieggsy: yeah. But that's how C does it: int sscanf(const char *str, const char *format, ...);
17:28:24
splittist
dieggsy: it kind of makes sense if you think of fscanf having the FILE *stream first