Skip to content

Porting instructions

Singular2 edited this page Sep 15, 2011 · 8 revisions

To create a test (spielwiese) environment:

  1. get the sources with git clone -b spielwiese git://git.berlios.de/singular <directory_name>
  2. cd <directory_name_from_above>
  3. run ./for_Hans_with_love.sh from the root directory
  4. run ./configure
  5. make (or make -jN where N is the number of the your CPU cores + 1)

How to test the built (spielwiese) Singular:

  1. make check will build and run simple unit-tests in omalloc/, libpolys/, kernel/ and Singular/
  2. the test-suites from Tst/ can be run, for example, as follows:
  3. cd Tst/
  4. ln -s ../Singular/LIB
  5. ln -s ../Singular/Singular
  6. ln -s ../Singular/Singularg
  7. ln -s ../libpolys/polys/.libs MOD
  8. after the above symbolic-linking one can simply run ./regress.cmd something.{lst,tst}, where .lst files are just lists of tests, which are .tst files

How to build the legacy Singular:

  1. get the sources with git clone -b trunk git://git.berlios.de/singular <directory_name>
  2. cd <directory_name_from_above>
  3. run ./configure from the root directory
  4. make install (or make -jN install, where N as above), and yes it should really be install!
  5. everything will be put to the newly created directory "$Architecture-$OS/" (e.g. x86_64-Linux, ix86-Linux etc.)

What to look for?

  1. we would like to start with the very basic Singular functionality.
  2. we are looking for broken features and need tests in order to check the correctness of our fixes
  3. beware that some tests in test-suite take way tooooo long!
  4. furthermore, some features of the legacy Singular are commented out or switched off at the moment: we will try to get them back while testing them against the legacy Singular using existing code from test-suites or manual.
  5. In the very bad case of a feature without any reflection in test-suites and manual - one will have to fix this!

What changed?

  1. lots of stuff moved in the headers, which messes up the includes. This should be fixed already. If there is still a problem look in test.cc for the correct includes.
  2. coefficients were separated from polynomial rings.
  • There is a new type coeffs.
  • Operations on coeffs are done by n_* functions, where coeffs is the last argument (consider it as the context storing information on the coefficient domain).
  • Functions like nAdd(a, b) become n_Add(a, b, r).
  1. new arithmetic functions.
  • Same as the previous.
  • Arithmetic is done with p_* functions, which take a ring as the last argument.
  • The use of the global variable currRing is discouraged.
  1. please use ring members (e.g. r->N) instead of (currRing specific) global variables (e.g. pVariables)

Clone this wiki locally