Alright! Here it is: the revised “Dispose, Finalization, and Resource Management” Design Guideline entry. I mentioned this work previously here and here. At ~25 printed pages, it’s not what I would consider to be a minor update. Took me much longer than anticipated, but I’m happy with the result. I got to work with and received good amounts of feedback from HSutter, BrianGru, CBrumme, Jeff Richter, and a couple other folks on it… Good fun.
I love Haskell. So much that I’m now writing a compiler for it. In my “spare” time, of course. (Which means just a couple hours a week since my book is priority #1 at the moment.) :)
I now have some level of platform interop working with Sencha. By “platform interop,” I mean writing code that uses functions defined elsewhere (i.e. not Scheme built-ins and not custom written stuff). The gunk that enables this usually ends up making a best guess at binding, in some cases performing operations to bridge the type system gap that exists.
This can probably fall into the “paranoid programmer” category… where this time the paranoia is not about async exceptions, but rather about pulling in the JIT unnecessarily.
I recently sent this out to an internal audience. I saw no reason not to share it with external folks, too… Although most of it probably won’t be of interest, maybe somebody out there will get something useful from it.
During our chat yesterday, a question came up about explicit layout structs.
In Whidbey, we have a few great changes to delegates, two of which are particularly cool for languages of all sorts.
The CLR employs a two phase exception handling model. In the first phase, the stack will be searched for an appropriate exception handler (i.e. one who’s filter is able to deal with the exception), and in the second, the stack will unwind until the frame containing the handler is reached. Unwinding the stack causes finally blocks on the frames being blown through to be executed in the process. This does mean, however, that filters further up in the stack get a chance to run before finally blocks, resulting in some potentially odd behavior.
So I’ve decided to go back and try to do some static type checking for Sencha. This is for a few reasons:
Paul Graham has some very thought proviking opinions, expressed both in his online essays and new book.