Recent blog entries for cmm

choice quotes from berend:

in the end my thoughts on this are that not everything is a stack, and not everything is an untyped list of things. (uh, wow, really?)

Modifying Lisp code is hard. (not according to my experience.  to the contrary, in fact)

Trying to understand how things are passed along is hard because the passed lists are not annotated. (so don't pass lists, nobody's forcing anybody)

Adding new material to pass along to another routine is hard. (what color is the sky in your world, mister?)

at first I thought "why bother?".  in fact, as a rule I don't, since it is my belief that trying to "convert" people to whatever (or even just educate them a little about whatever) is akin to teaching those who don't want to learn — very annoying (to both parties, to be sure) and utterly pointless.

but then I felt a flash of empathy.  to my mind, there is not a lot of things more destructive than being ignored after saying something stupid.  it can leave one thinking he's right when he's not.  it can distort one's worldview with frightening and quiet effectiveness.  it's a sin to casually let it happen to people.

so there you go.

chalst waves his hands in the air:
For what it's worth, an outsiders view of what Common LISP needs ...

I'll have you know that a view on the subject from an outsider who calls the language "Common LISP" is not worth a lot. :)

more to the point: you enumerate several things which, you think, are "needed".  do you have a concrete need for those, so that once they are provided "standardly" it would seriously enable you to do something?  do Scsh or Rep have Unicode, and is that a serious problem for you that they don't?

oh, and if you want continuations and "hygienic" macros, I think you already know where to find them.  the rest is supported by some CL implementations (I think Clisp has everything you enumerate, apart from the two aforementioned schemey "features").

21 Jul 2004 (updated 21 Jul 2004 at 14:52 UTC) »
Advogato stuff

I'm quite confused by the recent diary page threshold thing.

let's see: I've noted that a person whose diary I'm moderately interested in has dropped below the default threshold of 3, so his entries don't appear on the recent diary page anymore.  "ok", say I, and I go and give his diary a rating of 10 (the maximum), thinking that would fix the problem.

do his entries appear on the recent diary page after that?  no, they don't. do I have any way to trace how his final rating is computed?  not that I can see, other than perhaps reading the Advogato source code, which I'm not going to do, thankyouverymuch. can I set the threshold to something below 3, in any way other than doctoring the recent entry page URL by hand (and just bookmarking it)?  not that I can see.

so my options to escape this censorship-by-community are, basically:

  • log out
  • read the recent entry page through a special bookmark
  • read the individual interesting diaries through RSS

this is So Very Wrong.

UPDATE: the immediate problem is now happily solved.  thanks, Stevey!

graydon, elanthis: regarding your object ownership discussion, I think you'd do well to read (or remind yourself about) this old paper by Henry Baker.
cactus: I'm not sure where do you see any "vehemence", really.  though I'm prone to get peeved about equating type safety with compile-time type safety. :)

compile-time type safety is pretty irrelevant to Lisp, being really a concept from the batch-language world, where the compilers routinely deny your programs the knoledge they have about them.  I'd say compile-time type safety is important where types themselves are predominantly a compile-time concept.  moreover, the term "compile time" is itself less useful in Lisp than it may seem.

anyway, I hope the snippet I gave was helpful.

cactus: what does type safety (or lack thereof) have to do with CMUCL's compiler not checking type declarations across function calls?  you still get the runtime check, so your program is safe.

consider that the people who do not view Lisp as a kind of C++ (and such people are, thankfully, the majority of Lisp users) really appreciate CMUCL's reluctance to perform invasive compile-time checking of function argument types.  that's because in Lisp, unlike in C++, functions can be redefined at any time.  if you still want the compiler to perform such checks, though, try declaiming FOO's type at the top level (so that it effectively becomes a part of FOO's interface), like this:

(declaim (ftype (function (float) float) foo))

that way you will (among other compiler verbiage) get a warning about the type of 1 not being FLOAT.

I'm quite amazed at the ongoing info-vs-man debate.  are you people serious?  what makes you think those two things are even comparable?  it's cheat-sheet versus reference manual, you know.  I like having both.

(but then again, my perspective might be skewed due to my complete lack of religious fervor regarding the grand emacs-vs-vi debate.  if so, I'm sorry for this inadvertent attempt at spoiling the fun).

5 Jun 2003 (updated 5 Jun 2003 at 15:03 UTC) »
pfdietz: are you talking about the "C3" linearization defined here?
ncm: I'm too is almost pleased with Galeon 1.3.4 (it still crashes sometimes.   I'm sure the good folks behind this "dead project" will fix that, and I'm deeply grateful to them).

what freenix desktop needs is more "dead projects" which are nevertheless maintained.   when some people wished that Emacs would "die" at 19.34, they had a point.

I might look at Epiphany again when it lets me keep the tabs vertically on the right side, dammit.   until then, its authors can take their pimply teenage interface fascism and shove it, as far as I'm concerned.   nothing personal.

raph: THANK YOU!   like this, in capital letters and all.   whining works sometimes, I guess...

one bug (inconsistency, actually) in the RSS thing, though: the "regular" Advogato code does case-unification.   if you try the address bram, you get to Bram.

but this doesn't work with RSS links, unfortunately.   what's worse, it fails silently, so you get an empty RSS feed if you use the wrong case.   so no Bram's diary among my Livejournal "friends" yet, due to Livejournal's unconditional smashing of URL's to lowercase (which is, of course, their bug, not Advogato's.   but since Advogato seems to make some effort to correct case in the regular links, simply being consistent would solve this too.   but I'll bitch at the Livejournal guys anyway, of course).

14 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!