delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/04/18/17:52:49

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Date: Mon, 18 Apr 2016 23:49:18 +0200 (CEST)
From: Roland Lutz <rlutz AT hedmen DOT org>
To: geda-user AT delorie DOT com
Subject: [geda-user] Guile support
Message-ID: <alpine.DEB.2.11.1603231408180.1784@nimbus>
User-Agent: Alpine 2.11 (DEB 23 2013-08-11)
MIME-Version: 1.0
Reply-To: geda-user AT delorie DOT com

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019