1 | Requirements: |
---|
2 | ------------ |
---|
3 | install scons (the build tool) |
---|
4 | install boost::python |
---|
5 | install boost |
---|
6 | dynamic modules working |
---|
7 | have a working Singular build directory |
---|
8 | NOSTREAMIO disabled in factory (rebuild also claptmpl.o in Singular) |
---|
9 | install python-numeric (for matrix report) |
---|
10 | |
---|
11 | Suggested additional modules: |
---|
12 | probstat: fast (C-Impl.) combinatorics (permutations, cartesian products) |
---|
13 | |
---|
14 | supported interpreter values: |
---|
15 | |
---|
16 | INPUT: |
---|
17 | int |
---|
18 | poly |
---|
19 | vector |
---|
20 | number |
---|
21 | matrix |
---|
22 | ideal |
---|
23 | list |
---|
24 | string |
---|
25 | ring |
---|
26 | intvec |
---|
27 | |
---|
28 | Output: |
---|
29 | int |
---|
30 | poly |
---|
31 | vector |
---|
32 | number |
---|
33 | matrix |
---|
34 | ideal |
---|
35 | list |
---|
36 | string |
---|
37 | ring |
---|
38 | intvec |
---|
39 | |
---|
40 | typemappings: |
---|
41 | interpreter, python internal, python official name |
---|
42 | int -> int |
---|
43 | poly -> Poly ->polynomial |
---|
44 | vector -> Vector -> vector |
---|
45 | number -> Number ->number |
---|
46 | matrix -> Numeric.array |
---|
47 | ideal -> Ideal ->ideal |
---|
48 | list -> list |
---|
49 | string -> str |
---|
50 | ring -> ring(in a Ring, but this does nothing) ->ring |
---|
51 | BUILD: |
---|
52 | -------- |
---|
53 | just type: |
---|
54 | scons |
---|
55 | |
---|
56 | adjust PYTHONPATH: |
---|
57 | ----------------- |
---|
58 | python must be able to find interpreter.py |
---|
59 | so either |
---|
60 | export PYTHONPATH="<singroot>/modules/python" |
---|
61 | but |
---|
62 | for me simply |
---|
63 | export PYTHONPATH= |
---|
64 | also works |
---|
65 | |
---|
66 | Test: |
---|
67 | ----- |
---|
68 | ../../Singular/Singular <testfile> |
---|
69 | where testfile is in |
---|
70 | powertester |
---|
71 | polytester interpretertester |
---|
72 | if an exceptions occurs, review the code it may be wanted for examples the last line in interpretertester |
---|
73 | |
---|
74 | TASKS: |
---|
75 | ------ |
---|
76 | - push and pop rings, automatically change rings, if Singular functions are executed |
---|
77 | -Map more types |
---|
78 | -throw Python exception if something fails |
---|
79 | -testing |
---|
80 | -write some module presenting the power of python |
---|
81 | compared to the Singular interpreter language |
---|
82 | - make modgen work properly |
---|
83 | - make the functionality available build in the kernel for the windows platform |
---|
84 | - documentation |
---|
85 | - provide feedback for missing functionality |
---|
86 | |
---|
87 | RULES: |
---|
88 | ----- |
---|
89 | |
---|
90 | If you want to help, which would make me happy, follow some simple rules: |
---|
91 | |
---|
92 | - divide the work in layers, so what is a problem of a better C++-Interface should be done in the Singular kernel (compare Number.h, Poly.h PowerSeries.h), the Pythonwrapper itself should be ultrathin |
---|
93 | -raw operations (+,-,* creation of res...) should map directly to the Singular kernel (prefereable nice C++ wrapper classes in the kernel) |
---|
94 | - Wrapper classes in C++ should behave like canonical C++-Classes, no additional res.-management (with the exception of new, delete) should be required |
---|
95 | - never use currRing implicitely, always write out the currRing argument, if this isn't done consequently in my code, it would be nice of you to fix it |
---|
96 | - regularly check in, check out from CVS |
---|
97 | |
---|
98 | |
---|
99 | NEWS: |
---|
100 | *global_functions has be renamed to singular_globals_proxy |
---|
101 | the old name exists for short time for compat. |
---|
102 | |
---|
103 | *it is now possible to use the singular_globals_proxy for |
---|
104 | -reading global variables |
---|
105 | -writing global variables, if the var exists with the correct type in the interpreter |
---|
106 | -calling global interpreter and builtin functions (not builtins, for example groebner but not std |
---|
107 | |
---|
108 | successfully tested systems: |
---|
109 | linux: x86, x86_64 |
---|
110 | Mac OS X:G4 |
---|
111 | |
---|
112 | |
---|
113 | |
---|
114 | |
---|
115 | |
---|