freenode/#lisp - IRC Chatlog
Search
12:12:01
flip214
hmmm, spinneret seems to take 2x as long as cl-who for generating a simple HTML document...
12:13:05
flip214
but it does so much more (indentation, counting header levels, quoting only when needed, etc) that it's no surprise
13:02:06
xificurC
ludston the canonical python implementation is CPython, which is written in C. Python code is either read from a .py file (source code) or from a .pyc file (bytecode). The interpreter automatically tucks away the generated .pyc files for later reuse and reloads the .py files if they are newer than the .pyc files
13:05:35
xificurC
the pypy toolchain is interesting, you write in a subset of python and the toolchain generates a tracing JIT for you
13:35:12
mfiano
As beach mentioned, cl-who is quite buggy, and the author no longer maintains it and is not sure how to fix some of the issues it has, and we're talking about a pretty smart guy who is well-known in the community. He also authored 'Common Lisp Recipes', a book that makes no mention of cl-who for the topic of HTML generation, for the aforementioned reason. If the author recommends other libraries over
13:36:21
mfiano
Hi Michael,Thanks for your feedback. I'm not maintaining CL-WHO or my otherlibraries anymore and I'm pretty sure there are better HTML generationlibraries out there nowadays (two of which I'm also mentioning in mybook). The problem you're referring to is unfortunately inherent tothe way CL-WHO is implemented and I'm not aware of an easy fix.Best regards,Edi.
13:40:26
beach
I think the crucial information that frodef was looking for is absent in awesome-cl. Perhaps in most cases it is not as clear as for CL-WHO ("don't use it..."). But people often look for relative advantages and disadvantages, like generality, run-time performance, compilation time, ease of use, active development, existing maintainer, etc.
13:44:09
mfiano
One thing I can say for certain after quite a few years doing web development in CL (though, admittedly, this was a few years ago), is there are about a dozen libraries fitting the purpose and they all fall flat. I think this is partially because of the mess that is the web itself, and partly because there is no concerted effort on such a library. One developer can do an 80% solution for their own
13:44:12
beach
So, ideally, a list like that should include such comparisons of similar libraries, and perhaps some absolute information when a library is fairly unique, like "embryonic", "needs work in ...", "performance could be better".
13:45:05
frodef
Seems to me that "canonical" libraries are an important aspect of a programming language. In some important sense, libraries for common functionality is really part of the common language itself.
13:45:54
frodef
having common libraries is important in the same sense it's important not to write your own macros for IF etc.
13:50:12
ralt
I made some extensions to it to support async/await a while ago but I'm not sure if I should contribute them back
13:51:11
ralt
it's also missing a tons of symbols (to make the symbol mangling work) of recent-ish additions (say, over the past 10 years), so that indicates to me that it's quite close to dead, but I never actually looked
13:55:02
mfiano
There seems to be recent activity on its issue tracker, and commits by the maintainer.
14:06:30
xificurC
I always browse the cliki recommended list of libraries, yet noone mentioned it here. Is it out of date?
14:07:40
xificurC
awesome-cl is nice but as beach points out there's when there's a list of libraries you have no idea which one is recommended
14:31:13
flip214
Well, as one(!) of the reasons I'm proposing CL is "speed" (as in "reduces number of required hardware boxes for given workload"), requiring twice the time to generate some HTML hurts quite a bit - that amounts to twice the hardware (compared to CL-WHO) and reduces the utility of my proposed solutions
14:47:10
xificurC
is iterate usable without `use-package`ing it? From a REPL session I can't get it to work. Something like `(iter:iter (for i from 1 to 10) (collect i))` spurts a number of undefined function/variable warnings
14:49:30
xificurC
this works and is very readable `(iter:iter (iter:for iter::i iter::from 1 iter::to 10) (iter:collect iter::i))`
14:59:41
_death
sbcl has iter::(iter (for i from 1 to 10) (collect i)) but it's unlikely that you want that
15:03:04
beach
xificurC: There should be no particular reason to put your own variables in the ITER package.
17:41:52
devon
Unhappy with M-x irc, mainly because not comint based & randomly trashes command history. Any suggestions?
17:46:38
markasoftware
can someone recommend a quicklisp library for finding the roots of a polynomial with the given coefficients?
18:45:27
frodef
slightly off-topic, but can anyone tell me when I am editing a file in emacs that is under git, how can I get a buffer with a previous revision of that file?
18:53:10
frodef
not even a diff, just the plain file version that I checked in some days ago.. seems to me the most basic of operations, but somehow it's not obvious how to do it.
18:56:13
frodef
or rather, I can do M-x vc-revision-other-window, but I don't know how to name an old revision. Probably I don't understand git.
18:58:01
ck_
"23rd" even -- how embarrassing! I'll now hide before someone "off-topic!"s me out of here
18:59:12
frodef
ck_: thanks! (I'm surprised/frustrated that I can't seem to find a menu over old revisions, though.)
19:01:04
frodef
ck_: ok. I just thought I could use vc pretty much like I used to do with CVS, but I guess not.
19:02:14
ck_
you probably can, I don't have experience with that though. Many things are probably just personal preference, but it's generally accepted that magit is very polished, and its menu system is (I think) easy to pick up
22:15:26
frodef
I fell silly for asking this, but what is the preferred idiom for taking the subset of a list by some predicate?
22:17:31
frodef
yes, but remove-if-not and the :test-not args are "deprecated", which makes me suspect there's supposed to be another way...
22:18:15
Bike
it was deprecated like twenty years ago because they thought COMPLEMENT would be more useful.
22:18:53
Bike
but there is no problem using remove-if-not and even if there was somehow a new standard revision, they probably wouldn't actually remove it.
22:29:20
mfiano
It's surprisingly actually smaller code size on SBCL, too (though code zie is not a good measure of performance).
22:54:36
frodef
Bike: right, thanks, COMPLEMENT was probably the piece of the puzzle I'd forgotten about.
22:57:04
frodef
...and even more so for (remove keep-value ... :test-not 'eql), which is not very readable at all.
23:00:57
frodef
-- "Several alternative names for REMOVE-IF-NOT were suggested: KEEP-IF, ABSTRACT, FILTER. We did not pursue these suggestions." Oh well.