On 27 October 2011 21:37, Fawzi Mohamed <[email protected]> wrote: > I came back from the Goggle Summer of Code mentor summit. > It was nice to see many people from other open source communities, and meet > David face to face ;). > > We did try to leave some notes to remember what we said and for those who > could not attend, but this wasn't the strong point of this conference, but it > did improve (at least my note taking activity did)… > Anyway if you are interested to have a glimpse on what was discussed you can > go to http://gsoc-wiki.osuosl.org/index.php/2011 > > David and me obviously did try to show how nice D is, but we also saw the > cool stuff other are doing, and discussed both the practical and the more > philosophical aspects of open source. > > For example from the unexpected interesting stuff I can tell of a discussion > that I had with Tobias Burnus that works on fortran fronted I realized that > intent(in) in fortran is very close to immutable (actually even stronger, as > it guarantees that the pointer will not escape, so the compiler is even ok in > copying stuff on entry (this also for intent(inout), which had no real > corresponding thing in D). > > intent(inout) x even guarantees that x=5; f(); assert(x==5);. f can obviously > also have x as intent(in). > Fortran does this to give the optimizer as much freedom as possible. > D doesn't have all that, but with immutable and pure, it can use some of the > same optimizations. > Indeed it is possible that gdc could use some of the fortran annotations > something that I promptly mailed Iain. > > Here the different philosophy is visible: D give safe primitives, and > behavior, and try to optimize; fortran choose fast options, define it as the > way things work, and make the programmer job to make sure he uses things > right, something that is simplified for the fact that fortran is typically > threaded only through OpenMP. > > ciao > Fawzi
I've just gotten round to implementing this, and in the middle of testing it out. :-) I'll write a spec review of it in a short while if you are interested. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
