RE: Re: Plan to Update GPC

"scott andrew franco" <[email protected]> Thu, 13 Aug 2020 10:51:33 -0700
Newsgroups gmane.comp.compilers.gpc
Message-ID <20200813105133.6c61c97e98fe7bb02193b2d6dca4a85a.58fe92720b.mailapi@email15.godaddy.com>
--===============7594805926784973489==
Content-Type: multipart/alternative;
 boundary="=_04cc58e7840b59a8dadf27951d4136fd"

--=_04cc58e7840b59a8dadf27951d4136fd
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
 charset=utf-8

So I basically said "interpreters are useless" in this message, and I would=
 like to set
the record straight.
=20
There are actually two important uses, for interpreters in general and for =
Pascal-P in=20
specific:
=20
1. Error checking. Pascal-P5 does more checking of the ISO 7185 source code=
 than any
other compiler in existence since the "Model implementation of Pascal" [Wel=
sh&Hay].
It does checks that would be impractical in a full compiler, like check if =
you are making
changes to variant record tags when there is a VAR reference to same outsta=
nding
(an almost impossible check to do in machine code).=20
=20
In fact, if my GPC compiled code crashes, I can often compile it using Pasc=
al-P5 itself,
run it interpretively, and it will find the error, politely stop, and tell =
me what occurred and
what line it happened on, as opposed to crashing and burning.
=20
2. Accurate debugging. This is more of a Pascal-P6 thing, but compilers and=
 their
associated debuggers tend to do a much worse job of debugging, especially s=
ource
level, than interpreters. Optimization will rearrange the code so that it d=
oes not look
like the source, and usually you have to turn off optimization to get reaso=
nable
results. Even beyond that, interpreters have a 1:1 relationship with both t=
he generated
code and the data in memory, and you just get better and more accurate resu=
lts
from debugging an interpreted version.
=20
Scott Franco
=20
--------- Original Message --------- Subject: RE: Re: Plan to Update GPC
From: "scott andrew franco" <[email protected]>
Date: 8/13/20 8:02 am
To: "Schneider, Thomas (NIH/NCI) [E]" <[email protected]>, "[email protected]"=
 <[email protected]>

 Well, you need a working ISO 7185 compiler. There are actually a couple of=
 them. I'm not sure
the Prospero compiler is still available, I used to use it. IP pascal works=
, but even I don't use it
at the moment, and I wrote it. It needs updating. The GPC compiler works qu=
ite well, and
I use both the 32 bit version and the 64 bit version (windows and Linux), a=
lthough (as noted in
the documentation) only a single release version that has shown stability f=
or the ISO 7185
language.
=20
For your second point, I assume you are talking about the Pascal-P1-P6 thin=
g? (not sure
I understand your point about "name change breaks the code")
=20
Yes, that one is a bit odd. Realize the compiler is 47 years old. It went t=
hrough "versions" P1 though
P4 long before I got it. I suppose that Niklaus Wirth wanted to clearly dif=
ferentiate the versions,
which were incompatible with each other. The name Pascal-P5 was picked a lo=
ng time ago 1970s
or early 1980s in fact) as being the full and not subset version of Pascal-=
P, which never got
actually done until I did it, which brought it to ISO 7185 status. Pascal-P=
5 does, in fact, have
version numbers, I believe the last is 1.3. And yes, I perpetrated Pascal-P=
6, because it
extends ISO 7185, and thus is quite different again.
=20
GPC used to work on Mac OS, and I used to release Pascal-P5 on Mac (its 10 =
years old now!).
At some point, I think well documented in this mailing list, it stopped wor=
king.
=20
Is Pascal-P5 useful? That's a complex question. The purpose of Pascal-P5 wa=
s to be a model
compiler, that is, be a model of how to implement the ISO 7185 language and=
 not necessarily
a stand-alone system in itself. It also has a large body of tests and is de=
signed to replace
(and indeed surpass) the BSI test suite for ISO 7185 Pascal, which is no lo=
nger available
(and was paidware when it was).
=20
Can Pascal-P be used on the Mac? Well, actually yes. Pascal-P6 includes suf=
ficient tooling
to port without GPC (see the interpreter written in C). I don't really push=
 that capability
because P6 is still in development, and also because interpreters are not r=
eally my thing
(yes, I know that sounds funny). I like compilers. To me interpreters are m=
ore of a fun
toy than not, although I note that there is a group pushing interpreters as=
 "VM"s for professional
