Skip to content

Spielwiese TODO Overview

jankoboehm edited this page Feb 22, 2013 · 87 revisions

rough overview for the coding sprint

Note: In order to avoid desperate last-minute setting up before the coding sprint, please consider checking resp. setting up according to Prepare for coding sprint

Summary:

  • Documentation: Take from master branch, remove MP, sort out differences

  • Libraries: Basically done, remove MP. Reimplement Watchdog, Timestd (uses MP, now simpler).

  • Paths: Discuss, build version should work like installed version.

  • Bugs: see below.

  • Links/Signals: Take from master and adjust. Important for parallel.lib.

  • Field extensions: Present stuff (sparse) should work to compare with new version (dense).

  • Important bugs:

    • ZZ-coefficients (intersectZ, minassZ, radicalZ, primdecZ, ringZ) (done)
    • chineseRemainder
    • imap (done)
    • Groebner walk (discuss with Gerhard)

Missing (?) Commits:

  • many tests fail due to missing commits from master (see cherry)!!!
    • either go through commits (a lot of commits)
    • or for each fail search missing stuff (dengerous!!!)
    • how to deal with Hans's commits (too many of them + might be difficult to check)
  • Examples of known issues which are probably due to missing commits:
    1. Manual/testNCfac.tst ?
    2. O: dump/read/write* output difference: Old/m24si.tst
    3. missing aliases? Short/alias.tst
    4. mlee: signed/positive 'mod' (different to master). Examples: Manual/chineseRem.tst (&Manual/coeffmod.tst?)
    5. O: missing Interpreter update: different indentation output during package/variables listing (e.g. Manual/{Dynamic_modules,Loading_a_library,Miscellaneous_oddities_4,exportto,importfrom,listvar,load,package_declarations}.tst)
    6. O: "chinrem/extgcd"? Short/paraplan_s.tst, Manual/rationalPointConic.tst: probably due to missing Hans's commits from master: 10912c588c406e6aab9dd2342c3d0c200096cb22 and 4b8a660ce83e9c109ec9eae1f413ab721fea2fd4 (see also paraplanecurves.lib::squareRoot)
    7. missing Interpreter update: '// ** SOME_VARIABLE_NAME is already global': see Manual/{allprint.tst,texobj.tst,closureFrac.tst,KSconvert.tst,texmap.tst,morsesplit.tst}
    8. mlee: ebf3a465 "primeFactorization"? see: Manual/primefactors.tst
    9. mlee: f25cc9241 seems to affect option handling
    10. mlee: 125f6587 see Short/bug_tr300.tst
    11. ~~O.: the following bug has been fixed in master but not in SW:ring r = integer,(x),dp;ideal i=0;qring q=i; // segfault !~~~

Bugs:

Differences in GB-engine:

  • possibly different degree functions and/or
  • possibly different option selected

Example tests:

  1. Manual/Tracing_of_procedures.tst (!) (invalid results, Yue)

  2. Old/weight2.tst

  3. Old/res.tst, Old/res2.tst, Old/std_test.tst, Old/Example_3_2_3.tst (fixed already)

Maps between different rings

  • imap/fetch
  • map (mlee: done)

stuff modifying the ring structure

  • Groebner walk: currently completely broken
    1. Manual/frwalk.tst
  • ringsum
    1. Short/ring*.tst
  • ring.lib
  • ringlist
  • introducing a new type for "coeff" ?

integer as coeff

  • ringtype versus cf->type mlee: got rid of ringtype
  1. minAssZ, ringz, ...

tranzedental/algebraic extensions

  • what is the "normal form"
  • when to normalize
  • general tests

see also: Remaining failing tests with SW

  1. Old/agnes.tst
  2. Old/algnorm.tst,...
  3. Old/Zahlen0.tst

integer linear algebra

  • qhweight/weights: overflow checks and/or use bigintmat
  1. Short/qhw_s.tst (mlee: seems to fail only on 32-bit now)

Check Python-related stuff (TODO: A.Dreyer?)

  1. pyobject*
  2. polybori*

