Difference between revisions of "CoCoA:CoCoA 3"

From ApCoCoAWiki
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
[[File:Cocoa3_0.png|thumb|500px|CoCoA 3.6 running on HP-UX.]]
 +
 
== About ==
 
== About ==
  
Line 4: Line 6:
  
 
== Sub versions ==
 
== Sub versions ==
* CoCoA 3.0b  (1995)
+
* CoCoA 3.0b  (June 1995)
 
* CoCoA 3.02b (1996)
 
* CoCoA 3.02b (1996)
 
* CoCoA 3.3  (1997)
 
* CoCoA 3.3  (1997)
Line 12: Line 14:
 
* CoCoA 3.7  (June 1999)
 
* CoCoA 3.7  (June 1999)
  
== Main Developers ==
+
== The Header ==
 +
The header is defined in <code>lib/cocoa/coclib.pkg</code> and looks like this:
 +
 
 +
<pre>
 +
------------------- ------------------------------------------
 +
------  )))  ----  CoCoA 3 release X.X
 +
--  ___(((_ _  --
 +
--  |      | )  --  by A.Capani, G.Niesi, L.Robbiano
 +
--  | CoCoA |/  --
 +
--  |  3  |  ---  contributors  : type "Contrib();"
 +
---  \_____/  -----  online help  : type "Man();"
 +
-----      -------  release notes : type "RelNotes();"
 +
------------------- ------------------------------------------
 +
</pre>
 +
 
 +
== The Interface ==
 +
 
 +
[[File:Cocoa3_1.png|thumb|500px|CoCoA 3.6 running a few basic functions on HP-UX.]]
 +
 
 +
A full description of the architecture of CoCoA 3 is presented in Antonio Capani's Ph.D. Thesis ([http://www.disi.unige.it/dottorato/THESES/2000-02-CapaniA.ps.gz gzipped postscript format]).
 +
 
 +
 
 +
== The People Behind It ==
 +
The CoCoA 3 header lists three main authors:
 
* Antonio Capani
 
* Antonio Capani
 
* Gianfranco Niesi
 
* Gianfranco Niesi
 +
* Lorenzo Robbiano
  
 +
Furthermore, the command <code>Contrib()</code> lists the following contributors:
 +
* John Abbott (for factorization and linear algebra)
 +
* Anna Bigatti (for Hilbert-Poincare series, toric ideals)
 +
* David Perkinson (for the online help system)
 +
* Alessandro Polverini (for Windows 95 interface, porting to DOS)
 +
* Massimo Caboara (testing)
 +
* Martin Kreuzer (testing)
  
 
== Features ==  
 
== Features ==  
Line 24: Line 57:
 
* programmability ([[:Category:CoCoAL|CoCoAL language]])
 
* programmability ([[:Category:CoCoAL|CoCoAL language]])
 
* arbitrary precision for integer and rational numbers
 
* arbitrary precision for integer and rational numbers
 +
 +
===CoCoA 3.02b===
 +
 +
* [ToDo]
  
 
===CoCoA 3.3===
 
===CoCoA 3.3===
Line 67: Line 104:
 
* faster computation of operations on ideals (intersections, saturations,...);
 
* faster computation of operations on ideals (intersections, saturations,...);
 
* faster computation of the determinant of matrices with integer entries
 
* faster computation of the determinant of matrices with integer entries
* new packages from contributors (algmorph, galois).  
+
* new packages from contributors (algmorph, galois).
  
  
A full description of the architecture of CoCoA 3 is presented in Antonio Capani's Ph.D. Thesis ([http://www.disi.unige.it/dottorato/THESES/2000-02-CapaniA.ps.gz gzipped postscript format]).
+
==Platforms & Interfaces==
 +
 
 +
Systems that were for sure supported:
 +
* Macintosh 68k computers using MacOS (labelled <code>mac_68k</code>)
 +
* Macintosh Power PC computers (labelled <code>mac_ppc</code>)
 +
* PC computers with DOS or Windows 3.11 (labelled <code>pc_dos</code>)
 +
* PC computers running Windows 95 or Windows NT (labelled <code>pc_win32</code>)
 +
* PC computers running the LINUX operating system (labelled <code>pc_linux</code>)
 +
* SUN workstations using the Sun 4 operating system (labelled <code>sun_sun4</code>)
 +
* SUN workstations using the Solaris operating system (labelled <code>sun_solaris</code>)
 +
* DEC Alpha workstations (labelled <code>dec_alpha</code>)
 +
* HP workstations (running HP-UX; labelled <code>hp</code>)
 +
* SGI IRIX-based systems (probably only models that are also supported by IRIX 6.5.23+ releases and hence are 64-bit; in cooperation with [http://www.eurandom.nl/ EURANDOM]; labelled <code>irix64</code>)
 +
 
 +
There was also [http://web.archive.org/web/20001007124838/http://www.physik.uni-regensburg.de/~krm03530/WinCoCoA.html WinCoCoA] by "a small group of mathematicians at Universität Regensburg", possibly including Alessandro Polverini and Martin Kreuzer (but probably more?!).
 +
 
 +
[ToDo: Any more information?]
 +
 
 +
==Running CoCoA 3 Today==
 +
 
 +
There are two main ways of running CoCoA 3 (that we currently know of), which both have two sub-options:
 +
* Running CoCoA 3.7 on SGI IRIX
 +
* Running CoCoA 3.6 on HP-UX
 +
 
 +
The sub-options are for both:
 +
* Running CoCoA 3 on original hardware
 +
* Emulating the old system and running CoCoA 3 on it
 +
 
 +
If you still have either a HP workstation running HP-UX or a SGI IRIX-based system, you can (probably) run CoCoA 3 on it, congrulations!
 +
From my (Nico Mexis) experience, however, you need to be careful when buying hardware specifically for this purpose! The following subsubsections will explain why.
 +
 
 +
If you don't have such a system, you can try to emulate it, as described below!
 +
 
 +
===SGI IRIX===
 +
 
 +
The best way (as of 2024) to emulate a SGI IRIX-based system is to use [https://www.mamedev.org/ MAME].
 +
A beautiful guide to how to set up MAME to run IRIX can be found for example [https://sgi.neocities.org/ here].
 +
 
 +
HOWEVER! CoCoA 3.7 is refusing to run on both images that are linked there (5.3 and 6.5.22).
 +
The specific error message is: "Program not supported by architecture", which makes me (Nico Mexis) believe that CoCoA 3.7 requires some newer SGI IRIX-based machine.
 +
The guide linked above can only emulate the SGI Indy and SGI Indigo², both of which do not work with the specific build of CoCoA 3.7.
 +
 
 +
Things I have already tried so you do not have to:
 +
* Installing the Development Foundation CD (probably required anyway since it contains <code>libm.so</code>, which does not seem to be pre-installed)
 +
* Requickstarting the binary exectuable (using <code>rqsread</code> and <code>rqsall</code>)
 +
* Trying to emulate other systems (not possible in MAME)
 +
 
 +
If you want to take a shot yourself, just follow the guide linked above and try to run CoCoA 3.7 on it. If you succeed, please let us know!
 +
A few tips to get started:
 +
* In order to transfer the required files to the emulated system, you can use the <code>ftp</code> command in the IRIX shell (do not forget to enable passive mode right away using <code>pass</code>)
 +
* Another way to do this is to generate a ISO 9660 filesystem image using [https://wiki.debian.org/genisoimage genisoimage] and then mount it in the emulated system as a CD using MAME's built-in menu
 +
* I have used MAME 0.265, but newer versions should work as well (if not better)! I had to use a few special arguments to be able to boot into SGI IRIX properly, though (which severly slow down the emulation - most probably due to [https://github.com/mamedev/mame/issues/11124 this bug]): <code>mame indy_4610 -gio64_gfx xl24 -hard1 irix65.chd -window -nodrc -throttle -mouseprovider dinput</code>
 +
* Emulating the Indigo² seems to be rather WIP - so stick with the Indy - the architecture is the same anyway
 +
 
 +
Good luck! :)
 +
 
 +
===HP-UX===
 +
 
 +
This is probably the easier way to run CoCoA 3 today, as emulating an HP workstation running HP-UX is very straightforward:
 +
Most of the things needed are written in [https://dehydrations18.rssing.com/chan-9990986/article181.html this guide].
 +
 
 +
A few things to note:
 +
* I was using QEMU 9.0.0 and it seems like the speed has improved since the article above was written. The entire installation took less than half an hour on my (Nico Mexis) system!
 +
* Just like in SGI IRIX, use the <code>ftp</code> command to transfer the required files to the emulated system (again, in passive mode as described above) - or a ISO 9660 filesystem image as CDROM
 +
* Then use <code>gunzip</code> and <code>tar</code> to extract the CoCoA 3.6 files
 +
* To change the CDROM during HP-UX installation, use [https://www.linux-kvm.org/page/Change_cdrom these commands]
 +
* My specific command line to run the emulator was: <code>qemu-system-hppa -boot d -drive if=scsi,bus=0,index=6,file=disk.img,format=qcow2 -m 512 -d nochain -cdrom hp-ux-1of4.iso -net nic,model=tulip -net user -monitor stdio</code>
  
==Platforms & Interfaces==
+
With that being said, you should also be able to catch a glimpse of CoCoA 3.6 running on HP-UX before your very own eyes! :)
[ToDo]
 
  
 
==Downloads==
 
==Downloads==
[ToDo]
+
 
 +
CoCoA 3.6 is still available for download for HP workstations (running HP-UX) [https://cocoa.dima.unige.it/cocoa/download/index4.html here].
 +
 
 +
CoCoA 3.7 can also be downloaded there, but only for systems running SGI IRIX.
 +
 
 +
[ToDo: Are there more downloads somewhere? The WaybackMachine has not archived any more... Probably, the rest were only available on floppy disks or on the FTP server that was advertised back then...]
 +
 
 +
==Sources==
 +
For anyone who is interested:
 +
* [http://web.archive.org/web/*/cocoa.dima.unige.it*]
 +
* [http://web.archive.org/web/19980109184708/http://cocoa.dima.unige.it:80/]
 +
* [http://web.archive.org/web/*/http://www.physik.uni-regensburg.de/~krm03530/*]
 +
* [http://web.archive.org/web/20000128093234/http://www.physik.uni-regensburg.de:80/~krm03530/WinCoCoA.html] and also the newer archives
 +
* [http://web.archive.org/web/19981206220942/http://www.physik.uni-regensburg.de/%7Ekrm03530/cocoa/distribute.html]
 +
* [http://web.archive.org/web/19981207060016/http://ideal.dima.unige.it/distribute.html]
 +
 
 
[[Category:History]]
 
[[Category:History]]

Latest revision as of 07:50, 23 May 2024

CoCoA 3.6 running on HP-UX.

About

CoCoA 3 was developed from 1995 (first release) to 2000.

Sub versions

  • CoCoA 3.0b (June 1995)
  • CoCoA 3.02b (1996)
  • CoCoA 3.3 (1997)
  • CoCoA 3.4 (March 1998)
  • CoCoA 3.5 (July 1998)
  • CoCoA 3.6 (December 1998)
  • CoCoA 3.7 (June 1999)

The Header

The header is defined in lib/cocoa/coclib.pkg and looks like this:

------------------- ------------------------------------------
------   )))   ----  CoCoA 3 release X.X
--   ___(((_ _   --
--  |       | )  --  by A.Capani, G.Niesi, L.Robbiano
--  | CoCoA |/   --
--  |   3   |   ---  contributors  : type "Contrib();"
---  \_____/  -----  online help   : type "Man();"
-----       -------  release notes : type "RelNotes();"
------------------- ------------------------------------------

The Interface

CoCoA 3.6 running a few basic functions on HP-UX.

A full description of the architecture of CoCoA 3 is presented in Antonio Capani's Ph.D. Thesis (gzipped postscript format).


The People Behind It

The CoCoA 3 header lists three main authors:

  • Antonio Capani
  • Gianfranco Niesi
  • Lorenzo Robbiano

Furthermore, the command Contrib() lists the following contributors:

  • John Abbott (for factorization and linear algebra)
  • Anna Bigatti (for Hilbert-Poincare series, toric ideals)
  • David Perkinson (for the online help system)
  • Alessandro Polverini (for Windows 95 interface, porting to DOS)
  • Massimo Caboara (testing)
  • Martin Kreuzer (testing)

Features

CoCoA 3.0b

  • portability (90% of the system is independent of the platform)
  • programmability (CoCoAL language)
  • arbitrary precision for integer and rational numbers

CoCoA 3.02b

  • [ToDo]

CoCoA 3.3

Main new features:

  • interactive Gröbner framework;
  • new algorithms for minimal free resolutions;
  • packages;
  • new I/O management (devices).

CoCoA 3.4

Main new features:

  • ring maps;
  • improvement of CoCoAL language;
  • univariate factorization over Z;
  • computation of toric ideals;
  • online help.

CoCoA 3.5

Main new features:

  • improvement of CoCoAL language;
  • new memory management (simpler way to access variables of different rings);
  • autoloading and autoinitializing of packages;
  • univariate factorization over Z, Q, and Z/pZ for p prime;
  • an updated online help system and an html manual;
  • new packages from contributors (integer programming, special varieties, radical).

CoCoA 3.6

Main new features:

  • a new package for computations with ideals of points;
  • faster computation of Hilbert functions and Poincare series (the POINCARE panel is now unnecessary and so has been disabled);
  • a new version of the package for computing radicals of ideals (which now works in greater generality);
  • the possibility to have a system-wide Unix/Linux installation.

CoCoA 3.7

Main new features:

  • Multivariate factorization over the integers;
  • utility functions for modules/vectors (IsTerm, LM, LPP, LPos, Monomials/IsToPos..);
  • faster computation of operations on ideals (intersections, saturations,...);
  • faster computation of the determinant of matrices with integer entries
  • new packages from contributors (algmorph, galois).


Platforms & Interfaces

Systems that were for sure supported:

  • Macintosh 68k computers using MacOS (labelled mac_68k)
  • Macintosh Power PC computers (labelled mac_ppc)
  • PC computers with DOS or Windows 3.11 (labelled pc_dos)
  • PC computers running Windows 95 or Windows NT (labelled pc_win32)
  • PC computers running the LINUX operating system (labelled pc_linux)
  • SUN workstations using the Sun 4 operating system (labelled sun_sun4)
  • SUN workstations using the Solaris operating system (labelled sun_solaris)
  • DEC Alpha workstations (labelled dec_alpha)
  • HP workstations (running HP-UX; labelled hp)
  • SGI IRIX-based systems (probably only models that are also supported by IRIX 6.5.23+ releases and hence are 64-bit; in cooperation with EURANDOM; labelled irix64)

There was also WinCoCoA by "a small group of mathematicians at Universität Regensburg", possibly including Alessandro Polverini and Martin Kreuzer (but probably more?!).

[ToDo: Any more information?]

Running CoCoA 3 Today

There are two main ways of running CoCoA 3 (that we currently know of), which both have two sub-options:

  • Running CoCoA 3.7 on SGI IRIX
  • Running CoCoA 3.6 on HP-UX

The sub-options are for both:

  • Running CoCoA 3 on original hardware
  • Emulating the old system and running CoCoA 3 on it

If you still have either a HP workstation running HP-UX or a SGI IRIX-based system, you can (probably) run CoCoA 3 on it, congrulations! From my (Nico Mexis) experience, however, you need to be careful when buying hardware specifically for this purpose! The following subsubsections will explain why.

If you don't have such a system, you can try to emulate it, as described below!

SGI IRIX

The best way (as of 2024) to emulate a SGI IRIX-based system is to use MAME. A beautiful guide to how to set up MAME to run IRIX can be found for example here.

HOWEVER! CoCoA 3.7 is refusing to run on both images that are linked there (5.3 and 6.5.22). The specific error message is: "Program not supported by architecture", which makes me (Nico Mexis) believe that CoCoA 3.7 requires some newer SGI IRIX-based machine. The guide linked above can only emulate the SGI Indy and SGI Indigo², both of which do not work with the specific build of CoCoA 3.7.

Things I have already tried so you do not have to:

  • Installing the Development Foundation CD (probably required anyway since it contains libm.so, which does not seem to be pre-installed)
  • Requickstarting the binary exectuable (using rqsread and rqsall)
  • Trying to emulate other systems (not possible in MAME)

If you want to take a shot yourself, just follow the guide linked above and try to run CoCoA 3.7 on it. If you succeed, please let us know! A few tips to get started:

  • In order to transfer the required files to the emulated system, you can use the ftp command in the IRIX shell (do not forget to enable passive mode right away using pass)
  • Another way to do this is to generate a ISO 9660 filesystem image using genisoimage and then mount it in the emulated system as a CD using MAME's built-in menu
  • I have used MAME 0.265, but newer versions should work as well (if not better)! I had to use a few special arguments to be able to boot into SGI IRIX properly, though (which severly slow down the emulation - most probably due to this bug): mame indy_4610 -gio64_gfx xl24 -hard1 irix65.chd -window -nodrc -throttle -mouseprovider dinput
  • Emulating the Indigo² seems to be rather WIP - so stick with the Indy - the architecture is the same anyway

Good luck! :)

HP-UX

This is probably the easier way to run CoCoA 3 today, as emulating an HP workstation running HP-UX is very straightforward: Most of the things needed are written in this guide.

A few things to note:

  • I was using QEMU 9.0.0 and it seems like the speed has improved since the article above was written. The entire installation took less than half an hour on my (Nico Mexis) system!
  • Just like in SGI IRIX, use the ftp command to transfer the required files to the emulated system (again, in passive mode as described above) - or a ISO 9660 filesystem image as CDROM
  • Then use gunzip and tar to extract the CoCoA 3.6 files
  • To change the CDROM during HP-UX installation, use these commands
  • My specific command line to run the emulator was: qemu-system-hppa -boot d -drive if=scsi,bus=0,index=6,file=disk.img,format=qcow2 -m 512 -d nochain -cdrom hp-ux-1of4.iso -net nic,model=tulip -net user -monitor stdio

With that being said, you should also be able to catch a glimpse of CoCoA 3.6 running on HP-UX before your very own eyes! :)

Downloads

CoCoA 3.6 is still available for download for HP workstations (running HP-UX) here.

CoCoA 3.7 can also be downloaded there, but only for systems running SGI IRIX.

[ToDo: Are there more downloads somewhere? The WaybackMachine has not archived any more... Probably, the rest were only available on floppy disks or on the FTP server that was advertised back then...]

Sources

For anyone who is interested: