dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #25839
Re: Improvements in generation of SWIG interface
Looks like this has re-introduced an old bug. It's not possible to run
generateswigcode.py without DOLFIN being installed. This is a circular
dependency. I get
Traceback (most recent call last):
File "generateswigcode.py", line 32, in <module>
from dolfin_utils.cppparser import *
ImportError: No module named dolfin_utils.cppparser
Garth
On 13 August 2012 09:51, Johan Hake <hake.dev@xxxxxxxxx> wrote:
> Hello!
>
> I have improved (hopefully!) the automatic generation of the SWIG
> interface of DOLFIN by reducing the size of the generated
> modulePYTHON_wrap.cxx file, with the result of using less memory during
> compilation of the individual modules. It now peaks at 650 MB instead of
> 1.2 GB. The reduced interface is accomplished by only importing and
> including the dependent dolfin types for each module. Previously we
> exposed the whole dolfin library to all modules.
>
> The reduced import is accomplished by parsing all .h files in the DOLFIN
> tree, and collecting dependencies. For this I used a python module
> called CppHeaderParser. It is released using BSD license and is included
> in dolfin_utils. I have worked together with Jashua Cloutier the
> developer of CppHeaderParser to make it parse the whole DOLFIN library.
>
> CppHeaderParser depends on ply.lex, which is distributed in debian in
> the python-ply package. So one either need to:
>
> sudo apt-get install python-ply
>
> or
>
> pip install ply
>
> using PyPI.
>
> JIT compilation of dolfin modules (Expressions and SubDomains) is also
> much faster now, as the JIT compiled DOLFIN code is parsed runtime and
> only dependent files are included or imported when the SWIG interface is
> generated. Running Expression.py unit test takes 42 s instead of 140 s.
>
> Not everything could be automated through the parsing, as the
> Hierarchical class with all its derived classes causes huge pain for
> SWIG. The pain was, however, overcome by two simple hacks in
> generateswigcode.py and compileextensionmodule.py.
>
> Regards,
>
> Johan
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help : https://help.launchpad.net/ListHelp
Follow ups
References