Modula-2 system
24 messages in this thread
The Benchmarks limits are actually less stringent than you say. The limits
are: 32K code per module, and 32K of global data and constants per module!
Now, if your program is broken into many fairly small modules (a good
programming practice) you should have no problem. I've written programs in
Benchmark that exceeded 100K of code and data, and had no problems.
The only problem comes when you want to have arrays larger than 32K (this
shouldn't happen too often). In this case you must resort to allocating your
own memory and using pointers.
There is a good reason for such limitations. The compiler can use short
addressing (i.e. 2 byte addresses) to reference variables and code within a
module. This allows the compiler to generate much smaller code.
..hope this clears out your apprehensions….Richie
Richie–
First off: nice job on the Review of Benchmark in latest Amazing Computing;
I enjoyed it. I hope there will be many more articles about BM (unfortunate
what BM sometimes means but not as bad as eunuchs, I guess) in AC.
I am following this LONGREALS thread, but I am not sure what it is all
about. Can you explain it? Thanks.
// Jim
Jim, glad you enjoyed the review. The LONGREALS thread was about absence of
LONGREAL type in BM2. However, I expect that Leon will implement this type in
the future….
…Richie
Hi Richie,Which edition of Amazing Computer is it in????and i'll get it when
they turn up down here in OZ!…Just got my copy of Benchmark,and i am
impressed to say the least!
.. now all i have to do is to learn a bit more about it!!!
C u laitr
Brendan Pratt
It should be in the march issue. I haven't seen it yet….Richie
Richie,
It's in Vol 3, #3, (I guess that's March), and I thoroughly enjoyed reading
it. Nice job.
Regards, Larry.
Thanks for complement Larry! I hope the review will generate a LOT of
interest in the product. Leon deserves to succeed…. Richie 🙂
Richie–
Actually, I had gathered that the problem was lack of LONGREALS in bm2, and
I that means you cannot have a 32 bit number?? I am hazy on why that
matters, though. (or is that a 16 bit number??)
BTW–any news on what settlement Avante-Garde and Oxxi made? Was it
settled? If so, privately or in court? and if so was there any disposition
of the customers who have been promised first actual releases?
Apparently, Oxxi still claims to be working on a manual!!
// Jim
For some reason I thought that LONGREALs were 64-bits and REALs 32-bits. I'll
have to check.
I don't know the details of the settlement between OXXI and Leon. I know
that he is selling the product, he also has the sources – so you know who
will be providing future upgrades. Maybe people who got their stuff from OXXI
should ask for their money back….Richie
Maybe asking for our money back would make sense, though I think we have
precious little chance for that. Last night I called OXXI just "to inquire
about Benchmark" and was told by the lady that they are still selling the
Beta version with the extra libraries for $199 and that buyers would be sent
the upgraded manuals and disks etc. etc.
As Hamlet says, "Something is rotten in the state…"
This tells me, of course, that there has been no settlement. I did notice
that my BM screen shows both OXXI and Leon as the owners of the copywrite,
for whatever THAT might mean. If I could get my money back, I would gladly
get the product from Avante Garde.
BTW–Since I did not want to open the shrink wrap I did not get to see the
manual for AG's BM. How is it? Is it complete, etc.?
Also, Any way to change the colors in the editor? I thought there was, but
I can't seem to find it.
Also, don't let ME sway you about LONGREALS. My question is what are they
and what does not having them do?
Thanks.
// Jim
The manuals for final release of Benchmark are really nice. There is one book
for the compiler, and separate books for the various libraries. My only
complaint is that the index of symbols exported from various modules doesn't
have page numbers.
.The editor just picks up the colors from your WB screen, so you can change
them via preferences or a program like PopColors or something like
that…..Richie
LONGREALs simply provide more precision the regular REALs. They also require
more CPU time to calculate, so they're only useful if you're doing some heavy
duty mathematical computations that require the extra precision. The BM
editor lets you select the color registers for the various things (i.e.
background text, forground, and highlighted text). The actual color setting
for those registers is done thru Preferences, though.
– Steve –
You need LONGREALs if you're doing any serious numerical work. 32-bit single
precision (yet another legacy of IBM) just don't have enough precision for
matrix inversion, differential equations, etc. One more byte, and you might
be able to get away with it; but 32 bit reals are worse than useless.
Steve-
I am confused by your saying the editor lets me pick the color registers.
How is that done? And if they are SET in Preferences, why?
// Jim
ps, I already asked this on PLINK and maybe you answered there, but for
anyone here: I am getting error codes in trying to compile the 4th program in
EtchGlobal. I noticed last night that the article refers to EtchIntuiStuff,
which is not in the magazine. Could that be causing the difficulty? The
error is (as I recall) at IMPORTS and something about not being able to open
a symbol file.
// Jim
As far as I know Leon is still in the midst of trying to get an injunction
against Oxxi. He was very optimistic the last time I spoke to him.
– Steve –
Thanks Steve. I wish Leon well, and one way or another I hope to become an
Avante Garde customer. For now, I will just stand pat, since I am just
starting out in M2.
// JIm
I am familiar with the advantages of limiting code and data size to 32k
segments – I don't like it much, though. They could make it a compile time
option or provide a secondary compiler to do so. Megamax had the same limits
on their C compiler for the Macintosh and the Atari ST. I agree with you that
32k is probably large enough for most modules – I do not like the fact that
such a limitation exists (there are times when one needs arrays of larger
than 32k per module). In any case, these are problems that are relatively
minor. How "good" is the resulting code from Benchmark's Modula-2? Is it on
par with version 4.0 of Lattice C or 3.6 of Aztec? In the PC world, none of
the currently available Modula-2 implementations produce code as well as the
better C compilers (I haven't seen Stony Brook Modula-2 or version 3.0 of
Logitech's Modula-2 compiler).
Thanks for the input, though – I've managed to live with the 32k limits on
Megamax for my ST (which has been "corrected" in the latest release).
Winston M. Llamas
I don't know how Benchmark's code compares with Amiga C compilers. I think
it's much better than Lattice. It's mostly due to smarter linking. In 'C' you
often wind up including the entire library in your executable, even if you
only portions of it. If you look in Amazing Computing, I think I put some
data, comparing Benchmark M2, TDI M2 and Lattice C.
I agree that the limitation of data to 32K is not so hot. But that can
always be improved in the next release…. Richie
I was thinking more of differences in execution speed. In any case, I enjoyed
reading the review of Benchmark – what are you using it for?
Winston
There doesn't seem to be any great differences in execution speed that I
noticed, but I wasn't really looking. I use Benchmark Modula-2 to write some
fractal programs. There is a progrm in the DLs called CHAOS (look in the
modula-2 section) that draws some nice pictures of the Hennon mapping. I'm in
a middle of writing a program that creats Mandelbrot and Julia sets. I'm
using some weird algorithms to make these run a bit faster…..Richie
Sounds interesting. I do hope Benchmark Modula-2 will support the 68020
in the future (even Lattice C doesn't support that).
So common, Richie, and try porting over the Dhrystone benchmark to Benchmark
(no pun intended!). I gave it a shot but something is wrong: It keeps
stepping on memory somewhere. What puzzles me is that other than changing
the order of the procedure declarations I haven't changed anything else. I
wonder if the original (TDI) version works correctly.
To anyone who doesn't know what I'm talking about: I tried adapting the
Dhrystone program (found in DL12) that Joergen adapted from ADA for the TDI
compiler. Since I stopped using TDI a long time ago, I don't know if that
version works correctly with it. Could somebody try and let me know?
– Steve –
I think I'll work on it tomorrow, Steve. Looks like it's going to
rain……Richie (hope you're feeling better)
There is a brief (very brief!) review of the Stoney Bro2 compiler in a recent
"Journal of Pascal…". It seems to produce very small executables and
benchmarks indicate it's pretty quick code also.