Mail Archives: geda-user/2015/09/08/04:48:34
On Fri, 4 Sep 2015, Evan Foss (evanfoss AT gmail DOT com) [via geda-user AT delorie DOT com] wrote:
> On Fri, Sep 4, 2015 at 3:16 AM, Roland Lutz <rlutz AT hedmen DOT org> wrote:
>> On Fri, 4 Sep 2015, Evan Foss (evanfoss AT gmail DOT com) [via
>> geda-user AT delorie DOT com] wrote:
>>> Is this built using libgeda or is the whole thing in python?
>>
>> It is built using xorn.geda, which could be described as my take on
>> libgeda3[0]. xorn.geda is mostly written in Python, but the core storage
>> library is written in C for efficiency and interoperability.
>
> Ok I was just wondering how additions to libgeda would effect your
> work. (I really want to add a plugin interface that gives users an
> option other than scheme)
It would not affect it at all, because the netlister (xorn.geda.netlist)
uses the refactored libgeda subset included with the code (xorn.geda), not
the original libgeda library.
As for scripting, I'd go with a different approach. There are basically
two different problems which scripting is intended to solve:
(1) Allowing programs to access the gEDA functionality. This includes
tools which should read or write gEDA files or handle netlists; it also
includes other GUI applications which interact with the gEDA world. I
think the best way to implement this is as a library: these programs
shouln't be required to start up an actual gEDA binary (as is necessary
with the GIMP).
(2) Extending the user interface of an existing gEDA application. This is
what I call "scripting". It calls for a much tighter integration with the
application's codebase which makes supporting more than one scripting
language impractical.
My work focuses mainly on (1)--making the gEDA functionality available to
other programs. This is why I pulled out the parts of libgeda which are
actually useful outside of the gEDA toolset into a new library
(xorn.geda). In order to allow such other programs to work on the file
currently loaded in the GUI, I created an in-memory "database" which could
be accessed by more than one codebase at a time (libxornstorage). This
somewhat blurs the border between (1) and (2) since stand-alone tools
could be called as GUI commands, but it's still fundamentally different
from a script which is executed within (and knows about, and can
manipulate and extend) the GUI program.
As for scripting, I wouldn't even oppose keeping the current Scheme
bindings. Replacing Scheme with a more accessible language would lower
the barrier to customizing the gschem GUI, but compared to (1), there's
much less situations in which users would benefit from this.
Roland
>> [0] http://wiki.geda-project.org/libgeda3
- Raw text -