IRC channel logs

2022-09-04.log

back to list of logs

***silver.libera.chat sets mode: +o ChanServ
***silver.libera.chat sets mode: +o ChanServ
<sneek>wb dsmith-w`!
<vldn>ist it possible to create shared object files that include c code via header files
<vldn>in guile?
<vldn>like compile a guile script that includes a c header and functions to a libobject.so
<vldn>or compile it to useable c code and then with gcc to a shared object
<mwette>vldn: two options: swig compiles header to C code a/ guile API; compile with gcc, load into guile. nyacc compiles header to FFI as a (scheme) module. https://www.nongnu.org/nyacc/nyacc-fh-ug.html
<vldn>yeah then the functions are accessible within guile but how to recompile it to a shared object that is useable in a c project? :D
<mwette>I don't think it's really possible to do what you want. You could create a C file which boots guile and then generate C functions to call your scheme via scm_call functions
<vldn>mh there is gambit scheme that compile to c code, maybe it's better suited for this task
<vldn>i thought i could use my beloved guile :D
<vldn>without too much complications
<vldn>i'm eager to write a guile binding for the Godot Game Engine
<jpoiret>it's quite hard to properly know if you've updated gnulib properly or not
<jpoiret>i'll check one last time then send my posix_spawn patchset
<ArneBab>I’m reading a thesis about using Rust right now and got a half-revelation: Borrowing in Rust looks a lot like co-routines on the level of variables: the system always only does one thing and when you hand off execution, the other place gains full control. Though a co-routine hands control back at the end and Rust variables have to be returned explicitly to be usable again.
<ArneBab>And I’m thinking whether we can’t make something in Scheme that reduces pressure on the gc when it can detect that there will only be at most one owner of a variable. Maybe something more flexible than our declarative modules but with the same efficiency gains?
<mwette>Not sure about your co-routine analogy but f you want some good reading try "Programming Rust: Fast, Safe Systems Development", co-authored by Guile co-author Jim Blandy. (See Sec 9.1.3 in the Guile Ref Manual.)