freenode/#lisp - IRC Chatlog
Search
19:38:01
Bike
are there any existing libraries to define functions for copying objects? i'm contemplating how to duplicate a complicated data structure and don't want to duplicate work as well
19:39:24
Bike
for example to define things like "when copying this kind of object in this context, this field's value doesn't need to be copied, but this other one's should be"
19:43:51
Shinmera
I've only seen systems that handle this in the context of serialising to another format, but not copying directly.
19:44:11
Shinmera
Ime typically the copying logic required is either trivial, or complex enough to be better as an internal function.
19:45:10
Bike
mostly i'm dreading having to write such an internal function. guess it might be inevitable
19:45:21
Shinmera
Even automated traversal of object structures is fraught with issues. I moved away from a system in my game engine that automatically scanned for resources to allocate to a manual system based on a single generic function. Way less hassle and way less error prone.
19:48:19
scymtym
there was this "metacopy" system. i think it had problems, but maybe there are some ideas in there
21:39:10
aaronm04
hi all. Do you know how I would fix "No Lisp subprocess; see variable 'inferior-lisp-buffer'" in Emacs? I want to use SLIME :)
21:42:07
charles`
aaronm04: you have to have start a lisp process. step 1: have a common lisp installed, step 2 run M-x slime ( think it is)
21:46:37
aaronm04
after running Lisp->Run inferior lisp, everything seems to be working. I can Eval defun
22:31:30
no-defun-allowed
I think SBCL has a function in its socket library which calls poll/epoll and can be used to write a driver loop. But in my opinion the best async Lisp experience would be to implement green threads, use a driver loop to wake threads blocked on IO, and then implement usocket and friends using that.
22:37:36
no-defun-allowed
"Where should I get silver for making cutlery from?" "*answer*" "Never mind, I think I will make a spoon."
22:39:17
no-defun-allowed
You still find yourself with an async library (or entirely straight-line synchronous code) though.
22:41:02
no-defun-allowed
Still, I would find myself either writing code with blocking threads, or implementing enough of do-notation to not go mad with callbacks.
22:50:26
edgar-rft
Josh_2: there's Bordeaux Threads if that's the kind of "async" you're talking about -> https://common-lisp.net/project/bordeaux-threads/
22:53:44
no-defun-allowed
edgar-rft: "async" usually refers to asynchronous IO, which I can only really describe as having an OS thread block on a single connection (unless there are no more connections to block on). Think poll, Unix AIO, io_uring, etc.
22:54:49
edgar-rft
"async" refers to anything asynchronous you can imagine and is a very broad and unprecise term
1:35:26
huonib
can someone help me with this? I am working on a project and I am looking to use a lisp that compiles to a small binary - either ecl, chez, or chicken scheme
1:35:42
huonib
right now I am trying this with ecl but I am getting an error: https://gist.github.com/huonib/9ddddc7998c43681795309233feeeb5c
1:38:21
Bike
wait, sorry, what is make-build? i don't have that function in my asdf and i don't see it in the manual.
1:38:52
huonib
Bike: found it here: https://common-lisp.net/project/ecl/static/manual/System-building.html#Compiling-with-ASDF
1:39:31
Bike
well, my guess is that when the program starts, *package* is something other than helloworld
1:43:01
huonib
when does the package change automatically? I thought slime did that for some reason.
1:48:22
Bike
yeah, no prob. i don't know how to use make-build, but you could probably set it in :prologue-code?
2:08:41
huonib
huh - I didn't have that much faith in ECL, since I heard nobody really uses it, but it generates a binary of 2.1 MB whereas chicken scheme is at 4.6 MB
2:12:11
huonib
Bike: I am a complete idiot, so bear with me, but chicken scheme can compile without the runtime - is that possible with ecl?
2:13:24
huonib
Bike: https://wiki.call-cc.org/generating%20the%20smallest%20possible,%20self-contained%20executable
2:15:09
Bike
the C standard uses the term 'freestanding' to mean implementations that almost entirely lack runtime support
2:17:02
Bike
i think there's an #ecl channel, and also jackdaniel comes around here and is a maintainer