From: ········@hex.net
Subject: Re: STALIN (STAtic Language ImplementatioN)
Date: 
Message-ID: <wkelykctw0.fsf@mail.hex.net>
>>>>> "Francois-Rene" == Francois-Rene Rideau <·······@SPAM.tunes.org>
>>>>> writes:
>> Dima Pasechnik <···········@twi.tudelft.nl> writes:
>>> IMHO, naming things after murderes truly sucks, especially naming
>>> after the biggest murderer of his fellow countrymen, ever.

Francois-Rene> This indeed was my original opinion. However, nowadays,
Francois-Rene> I'd very much like that there be not only an aggressive
Francois-Rene> compiler named "Stalin", but also an OS executive named
Francois-Rene> "Mao Tse Tung", a graphics package named "Hitler", a
Francois-Rene> collaboration tool named "Quisling", a garbage
Francois-Rene> collector named "Ho Chi Minh", a music package named
Francois-Rene> "Castro", a /dev/null device named "Ceaucescu", and so
Francois-Rene> on for "Khomeiny", "Hiro Hito", "Pol Pot", etc.

You forgot to mention the airline management package called
"Mulroney," a Computer Aided Instruction package called "Bush," and
the bikini-and-cigars-screen-saver named "Clinton."  :-) To some,
these and more are considered pretty heinous...

Francois-Rene> This has many advantages: first, it helps us not to
Francois-Rene> forget about these people and what they did. Second, it
Francois-Rene> forces us to think about the difference between words
Francois-Rene> and meaning, between syntax and semantics.  So we have
Francois-Rene> to remember that what we must fight is not the name of
Francois-Rene> these now-dead murderers, but the patterns of evil of
Francois-Rene> which these murderers were the incarnation. Or else, we
Francois-Rene> might end up being brain-washed into ever renewed kinds
Francois-Rene> of evil, that are nominally against former evils, but
Francois-Rene> that actually propagate the same foul memes.

The problem is that people have a hard time separating this from the
[legitimately strong] emotion evoked by mentioning those that have
injured those that they love.

Francois-Rene> Remember: lexical scoping is about thinking up to
Francois-Rene> alpha-conversion.

.. And it's not generally a terribly wise idea to try to set up
pathologically complex combinations of names that _appear_ the same
but have dramatically different meanings.  

A "for instance" would be to use LIST as the name of a variable
binding as well as using it as the name of a function within the same
block of code.  That is forbidden in Scheme, but permissible in
Lisp-2's like Common Lisp.

Francois-Rene> That said, does anyone know whether Qobi has published
Francois-Rene> his long awaited papers on the global program
Francois-Rene> optimization techniques used in STALIN ?  A quick look
Francois-Rene> on his homepage doesn't show them.

That would indeed be a quite interesting set of material to see.
-- 
(reverse (concatenate 'string ····················@" "454aa"))
<http://www.ntlug.org/~cbbrowne/>
Rules of the Evil Overlord #75.  "I will instruct my Legions of Terror
to attack the hero en  masse, instead of standing around waiting while
members break off and attack one or two at a time."
<http://www.eviloverlord.com/>
From: Francois-Rene Rideau
Subject: Re: STALIN (STAtic Language ImplementatioN)
Date: 
Message-ID: <87elykf2b7.fsf@Kadath.augustin.thierry>
(redirecting the thread from comp.lang.lisp back to comp.lang.scheme
where it began and should stay).

········@hex.net writes:
> >>>>> "Francois-Rene" == Francois-Rene Rideau <·······@SPAM.tunes.org>

> You forgot to mention the airline management package called
> "Mulroney," a Computer Aided Instruction package called "Bush," and
> the bikini-and-cigars-screen-saver named "Clinton."  :-) To some,
> these and more are considered pretty heinous...
Excuse me, but these are cat pee as compared to their elders;
maybe they could be valid names for a student project but not
for real software (and even then, student projects sometimes
get out of hand). Of course, if we're into local politics,
I could add Mitterand and Chirac to the list, far behind
Napoleon and his kind.

> Francois-Rene> This has many advantages: first, it helps us not to
> Francois-Rene> forget about these people and what they did. Second, it
> Francois-Rene> forces us to think about the difference between words
> Francois-Rene> and meaning, between syntax and semantics. [...]
>
> The problem is that people have a hard time separating this from the
> [legitimately strong] emotion evoked by mentioning those that have
> injured those that they love.
Well, one thing about Stalin and his fellow communist killers,
unlike Hitler and his national variety of socialism,
is that he could manage to not leave many survivors,
and that the few that did were muted long enough that their complaints
were never heard. A software package named STALIN is a good way
to both remind us this memory.

Anyway, I recommend people who like me are compassionate with victims
to go past their gut reaction of deep disgust, and laugh at this good jest.

> Francois-Rene> Remember: lexical scoping is about thinking up to
> Francois-Rene> alpha-conversion.
>
> .. And it's not generally a terribly wise idea to try to set up
> pathologically complex combinations of names that _appear_ the same
> but have dramatically different meanings.
Perhaps not for local variables in average computations,
although even then, if you have a good development environment
that allows for easy variable renaming, you mightn't care much
about the "official" names of variables.
But for seldom used global variables whose name is arbitrary
except in that it must be easily recognizable, it's good to use
a backronym from another lexical field. STALIN is a name one remembers
well, for a Scheme compiler.

> A "for instance" would be to use LIST as the name of a variable
> binding as well as using it as the name of a function within the same
> block of code.  That is forbidden in Scheme, but permissible in
> Lisp-2's like Common Lisp.
Even in Scheme, you can have LIST, |list|, |LIST| L1ST, l157, 1ist, etc,
which can be happily mixed, for everyone's confusion, all the more when
the font doesn't crealy discriminate some characters if at all, and/or
when the case conversion is ill-defined.

Using unrelated names from other lexical fields, confusing symbols, etc,
could be pretty neat things to do for a code uglifier.
Looking for puns in the encoding of symbols, or in any pair of encodings,
could also be a good thing to do for a super-duper-optimizer
(I could imagine a Scheme compiler reinventing the pun 0==NULL==False
that C uses). Of course, a much more efficient way to uglify Scheme code
that you wish to distribute is to put it through a global program optimizer
that dumps C code. Like, STALIN, for instance. Hum. Maybe STALIN can
be modified to produce IOCCC winners?

> Francois-Rene> That said, does anyone know whether Qobi has published
> Francois-Rene> his long awaited papers on the global program
> Francois-Rene> optimization techniques used in STALIN ?  A quick look
> Francois-Rene> on his homepage doesn't show them.
> 
> That would indeed be a quite interesting set of material to see.
After feedback from the author and more careful inspection,
the first of the announced series seems to be available as
`Flow-Directed Lightweight Closure Conversion,' Technical Report 99-190R,
NEC Research Institute, Inc., December 1999.
        http://www.neci.nj.nec.com/homepages/qobi/papers.html
        ftp://ftp.nj.nec.com/pub/qobi/fdlcc.pdf
Also available on your local mirror of Qobi's site, if it's up-to-date.

[ Fran�ois-Ren� �VB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
[  TUNES project for a Free Reflective Computing System  | http://tunes.org  ]
"There could hardly be a more unbearable -- and more irrational --
world than one in which the most eminent specialists in each field
were allowed to proceed unchecked with the realization of their ideals"
	       -- Friedrich A. Hayek