Feature request: First class labels

Paul Findlay r.lph50+d at gmail.com
Sat May 5 20:22:04 PDT 2007


First-class labels (or "labels as values" [1]) would make D a much better
platform for implementing interpreters. Is there any chance of having
something like this?

It would mean virtual machine execution could be implemented using direct
threading [2] and make possible all sorts of tricks including using D
compiler generated executable code for JIT [3]. Direct threading often has
less branch mis-prediction than using switches to dispatch VM intructions
[2].

I don't know the cost of implementing this for DMD, but it needn't introduce
a new basic type or keywords to the language.. (perhaps labels could be
typdef'd in std.intrinsics)

Hope this makes sense (both what I've written and as a feature :) )

 - Paul Findlay

1: http://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
2; http://www.complang.tuwien.ac.at/forth/threaded-code.html
3: M. Anton Ertl and David Gregg, Retargeting JIT compilers using C-compiler
generated executable code, in Proceedings of the International Conference
on Parallel Architectures and Compilation Techniques (PACT 04), pp. 7-14,
Antibes Juan les Pins, Septmber 2004
(http://www.complang.tuwien.ac.at/papers/ertl%26gregg04pact.ps.gz)



More information about the Digitalmars-d mailing list