freenode/#lisp - IRC Chatlog
Search
9:31:47
aeth
The state of the art for garbage collectors are made for Java and/or the JVM, in general.
9:32:21
schweers
wow. Now I’m even more impressed with GC. TIME in SBCL reports how much time was spent in GC and out of GC. I was always impressed by how little time the collector needed. Now that you’re telling me this could be even better, I’m even more impressed and convinced that GC is good for performance.
9:33:26
aeth
schweers: The lowest hanging fruits in SBCL performance improvements are probably the GC and CLOS, at least based on stuff people say in #lisp
12:48:34
LdBeth
is there *fast* approch to implement binary op so add #xFFFF and #x0123 is #x0122 and subtruact #x0123 form #x0121is #xFFFE
12:55:31
shka_
somehow sbcl seems to be able to infer that this operation is allowed to overflow and produces slightly different code
13:24:20
Shinmera
but the good news is you don't need to, just spawn a swank server and connect to it with slime (tunnelling the port through ssh for instance)
13:24:46
Shinmera
systemd will automatically log any stderr/stdout output to journald for all its services, so you don't need to do anything for that
13:25:12
dingusman
ok, yeah, if I didn't run screen I guess the second question is no longer relevant
13:26:44
dingusman
Does it matter what's in start.lisp in this example? seems to me this will still start sbcl in interactive mode
13:28:09
dingusman
I tried something like this already. But (IIUC) systemd points process' stdin at /dev/null
13:32:37
dingusman
And I'd still be able to connect the swank server since it's running in a separate thread?
13:58:02
dim
dingusman: you can also have a look at https://github.com/dimitri/pgcharts/blob/master/src/pgcharts.lisp if you want, for an alternative implementation, still with the idea of (loop :while *server-is-running* :do (sleep 1))
14:05:31
dingusman
dim: thank you, that's helpful. I've been looking for some real-life hunchentoot server code. There's a lot for me to learn in there
14:11:02
dim
dingusman: the part I like a lot is the serving of static files from memory, and building a binary image that includes those static resources, so that you only have one file to deploy
14:16:01
dingusman
That is neat. I'm doing something pretty similar. Generate a ql dependency bundle, html/js with who/parenscript, then load it all in and dump it to a core image to deploy
14:17:07
dim
hehe... do you compress the core? it might make the startup time a little longer, but gives a much smaller image
14:26:53
dingusman
dim: managed to kill my emacs in the process, but compression makes a big difference
14:29:26
Shinmera
there's a noticeable difference if you want to do scripts and stuff but for a heavy-weight thing like a server or a gui it's perfectly fine.
19:02:31
jackdaniel
hey. I want to write a fast function which does alpha-composition between two rgba pixels, here's what I've got: http://ix.io/1kSL/lisp
19:02:45
jackdaniel
I'm not very good with bit fiddling so I'd appreciate any hints how I could improve this code
19:43:14
jackdaniel
_death: thanks. it is internal function because I care about speed in there (it is for McCLIM framebuffer image rendering)
19:43:40
jackdaniel
I'll look up the look-up tables though, may be useful for testing if I didn't mess things up
20:54:03
fouric
question: i have ``(foo ,,(+ 1 2)) which yields `(FOO ,3) but i want `(FOO 3), what do i need to do differently
20:57:22
Shinmera
`(FOO 3) and '(FOO 3) are equivalent. If you "Need more unquoting" you should post a better example
21:00:04
Shinmera
You could use (list 'gethash ,keyword ,sym) or, as I pointed out above, `(gethash ,',keyword ,',sym)
21:03:25
fouric
neither of those work unfortunately - should i just give up on quasiquote and use LIST etc. instead?
21:03:53
fouric
that is, am i trying to do something that fundamentally cannot be done with quasiquote
21:05:03
Shinmera
It can be done and I told you how. Maybe you're asking the wrong question, and besides that your function looks really weird. How do you hope to gethash from a variable that you just gensym up?
21:13:06
fouric
oh, the reason i was using macrolet was because i was going to SETF the resulting expansions
21:13:51
Shinmera
You can still do it with flet. And also the expansion of my version works just fine.
21:14:48
Shinmera
Here's an flet version. https://gist.github.com/fouric/6213a6046cfbe4aa213aef2f7dd66f1c#gistcomment-2685378
21:16:35
aeth
ebrasca: If you want money for Mezzano I'd recommend refocusing the project to be a cloud OS for deploying Lisp applications. e.g. https://en.wikipedia.org/wiki/Unikernel
21:17:22
Josh_2
hey so neither slime or sly are connecting to the sbcl backend, although sbcl is launching in another buffer on my Emacs
21:17:47
Josh_2
Getting this error (("Error in timer" sly-attempt-connection (#<process inferior-lisp> nil 3) (void-function set-up-sly-ac)))
21:17:50
aeth
ebrasca: e.g. get a server Mezzano running on a cloud provider and you just virtualize your Lisp server application on Mezzano.
21:21:52
ebrasca
fouric: I am contributor to mezzano. I don't think there is bountysource or sometink like this.
21:25:46
aeth
ebrasca: I would go the Ubuntu route and have a Server version and a Desktop version. In fact, Ubuntu also has a Cloud edition, which is probably a modified Server edition that's tested on various cloud providers.
21:26:45
aeth
ebrasca: You'd probably want to tunnel SLIME over SSH or something else that's encrypted.
21:27:26
aeth
ebrasca: If I were you I'd put together a list of proposed server/cloud features and see if anyone is interested in Mezzano as a server.