[M3devel] quake extensions for tests / RFC

Mika Nystrom mika at async.caltech.edu
Wed Feb 6 23:04:43 CET 2008


Isn't Nelson's book "Systems Programming with Modula-3" to a large
extent composed of literate programming (Threads interfaces, etc.)?
Modula-3 has really cool literate programming support and it'd be
a shame to lose it.  Also m3browser does support the automatic cross
referencing you're talking about.  Last I checked it was a bit
buggy.

In my experience, one of the really nice things about Modula-3 when
you write moderately large programs is actually that it's very easy
to find out where a T is being used, without using any special tools
(like m3browser).  You just grep for the name of the interface where
that T is defined, and that gives you a superset of all possible uses
of T.  Modula-3 doesn't have the nasty Javaism "import libm3.*;"

     Mika



Jay writes:
>--_2ffd3106-b4e0-4fbd-8e26-22c3f2b01f8a_
>Content-Type: text/plain; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
>Modula-3 and quake both support writing comments already. :)
>=20
>I guess a "cross referencing" scheme would be nice, but to some extent that=
> should be automatic.
>To some extent, or entirely, it is what Reactor is. All the calls to a func=
>tion or references to a type are immediately findable, I think.
>=20
>All you really need is a) a completely global namespace so every identifier=
> is unique b) plain text search based on an index.
>=20
>I like C++ and I like some about Modula-3, but hierarchical namespaces real=
>ly stink in the face of (indexed) plain text search, and no other kind of s=
>earch can keep up with large codebases. How do I find uses of this particul=
>ar "T" when people can and do make aliases? I realize C has typedefs to est=
>ablish aliases, and nesting, so that argument is somewhat moot (the point i=
>s more relevant for C++, trying to make it Modula-3-relevant). In C++, how =
>do I search for calls to a particular operator=3D? Or to a constructor?
>=20
>I'm just being obnoxious.
>=20
> ...Jay
>
>
>
>> Date: Wed, 6 Feb 2008 20:15:26 +0100> From: wagner at elegosoft.com> To: dab=
>enavidesd at yahoo.es> CC: m3devel at elegosoft.com> Subject: Re: [M3devel] quake=
> extensions for tests / RFC> > Quoting "Daniel Alejandro Benavides D." <dab=
>enavidesd at yahoo.es>:> > > Hi Olaf:> > Is still possible to add Literate pro=
>gramming support, I mean using > > several functions that are just a commen=
>tary at the end of the file > > on M3Build.m3:> > http://modula3.elegosoft.=
>com/cgi-bin/cvsweb.cgi/~checkout~/cm3/m3-sys/cm3/src/M3Build.m3?rev=3D1.8;c=
>ontent-type=3Dtext%2Fplain> >> > Also there is a missing one on Built-in fu=
>nctions, one that "copy" > > the derived source of a noweb file (specifical=
>ly a generic) from the > > Target (e.g LINUXLIBC6) directory of the compile=
>r to the src > > directory. In that way the compiler can use the source. Th=
>e name of > > functions could be: "derived_generic_interface", > > "derived=
>_generic_implementation"> >> > This stuff is used on ldb debugger : http://=
>www.eecs.harvard.edu/nr/ldb/> > The literate programming support was presen=
>t on DEC SRC M3 I think:> > http://www.wiwi.uni-rostock.de/LABOR_NETZ/DOKUS=
>/MODULA_3/html/modula-3/html/m3build/noweb.html> > Hi again,> > I've had a =
>look at all that stuff, even downloaded ldb and installed noweb.> Still, I'=
>d need a simple example to understand what exactly you would> like to have =
>included in CM3 by default. Just the four commented-out> noweb procedures f=
>rom M3Build.m3? Or more elaborate stuff like that> included in the ldb dist=
>ribution?> > Is there any problem with just including the 4 quake procedure=
>s as> template? Anything that would not work?> > If you could provide a sim=
>ple m3 package which contains all the uses> you'd like to see supported, we=
> could even use that as a regression> test add-on. So if you send me a more=
> specific and exact definition> and example, I'll try to add everything tha=
>t is needed.> > I've never done literate programming myself, and haven't go=
>t the time> to learn everything now and decide what is needed.> > Olaf> -- =
>> Olaf Wagner -- elego Software Solutions GmbH> Gustav-Meyer-Allee 25 / Geb=
>=E4ude 12, 13355 Berlin, Germany> phone: +49 30 23 45 86 96 mobile: +49 177=
> 2345 869 fax: +49 30 23 45 86 95> http://www.elegosoft.com | Gesch=E4ftsf=
>=FChrer: Olaf Wagner | Sitz: Berlin> Handelregister: Amtsgericht Charlotten=
>burg HRB 77719 | USt-IdNr: DE163214194>=20
>_________________________________________________________________
>Connect and share in new ways with Windows Live.
>http://www.windowslive.com/share.html?ocid=3DTXT_TAGHM_Wave2_sharelife_0120=
>08=
>
>--_2ffd3106-b4e0-4fbd-8e26-22c3f2b01f8a_
>Content-Type: text/html; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
><html>
><head>
><style>
>.hmmessage P
>{
>margin:0px;
>padding:0px
>}
>body.hmmessage
>{
>FONT-SIZE: 10pt;
>FONT-FAMILY:Tahoma
>}
></style>
></head>
><body class=3D'hmmessage'>Modula-3 and quake both support writing comments =
>already. :)<BR>
> <BR>
>I guess a "cross referencing" scheme would be nice, but to some extent that=
> should be automatic.<BR>
>To some extent, or entirely, it is what Reactor is. All the calls to a func=
>tion or references to a type are immediately findable, I think.<BR>
> <BR>
>All you really need is a) a completely global namespace so every identifier=
> is unique b) plain text search based on an index.<BR>
> <BR>
>I like C++ and I like some about Modula-3, but hierarchical namespaces real=
>ly stink in the face of (indexed) plain text search, and no other kind of s=
>earch can keep up with large codebases. How do I find uses of this particul=
>ar "T" when people can and do make aliases? I realize C has typedefs to est=
>ablish aliases, and nesting, so that argument is somewhat moot (the point i=
>s more relevant for C++, trying to make it Modula-3-relevant). In C++, how =
>do I search for calls to a particular operator=3D? Or to a constructor?<BR>
> <BR>
>I'm just being obnoxious.<BR>
> <BR>
> ...Jay<BR><BR><BR>
>
><HR id=3DstopSpelling>
><BR>
>> Date: Wed, 6 Feb 2008 20:15:26 +0100<BR>> From: wagner at elegosoft.co=
>m<BR>> To: dabenavidesd at yahoo.es<BR>> CC: m3devel at elegosoft.com<BR>&g=
>t; Subject: Re: [M3devel] quake extensions for tests / RFC<BR>> <BR>>=
> Quoting "Daniel Alejandro Benavides D." <dabenavidesd at yahoo.es>:<BR>=
>> <BR>> > Hi Olaf:<BR>> > Is still possible to add Literate =
>programming support, I mean using <BR>> > several functions that are =
>just a commentary at the end of the file <BR>> > on M3Build.m3:<BR>&g=
>t; > http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/~checkout~/cm3/m3-s=
>ys/cm3/src/M3Build.m3?rev=3D1.8;content-type=3Dtext%2Fplain<BR>> ><BR=
>>> > Also there is a missing one on Built-in functions, one that "cop=
>y" <BR>> > the derived source of a noweb file (specifically a generic=
>) from the <BR>> > Target (e.g LINUXLIBC6) directory of the compiler =
>to the src <BR>> > directory. In that way the compiler can use the so=
>urce. The name of <BR>> > functions could be: "derived_generic_interf=
>ace", <BR>> > "derived_generic_implementation"<BR>> ><BR>> &=
>gt; This stuff is used on ldb debugger : http://www.eecs.harvard.edu/nr/ldb=
>/<BR>> > The literate programming support was present on DEC SRC M3 I=
> think:<BR>> > http://www.wiwi.uni-rostock.de/LABOR_NETZ/DOKUS/MODULA=
>_3/html/modula-3/html/m3build/noweb.html<BR>> <BR>> Hi again,<BR>>=
> <BR>> I've had a look at all that stuff, even downloaded ldb and instal=
>led noweb.<BR>> Still, I'd need a simple example to understand what exac=
>tly you would<BR>> like to have included in CM3 by default. Just the fou=
>r commented-out<BR>> noweb procedures from M3Build.m3? Or more elaborate=
> stuff like that<BR>> included in the ldb distribution?<BR>> <BR>>=
> Is there any problem with just including the 4 quake procedures as<BR>>=
> template? Anything that would not work?<BR>> <BR>> If you could prov=
>ide a simple m3 package which contains all the uses<BR>> you'd like to s=
>ee supported, we could even use that as a regression<BR>> test add-on. S=
>o if you send me a more specific and exact definition<BR>> and example, =
>I'll try to add everything that is needed.<BR>> <BR>> I've never done=
> literate programming myself, and haven't got the time<BR>> to learn eve=
>rything now and decide what is needed.<BR>> <BR>> Olaf<BR>> -- <BR=
>>> Olaf Wagner -- elego Software Solutions GmbH<BR>> Gustav-Meyer-All=
>ee 25 / Geb=E4ude 12, 13355 Berlin, Germany<BR>> phone: +49 30 23 45 86 =
>96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95<BR>> http://www.eleg=
>osoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berlin<BR>> Handelr=
>egister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194<BR>&g=
>t; <BR><BR><br /><hr />Connect and share in new ways with Windows Live. <a =
>href=3D'http://www.windowslive.com/share.html?ocid=3DTXT_TAGHM_Wave2_sharel=
>ife_012008' target=3D'_new'>Get it now!</a></body>
></html>=
>
>--_2ffd3106-b4e0-4fbd-8e26-22c3f2b01f8a_--



More information about the M3devel mailing list