[M3devel] Release engineering

Olaf Wagner wagner at elegosoft.com
Sat May 9 13:03:55 CEST 2009


Quoting Peter Eiserloh <eiserlohpp at yahoo.com>:

>>>>   o Documentation: Write manual page for cm3.
>>
>> I can do that.
>
> Ah.., I already did.  Just cm3, still need to write
> modula3.man, m3makefile.man, and m3overrides.man.
>
> It would be bad form to suggest all sorts of things, and then
> not actually do anything myself.
>
>    http://www.eiserloh.org/~peter/modula3/#mydocs

I just added that to the repository.

> Again, I agree that a release of 5.8 should be soon.  And soon,
> means no significant changes.

> BTW: I imported the CVS repository as a GIT repository,
> I intend to make this visible externally, but in the
> mean time it is in a private directory.  I looked at the
> cm3-releases branch, wow it has been a long time since
> the last release, which according to the repository,
> 5.1 was released (2001-01-24).

That's just the branch where the old releases from Critical Mass
were imported. IIRC, the last CM3 release was around 2006 :-)

> Cool you got gcc-4.3, after 5.8 is released, are we going
> to update the gcc backend to 4.3?  What version is currently
> in the backend.
>
> BTW(2): When I built the cm3.man manual page, I saw the
> -config option which simply wrote the version number, instead
> of the configuration info.  Could it at least print the
> TARGET architecture?

Should be no problem.

>> Well, I hope he won't be too dissatisfied,
> Well, I (<-<-) he does understand exactly where I am,
> and what I am attempting.
>
> I have been playing on the extreme periphery of M3 development
> for the past 14 or 15 years, when I first heard of it.

Then this might be a good time to become more involved? :-))
Any help is welcome.

I've been thinking today about using the .M3SHIP files for
installation purposes. Curently, the paths they contain are all
resolved like this:

make_dir("/usr/local/cm3/pkg/test/FreeBSD4")
install_file(".M3EXPORTS", "/usr/local/cm3/pkg/test/FreeBSD4", "0644")
install_file(".M3WEB", "/usr/local/cm3/pkg/test/FreeBSD4", "0644")
make_dir("/usr/local/cm3/pkg/test/src")
install_file("../src/Test.m3", "/usr/local/cm3/pkg/test/src", "0644")
install_file("Test", "/usr/local/cm3/pkg/test/FreeBSD4", "0644")

If we use the variables defined in the cm3 config file, we can
defer path resolution to installation time:

make_dir(PKG_INSTALL & "/test/FreeBSD4")
install_file(".M3EXPORTS", PKG_INSTALL & "/test/FreeBSD4", "0644")
install_file(".M3WEB", PKG_INSTALL & "/test/FreeBSD4", "0644")
make_dir(PKG_INSTALL & "/test/src")
install_file("../src/Test.m3", PKG_INSTALL & "/test/src", "0644")
install_file("Test", PKG_INSTALL & "/test/FreeBSD4", "0644")

Not really a good example, as its just a test package; others
could also use BIN_INSTALL, LIB_INSTALL, MAN_INSTALL, DOC_INSTALL,
HTML_INSTALL etc. We could even add ETC_INSTALL if you like ;-)

Then we could just run cm3 -ship for any package installation,
and perhaps even provide system-specific overrides for the install
routines in quake if needed.

Installation packages could contain a workspace with precompiled
packages, and actual package installation is done on the target
system by cm3 itself. I haven't really thought it through nor
tested it though. It looks as if it wouldn't be too difficult
to implement.

Comments welcome,

Olaf
-- 
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