[M3devel] LongrealType missed, was: Re: "FreeBSD4" false advertising
Jay K
jay.krell at cornell.edu
Tue Jul 20 14:28:36 CEST 2010
Mika, did this work for you?
- Jay
----------------------------------------
> From: jay.krell at cornell.edu
> To: wagner at elegosoft.com; m3devel at elegosoft.com
> CC: mika at async.caltech.edu
> Subject: RE: LongrealType missed, was: Re: [M3devel] "FreeBSD4" false advertising
> Date: Wed, 14 Jul 2010 11:23:49 +0000
>
>
> Mika, Please try updating libm3 and see if that works for you. Thanks.
>
> - Jay
>
> ----------------------------------------
> > Date: Wed, 14 Jul 2010 12:55:16 +0200
> > From: wagner at elegosoft.com
> > To: m3devel at elegosoft.com
> > CC: jay.krell at cornell.edu; mika at async.caltech.edu
> > Subject: LongrealType missed, was: Re: [M3devel] "FreeBSD4" false advertising
> >
> > Quoting Mika Nystrom :
> >
> > > Argh is it really necessary to break source compatibility here?
> > >
> > > I also don't like that I as a client have to import IEEE things when all
> > > I want is "LONGREAL" (and let Modula-3 do whatever it wants with that).
> > >
> > > I would propose at least having an interface LongrealType with
> > >
> > > CONST Hash = Longreal.Hash
> > >
> > > etc. so as not to force clients to import all the nitty-gritty about
> > > various floating point representations. And so as not to break source
> > > compatibility! If I change this by removing Type, my code will no longer
> > > compile with the old compilers....
> >
> > Hm, I'm a little bit out of context here...
> > What was the reason for this change? It seems nobody else has bothered
> > so far.
> >
> > This was the commit in question:
> >
> > 2009-12-23 21:43 hosking
> >
> > * m3-libs/: m3core/src/m3makefile, libm3/src/types/ASCII.i3,
> > libm3/src/types/ASCII.m3, libm3/src/types/Boolean.i3,
> > libm3/src/types/Boolean.m3, libm3/src/types/COPYRIGHT-CMASS,
> > libm3/src/types/Char.i3, libm3/src/types/Char.m3,
> > libm3/src/types/Int32.i3, libm3/src/types/Int32.m3,
> > libm3/src/types/Int64.i3, libm3/src/types/Int64.m3,
> > libm3/src/types/Integer.i3, libm3/src/types/Integer.m3,
> > libm3/src/types/Longint.i3, libm3/src/types/Longint.m3,
> > libm3/src/types/LongrealType.i3, libm3/src/types/LongrealType.m3,
> > libm3/src/types/RealType.i3, libm3/src/types/RealType.m3,
> > libm3/src/types/Refany.i3, libm3/src/types/Refany.m3,
> > libm3/src/types/Unicode.i3, libm3/src/types/Unicode.m3,
> > libm3/src/types/WideChar.i3, libm3/src/types/WideChar.m3,
> > libm3/src/types/m3makefile, m3core/src/float/Common/Extended.m3,
> > m3core/src/float/Common/LongReal.m3, m3core/src/float/Common/Real.m3,
> > m3core/src/float/IEEE/Extended.i3, m3core/src/float/IEEE/LongReal.i3,
> > m3core/src/float/IEEE/Real.i3, m3core/src/float/VAX/Extended.i3,
> > m3core/src/float/VAX/LongReal.i3, m3core/src/float/VAX/Real.i3:
> >
> > Move libm3/src/types into m3core.
> > Note that LongrealType and RealType have been folded into m3core/src/float.
> > Clients will need adjustment.
> >
> > Any comments?
> >
> > Olaf
> >
> > > Mika
> > >
> > > Jay K writes:
> > >>
> > >> Remove "Type" it appears.
> > >>
> > >>
> > >> http://modula3.elegosoft.com/cm3/ChangeLog-2009
> > >>
> > >> search for "clients will need".
> > >>
> > >> e.g.
> > >>
> > >> +++ cm3/m3-demo/mentor/src/binpack/m3makefile 2009/12/23 22:05:06 1.2
> > >> @@ -10=2C7 +10=2C7 @@
> > >> =20
> > >> import ("zeus")
> > >> =20
> > >> -list ("Real"=2C "RealType")
> > >> +list ("Real"=2C "Real")
> > >> =20
> > >> zume ("Binpack")
> > >> oblume ("Binpack"=2C "myview")
> > >>
> > >> --- cm3/m3-demo/mentor/src/binpack/RealList.i3 2001/01/13 14:18:20 1.1
> > >> +++ cm3/m3-demo/mentor/src/binpack/RealList.i3 2009/12/23 22:05:05 1.2
> > >> @@ -2=2C4 +2=2C4 @@
> > >> (* Distributed only by permission. *)
> > >> (* Last modified on Fri Jul 9 16:36:47 PDT 1993 by mhb *)
> > >> =20
> > >> -INTERFACE RealList =3D List(RealType) END RealList.
> > >> +INTERFACE RealList =3D List(Real) END RealList.
> > >>
> > >> --- cm3/m3-demo/mentor/src/binpack/RealList.m3 2001/01/13 14:18:20 1.1
> > >> +++ cm3/m3-demo/mentor/src/binpack/RealList.m3 2009/12/23 22:05:06 1.2
> > >> @@ -2=2C4 +2=2C4 @@
> > >> (* All rights reserved. *)
> > >> (* See the file COPYRIGHT for a full description. *)
> > >> =20
> > >> -MODULE RealList =3D List(RealType) END RealList.
> > >> +MODULE RealList =3D List(Real) END RealList.
> > >>
> > >> =A0- Jay
> > >>
> > >> ----------------------------------------
> > >>> To: wagner at elegosoft.com
> > >>> CC: jay.krell at cornell.edu=3B mika at async.caltech.edu
> > >>> Subject: Re: [M3devel] "FreeBSD4" false advertising
> > >>> Date: Wed=2C 14 Jul 2010 03:05:25 -0700
> > >>> From: mika at async.async.caltech.edu
> > >>>
> > >>> I'm not actually sure I understand the intent of the changes in this area=
> > >> .
> > >>>
> > >>> My old m3makefile has:
> > >>>
> > >>> Table("TextLongReal"=2C "Text"=2C "LongrealType")
> > >>>
> > >>> What am I supposed to use now?
> > >>>
> > >>> Mika
> > >>>
> > >>> Mika Nystrom writes:
> > >>> >Olaf Wagner writes:
> > >>> >>Quoting Mika Nystrom :
> > >>> >>
> > >>> >>> Hi Jay=2C Olaf=2C
> > >>> >>>
> > >>> >>> I actually built everything! After backing out some of my changes
> > >>> >>> that I had tried to get 5.8.6-REL to build with=2C it worked=2C and m=
> > >> entor
> > >>> >>> ran=2C even.
> > >>> >>
> > >>> >>Great! So it's still possible to build cm3 on FreeBSD 4=2C though
> > >>> >>not our release code.
> > >>> >
> > >>> >The differences relative to the current CVS head are very minor.
> > >>> >
> > >>> >1. Added FreeBSD4 to thread.quake as a non-pthread platform
> > >>> >
> > >>> >2. got rid of the -m32 flags in FreeBSD4.conf
> > >>> >
> > >>> >Everything else that needed to change I think Jay has managed to put in
> > >>> >the CVS head.
> > >>> >
> > >>> >>
> > >>> >>> But... what happened to libm3/src/types? Building my own code I get
> > >>> >>> the following errors:
> > >>> >>>
> > >>> >>> new source -> compiling LRInterval.i3
> > >>> >>> "../FreeBSD4/LRInterval.i3 =3D3D> ../src/Interval.ig"=2C line 5: unab=
> > >> le to =3D20
> > >>> >>> find interface (LongrealType)
> > >>> >>> 1 error encountered
> > >>> >>>
> > >>> >>> I can't find LongrealType anywhere=2C do I have a broken checkout? We=
> > >> ll=2C it
> > >>> >>> is in one place=2C in "doc". (Same for RealType=2C maybe others?)
> > >>> >>
> > >>> >>See =3D20
> > >>> >>http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-libs/libm3/src/t=
> > >> ypes/=3D
> > >>> >>Attic/LongrealType.i3
> > >>> >
> > >>> >Surely this is wrong?? I am looking for an interface that has T =3D
> > >>> >LONGREAL=2C not something that lets me muck around with the representati=
> > >> on
> > >>> >of IEEE=2C VAX=2C etc.=2C floating-point formats.
> > >>> >
> > >>> >Why is it even in m3core? This seems clearly like libm3 stuff.. I notice=
> > >> d
> > >>> >Boolean.i3 also moved.
> > >>> >
> > >>> >Also if there is no importable interface called LongrealType that is goi=
> > >> ng
> > >>> >to cause endless problems with source that is supposed to compile under
> > >>> >different versions of Modula-3. Even relatively recent CM3s required
> > >>> >you to use LongrealType to instantiate generics.
> > >>> >
> > >>> > Mika
> > >> =
> > >
> >
> >
> >
> > --
> > Olaf Wagner -- elego Software Solutions GmbH
> > Gustav-Meyer-Allee 25 / Gebäude 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äftsführer: Olaf Wagner | Sitz: Berlin
> > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
> >
>
More information about the M3devel
mailing list