use. Pascal-P5 has actually been written up as such. Again, not bad, just n=
ot my thing.
=20
I should mention there is a branch from P5 known as P5c that that changed t=
he compiler
into a Pascal to C translator that accomplishes porting in a different way=
=2E You would have
to look into that yourself, I'm not really up to speed on that.
=20
=20
Regards,
=20
Scott Franco
=20
--------- Original Message --------- Subject: Re: Plan to Update GPC
From: "Schneider, Thomas (NIH/NCI) [E]" <[email protected]>
Date: 8/13/20 6:43 am
To: "[email protected]" <[email protected]>

> Hmm, is this your work https://sourceforge.net/p/pascalp5/ ?
=20
 What is this? I looked into the README and it says:
=20
 "You need a working gpc implementation."
=20
 I'm looking for a replacement for GPC on macOS since GPC no longer
 works there. How would pascalp5 be useful for anything if it depends
 on GPC which doesn't work on macOS?
=20
 Also, why is the name of the program changing instead of a version number?
 This will break code everytime you change the name!
=20
 Tom
=20
 Thomas D. Schneider, Ph.D.
 Senior Investigator
 National Institutes of Health
 National Cancer Institute
 Center for Cancer Research
 RNA Biology Laboratory
 Biological Information Theory Group
 Frederick, Maryland 21702-1201
 [email protected]
 https://alum.mit.edu/www/toms
=20
 _______________________________________________
 Gpc mailing list
 [email protected]
 https://www.g-n-u.de/mailman/listinfo/gpc
 _______________________________________________ Gpc mailing list Gpc@gnu=
=2Ede https://www.g-n-u.de/mailman/listinfo/gpc

--=_04cc58e7840b59a8dadf27951d4136fd
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
 charset=utf-8

<div>So I basically said "interpreters are useless" in this message, and I =
would like to set</div>
<div>the record straight.</div>
<div>&nbsp;</div>
<div>There are actually two important uses, for interpreters in general and=
 for Pascal-P in&nbsp;</div>
<div>specific:</div>
<div>&nbsp;</div>
<div>1. Error checking. Pascal-P5 does more checking of the ISO 7185 source=
 code than any</div>
<div>other compiler in existence since the "Model implementation of Pascal"=
 [Welsh&amp;Hay].</div>
<div>It does checks that would be impractical in a full compiler, like chec=
k if you are making</div>
<div>changes to variant record tags when there is a VAR reference to same o=
utstanding</div>
<div>(an almost impossible check to do in machine code).&nbsp;</div>
<div>&nbsp;</div>
<div>In fact, if my GPC compiled code crashes, I can often compile it using=
 Pascal-P5 itself,</div>
<div>run it interpretively, and it will find the error, politely stop, and =
tell me what occurred and</div>
<div>what line it happened on, as opposed to crashing and burning.</div>
<div>&nbsp;</div>
<div>2. Accurate debugging. This is more of a Pascal-P6 thing, but compiler=
s and their</div>
<div>associated debuggers tend to do a much worse job of debugging, especia=
lly source</div>
<div>level, than interpreters. Optimization will rearrange the code so that=
 it does not look</div>
<div>like the source, and usually you have to turn off optimization to get =
reasonable</div>
<div>results. Even beyond that, interpreters have a 1:1 relationship with b=
oth the generated</div>
<div>code and the data in memory, and you just get better and more accurate=
 results</div>
