freenode/#lisp - IRC Chatlog
Search
19:18:37
jackdaniel
it is not bad (nor good); you'll have some fun when you'll learn that you can redefine functions in a fly
19:23:06
jackdaniel
common lisp ecosystem is smaller; alas community support and documentation resources (compared to "popular" web dev frameworks in other languages)
19:24:57
frgo
Actually I am currently also evaluating alternatives for web app development. I would love to find someting like elixir phoenix liveview in Lisp. Is there sth like this out there and I am just too dumb to find it?
19:26:07
nature
haha yes, it may come as a weird question because I am learning common lisp and liking it a lot so far, but after having (been forced to) worked professionally with rails for years, I swore to myself to never do web with anything else than Go
19:27:23
nature
Like you can't believe how shameful I feel when I see those app struggling to server 2 req/s running with a full cpu core at its disposal....
19:29:35
nature
jackdaniel: spent weeks investiguating those perf issue, conclusion => template rendering is slow af...
19:31:22
nature
So yes, serving hello world surely goes well with rails, but when you start to have complex templates and using the full MVC crap it kills your cpu
19:38:43
nature
Thanks, yeah I'll probably try hunchentoot then, I am more scared of those 2 req/s eating 100% cpu than getting 30k req/s vs 9999k req/s
19:39:07
Josh_2
I took a stab at writing my own basic HTTP server, seems to me its quite hard to make them fast
19:40:26
Josh_2
well when you use something like spinneret, you don't write any HTML, you write normal CL and its converted into html
19:44:47
Josh_2
nature: here is an example project where I heavily lean on CLOS to generate HTML and CSS https://github.com/K1D77A/cl-bloggy/tree/master/src
19:56:47
Josh_2
Well it would be to connect to a running Slynk server and just update the source in the image
20:10:02
scymtym
flip214: if you do deterministic profiling, you must specify the functions or packages to instrument. for example, (clim.flamegraph.examples.recording:with-recording (:specifications '("ALEXANDRIA.0.DEV")) (sleep 10)) will trace all alexandria functions in all threads for 10 seconds
20:11:48
frgo
Josh_2: Actually, well - thanks for the pointers. We *do* have something, well, vaguely similar in Lisp.
20:15:13
scymtym
flip214: and in WITH-RECORDING change the SAMPLE-RATE to 1 if you don't want to skip any calls
20:44:14
mister_m
hi - if I have a function A that returns multiple things through hte use of ``(values 1 2)'', and another function B that takes two arguments, is there a shortcut way to call function B with the results of A without using a ``multiple-value-bind'' to bind the results of A and then call B?
20:47:40
markasoftware
Multiple-value-call will help. Multiple-value-compose from Alexandria will make it even better.
22:12:25
kagevf
CL-ASHOK: maybe C-c C-y ... it will call the current defun in the repl and allow you to enter any parameters ...
23:54:23
slyrus
it's been a long time since I've looked under these rocks... is there anything like https://rstudio.github.io/reticulate/ for lisp? I think xof's stuff goes the other way and allows for SLIME to talk to R. I want R to talk to a lisp -- possibly via SWANK. Anything like that out there?
5:23:48
fiddlerwoaroof
I don't really understand what you want, but there's a bunch of logging libraries for CL
6:38:19
jdz
flip214: Of course it is possible to make it a bit faster portably by working with fixnum-siszed chunks, and only creating a bignum at the end, but that would not fit in a single line on IRC.
6:38:37
flip214
scymtym: with :specifications I don't get a result (in the left "Runs" pane) either. hmmm.
6:38:59
jdz
The biggest problem is working with bits. I'm pretty sure implementation works with at least octet-sized chunks.
6:42:43
flip214
jdz: I'm looking at cl-qrencode, trying to speed it up. I'm currently converting a list of bits to a bit-vector, reducing garbage by ~33% so far. Now I got to the point where arithmetic (ECC) is being done on that data...
6:43:07
flip214
jdz: would you be interested to help? Then I'll just push my git-stash onto github for you to take a look at.
6:43:26
jdz
flip214: Why do you need bit-vectors? Just use numbers. Bit-twiddling in Common Lisp is so much more enjoyable than in C...
6:47:35
flip214
jdz: all the input data is collected; but depending on the mode, each input element provides 5 to 13 bits.
6:50:17
jdz
I'm looking at bstream.lisp file, and indeed some implementation choices are questionable.
6:50:27
flip214
jdz: github.com:phmarek/cl-qrencode.git, branch bit-stream-perf - the last commit shows the beginning.
6:54:48
flip214
jdz: well, there are 4 different input modes... so different types become unwieldy, I believe
6:55:20
flip214
but yeah, building a bigint out of all the input data was another idea I got during the bit-array conversion, too