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> </div> <div>There are actually two important uses, for interpreters in general and= for Pascal-P in </div> <div>specific:</div> <div> </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&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). </div> <div> </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> </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> </div> <div>Scott Franco</div> <div> </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]><br />Date: 8/13/20 8:02 am<br />To: "Schneider, = Thomas (NIH/NCI) [E]" <[email protected]>, "[email protected]" <gpc@g= nu.de><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> </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> </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> </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> </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> </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> </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> </div> <div> </div> <div>Regards,</div> <div> </div> <div>Scott Franco</div> <div> </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]" <[email protected]><br />Date: 8/13/20 6:43 am<br />To: "g= [email protected]" <[email protected]><br /><br />> 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==--