<div>from debugging an interpreted version.</div>
<div>&nbsp;</div>
<div>Scott Franco</div>
<div>&nbsp;</div>
<blockquote class=3D"threadBlockQuote" style=3D"border-left: 2px solid #C2C=
2C2; padding-left: 3px; margin-left: 4px;">--------- Original Message -----=
----
<div>Subject: RE: Re: Plan to Update GPC<br />From: "scott andrew franco" &=
lt;[email protected]&gt;<br />Date: 8/13/20 8:02 am<br />To: "Schneider, =
Thomas (NIH/NCI) [E]" &lt;[email protected]&gt;, "[email protected]" &lt;gpc@g=
nu.de&gt;<br /><br />
<div>Well, you need a working ISO 7185 compiler. There are actually a coupl=
e of them. I'm not sure</div>
<div>the Prospero compiler is still available, I used to use it. IP pascal =
works, but even I don't use it</div>
<div>at the moment, and I wrote it. It needs updating. The GPC compiler wor=
ks quite well, and</div>
<div>I use both the 32 bit version and the 64 bit version (windows and Linu=
x), although (as noted in</div>
<div>the documentation) only a single release version that has shown stabil=
ity for the ISO 7185</div>
<div>language.</div>
<div>&nbsp;</div>
<div>For your second point, I assume you are talking about the Pascal-P1-P6=
 thing? (not sure<br />I understand your point about "name change breaks th=
e code")</div>
<div>&nbsp;</div>
<div>Yes, that one is a bit odd. Realize the compiler is 47 years old. It w=
ent through "versions" P1 though</div>
<div>P4 long before I got it. I suppose that Niklaus Wirth wanted to clearl=
y differentiate the versions,</div>
<div>which were incompatible with each other. The name Pascal-P5 was picked=
 a long time ago 1970s</div>
<div>or early 1980s in fact) as being the full and not subset version of Pa=
scal-P, which never got</div>
<div>actually done until I did it, which brought it to ISO 7185 status. Pas=
cal-P5 does, in fact, have</div>
<div>version numbers, I believe the last is 1.3. And yes, I perpetrated Pas=
cal-P6, because it</div>
<div>extends ISO 7185, and thus is quite different again.</div>
<div>&nbsp;</div>
<div>GPC used to work on Mac OS, and I used to release Pascal-P5 on Mac (it=
s 10 years old now!).</div>
<div>At some point, I think well documented in this mailing list, it stoppe=
d working.</div>
<div>&nbsp;</div>
<div>Is Pascal-P5 useful? That's a complex question. The purpose of Pascal-=
P5 was to be a model</div>
<div>compiler, that is, be a model of how to implement the ISO 7185 languag=
e and not necessarily</div>
<div>a stand-alone system in itself. It also has a large body of tests and =
is designed to replace</div>
<div>(and indeed surpass) the BSI test suite for ISO 7185 Pascal, which is =
no longer available</div>
<div>(and was paidware when it was).</div>
<div>&nbsp;</div>
<div>Can Pascal-P be used on the Mac? Well, actually yes. Pascal-P6 include=
s sufficient tooling</div>
<div>to port without GPC (see the interpreter written in C). I don't really=
 push that capability</div>
<div>because P6 is still in development, and also because interpreters are =
not really my thing</div>
<div>(yes, I know that sounds funny). I like compilers. To me interpreters =
are more of a fun</div>
<div>toy than not, although I note that there is a group pushing interprete=
rs as "VM"s for professional</div>
<div>use. Pascal-P5 has actually been written up as such. Again, not bad, j=
ust not my thing.</div>
<div>&nbsp;</div>
<div>I should mention there is a branch from P5 known as P5c that that chan=
ged the compiler</div>
<div>into a Pascal to C translator that accomplishes porting in a different=
 way. You would have</div>
<div>to look into that yourself, I'm not really up to speed on that.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>Regards,</div>
<div>&nbsp;</div>
<div>Scott Franco</div>
<div>&nbsp;</div>
<blockquote class=3D"threadBlockQuote" style=3D"border-left: 2px solid #C2C=
2C2; padding-left: 3px; margin-left: 4px;">--------- Original Message -----=
----
<div>Subject: Re: Plan to Update GPC<br />From: "Schneider, Thomas (NIH/NCI=
) [E]" &lt;[email protected]&gt;<br />Date: 8/13/20 6:43 am<br />To: "g=
[email protected]" &lt;[email protected]&gt;<br /><br />&gt; Hmm, is this your work https:=
//sourceforge.net/p/pascalp5/ ?<br /> <br /> What is this? I looked into th=
e README and it says:<br /> <br /> "You need a working gpc implementation=
=2E"<br /> <br /> I'm looking for a replacement for GPC on macOS since GPC =
no longer<br /> works there. How would pascalp5 be useful for anything if i=
t depends<br /> on GPC which doesn't work on macOS?<br /> <br /> Also, why =
is the name of the program changing instead of a version number?<br /> This=
 will break code everytime you change the name!<br /> <br /> Tom<br /> <br =
/> Thomas D. Schneider, Ph.D.<br /> Senior Investigator<br /> National Inst=
itutes of Health<br /> National Cancer Institute<br /> Center for Cancer Re=
search<br /> RNA Biology Laboratory<br /> Biological Information Theory Gro=
up<br /> Frederick, Maryland 21702-1201<br /> [email protected]<br /> h=
ttps://alum.mit.edu/www/toms<br /> <br /> _________________________________=
______________<br /> Gpc mailing list<br /> [email protected]<br /> https://www.g-=
n-u.de/mailman/listinfo/gpc</div>
</blockquote>
_______________________________________________ Gpc mailing list [email protected]=
 https://www.g-n-u.de/mailman/listinfo/gpc</div>
</blockquote>

--=_04cc58e7840b59a8dadf27951d4136fd--


--===============7594805926784973489==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Gpc mailing list
[email protected]
https://www.g-n-u.de/mailman/listinfo/gpc

--===============7594805926784973489==--