[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: compiler directives; (was: Re: cheerful static typing (was: A

> Dorai Sitaram [mailto:ds26@gte.com] wrote:
> > >    
> > > Let me suggest (with a sly grin) that the distinction between
> > > language construct and compiler directive is exactly as crisp
> > > as the distinction between language and library.
> > 
> > Compiler directives (or "pragmas") are required to be
> > flags.  So the distinction between them and lang
> > construct may not be as smudgeable as the one
> > between lang and lib. 
> The library search path is often a compiler directive, and it's 
> not a flag variable. 
> And it's definitely smudgeable: in Python, for example, the search 
> path can be specified on the command line. This then shows up at 
> runtime as the variable sys.path, and modifying sys.path will change 
> the search path for future module loads. 
> -- 
> Neel Krishnaswami

Yes, my use of the word "flag" was woefully inapt.  I
should have said "setting" or somesuch.  Thus setting a
load-path or a numeric precision could be a
compiler directive.  (They could also be a mainstream
lang construct.)

I really don't have a problem with compiler directives
being treated as lang constructs.  It is the other-way
smudging, ie, all lang constructs are compiler
directives (which was what was suggested here)
that strikes me as requiring some more persuasion.  I
mean, is `set!' really a compiler directive?  Is
`lambda' a compiler directive (an Ultimate Compiler
Directive even)?  I don't see that yet.