NOTE/TODO: SW currently fails without '--without-python' in case of building a 32-bit version on 64-bit machine :-/ (configured with CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 using appropriate 32-bit builds of GMP/NTL...) AD: https://github.com/Singular/Sources/pull/261 should fix this issue.

NOTE: Assuming GMP, NTL and python2.7 are installed under ROOT32, here is a working configure command:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOT32/lib ../configure --with-gmp=$ROOT32 --with-ntl=$ROOT32 CFLAGS=-m32 CXXFLAGS=-m32 'LDFLAGS=-m32 -L$ROOT32/lib' PKG_CONFIG_PATH=$ROOT32/lib/pkgconfig/ --with-python=$ROOT32/bin/python2.7

NOTE: building a suitable 32-bit python on 64 Linux required manual corrections for installed (config) files!

General

update libraries

  • needs to be ported from master (Done by O. not easy...)

loading modules/libs

  • needs to be ported from master
  • needs discussions about standard paths

parallel.lib/signal handling/ssi-links

  • needs to be ported from master

modstd.lib.loc (?),normal.lib,modnormal.lib

  • needs to be based on waitfirst/waitall/parallel.lib (?!)

Testing without NTL (SW_Test_no_NTL on TC) takes too much time with many more errors!!!

  • configure with --without-ntl --with-ntl=no

Adapt Sage/lmonade (TODO: Burcin?)

  • create a SW package
  • use SW (libSingular +....) instead of late libsingular in cython library layer (?)

Warnings elimination (easy task for people with a bit of C/C++ understanding)

  1. choose a single simple warning occurring in multiple places and assign it to you (e.g. by writing about it here)
  2. investigate the issue
  3. find the best solution
  4. in a non-trivial case: discuss it with others
  5. fix it everywhere (e.g. using the multiple-search-and-replace tool)

here are some tips to make the hunt easier:

  • configure with "CFLAGS=-Wno-unused-function -Wno-unused-parameter -Wno-unused-variable" "CXXFLAGS=-Wno-unused-function -Wno-unused-parameter -Wno-unused-variable"
  • make with something like make -j 1 LIBTOOLFLAGS=--silent QUIET=yes -s V=0 >log 2>&1
  • best to use clang - configure with 'CC=clang' 'CXX=clang++'

Currently failing tests (49):

'New' probably due to missing commits (see above):

  1. Manual/CornacchiaModified.tst (line 236 in atkins.lib in example: -(D mod 2) = 1 in master, but = -1 in spielwiese)
  2. Manual/Schoof.tst
  3. Manual/Tracing_of_procedures.tst (invalid results, Yue)
  4. Manual/bigint_operations.tst
  5. Manual/chineseRem.tst
  6. Manual/coeffmod.tst
  7. Manual/facFirstShift.tst
  8. Manual/facSubWeyl.tst
  9. Manual/listvar.tst (invalid results, Yue)
  10. Manual/powerpolyX.tst (difference in res: +2x instead of -3x; calculations done modulo 5)
  11. Short/bug_tr329.tst (commit is imported to spielwiese, see 2fd733a; minimal failing code: "ring r=(0,c),x,dp; 1/3<1/2;")
  12. Short/ncfactor_example2_7FromMaster_s.tst
  13. Short/ncfactor_koepfShift_s.tst
  14. Short/ncfactor_koepf_s.tst
  15. Short/ncfactor_tsai_s.tst

Done? - TO check!

  1. Manual/Dynamic_modules.tst (missing kstd dynamic module, TODO: update build system)
  2. Manual/Loading_a_library.tst
  3. Manual/Miscellaneous_oddities_4.tst
  4. Manual/exportto.tst
  5. Manual/importfrom.tst
  6. Manual/load.tst
  7. Manual/package_declarations.tst
  8. Manual/rationalPointConic.tst
  9. Old/m24si.tst
  10. Short/alias.tst (note: running through -teq fails in both master and spielwiese, if not run in Sources folder)
  11. Short/bug_tr357.tst
  12. Short/paraplan_s.tst

