freenode/lisp - IRC Chatlog
Search
6:48:59
Nilby
sbcl mostly does it with what it calls VOPs, You can see examples in say src/compiler/x86-64/arith.lisp
6:52:14
Nilby
It seems like in every Lisp written in Lisp you can write assembly in lisp syntax at some level. ccl and sbcl do so, and even in the lisp machines you can drop down into the microcode.
6:54:58
emaczen`
Nilby: So from what I am looking at these VOPs define the base assembly instructions like move pop push etc, and then you can then use them in typical lisp prefix syntax?
6:58:21
Nilby
But sbcl and lisp interfaces do seem to stay compatible at least 10x longer than most software.
6:59:48
emaczen`
Yeah, it doesn't seem like something that would change a whole lot in my opinion but I don't really know what these SBCL devs are up to ha
7:01:30
Nilby
I would love to do that patch, but unfortunatly I get filled with disgust and anger when I look at aseembly code too much.
7:07:14
emaczen`
Nilby: Make a bunch of abstractions first? Or it looks like if you just do a little bit at a time you would finish before anyone else does...
7:11:46
beach
The "assembler" I am using for SICL doesn't have a surface syntax, so it would be impractical for humans to use it.
7:13:56
Nilby
beach: Nice. Can't be forced to program in it if there's no syntax, right? *finger pointing at head meme*
7:18:05
beach
Exactly. But that's not the main objective. The main objective is to provide a good interface for the code generator of the compiler.
7:18:32
beach
It seems silly to generate surface syntax, only to have to parse it immediately after.
7:25:01
beach
Also, if the protocol at this level is well defined, it would be straightforward to provide one or more versions of the surface syntax, should someone feel like programming such a thing.
9:11:06
beach
And it does not have any facility for defining memory contents other than instructions, because that is not useful for its intended use.
9:16:11
beach
It is not meant for separate compilation followed by linking. Just as a backend for Common Lisp compilers.
10:01:12
Duuqnd
It tells me that it can't find GCC, but when I manually tell it where GCC is, it breaks apart because it can't find "libffi.h".
10:05:50
Duuqnd
Well, the problem here is that I don't know where to put it where CFFI will find it.
10:06:27
Duuqnd
It doesn't find GCC to begin with, so I don't know what more problems will come from that.
10:09:18
galdor
I tried to clean it up once, but it's virtually impossible to modify without breaking obscure platforms
10:10:02
Duuqnd
I tried to change the Windows PATH environment variable, but it still won't find it.
10:10:45
Nilby
If you're using sbcl I think you can just get a copy of the libffi dll and put it in the sbcl directory.
10:13:29
Nilby
I usually have to run sbcl under cygwin to get it to grovel, and then you can run it not under cygwin. It's very annoying.
10:19:18
Nilby
That is usually better, but not always possible, since the many things like Windows kernel has struct passing APIs.
10:20:31
Duuqnd
It looks like the library doesn't actually use libffi, it just adds it as a dependency and never touches it again.
10:30:48
Duuqnd
Yeah, I noticed that while trying to load it. Oops. Well, I'm gonna try to compile libffi with MinGW and see if that works.
10:31:29
Shinmera
https://www.bountysource.com/issues/75202399-wanted-by-value-structures-in-sb-alien
10:33:01
Nilby
It seems like you usually have to tell it where to find the C compiler, like: export CC=c:/cygwin64/bin/x86_64-w64-mingw32-gcc.exe or something.
13:17:03
samlamamma
I'm doing some work on WebAssembly. It's very frustrating to read non-lisper's WASM, they spread their right parens around like discarded toe nails
14:06:19
harovali
beach: sure, I'd like to use the best option in the context I am. But I ran (inspect ...) because it was a step in this clim tutorial https://kantz.com/clim-primer/application-frames.htm
14:09:27
beach
What I usually do when I write a CLIM application, I include a command that starts Clouseau on the frame or on a pane.
14:14:08
p_l
Odin-: there's a significant benefit if one wants to implement GC themselves in that multivalue is getting actually implemented
14:43:55
pjb
minion: memo for emaczen: lisp itself is just an assembler. Just avoid the most sophisticated macros (or consider lisp as a macro assembler and use them!). See for example: https://groups.google.com/forum/#!msg/comp.lang.lisp/T3UZwLoN0lw/4r9q_8cwKoQJ THIS IS YOUR STABLE ASSEMBLER!
16:33:26
pnp
is there any way to interrupt a running process in the slime-repl? I have that process that is not terminating and i would like to kill it (stop the running operation) it from Emacs...
17:55:13
pfdietz
It works well enough. If I really need to interrupt it I go to the Ubuntu window and kill -SIGSEGV its pid.