Difference between revisions of "CoCoA:CoCoA 3"
Line 127: | Line 127: | ||
==Running CoCoA 3 Today== | ==Running CoCoA 3 Today== | ||
− | There are two main ways of running CoCoA 3, which both have two sub-options: | + | 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.7 on SGI IRIX | ||
* Running CoCoA 3.6 on HP-UX | * Running CoCoA 3.6 on HP-UX |
Revision as of 07:50, 23 May 2024
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
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
andrqsall
) - 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 usingpass
) - 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
andtar
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: