www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2016/08/02/09:21:35

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Date: Tue, 2 Aug 2016 15:19:29 +0200 (CEST)
From: Roland Lutz <rlutz AT hedmen DOT org>
To: "Edward Hennessy (ehennes AT sbcglobal DOT net) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
Subject: Re: [geda-user] Plans for gEDA/gaf (was: [OT] ngspice integration
in KiCad)
In-Reply-To: <939E39F7-B4DA-4B56-A640-C7E6E4ECF955@sbcglobal.net>
Message-ID: <alpine.DEB.2.11.1608021426490.1398@nimbus>
References: <CANqhZFwC48g07MUY411a20C5oipkmmkzUimhz8OgvL2Thi-yDg AT mail DOT gmail DOT com> <20160722171754 DOT GB17595 AT localhost DOT localdomain> <CAM2RGhRjABmejtuSz1PbGFFF+EHhznGGTODoh0bu2y4FJM=Cbw AT mail DOT gmail DOT com> <20160723065723 DOT GC17595 AT localhost DOT localdomain>
<alpine DOT DEB DOT 2 DOT 00 DOT 1607231009290 DOT 7286 AT igor2priv> <20160723092248 DOT GF17595 AT localhost DOT localdomain> <alpine DOT DEB DOT 2 DOT 11 DOT 1607231423480 DOT 2224 AT nimbus> <20160724053502 DOT GM17595 AT localhost DOT localdomain> <alpine DOT DEB DOT 2 DOT 11 DOT 1607271434200 DOT 1841 AT nimbus> <9719FF2C-AC85-4824-89E9-447216E7FA65 AT sbcglobal DOT net>
<alpine DOT DEB DOT 2 DOT 11 DOT 1607301258260 DOT 1409 AT nimbus> <939E39F7-B4DA-4B56-A640-C7E6E4ECF955 AT sbcglobal DOT net>
User-Agent: Alpine 2.11 (DEB 23 2013-08-11)
MIME-Version: 1.0
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323329-1370255553-1470143969=:1398
Content-Type: TEXT/PLAIN; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8BIT

On Mon, 1 Aug 2016, Edward Hennessy (ehennes AT sbcglobal DOT net) [via 
geda-user AT delorie DOT com] wrote:
> Let’s call this new library "libcore" for clarity in discussion, and 
> “libgeda” for the existing legacy library.
>
> Does you vision of libcore support any of the following?
>
> 1. GObjectIntrospection and GIR files for language bindings?

No.  The core library should not know about GObjects in any way.  Of 
course, it would be possible to create a GObject wrapper for the core 
library which could be used for creating language bindings.

> 2. Weak references to basic objects?

No.  The objects would be either simple data structures or pointers to 
opaque types.

> 3. Property change notifications of some sort? (gobject signals, 
> listener/observer patterns, etc...)

No.  The library would use a value-oriented approach: the properties of a 
schematic object are only defined in respect to a given revision.  If an 
application needed property change hooks, it could execute them itself 
from the command which replaces its current revision with a new one.

> In regards to merging back into gschem, do you see gschem as the 
> schematic editor going forward?

Originally, I started out writing my own editing GUI which was indended as 
a replacement for both gschem and PCB.  This is not realistically going to 
happen any time soon, though, so I'd suggest sticking with gschem.

> If gschem is the editor going forward, I’d like to see:
>
> 1. GUI widgets moved out of gschem into a separate library, “libgschem,” 
> which could be renamed from libedacairo.

I'm not sure what's your point here.  Do you want to facilitate using 
gschem widgets in other GTK applications?  The actual Cairo rendering code 
may be useful to non-GTK or even non-interactive applications.

> 2. Migrate to GTK+3

That would mean losing multi-stroke hotkeys (as discussed in the past). 
Migrating to an even more recent GTK would mean losing tear-off menus.

> 3. Potentially use a more productive language for gschem and libgschem, 
> like Vala or C#.

C# uses the .NET framework, which would theoretically be an option via 
Mono, but its political fate is uncertain.  By using Vala, we'd lock in 
even more than by using Scheme.

The options are really quite limited here.  I think it would be best to 
stick with C for the existing schematic editor, but C++ or an interpreted 
language may be an option for a future project.

> What are your thoughts on a clean restart on the UI?

I already started such a project: http://hedmen.org/xi/

The problem is that this requires a non-trivial amount of work.  I've been 
working on Xi for a few years, and there's still a lot to do.

> I agree with you on the Guile dependency, but suspect it could be 
> removed with a dependency inversion. In essence, “libcore” or “libgeda” 
> would know about scripting, but it wouldn’t know that it is Guile, 
> Python, or whatever. This pattern might also be applied to rendering 
> too.

Why would the core library need to know about scripting?

--8323329-1370255553-1470143969=:1398--

- Raw text -


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