[go: up one dir, main page]

Menu

[bf0934]: / INSTALL  Maximize  Restore  History

Download this file

86 lines (74 with data), 3.8 kB

This project is licensed under the GNU General Public License, version 
2.0.  The contents of the bin/ directory have mostly been ripped 
wholesale from the checks/ directory of the GiNaC 1.3.0 tarball.  All
other components are Copyright (c) 2004 Jonathan Brandmeyer.
This version is patched to work with the current GiNaC by Vladimir V. Kisil.

--- Portability ---
PyGiNaC itself only uses ISO C++.  GiNaC and CLN, upon which GiNaC is
built, can be build on OS-X or MS Windows. Look the GiNaC web site
(http://www.ginac.de),  MoebInv Wiki
(https://sourceforge.net/p/moebinv/wiki/Mac%20installation/) and the Web
for further advises.


Each dependancy includes the name of the package in Debian Sid and Sarge that
satisfies the requirement.

Dependencies:
	Python 2.2 or higher, 2.7.11 recommended (python2.7-dev)
	The Boost libraries 1.31.0 or higher (libboost-python-dev)
	GiNaC 1.3.0 or higher, tested with 1.6.7-1.7.0 (libginac-dev)
	(pyGiNaC v.1.2 is the last version working with GiNaC version prior 1.5)

Build dependencies (only needed to build PyGiNaC):
	Scons (scons)
	GNU G++ 3.2 or higher (5.3.1 tested) (g++-5)
	Lotsa RAM.  The compiler takes a _lot_ of memory to build PyGiNaC, although
		you will not generally need nearly as much to run it.
	
Building:
	Once you have all of the dependencies and build-dependencies installed on
	your system, you only need to run one command:
	$ scons
	This will build the extension module in-place.  "scons install" is not
	yet supported, since this extension is very young.

Usage:
	You can use the "run" script to start an interactive session of Python that will be
	able to use PyGiNaC:
	$ ./run python
	or
	$ ./run python bin/some_script_file.py

	It is better to use some wrapper of Python, e.g. iPython, idle or pyzo. In the case
	of iPython the above example shall look like:
	$ ./run ipython

Files:
	src/*: C++ source files to bind Python to the C++ GiNaC library.
	src/check: C++ source files of tests included with GiNaC, to be ported
		to PyGiNaC and placed in bin/
	include/: C++ header files
	site-packages/ginac/*: Python source files
	site-packages/: Location for in-place construction of the target shared
		object.
	bin/*: Standalone Python scripts.  These scripts are all tests or demos
		of the PyGiNaC interface.
	SConstruct: The file which controls the build.  See scons(1).
	INSTALL: This file
	run: An executable Bourne shell script that sets up environment variables
		for running PyGiNaC-using scripts against a freshly built version of
		PyGiNaC in-place.
	linux-symbols.map: A linker version script for GNU ld on ELF.  By making 
		all	symbols other than the import function local, the dynamic symbol
		table is much smaller.  (Note that Boost.Python uses a lot of
		templates, which makes for a _large_ number of _really_long_ symbols).
		This makes loading the extension module much faster, and the size 
		of the shared object is reduced by roughly 50%.  This will probably be
		replaced in the future with GCC 4.0's -fvisibility option.

TODO: These were high-level projects of the original developers.  The
	current maintainer does not have resources and abilities to
	complete them. Feel free to send your patches for these and
	other improvements.

	* Write Python versions of the tests found in src/tests
	* Create a map_function system, probably based on python function
		objects
	* Wrap more of the GiNaC classes and objects.
	* Add extra member access functions for higher-level access of containerish
		types, like power.basis() and power.exponent(), for example.
	*  Make every func capable of taking more than one argument also take args
		in keyword form.
	* Port the documentation examples to talk about PyGiNaC's interface rather
		than ginsh or GiNaC C++.