the rest:

  1. Buch/Example_1_9_31.tst
  2. BuchDL/Ex_L6.tst O.
  3. BuchDL/Ex_L9.tst
  4. Manual/AGcode_Omega.tst
  5. Manual/frwalk.tst
  6. Manual/intersectZ.tst
  7. Manual/minAssZ.tst
  8. New/stdZ.tst
  9. Manual/paraPlaneCurve.tst
  10. New/testParametrization_2.tst
  11. New/quotient_cleardenom.tst
  12. New/sat_cleardenom.tst
  13. New/syz_cleardenom.tst
  14. Manual/primdecZ.tst
  15. Manual/primeClosure.tst
  16. Manual/radicalZ.tst
  17. Manual/syz_BR_PLURAL_BR.tst
  18. Manual/testNCfac.tst
  19. New/bigints.tst
  20. Old/agnes.tst
  21. Old/algnorm.tst
  22. Old/longalg.tst
  23. Old/palg.tst
  24. Old/weight2.tst
  25. Old/zahlen0.tst
  26. Plural/Syz-qso3-q3.tst
  27. Plural/doc-std.tst
  28. Plural/doc-syz.tst
  29. Short/brnoeth_s.tst
  30. Short/equising_s.tst
  31. New/hnoether_transcendental.tst
  32. Short/gcdp_s.tst
  33. Short/imap.tst
  34. Short/ncfactor_example_all_procedures_s.tst
  35. Short/ncfactor_inhomog_s.tst
  36. Short/rInit.tst
  37. Short/ringmod2m.tst
  38. Short/ringz.tst

Done? - TO check!

  1. Manual/KSconvert.tst

  2. Manual/allprint.tst

  3. Manual/closureFrac.tst

  4. Manual/morsesplit.tst

  5. Manual/primefactors.tst

  6. Manual/texmap.tst, Manual/texobj.tst

  7. Short/bug_tr300.tst

  8. Short/primefactors.tst

  9. Manual/multiDegBasis.tst

Special cases:

Some tests that fail together with normaliz 2.8 (e.g. on wawa):

  1. Manual/diagInvariants.tst
  2. Manual/ehrhartRing.tst
  3. Manual/exportNuminvs.tst
  4. Manual/finiteDiagInvariants.tst
  5. Manual/intclMonIdeal.tst
  6. Manual/intclToricRing.tst
  7. Manual/intersectionValRingIdeals.tst
  8. Manual/intersectionValRings.tst
  9. Manual/normalToricRing.tst
  10. Manual/normaliz.tst
  11. Manual/readNmzData.tst
  12. Manual/showNuminvs.tst
  13. Manual/torusInvariants.tst

On any 32-bit machine:

  • Short/qhw_s.tst fails due to "signal 6" (SIGABRT) with -ftrapv: (fixed with -fwrapv for misc/intvec.cc)

Do the same for factory (immediate integer multiplication imm.h)???

Only on flammo (not on mamawutz!!!):

see the comments to (https://github.com/Singular/Sources/pull/236). Examples:

  • Manual/Cornacchia.tst
  • Manual/CornacchiaModified.tst
  • Manual/ShanksMestre.tst
  • Manual/ellipticAllPoints.tst
  • Manual/ellipticRandomCurve.tst
  • Manual/ellipticRandomPoint.tst
  • Manual/factorLenstraECM.tst
  • Manual/rootsModp.tst
  • Manual/squareRoot.tst

There are some tests failing randomly already in master:

  1. Manual/normalToricRingFromBinomials.tst
  2. Manual/primeClosure.tst (TODO: Janko???)

And only on 32-bit machines:

  1. Eliminations (order of output elements)
    • Manual/Elimination.tst, Old/m8ex.tst

Further tasks:

Windows build (Yue?, Janko?)

  • SW building direcftly on some Cygwin Windows machine
  • Cross-compiling?

Required is:

  • GMP

Needed are:

  • NTL or FLINT
  • readline?

Note: see also Building Singular from source

Path names

To be decided! Current installation tree: SW-Tree

{Enable/With}-* configure arguments

Discuss the following:

  • enable/disable arguments (take no arguments) - should turn on/off internal features/subsystems?
  • with/without arguments (able to take arguments) - should concern whole external packages?

Test coverage

(Ask Olaf?)

Clone this wiki locally