X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Thu, 20 Aug 2015 18:27:47 +0200 (CEST) From: Roland Lutz To: geda-user AT delorie DOT com Subject: [geda-user] gnetlist refactoring completed Message-ID: User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Reply-To: geda-user AT delorie DOT com Hi, I finally finished my work on refactoring gnetlist. The result is a new, improved netlister which behaves almost identical to gnetlist and passes the original gnetlist test suite, but is much easier to extend. In contrast to the first development version I posted on the list, the final refactored version's output is slightly different from that of gnetlist. The exact differences are documented in tests/netlist/README. You can clone the repository from git://github.com/rlutz/xorn.git or download the latest tarball from: http://hedmen.org/xorn/xorn-netlist-20150820.tar.gz There are two noteworthy differences in the way the netlister behaves: * Attribute conflicts are now considered an error. This will usually cause the netlister to fail on larger schematic since there are often unnoticed inconsistencies, but it will succeed once the inconsistencies are fixed. * Ports can now appear multiple times in a subschematic, or not at all. This will still cause a warning but produces the expected result. Since the new code doesn't run any Scheme code or read any configuration file, it is not a drop-in replacement for gnetlist. You will usually have to add your configuration as command-line options to the Xorn invocation. If, for example, you are using the standard library, no special symbols or hierarchy, and are using your distribution's gEDA package, this would be: xorn netlist --symbol-library-search=/usr/share/gEDA/sym -g BACKEND schematic.sch You can run the Xorn command without installing it first. To do so, just run the `xorn' executable from `src/command' directory in the build tree or add that directory to your PATH. If you are interested in writing a netlist backend, the obvious starting point would be looking at the existing backends: https://github.com/rlutz/xorn/tree/master/src/backend The API documentation is available at: http://hedmen.org/xorn/doc/api/html/namespacexorn_1_1geda_1_1netlist.html If you want to use the netlister in your own application, see the documentation for xorn.geda.netlist.netlist. Roland