freenode/lisp - IRC Chatlog
Search
4:54:46
jedii
would it come down to something like postgresql SBCL postmordern hunchentoot vs postgresql+tcl+naviserver
4:56:36
jedii
Paul grahm talks of forking a lisp interpreter for each web client.......then using files on netapp and justlisp
4:56:49
no-defun-allowed
The most scalable thing would probably be to keep everything in memory, which is trivial.
4:57:14
no-defun-allowed
When that doesn't work, then you could use a SQL database or object persistence library like manardb, sure.
4:57:49
jedii
I talked to one friend one time and he simply kept clients 1-10 on box 1 and 11-20 on box 2
4:59:18
no-defun-allowed
Most Lisp web servers (well, Hunchentoot and Woo) will split up work between multiple threads.
4:59:42
no-defun-allowed
I would leave scaling between machines for later, and if you have many users or very demanding uses.
5:17:48
aeth
I don't think Paul Graham's 1999 CLISP web architecture is at all relevant for 2020 probably-SBCL-but-maybe-CCL web architecture
5:18:58
no-defun-allowed
Yeah, one does not need to fork when threads are supported by the operating system and Lisp implementation.
9:29:26
iissaacc
is there any way to quickly get the version of a symbol with the package prefix attached?
9:31:19
phoe
so you cannot always tell from outside which package the symbol + is from, unless you also know the current package
9:32:28
iissaacc
well the problem i have is i convert a symbol to its string representation. Then when it gets converted back into a symbol to be used in funcall it happens in another package, so i get an error saying the function is undefined
9:40:33
phoe
the KEYWORD package is very nice for this because keywords are always printed with the preceding colon (even in package KEYWORD) and because it uses no other package, hence all non-keyword symbols are printed with their package name
9:41:54
phoe
keywords are a singular namespace, and you don't usually want to collide with other people's functions
12:23:25
Xach
i think it is good and fine to define keyword-named functions and i think lispworks is being inconsiderate.
12:24:01
Xach
i think keyword-named functions should never appear in libraries or anything that is not a self-contained universe - so best used in your init files to define personal repl conveniences.
12:38:38
daphnis
i'm trying to load the source code for "Practical Common Lisp" in slime/sbcl, but am told "don't know how to REQUIRE ASERVE" ..
12:49:39
phoe
not the ASDF compile-file-error though, the actual error should be printed in the repl
12:52:10
Xach
to make it easier to find quicklisp dist-building errors, i've made some filtering that highlights only the fatal ERROR and WARNING parts from the build log.
12:52:42
Xach
i wonder if it would be useful to make that easily runnable by anyone so they can quickly get to the important output
13:10:31
drl
Why does (format t "~%~%~%~%~%~%~%~%~%~%~a~%~%~a: " "PRAYER Ver. 1.1 MAIN MENU" "<A>dd-records <E>dit-records <P>ray <R>eports <Enter>-exit") print both strings at the repl, but after using save-lisp-and die to make a stand-alone executable only the first string prints?
13:41:11
_death
interesting that FORMAT lacks a directive to clear/force/finish output.. in my OUT macro I added an (:fo [:wait boolean]) operator (no clear operator though.. never used it)
13:43:04
_death
I guess in FORMAT it would've been a "waste of a character" or something.. since it's not often you want to force/finish in the middle of output
14:21:19
ane
Xach: what sort of build tests are run for quicklisp distributions? how are cyclic dependencies or dependencies towards other QL packages handled for a single system?
14:25:52
phoe
ane: cyclic dependencies are detected on ASDF level, Quicklisp has nothing to do with that