Mail Archives: geda-user/2016/04/18/17:52:49
Hi,
I just merged Guile support for the new netlister. In short, just add the
following line to your gnetlistrc file in order to use the refactored
netlist frontend:
(set! use-new-frontend #t)
This is made possible by five different parts working together under the
hood:
- the module "xorn.guile" which allows adding Guile as a script
interpreter to a Python application,
- the module "xorn.geda.netlist.guile" which implements the gnetlist API
functions and exports them to Guile,
- the "guile" backend which allows using a Scheme backend with the new
netlister,
- the "gnetlist2" executable which acts as a drop-in replacement for
gnetlist, running the "gafrc" and "gnetlistrc" scripts and composing and
invoking a xorn-netlist command line, and
- gnetlist itself, which detects whether "use-new-frontend" is set and
branches conditionally to gnetlist2.
New-style "geda.conf" configuration files, Guile functions as a symbol
library, and most of the libgeda API aren't currently supported. These
features could be added with moderate effort.
Please keep in mind that, in contrast to the old frontend, attribute
conflicts in the schematic are now considered an error. This will usually
cause the netlister to fail on larger schematics since there are often
unnoticed inconsistencies, but it will succeed once the inconsistencies
are fixed.
Since gnetlist allows most Scheme files run at various points of execution
to influence both frontend and backend, these files have to be run
twice--once by gnetlist2 for composing the netlister command line, and
once by the guile backend in case they have an effect on the backend.
Also, the `-c' options and RC files are run by gnetlist before branching
to gnetlist2, so the RC files are run three times in total. This may
cause unintended side effects. If you want to avoid running the Scheme
files multiple times, you can pass the `-v' option to gnetlist, copy the
xorn-netlist command line printed to stderr und use it instead.
Roland
- Raw text -