August 23rd, 2003

  • evan


Nickle is a programming language that a bunch of the people working on X seem fond of. I haven't really read enough about it to evaluate it, but it looks somewhat interesting: rather C-like, but with more type safety, garbage collection, first-class continuations, etc.

The twixt control statement is a more clear way of expressing a concept usually expressed with a try...finally–type expression. Ruby (and I assume Smalltalk) use some interesting patterns with blocks: for example, mutex.synchronize takes a block (read: anonymous function) and does the lock/unlock around it; does a similar thing with opening and closing a file. But those are usually implemented in an ad-hoc manner.
  • evan


I was looking at Nickle because I saw a link from XCB, which looks like a replacement for Xlib. I can't tell if it's simply lower-level or whether it adds some sort of policy that is different from the Xlib one...
  • evan

parse as you type

In compilers class we were told that a significant portion of the compile time (the majority?) is spent in the parsing and lexing stages. Beyond precompiled headers, I've also seen work that keeps compiled versions of files around in memory.

We have gobs of RAM now, and these fast processors that are usually idle while you type and then suddenly strained when you compile. Why doesn't the IDE continually build parse trees as you type? They have to do some preliminary parsing already to do syntax highlighting. But with more of the compiler integrated you not only get more contextual help (see, for example, Visual Studio, which shows you in a tooltip the type of the argument expected for the function you're calling), but also an incredible boost in compile time.

(This seems obvious enough that someone would be doing research in it...)