← Back to team overview

kicad-developers team mailing list archive

Re: What is a global variable, and why we don't need them.

 

On 4/12/20 8:50 AM, Brian wrote:
> Just out of curiosity, what’s an example use case for multiple projects open at once, that
> isn’t served by multiple instances of KiCAD?  I admit I haven’t run into many reasons to
> have more than one open at a time in my own usage other than occasionally referring to an
> old project as a reference for a new one.
> 
> Cheers,
> -Brian
> 
> <snip>
> 
>> Multiple projects open at once would be /really/ nice, though….
>>
>> Cheers,
>> Jeff.

When you open more than one copy of KiCad, you open more than one copy of the libraries.
This is like having the same document open in more than one text editor.  The last guy
wins, meaning there can be competition between the two editors for the state of the data
files, depending on who writes or saves last.

In the multiple projects under one process model, you would have to identify libraries
that are common among the two projects, and share them.  This overlap is a subset, not a
full duplication because of the "project specific" libraries can be different.  Individual
PROJECT clients view their libraries through the lens of their own FP_LIB_TABLE.

If at that point shared pointers were introduced, it might be too bad to get to shared
libraries.  If something is in the way of this, then maybe you remove it.

Features like this, along with all the file conversions from foreign tools are great
attractors to the KiCad solution.  KiCad is uniquely positioned to continue to attract
users.  Being written in a relatively high level language means it has a powerful gas
pedal, and having a design that people can get their minds around, with clearly readable
code, all serve to encourage people into thinking that this is the way to go.  Also, being
able to see that the design anticipates features not already implemented is no small thing.

Dick



Follow ups

References