I just finished reading a great article on iterators by Andrei Alexandrescu. Mr. Alexandrescu is a contributor to the D programming language. In this paper, he discusses the background of iterator implementations including C++ STL iterators, and then goes on to outline a new model for iterators. It’s very readable, I recommend it.
Assume the axiom that punctuation is evil. Using multiple kinds of brackets for similar functionality in a language is unnecessarily complex.
The result is:
The relationship between a generic type and it’s concrete types should be expressed in the same way as for the relationship between a type and the objects that are instances of [...]
I’ve been thinking recently about the fact that the average piece of software code includes instructions to the compiler mixed together with instructions that should be executed at runtime. Type declarations are instructions to the compiler. Most of the general sequential code is instructions that should be executed at runtime. It occurred to me these [...]
Tim Bray has been writing his thoughts recently on the topic of the next big language for concurrency.
Let me start by saying I’m completely an arm-chair quarterback here, I’ve never used a functional language for a real project, but I’ve worked in the area of development tools and multi-threaded applications for many years. I’ve [...]
I faithfully scan the tables of contents for IEEE Computer every time it comes out, and every now and then there’s a paper that I find both interesting and well written. Today I found one called: “Taking Parnas’s Principles to the Next Level: Declarative Language Design” by Daniel E. Cooke and J. Nelson Rushton, at [...]
There is a set of runtime libraries that are maintained by the compiler team, and delivered to Solaris so they can be made available in /usr/lib on all Solaris systems. The ones most likely to affect people are the OpenMP support library (libmtsk) and the C++ runtime libraries (libCstd, libCrun). What makes these libraries [...]
We’re making the internal transition to building Sun Studio on Solaris 10 (instead of Solaris 9). This is a big deal because the product bits immediately become useless on any Solaris 9 system. There’s a new libm.so.2 library that became available on Solaris 10, and if you depend on it, you can’t run on Solaris [...]
I’ve been working with the Sun lawyers and the Dwarf Standards Committee recently to change the overly zealous license on the Sun Dwarf Extensions document. I think we’ve finally gotten it down to something reasonable. Anyway, we’ve added a few twists for C++ and Fortran 90. As an example, there are some new structures for [...]
You can use Sun Studio to build 32-bit programs and 64-bit programs. So what is that choice called, anyway? Is it “data model”, “memory model”, “data addressing model” ? Is it an ABI? And how is it related to those compilation styles on x86 where you can have large/small/medium/tiny memory models? Is that a “memory [...]
One of our doc writers, Richard, blogged about a project I helped out with. It’s a nice index of compiler options sorted and arranged by many different aspects. The source is stored in an XML document, and it’s processed using style sheets into a tree of HTML files. We tried forever to dynamically load the [...]