For most of June, gEDA has been in the process of switching from
using CVS to git for version control, and quite a lot of developers'
time seems to have been spent on getting used to the new system. I
really like the new system; it makes reviewing changes and
maintaining patchsets so much less of a chore, and my productivity
has gone through the roof!
I've made really good progress on the component library and Scheme
work which I said that I had planned to do during June:
- The component selector preview widget now works properly for all
possible component library backends. My changes coincidentally fix
a security hole exploitable by malicious library distributors
(they could use the library directory RC file mechanism to execute
arbitrary code on your system).
- system-gafrc is now installed by libgeda, and loads separate
Scheme files for the default libraries and default font.
Hopefully, this should make it easier to avoid using the default
symbol library at all if, for some reason, you don't want it.
- I zapped a bunch of deprecated Guile functions, and changed the
configure scripts to check for Guile by version, but it's pretty
boring stuff and I don't really have any motivation to finish it
of at the moment.
- Replacing the directory and command component library backends
with equivalent Scheme implementations has had to be suspended,
due to the fact that the Guile functions for working with pipes
really don't work very well on Windows, and Windows support looks
like it's going to become more important over the next few
months.
- I've replaced the s_clib_glob() with a similar
function, s_clib_search(), which can operate either in
exact matching mode or glob matching mode. This will allow people
to use symbols with glob special characters without strange
breakage. I've also added a caching mechanism for the results of
the search. I went through all the places where pointers to
CLibSource or CLibSymbol structures might be cached, and tried to
make sure that they weren't; this was to make it possible to add,
remove and refresh component sources without causing
breakage.
I have introduced a patch to my personal tree which adds a list of
currently used symbols to the component selector. I find this really
useful already for speeding up adding frequently-used parts to my
schematics, such as resistors and capacitors. I'm also hoping to
add a button to the component selector dialog which allows you to
directly open a selected symbol for editing.
My recent work (and discussions on the mailing lists) have inspired
two more ideas, about which I'll go into more detail on a future
occasion:
- Per-directory configuration contexts.
- Overhaul of the embedding system to make it more useful.