[Simh] BLISS ( was Re: 101 Basic Games for RSTS/E (was Re: PDP11 on Simh for public access))
Hunter Goatley
goathunter at goatley.com
Fri Jan 26 16:49:00 EST 2018
On 1/26/2018 3:28 PM, Timothe Litt wrote:
> Sounds right. The -16 and -36 versions stayed with the native backend
> and didn't get much attention once GEM took off. At least, I don't
> recall GEM support for them.
I believe that's correct.
> Alpha pretty much repeated the VAX route (plus the stupid mistake of
> splitting the VMS sources). It cross-compiled from VAX to simulation,
I was porting a lot of freeware from VAX to Alpha when all that was
available were the cross-compilers. The BLISS cross-compiler was great,
but the early C cross-compilers were more problematic.
> All three (CMU ,BLISS, GEM) back ends used considerable creativity in
> interpreting the instruction sets, and as time went on gave hand-coded
> assembler a run for its money. They especially liked to do
> computations with bizarre-looking address calculations. (Not all of
> which ran fast on all processors.) In one case, a particularly
> "clever" encoding of a test on a link-time constant broke RMS on an
> unreleased VAX CPU. Interestingly, this one instruction was the ONLY
> time this construct was encountered in all of VMS (including the top
> dozen layered products), so waiting for the hardware spin wasn't as
> bad as it might have been.
I vaguely remember hearing about that.
BLISS-32 on VAX generated some amazing optimizations. Before I got into
BLISS, I programmed almost exclusively in MACRO-32, and it was fun to
compare code I wrote to the assembly code generated by the BLISS
compiler. Several times, I encountered generated code that was a lot
more efficient than the code I wrote, which I thought was very
efficient. I learned a few MACRO tricks looking at the code generated.
It was less fun trying to understand the GEM output for Alpha. ;-)
> Every time I do handstands with C #if/#define I still wish for BLISS
> %if and %macro. (I once had to port a few 100K lines of my BLISS code
> to C on a 68000, and even with automation, converting macros and
> keyword initialized data structures to C was a painful exercise in
> devolution by obfuscation...)
Yes, the BLISS macros and lexicals are awesome, and it also kills me
that C never had them.
Hunter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20180126/e4c4d49d/attachment.html>
More information about the Simh
mailing list