This file documents important user-visible changes in Lepton EDA. For
more information, please consult git log
history.
-
SMOB machinery deprecated in Guile has been fully replaced with using modern foreign function interface (FFI) in all libraries available in the projects. Detailed changes on type renamings and new modules are described below.
-
All Lepton tools, including
lepton-schematic
do now reside in the toplevel directory/tools
of the repository.
- Several deprecated GTK3 functions related to GUI have been
replaced with newer ones or removed, thus eliminating many
compilation warnings when Lepton is compiled with the
--with-gtk3
option.
-
A new Scheme type,
<toplevel>
, has been introduced. This is a wrapped foreign pointer type in Scheme representing theLeptonToplevel
structure in C. Three procedures in the module(lepton toplevel)
are now exported for transforming instances of the type to or from pointers and for checking the type. Those aretoplevel->pointer
,pointer->toplevel
, andtoplevel?
. -
Three procedures in the module
(lepton toplevel)
,%current-toplevel()
,%make-toplevel()
, and%with-toplevel
, have been renamed. The procedures had the prefix%
as they were previously defined in C code. Now, when this is no longer the case, the prefix has been dropped. -
A new Scheme procedure has been introduced in the module
(lepton object)
:set-text-attribute-mode!()
. The procedure allows for setting the attribute show mode. -
Log rotation has been moved from
geda.scm
to the config filesystem-gafrc
in which system administrators can disable or enable it. -
Three previously available SMOB types,
<geda-toplevel>
,<geda-page>
, and<geda-object>
have been replaced with three wrapped foreign pointer types,<toplevel>
,<page>
, and<object>
, respectively. In order to achieve this, three new modules with the definitions of the types and supporting functionality have been created:(lepton toplevel foreign)
,(lepton page foreign)
, and(lepton object foreign)
-
A new module,
(lepton ffi boolean)
, has been created. It contains variables and procedures for working with foreign C boolean values. -
A new module,
(lepton ffi lff)
, has been introduced. The syntaxdefine-lff()
has been moved to it and renamed todefine-lff-lib()
. The macro name means define lazy foreign function. The syntax has been splitted up and renamed in order to re-use it in different places for different goals without many changes in the code. This allowed for simplifying several definitions in the module(schematic ffi gtk)
, and in the toolslepton-schematic
andlepton-attrib
. -
Two new modules,
(lepton ffi gobject)
and(lepton ffi glib)
, have been introduced to localizelibgobject
andlibglib
functions and separate their definitions from Lepton functions. -
A new module,
(lepton ffi check-args)
, now contains functions for checking arguments of foreign functions. -
Scheme accessors for
GSList
lists and foreign functions for freeing all memory ofGSList
s andGList
s have been introduced in the module(lepton ffi glib)
. Along with a new optional argument that enables or disables memory freeing this allowed for simplifying some Scheme procedures working with lists inlepton-attrib
. -
Functions dealing with C
GList
lists in Scheme have been unified. -
The module
(lepton toplevel)
now has a new procedure,set-current-toplevel!()
, which may be used to unconditionally set the current toplevel fluid to a given value, which may be convenient for working with Lepton modules in REPL. -
Several new checks have been added for
make-page()
:- the procedure now raises an error if if its filename argument is an empty string;
- it now raises an error if current toplevel is not set.
-
An issue that caused printing backtraces on missing files in the functions
regular-file?()
anddirectory?()
residing in the module(lepton file-system)
has been fixed so that the functions now just test if a given file is missing and report that. -
Determining the user home directory has been improved in the function
expand-env-variable()
. The function will now fall back to lower level functions to determine the path if the$HOME
environment variable is not set.
-
The module
(schematic core gettext)
has been renamed to(schematic gettext)
. -
A new Scheme module,
(schematic window foreign)
, has been introduced. It contains foreign wrappers and functions for toplevel schematic window structure similar to what we have in(lepton toplevel foreign)
for<toplevel>
structure. The new Scheme window type is called<window>
. Its instances wrap foreign C pointers to structures of the typeGschemToplevel
. -
The function
current-window()
now returns an instance of the type<window>
. -
A syntax rule has been added to check the result of
current-window()
in the module(schematic builtins)
. -
A wrapper function for the
g_signal_connect()
C macro has been added to allow for connecting callbacks written in Scheme to signals defined in C code, especially for widgets. -
The signal "delete-event" of
lepton-schematic
is now connected in Scheme code. -
Key event processing callback is now assigned in Scheme.
-
Global window list of
lepton-schematic
is now processed in Scheme. A new Scheme module,(schematic window list)
, has been introduced to deal with it. It contains new procedures for working with program windows in Scheme:schematic-windows()
,window-exists?()
,add-window!()
, andremove-window!()
. The functions allow for introspecting and modifying the list of currently open windows. -
A new Scheme function,
make-schematic-window()
, has been factored out for creating a new mainlepton-schematic
window. The function now lives in the module(schematic window)
. Many top level widgets are now also set up in Scheme and their pointers are available for processing in Scheme. -
A new Scheme function,
close-window!()
, has been introduced in the module(schematic window)
. It closes currently active window of the program destroying and freeing all its widgets and resources. -
A new procedure,
window-open-page!()
, has been introduced in the module(schematic window)
. It opens a page for given file name. -
A new Scheme function,
schematic-error-dialog()
, has been introduced in the module(schematic dialog)
. It launches a generic error dialog box with given parameters. The user can set two messages, primary and secondary, and the title of the dialog. -
A new module for File select dialog code,
(schematic dialog file-select)
, has been created. Currently, it contains an only function,file-select-dialog()
, which runs the dialog and returns the results of file selection. -
A separate Scheme module for Slot edit dialog code,
(schematic dialog edit-slot)
, has been added to localize the functionality of the dialog. -
Several actions in the module
(schematic builtins)
have been simplified so that a few intermediatei_callback_*()
functions are no longer used. -
A new module,
(schematic toolbar)
, now serves the toolbar creation. Relevant functions have been moved to it. The code has been refactored and splitted up so that the toolbar buttons and separators, groups of them and their properties, are now created and set in Scheme using separate procedures. -
Glib signals are now connected to toolbar buttons in Scheme.
-
A new module,
(schematic callback)
, has been added to allow for calling the callbacks from both Scheme and C. Several C callbacks of the Page manager widget have been rewritten in Scheme using the module. -
Callbacks and signals related to the tab notebook widget and tab buttons have been rewritten and are now assigned in Scheme.
-
The fluid
%lepton-window
and functions related to it have been moved to a new module,(schematic window global)
, in order to avoid circular dependencies between modules in theschematic
namespace. -
Two new Scheme functions,
undo!()
andredo!()
, have been introduced in the module(schematic undo)
. -
A not so obvious bug in the code of hierarchy traversing actions has been fixed. The code wrongly incremented an attribute counter variable for
source=
attributes after processing attached symbol attributes, which led to starting with wrong inherited attribute after that if the inherited attributes were to be processed. In some cases, it might seem that the code just rejected the inherited attributes of a symbol. The bug has been fixed by rewriting the code in Scheme and making it behave likelepton-netlist
does in such cases: if there are attachedsource=
attributes, only they are processed; if the list of attachedsource=
attributes is empty, the inherited attributes are processed. -
A bug with relative symbol names in the action
&hierarchy-down-symbol()
has been fixed. Previously, if a symbol name was relative, searching the name amongst the names of active pages would fail as they are stored as "normalized", that is, absolute file names. The issue has been fixed by "canonicalizing" symbol names in Scheme before searching for them.
-
Porting the program to the stable GTK version 3.24 has been completed. Deprecated functions are no longer used in the code.
-
Two Scheme scripts,
auto-refdes.scm
andauto-uref.scm
, used in the program have been transformed into a new module,(schematic refdes)
. Main functions of the scripts are now exported in the new module. -
A regular expression in the function
auto-refdes-reset!()
has been fixed so it now correctly translates refdeses like Uxyz123 to Uxyz? instead of just z?. -
The file
geda-deprecated-config.scm
has been transformed into the module(geda deprecated-config)
. This reduces a little start-up time of the program when launched first time. -
The file
pcb.scm
has been transformed into the module(schematic pcb)
. This also reduces start-up compilation time of the program. -
A bug in the GTK3 port of the program related to cursor warping has been fixed. When the setting
warp-cursor
in theschematic.gui
configuration group was set totrue
, rotating the mouse wheel in both directions only led to zooming in. The issue was related to GTK3 smooth scrolling introducing in the release 1.9.17. Since it seems to be an GTK3 issue (see this bug description), it has been fixed by disabling smooth events if the mouse cursor warping is enabled in configuration -
A regression introduced in 1.9.18, consisting in missing icons in the tab menu in the GTK2 port, has been fixed.
-
The slot editing action has been improved. Previously, the action code worked on the first selected object no matter the type it had. The action did nothing if the returned object was just a graphical primitive despite of the fact if the selection had components or not, it silently ignored user input in such situations. The empty selection list was ignored as well. Now, the list of objects is filtered and if it contains one component, it works with it. The user is now warned if either no component is selected or when the selection contains more than one component.
-
The action Edit → Select All (Control+A) has been improved in that it now runs the
select-objects-hook
as expected once for each object on the active page. Previously, the function first ran the hook for each set of attributes, which was obviously wrong, as in the end, it ran the same hook again for all objects on the page including those attributes. -
Toggling of magnetic and rubberband net modes is no longer logged. The modes are pretty well visible for the user in the status bar. Moreover, logging the events of toggling just increases log size without adding any useful info.
-
The function
gtk_rc_parse()
deprecated in GTK3 is no longer called in Scheme for GTK3 port. -
The behaviour of hierarchy traversing actions has been improved. Previously, if no component were selected, or if the first selected object was not a component, the actions silently returned without any visual effect. Now the actions behave as follows:
- Page selection is filtered to ignore non-component objects before processing components.
- If no component is selected, or several components are selected, the action warns the user by displaying an error dialog box with an appropriate message.
-
The program now outputs its basename instead of the full path when the option
--help
is given. -
The program does no longer copy same files several times.
-
In some cases, the
gafrc
file to be updated may have no write permissions for the user. The program now solves this as follows: instead of trying to append anything to it, a new file with updated contents is created after deleting the existing one. -
In cases, when renaming a file is failing, the user will now be warned that the archive created was left alone in the temp directory instead of reporting that anything was done successfully.
-
A bug causing failures of the program when an archive name to extract was specified as a related path, has been fixed.
-
The program does no longer create a temporary directory for extracting archives.
-
Previously, the program used to output backtrace when a processed file was missing. Now it just reports the issue without outputting backtrace.
-
Previously, scripts specified by the options
-m
and-l
had to be absolute file names or names of files in the current directory. It is no longer required and now the user can simply set the basename of a file to be loaded, possibly along with its relative path, and the name will be searched for first in the current working directory, and then, if nothing found, in all Lepton user and system data directories listed in the output of the functionsuser-data-dir()
andsys-data-dirs()
. The program loads only the first file found and reports its name to log. If nothing found, it is also logged.
- A number of tests for the program has been added to the integration test suite.
-
The program has been partially rewritten in Scheme. The rest C code of the program has been merged into
liblepton
. -
A new module,
(lepton ffi sch2pcb)
, has been created. It is going to contain foreign function definitions for the program. -
Processing of long program options has been amended so they now conform to POSIX and GNU guidelines. Basically, that means that the arguments of long options have now to be separated from the options by equal signs, not by spaces.
-
So named extra project files are now loaded from Lepton system and user configuration directories that include standard XDG config directories. The files are now loaded once at a predetermined point of time: just before loading any other files and before processing the options. Paths previously defined in the program source code for looking up for extra project files,
/etc/gsch2pcb
and/usr/local/etc/gsch2pcb
, are no longer used for this purpose.
-
The minimal required version of GTK3 has been bumped to 3.22.
-
Several deprecated GTK3 functions related to GUI have been replaced with newer ones or removed, thus eliminating hundreds of compilation warnings when Lepton is compiled with the
--with-gtk3
option. -
lepton-symcheck
tests have been transformed intosrfi-64
ones and included in the common integration test suite, thus reducing the number of different Lepton test suites by one. -
Fixed the issue with
make check
which failed if the command was launched after the tools were built in the C++ mode. -
The vulnerable Glib function
g_memdup()
has been replaced withg_memdup2()
in the tools. A workaround has been added for Glib versions before 2.68 that do not support the latter.
-
Scheme libraries do no longer depend on functions defined in the C code of Lepton libraries, so native compilation of all Scheme code without Guile snarfing is now supported. See below for more.
-
A new
configure
option,--enable-guild
, has been added to enable beforehand compilation of Guile sources of the tools. Please see README for more information.
-
All so named
core
Scheme modules defined in C and their functions have been reimplemented using Scheme foreign function interface, thus making the library independent of Guile snarfing and clearly separating C and Scheme interface as well as allowing compilation of Scheme modules without applying several special tricks as it used to be previously. Some artifacts and dependence on Guile library are still present on the C side ofliblepton
. In spite of it, the Scheme modules that previously were dependent on thecore
modules can now be simply compiled with generic Guile compilerguild
. -
The module
(lepton core gettext)
has been renamed to(lepton gettext)
. It does not belong to the set of modules defined in C described above. -
The functions that were previously available in the module
(lepton core toplevel)
reside now in(lepton toplevel)
. -
Functions, used for exporting a current color map for later including in Scheme RC scripts (typically,
gschemrc
), now support output of translucent colors by adding alpha channel values for colors that are not fully opaque. -
A new module,
(lepton autoplace)
, has been created from three legacy scripts:auto-place-attribs.scm
,auto-place-netname.scm
, anddefault-attrib-positions.scm
. The module merges functionality of the scripts and exports three legacy functions that can be used for automatic placement of attributes inlepton-schematic
GUI using Scheme hooks:autoplace-pin-attributes
autoplace-object-attributes
place-netname-attribute-handler
Please see examples of using the functions in the configuration file
conf/schematic/deprecated.scm
usually living in the directory${prefix}/share/lepton-eda/scheme}
. Two previously available variables defining the behavior of the auto-placement code have been moved to the new module and are not currently available in any Lepton configuration files:default-position-of-text-attributes
andautoplace-attributes-grid
. Some better mechanism is desirable to make the settings available in the current configuration. -
Provisions have been added against potential memory leaks in export functions in case they are called multiple times in Scheme scripts, which also eliminated several build warnings.
- The library does no longer depend on Guile snarfing and Scheme
functions defined in C code, which allowed for eliminating so
named
core
Scheme modules. This is the same change as described above in the section forliblepton
.
-
A new color chooser widget for the GTK3 version of the program has been introduced. Apart from stock functionality and a combobox for color selection, as in the version for GTK2, it has two buttons: Apply and Toggle Editor. The former is used to apply a selected color to immediately see the changes on the canvas, and the latter is for toggling between palette swatch view and color editor in the widget.
-
Both color chooser versions, for GTK2 and GTK3, now support selecting and displaying translucent colors.
-
Color swatches for color selection in the color chooser widget and various other widgets now display non-opaque, translucent colors by rendering them applied to a checkered background pattern.
-
Previously, the export image GUI function in the GTK3 version of the program produced images with wrong fonts as it utilized some default font name. Now it has been fixed so that it outputs the fonts set up in the configuration files.
-
The following rest Scheme modules defined in C have been rewritten using Scheme FFI and removed:
(schematic core attrib)
(schematic core hook)
(schematic core keymap)
(schematic core selection)
(schematic core undo)
(schematic core util)
(schematic core window)
While some parts of the C code of the program still depend onlibguile
, this change, in general, untangles many interdependencies in the code by separating its C and Scheme parts.
-
The module
(schematic gschemdoc)
has been renamed to(schematic doc)
. -
The hook
complex-place-list-changed-hook()
has been amended so it now works with a list of objects instead of a single component object. The argument list usually includes an inserted component and its toplevel (floating) attributes, so the users can handle all them directly in their custom code. The configuration example code for automatic relocation of attributes around their component on insertion has been amended according to the change. -
Previously, the code for automatic placement of attributes could place them at arbitrary coords, even inaccessible in the program GUI, or at a wrong place around the object they should be attached to. It depended on some conditions: if and how many objects are selected, where the mouse pointer is, and if the user used hotkey or mouse click on menus for adding an attribute. These bugs have been fixed.
-
Three potential memory leaks related to the File selection dialog code have been fixed.
- Porting the program to the stable GTK version 3.24 has been completed.
- All Lepton tools now support attributes with empty values.
-
Support for Guile 2.0 has been dropped.
-
Lepton now requires GTK 3.2.0 or later versions for build with GTK3 support.
-
Support for dlopening foreign libraries used in Lepton by Scheme code has been improved so that Lepton could find the necessary libraries even if there is no development files for them installed on user's system. This fixes the issue of finding libraries by Guile on systems like Debian and its derivatives. Guile requires library names to end up with standard extensions like
.la
or.so
. On Debian, for example, library names may have some version numbers appended to them and symlinks with canonical names are distributed in separate development packages. One portable solution of the issue is usingldconfig
for obtaining the names of the existing library files. The tool can be now used on the./configure
stage of Lepton compilation to hardcode the names in Scheme. A new environment variable,USE_LDCONFIG
, has been introduced to make use of this approach. To trigger retrieving the names, just do:./configure USE_LDCONFIG=/sbin/ldconfig ...
-
The following core Scheme modules written in C have been removed and their functions have been reimplemented using Scheme FFI:
(lepton core attrib)
(lepton core component)
(lepton core config)
(lepton core page)
(lepton core rc)
- Support for GTK3 smooth scrolling events has been added in the GTK3 version of the program.
-
The program has been rewritten in Scheme and splitted up into four separate utilities that provide different functionality which was previously built-in in one binary of the tool:
lepton-config
provides facilities for working with Lepton configuration system,lepton-export
deals with exporting of schematics and symbols into various image formats,lepton-shell
provides the interactive Scheme REPL and,lepton-cli
is a tool that can launch all the above utilities using corresponding commandsconfig
,export
, andshell
, as before.
-
The new Scheme
lepton-cli
utility, unlike the previous code, does not allow for merely skipping--
just after command name in the command line and behaves the same way like Guile does, that is, interprets all options after--
as file names. -
lepton-cli config
now does check if the specified directory exists and reports if it does not, returning non-zero exit status. -
Redundant arguments on the
lepton-cli config
invocation are no longer ignored. Instead, the command prompts the user of what's happening and exits with non-zero exit status. -
More consistent processing of the option
-p
has been implemented inlepton-cli config
.-p
can be now used in two forms,-pPATH
or-p PATH
, that is, it is processed the same way with or without space. On the contrary, its long version,--project
, can only be given as--project=PATH
. Ambiguous form-p=PATH
which may suggest that a project directory name is equal to=PATH
, is now disallowed as an extension not conforming to POSIX and GNU standards. On the other hand, the ambiguity of the expression-p path
has been eliminated: if the option-p
is not the last command line argument, the next argument is considered to be belonging to it and means a project directory path, not a configuration group name. -
lepton-cli config
now warns the user if the directories given in the command-line are missing. Previously, it could output misleading messages about other errors, e.g., that the user may specify only one configuration store. -
In
lepton-cli config
, an argument is now required by the options-s
and-u
, so using any combination of them in series without a file name argument leads to errors about wrong file names.
- Utilities
gsymupdate
andgschupdate
have been replaced with a new utility,lepton-update
, written in Scheme. The old utilities parsed schematic and symbol files directly, which sometimes could lead to wrong results, and were broken since introducinglepton-embed
. The new tool, as many others in the suite, usesliblepton
and does better job when updating obsolete files. Please see lepton-update(1) for more.
-
Compilation warnings on running Lepton utilities written in Scheme, which shown up in the previous release, have been fixed.
-
Several symbols in the
sym/analog
have been fixed by adding missingfootprint
,value
, andsymversion
attributes. -
Test schematics for netlister have been made self-sufficient by adding symbols they depend on.
-
A new integration test suite written in Scheme has been added to unify testing of all Lepton utilities in future.
- Versions of
Cygwin
libraries are now updated automatically.
- Several Scheme functions related to source libraries have been
fixed or improved as follows:
- The function
source-library-search()
no longer adds wrong directories with duplicated root name. - The functions
source-library()
,source-library-search()
,reset-source-library()
now return the value of the default source library record. - The functions now check the type of their arguments and raise
'wrong-type-arg
exception if it is wrong.
- The function
- Several status bar indicators have been made interactive. Now, the user can change the rubber band and magnetic net modes and sizes of grid and snap simply by clicking on the indicators.
- The output of the
switcap
netlister backend which was broken for several years is now fixed according to its documentation.
-
The test suite has been fixed and now
make distcheck
can be run under theroot
user account without errors. -
Lepton now fully supports GTK 3.0.0:
- Several warnings on functions deprecated in GTK/GDK 3.0.0 have been fixed.
- See also changes in
lepton-schematic
below.
-
A bug with visual representation of arcs in raster images and on canvas of
lepton-schematic
has been fixed. -
All Lepton utilities, even the GUI ones, no longer use
liblepton
as a Scheme extension. Now the libraries are properly dynamically loaded by Scheme as any other libs.
-
Fixed building with
--disable-attrib
: thebin/lepton-attrib
script is no longer installed. -
Versions of
Cygwin
libraries have been updated to match actual versions ofliblepton
,libleptongui
andlibleptonattrib
.
-
Several core C structs in the library have been amended to contain only relevant information about primitive objects.
-
The following core Scheme modules written in C have been removed and their functions have been reimplemented using Scheme FFI:
(lepton core deprecated)
(lepton core object)
(lepton core os)
-
A new module,
(lepton object type)
, has been introduced. It now contains functions from(lepton object)
, and exported in that module as well, that query the type of primitive Lepton's objects. -
Definitions of foreign functions are now residing in a new module,
(lepton ffi)
. The module contains definitions of Scheme counterparts of C functions in theliblepton
library. -
The Scheme function
platform()
no longer outputs'(carbon)
. There is no reasonable replacement yet, so the function outputs'(unknown)
on those Mac machines on which it usually did so.
-
Snap size and grid size indicators now have separate labels in the status bar. The snap size label changes its text color and decoration to draw user's attention when snap size currently set differs from the value in configuration. It helps avoiding mistakes when constructing new symbols.
-
Lepton now fully supports GTK 3.0.0. Apart from fixes mentioned above the following changes have been made:
- A bug of not showing text of hidden attributes in the
Multiattrib dialog of
lepton-schematic
has been fixed. - Displaying of tabs has been improved.
- Displaying of the Object properties dialog in the docked view of the program has been fixed so all widgets are shown properly now.
- A bug of not showing text of hidden attributes in the
Multiattrib dialog of
-
The output of
--help
and--version
command line options for all utils has been unified and simplified: reduced long lines, added links to Lepton's issue tracker and home page as well as copyright information. The options have been added to the programs that missed them. -
Several changes have been made in the directory layout of the repository:
- Directory with examples for
gmk_sym
has been moved tocontrib/
in where the script actually resides. - The program
lepton-renum
has been moved tocontrib/
. - The following scripts have been moved with tests, examples and
documentation to dedicated directories under
utils/
:lepton-archive
lepton-attrib
lepton-cli
lepton-embed
lepton-netlist
lepton-pcb_backannotate
lepton-refdes_renum
lepton-sch2pcb
lepton-schdiff
lepton-symcheck
lepton-symfix
lepton-tragesym
lepton-upcfg
m4
files used byautoconf
have been renamed.ChangeLog
files for Lepton tools are no longer generated. A toplevelChangeLog
file has been added with description of where and how to get the information on changes.- Empty
ChangeLog
files have been removed frompo/
directories. .gitignore
files have been cleaned up.- Several other documentation files have been moved from
utils/
tocontrib/
ordocs/
, or removed. - The contents of the
symbols/
directory has been reorganized as well:- Most of symbols have been moved to
symbols/sym
. - Added the subdirectory
docs/
for documentation. - Added the subdirectory
scheme/
for Scheme files. - Directories with symbols that have names conflicting with
those living in the
sym/
subdirectory have been renamed and are now prefixed withsym-
.
- Most of symbols have been moved to
- Directory with examples for
- Fixed building of doxygen documentation.
-
Relatively new Scheme functions are now documented in the Lepton EDA Scheme manual:
config?()
,user-cache-dir()
,cache-config-context()
, andanyfile-config-context()
. -
Lepton EDA reference manual has been updated with info on
lepton-cli
usage. -
Fixed a link in Lepton EDA reference manual to the Lepton EDA Scheme API manual in HTML format.
-
The contents of the file
nc.doc
about no-connection symbols has been moved to the Lepton EDA reference manual.
-
The module
(lepton core smob)
written in C does no longer exist. Its exported functions have been reimplemented using Scheme FFI. -
Many of the basic Scheme functions in the
(lepton core object)
module defined in the C code have been rewritten using plain Scheme FFI. -
Foreign functions in Scheme code have been renamed accordingly to their C counterparts.
-
The files which names started with
geda_
have been renamed and this prefix has been dropped. -
The types which names were prefixed with
Geda
have been renamed and now have the prefixLepton
. Their sibling types, e.g.OBJECT
forLeptonObject
have been removed. -
The functions which names were prefixed with
geda_
have been renamed so that their name are now start withlepton_
. Many other functions related to objects have been renamed in similar way as well. -
The
component_embedded
field of theLeptonObject
structure has been renamed toembedded
and moved toLeptonComponent
. Accessors for this field have been added to not use it directly. -
Many new checks for object type have been added in functions dealing with objects.
-
Object types are no longer queried explicitly in the code. Type accessors have been added which are used both in C and Scheme FFI code.
-
Accessors for the
CHANGED
field of the renamed structureLeptonPage
have been added to facilitate using it in Scheme. -
The following redundant types have been eliminated:
BOX
,OBJECT_END
,OBJECT_FILLING
,OBJECT_TYPE
,PATH
,PICTURE
,SELECTION
,TEXT
,TOPLEVEL
,UNDO
,sPOINT
. -
The type
LeptonStroke
has been factored out ofLeptonObject
. Its inherited fields have been renamed to match to corresponding Scheme functions. C accessors for each member of the new structure have been added as well. -
Several accessors for
LeptonObject
structure members have been added. -
Accessors for all fields of picture objects have been added.
-
The ad hoc object type
OBJ_PLACEHOLDER
has been eliminated. -
Previously, some of the functions for new object creation had the
type
argument. The argument has been removed as superfluous since it is always known which object is created. -
Embedding code for pictures and components has been splitted up, moved to appropriate places, and reduced.
-
Four unit tests that previously worked well with Guile 3.0.4 started to fail with Guile 3.0.5 on Debian. The tests have been fixed so they pass with either of the versions.
-
Scheme module
(schematic core builtins)
defined in C code has been removed. Its functions are now defined in the module(gschem deprecated)
. -
Gettext domain for the library has been renamed from lepton-schematic to libleptongui to be consistent with other tools.
-
Fixed exporting of necessary modules in several Scheme files.
-
Several superfluous and erroneous
gafrc
files have been removed from theexamples/
subdirectory.
-
The program used to use colors to designate the visibility of affected attributes in schematic editor. A status bar with a color legend has been added prompting the user of the meaning of the colors used.
-
The current file name is now displayed in the title of the program window. If several files are open, "Multiple files" is shown in the caption instead. If there were changes in any of the opened files, this is marked by an asterisk prepended to the title caption.
-
Slot numbers are now explicitly displayed in parentheses with the word "slot" after reference designators, e.g. U1 (slot 3) instead of U1.3 as it was previously. This is to prevent confusion if the user actually wants to use dot separators in refdeses.
-
Only those components that really have the
slot=
attribute are now shown as slotted. -
The overwrite confirmation dialog will now displayed on File → Export CSV if an already existing file is selected for output.
-
Default response in the Delete Attribute dialog has been changed to "No".
-
The About dialog has been improved and now it looks like one in
lepton-schematic
. -
Modification status update on saving has been fixed.
-
The long command line option
--command
has been introduced as an analog of the short option-c
. -
The program used to output backtraces on wrong command line options. Now backtraces are avoided. Instead, a short error message and a useful prompt are shown.
-
Fixed crashes when the command line contains the text as follows:
-c '(quit)'
. -
The behaviour of the combobox for choosing the way of symbol insertion in the component selection dialog was broken in the previous version and now has been fixed.
-
Text in several dialog titles has been improved, fixed, or added. In particular, the title of the close confirmation dialog now shows the name of the program instead of "unknown".
-
Default response in the overwrite confirmation dialog is now "No" to avoid accidental overwriting of files.
-
Color scheme error dialog was not shown previously. This has been fixed.
-
The bus drawing tool supposed to behave the same way as the net tool. A click with the right mouse button cancels the net action. This did not work with bus actions, which is now fixed.
-
Modified schematic pages used to be shown as marked with an asterisk in tabbed view. Now, "Save" buttons are shown instead, which allows the user to quickly save files with the mouse if toolbars are turned off.
-
The tab buttons, "Save" and "Close" have now tool-tips describing their functions.
-
The edit attribute dialog has been improved: now its section "Add attribute" is collapsible, that is, it may get folded or unfolded, which allows to see more attributes at once. This state is preserved during the program run.
- Build date and time are no longer hard-coded in the sources to aid reproducible builds.
-
Previously, the script code searched for the "Id" string in itself and, being unable to find it, exited with the error message "Could not determine version". Now the script prints Lepton version and copyright instead.
-
Refdes renaming has been fixed by exchanging parameters of the
%cmd_rename
hash. -
Deprecated
defined
construct that raised a fatal error since Perl version 5.22 has been removed. -
Man page of the script has been improved.
Bugfix release.
-
Build for Cygwin has been fixed in that the Lepton GUI tools now actually work.
-
Fixed installation of images into the info directory.
-
File
color-map.scm
, removed in the previous release, has been restored for backward compatibility.
- Two long standing bugs in the program, that manifested
themselves when the user deleted an attribute column in the
spreadsheet, have been fixed:
- The program did not prompt the user on unsaved changes on exit.
- All invisible attributes became visible.
-
Fixed processing of options
-c
and-s
broken in the previous release. -
Reduced the number of Help menu items pointing to obsolete wiki documentation.
-
Started creation of Lepton EDA reference manual. The manual can be opened from the
lepton-schematic
GUI by using H M keyboard shortcut. -
The empty
local
subdirectory has been removed from the list of component libraries. -
Old ChangeLog files (<=2007) are no longer installed. They hardly provide some any useful information for end users now and any info can be easily received using git.
-
Guile 3.0 support has been added.
-
Experimental GTK 3.0 support has been added. A new
configure
option,--with-gtk3
, has been added to enable building programs with GTK3. Please see README for more information. -
Build with
-Wl,--no-undefined
, broken in the previous release, has been revamped by merging two libraries,liblepton
andlibleptonrenderer
. -
Build for Cygwin has been fixed as well by the above change.
-
The build option
--disable-attrib
broken in the previous release has been fixed. -
The obsolete and pretty useless script
bom_xref.sh
has been removed from the toolset.
-
Code from the library
libleptonrenderer
has been merged intoliblepton
. -
A new module,
(lepton eval)
, has been added. The new module exports Scheme versions of functionseval-protected()
andeval-string-protected()
previously defined in C code. -
A new module,
(lepton ffi)
, has been introduced. It contains general definitions related to Scheme FFI. -
Refactored color system code:
- A new module,
(lepton color-map)
has been added. - Procedures
print-color-map()
,display-color-map()
, anddisplay-outline-color-map()
have been moved to the module. - The procedures now return their color-map values instead of
just
#t
. - The module additionally exports the variable
%color-name-map
. It returns the set of valid symbols for color names.
- A new module,
-
Print color maps for dark and light color schemes have been fixed:
- The
grid
color name has been replaced withdots-grid
. - Missing colors
mesh-grid-major
andmesh-grid-minor
have been added.
- The
-
Scheme functions working with version of the tools have been added or refactored:
- Added procedure
lepton-version-data()
which can return the list of version strings by requested symbol names. - Added procedure
lepton-version-ref()
which retrieves one version data element by its symbol name. - Added generic procedure
display-lepton-version()
. lepton-version()
has been refactored. Please see its docstring for more.
- Added procedure
-
C source code has been transformed into a new library,
libleptongui
.lepton-schematic
is now an executable Scheme script which uses Guile FFI to make the job done, allowing to play with it without recompilation of the underlying C code. -
Setting of the environment variable
LD_LIBRARY_PATH
may be needed for users installing Lepton from sources if the system configuration does not include the path tolibleptongui
. -
Two new Scheme modules,
(schematic ffi)
and(schematic ffi gtk)
, have been added to the suite. They provide Scheme FFI bindings for GTK functions. -
A new environment variable, LIBLEPTONGUI, has been added in order the user to redefine the path to the
libleptongui
library "on the fly". This can be used, e.g., for test suite or in development for testing changes without installation of the library. -
Scheme builtin action procedures that were defined in C code and that were not available in some circumstances, e.g. in remote REPL, are now available in the module
(gschem deprecated)
. -
Three C functions for creating dialogs and their corresponding Scheme counterparts have been re-implemented in Scheme using FFI and renamed. The new functions are exported in a new Scheme module,
(schematic dialog)
. Those functions are:schematic-message-dialog
(formergschem-msg
)schematic-confirm-dialog
(formergschem-confirm
)schematic-fileselect-dialog
(formergschem-filesel
)
-
Guile module
(srfi srfi-37)
is now used instead of(ice-9 getopt-long)
for command line option processing. -
A new option,
--command
, can now be used as an alias for-c
. -
The keyword
G_
is now used for translation of strings in Scheme code in order to prevent conflicts with other Guile functions such as, e.g.,match()
. It's the same change as one that have been recently made in Guile 3.0. -
Several new additional shortcuts have been added which are used in many other programs to ease working with the tools for newbies:
- Control+N for opening a new file
- Control+O for opening an existing file
- Control+S for file saving
- Control+P for printing the contents of a file
- Control+Shift+Z for redo (as an inversion for Control+Z for undo)
-
Another bunch of additional shortcuts has been added to simplify zooming for the same reasons:
- =, Control+=, and KP_Add for zooming in
- -, Control+-, and KP_Subtract for zooming out
- 0, Control+0, and KP_Multiply for zooming to extents
-
Filters behavior in the file chooser dialogs has been improved. In the
Save As
dialog the filter is set based on the current schematic's file name. Extensions containing letters in different case are now correctly recognized, filters can work with file names matching the following shell patterns:*.[sS][cC][hH]
and*.[sS][yY][mM]
. -
It is now possible to change a color of net and bus objects in the
Object Properties
dialog. -
All available colors are now shown in the colors combo box, disabled ones are designated as "[ disabled ]".
-
Two new keywords,
symbol-attribs
andpin-attribs
, have been added to the[schematic.attrib]
configuration group in order to replace the functionality of the legacy procedureattribute-name()
. The procedure is now exported in the module(schematic attrib)
. See updated Lepton reference manual for more information. -
Fixed a regression in font displaying that appeared in the previous Lepton version 1.9.11. Now lower aligned text objects are displayed the same way as before, their anchor points now specify positions of their baselines rather than bottom lines of the text logical rectangles.
- Two issues in the
tEDAx
backend have been fixed:- Parametric attribute values containing spaces between the parameters were passed un-escaped in the backend output. Now they are escaped according to the tEDAx spec.
- Support for output of
nettag
net attributes, which had been missing before, has been added.
-
The source code of the program has been fixed so that it no longer use a big change of obsolete third party spreadsheet code. Instead, a dependency on another up-to-date project,
gtkextra
, has been added. -
After the above change, another feature has been added. Now, you can try to install a new, experimental GTK3 interface of the program. Please see Lepton reference manual for more info.
-
Executable scripts
lepton-netlist
andlepton-symcheck
have been moved to the utils/ directory. Their Scheme modules have been moved to the directory with Scheme files ofliblepton
. -
Separate gettext domains of
lepton-netlist
andlepton-symcheck
have been removed. -
As a side effect of this transition, the messages by symbol checker are now translated in
lepton-schematic
GUI. -
More Scheme strings have been added to translation.
-
Two Scheme test suites,
liblepton
's andlepton-netlist
's ones, have been merged into one. -
Unit test for promotable attributes has been added.
-
Old changelog files (ChangeLog-1.0) have been moved into one directory and renamed.
- Build order has been changed and now
libleptonrenderer
is built beforeliblepton
.
-
The tool used to silently skip missing symbols on export without rendering any placeholders. Rendering of placeholders has been fixed.
-
In some cases, for instance, when a Scheme script was evaluated by the tool and no renderer was available, it output assertion failures for text objects during calculation of their bounds, which has been fixed.
-
Localization support has been added. The utility had no localization support since rewriting it in Scheme.
-
The famous Scheme backend
spice-noqsi
has been added to the list of backends. The directory with examples contains now its documentation and example schematics.
- Localization support has been added. The utility had no localization support since rewriting it in Scheme.
-
Log messages about
symversion
mismatch are no longer emitted for missing schematic symbols. -
symversion
attribute changes are now detected when a page is opened. Previous behavior was to check just the first page passed on thelepton-schematic
command line. -
Log messages related to
symversion
have been changed to be more compact and comprehensible. -
Several dialogs and dock widgets now have shorter and more uniform titles.
-
The "Major symbol version changes" dialog has been improved by making it more informative and non-modal. A new dialog instance is opened for each page with symbol version changes.
-
The dialogs "Add picture", "Select picture" and "Execute script" now have file filters, which eases selection of supported files.
-
A new boolean configuration parameter has been added to the
schematic.gui
group:use-toplevel-windows
(false
by default). Setting it totrue
allows the following widgets to behave like top-level windows (i.e. do not stay on top of the main window):- Page manager
- Log window
- Edit text
- Color scheme editor
- Object properties
- Options
- Font selector
- Find text results
-
lepton-schematic
now uses new (more compact) placeholders for missing schematic symbols. Traditional placeholders (giant red triangles with an exclamation mark and two lines of text) can be turned back on by setting thesmall-placeholders
key in theschematic.gui
group tofalse
. -
The same font, defined in the
font
configuration key of theschematic.gui
group, is now used for printing and rendering of objects in GUI. -
Several rendering issues, manifesting themselves on some modern distributions where new Pango library (1.44) is used, have been fixed:
- Different scaling of overbars on zooming.
- Wrong alignment and position of lower aligned text in printed output.
- Changing of vertical spacing between paragraphs of text separated with empty lines on zooming.
-
Historically, text lines of the same object size with different size of glyphs, for instance, all uppercase and all lowercase, might be rendered as if they have different baseline position. For example,
-
(minus) and_
(underscore) could be rendered on the same height, depending on alignment. This has been changed, and now logical extents of text are used to calculate and properly set its position. -
Showing/hiding of hidden text can now be set individually on per page view basis.
-
Fixed a logging issue when the utility is called with some file path as a command line parameter.
-
The utility now has its own manual page
lepton-upcfg(1)
.
-
The source code of the program has been transformed into a library,
libleptonattrib
, and an executable script written in Scheme. Thus, C functions of the new library can now be used in other tools. -
The option
--quiet
has been removed.
-
The procedure
process-gafrc()
from the module(netlist)
has been moved to the module(lepton rc)
to be available for other utilities. -
A new Scheme function,
anyfile-config-context()
, and its C counterpart, have been added to the library. In future, they can be used to support additional configuration files, for example, files containing color schemes or component library descriptions.
-
Utilities written in Python,
lepton-archive
,lepton-tragesym
and others (please see below for more information), have been rewritten in Scheme or removed, so there is no dependency on Python any more. -
C source files, Scheme modules, types, functions, variables, structure fields have been renamed to avoid using of ambiguous word "complex" since it is used in Scheme to designate complex numbers. The Scheme object type
'complex
has not been renamed for backwards compatibility. -
Two unused old scheme scripts
print-NB-attribs.scm
andlist-keys.scm
have been removed. -
Several other cleanups have been made in the source tree.
-
The Scheme auto-load subdirectory
gafrc.d
has been renamed toautoload
. -
Obsolete environment variables
GEDADATA
andGEDADATARC
are no longer used in Lepton. Please use Scheme proceduresload
orprimitive-load
in gafrc files to load your extensions. -
The directory $HOME/.gEDA/ is no longer used for storing of user configuration files. The new location for user config files is $XDG_CONFIG_HOME/lepton-eda/ (usually, it is $HOME/.config/lepton-eda).
-
Legacy
geda*.conf
configuration files are no longer used. Settings are now read fromlepton*.conf
files. To convert your settings to new format, please use thelepton-upcfg
utility. -
The obsolete and undocumented script
bompp.sh
has been removed.
-
The following obsolete
configure
options have been removed:--with-kdedatadir
(for KDE 3)--enable-relocatable
(non-portable)--with-rcdir
(no longer usable)--disable-deprecated
(no longer usable)--enable-compat-symlinks
(does not make sense any more)
-
Detection of installed
Guile
run-time and development packages has been improved. Previously, after introducing support for Guile 2.2, some users could encounter difficulties with building from source when Guile development headers were distributed in separate packages in their distribution and there was two different Guile versions (2.0 and 2.2) installed on their systems. They could get mysterious error messages about applying a wrong object type. Point is that Guile 2.0 and Guile 2.2 use incompatible binary code format for compiled programs. Now Lepton build system checks what development packages are installed on user's system and chooses a correct version of Guile for compilation. If it is impossible due to missing required package, it reports the error on the configure stage. -
The
autogen.sh
script, while still available, is no longer required for installation from the git repository. Please useautoreconf -ivf
instead. -
Building of the Scheme API HTML documentation with multiple make jobs on FreeBSD has been fixed.
-
icon-theme-installer
script has been fixed by simplifying its command line arguments checks, which makes it more portable among various build environments. -
The command
make maintainer-clean
no longer removes configure and its helper files, as well as ChangeLog and Makefile.in files.
-
The module
(geda log-rotate)
has been renamed to(lepton log-rotate)
. -
Several
(geda *)
modules have been renamed to(lepton *)
ones. All the functions and variables available are still re-exported in the former ones but their using is discouraged. The following renames have been made:(geda attrib)
=>(lepton attrib)
(geda config)
=>(lepton config)
(geda log)
=>(lepton log)
(geda object)
=>(lepton object)
(geda os)
=>(lepton os)
(geda repl)
=>(lepton repl)
-
The following core (written in C) Scheme modules have been renamed:
(geda core attrib)
=>(lepton core attrib)
(geda core complex)
=>(lepton core component)
(geda core config)
=>(lepton core config)
(geda core deprecated)
=>(lepton core deprecated)
(geda core gettext)
=>(lepton core gettext)
(geda core log)
=>(lepton core log)
(geda core object)
=>(lepton core object)
(geda core os)
=>(lepton core os)
(geda core page)
=>(lepton core page)
(geda core smob)
=>(lepton core smob)
(geda core toplevel)
=>(lepton core toplevel)
-
Apart from expanding environment variables, the function
expand-env-variables
from the(lepton os)
module now replaces ~/ (user home directory prefix) in file names in order to make such names understandable for other functions. This allows using this prefix in functions likecomponent-library
andsource-library
. -
A couple of functions have been added to the
(lepton object)
module to work with object's "embedded" state:object-embedded?
andset-object-embedded!
. -
The cache configuration context can now be accessed in Scheme code:
cache-config-context
function has been added to the(lepton config)
module. -
A new function,
component-filename
, has been added to the(lepton object)
module. It returns the full component's symbol file path. -
config-load!()
function in the(lepton config)
module has been modified to accept a new optionalboolean
parameterforce-load
, which isfalse
by default. Configuration is no longer reloaded each time this function is called, unless you explicitly request it by#:force-load #t
.
-
The module
(lepton library component)
has been amended to support new Scheme layer around internal%component-library
in thecomponent-library
procedure, which prevents loading of duplicate component libraries. -
The
bitmap-directory
gafrc
option has been removed. -
The
gafrc
options listed below have been deprecated and replaced with new configuration settings. Please refer to the Deprecated Settings wiki document.bus-ripper-symname
=>[schematic]::bus-ripper-symname
always-promote-attributes
=>[schematic.attrib]::always-promote
keep-invisible
=>[schematic.attrib]::keep-invisible
attribute-promotion
=>[schematic.attrib]::promote
promote-invisible
=>[schematic.attrib]::promote-invisible
make-backup-files
=>[schematic.backup]::create-files
-
Fixed rotation of logs broken in Lepton 1.9.8.
-
Fixed two long standing bugs in the procedure
component-library-search
:-
Failure of the procedure in some cases when the root directory processed by the procedure contained symbol files.
-
Failure of the procedure with the
'out-of-range
exception if the processed path contained 2 identical components at the end and trailing slash (e.g. "/path/sym/sym/").
-
-
The module
(netlist rename)
has been removed. All previous renaming functionality has been wholly thrown away. -
The module
(netlist pin-net)
has been removed.<pin-net>
records are no longer used in netlisting. -
The module
(netlist traverse)
has been removed. All its functions have been moved to other appropriate modules. -
New data structures, hierarchical, or over-port, or vertical, connections, have been introduced. They are used to produce net names for schematics with subcircuits. This fixed the issue with toplevel unnamed connections, using of which lead to wrong netlists, and resulted in the following changes in output netlists:
-
The
geda
backend no longer displays intermediate renamings the same way it is used for unnamed nets shown in netlists. Renamed unnamed nets of a subschematic are shown by the geda backend differently, e.g., "hierarchical/subciruit/name/unnamed_net_at_XxY", where X and Y are coords of one of their members. -
If a net has more than one preferred attribute attached ("net=" or "netname="), the lowest one by means of the predicate
refdes<?
is chosen then. -
The sequence numbers of unconnected pins and unnamed nets have been reduced due to removing of internal ones from the sequence.
-
-
During netlisting, page contents is filtered once to make connections.
-
Hierarchical names are now used for subschematics.
-
A new field,
parent
, has been added to the<schematic-component>
record to get hierarchical data. For a component, it contains the link to the<subschematic>
instance the component belongs to. -
The
<schematic-connection>
record now also contains a new field,parent
. For a connection, it contains the link to the<subschematic>
instance the connection belongs to. -
The
<subschematic>
record now also contains a new field,parent
. It contains the component the<subschematic>
belongs to, if any. -
The unused
sources
field has been removed from the<package>
record. -
The unused
tag
field has been removed from the<package>
record. -
The record now contains a new field,
port-connection
, which holds a hierarchical<schematic-connection>
a pin belongs to. -
Crashes, when source file cannot be found, are now avoided.
-
Fixed crashes on power symbols (the symbols having one pin and no "refdes=" attribute) having a "net=" attribute but no "pinnumber= attribute attached to its pin.
-
Fixed crashes in the
spice-sdb
backend when processing I/O components. -
Removed output of version in the
spice-sdb
backend. It has not been updated since 2007 and does not reflect the changes in the backend code. -
Fixed a link to documentation in the output of the
spice-sdb
backend. -
A new module,
(netlist mode)
, has been added. It contains accessor functions for current netlisting mode. -
A new module,
(netlist schematic-port)
has been added. It defines a new record,<schematic-port>
, which contains info about connections via ports between hierarchical levels. -
A new module,
(netlist schematic-named-connection)
, has been added. It contains functions for merging connections by net name. -
A new module,
(netlist subschematic)
, has been added. It defines a new record,<subschematic>
, which extends<#geda-page>
internal C structure and contains various netlist related fields. -
The
<package-pin>
record now has several new fields:net-map
is defined for virtual pins created from the "net=" attribute.parent
contains link to the parent component of a pin.
-
A new field,
pins
, has been added to the<schematic-connection>
record. For a connection object, it contains<package-pin>
objects that belong to the connection. -
A new field,
subschematic
, has been added to the<schematic>
record. It contains toplevel multi-page<subschematic>
of<schematic>
, thus allowing recursive access to low level subschematics. -
A new field,
subschematic
, has been added to the<schematic-component>
record. It contains its parent ` record. -
A new field,
port
, has been added to the<schematic-component>
record. The field contains port (<schematic-port>
record) for components being port components in subcircuits. -
A new field,
net-maps
, has been added to the<schematic-component>
record. It provides info on net mapping for the component pins. -
A new field,
named-connection
, has been added to the<package-pin>
record, which contains the parent<named-connection>
of a pin instance. -
Fixed wrong usage of the "netname=" attribute instead of "net=" when the
netname-priority
config setting is set to false (#f
), that is, when "net=" should be preferred. -
Fixed issue with output of wrong warnings about renaming nets with the same name (shorted to themselves).
-
Previously, the program used to exit with error if some source file was not readable or missing, even in the interactive mode. Now,
lepton-netlist
just reports such errors as critical without exit. -
The module
(netlist page)
has been eliminated in favour of the(lepton page)
module. All functions from the former have been moved to the latter. The procedurefilename->page()
has been renamed tofile->page()
. -
The unused Scheme module
(netlist repl)
has been removed. -
Netlist backends can now set the desired netlist mode by defining a
request-netlist-mode
function, which should return either'geda
or'spice
.lepton-netlist
no longer relies on the backend's filename when setting the operation mode. -
The
spice-sdb
backend has been fixed to generate SPICE.MODEL
lines correctly. -
The
--list-backends
command line option now has a short equivalent:-b
.
-
The initial Python script has been rewritten in Scheme. It was broken at least since 2007, when system-gafrc was refactored by removing
component-library
calls from it. It parsed that file for the "component-library" strings, but could not find and save any stock symbols. The new Scheme script has the following advantages:-
It eliminates issues with Python versions incompatibilities due to moving in most distributions to the more recent versions.
-
The previous script could only expand one environment variable in a file name. Now all environment variables are expanded recursively in file names, the tilda prefix (~) is expanded, too.
-
OS specific file name separator is now supported.
-
The script replaces using of system utilites cp, mv, rm in most cases with appropriate Scheme procedures.
-
Instead of direct parsing of component lines in schematic files ("C x y ..."), which may be wrong in some cases, it uses info on internal schematic provided by
liblepton
modules. -
The new script eliminates direct setting of any environment variables to the directory where
system-gafrc
should be placed, and parsing of the lines containingcomponent-library
andcomponent-library-search
in system rc files, as it is no longer required. -
gafrc
is now used instead ofgschemrc
as rc file to update; local project'sgafrc
is processed to get info on component libraries used in the project.gafrc
in the resulting archive is changed in that to load symbols from its local cache directory. -
Symbol and SPICE file cache directory name has been changed from
gschem-files
tocache
. -
The program can now collect and cache all symbols and subschematics in a hierarchical schematic, as well as subcircuits mentioned in the "file=" attributes of components.
-
RC file listing files to be archived is no longer used. The file set by the option
--files-from
(-f
) is used instead. The script copies all files mentioned in that file and in command line to the archive, including files not living in the project directory. -
Lowercase archive name is now used by default:
project-archive.tar.gz
instead ofProjectArchive.tar.gz
. It is to avoid issues with case sensitive filesystems. -
The program options now have long equivalents, please see
lepton-archive --help
for more information. -
The program now supports both absolute and relative source filenames (such as "/tmp/simulation.cmd") or using relative paths (like "./" or "../").
-
Files missing in the source library are reported.
-
The output archive file name can be specified without the ".tar.gz" suffix. The users can just use
-o project-archive
to save their project to the project-archive.tar.gz file.
-
- This utility has been rewritten in Scheme and renamed to
lepton-embed
. - Its functionality has been extended: it can now embed/unembed pictures (
-p
) or components (-c
) only, and may be instructed to leave source files intact, saving its output to a separate files with a given suffix (-x
).
-
A new command line option has been added for the
export
command:--paper-names
(-P
). It displays a list of paper size names suitable for the--paper
option. -
The default paper size is now defined in the system configuration files: the
paper
configuration key in theexport
andschematic.printing
(gschem.printing
) groups is set toiso_a4
. -
lepton-cli config
can now read and write configuration stored in the cache configuration context: a new command-line option--cache
(-c
) has been added.
-
The initial Python script has been rewritten in Scheme. The program now does anything the previous version did, and more:
-
liblepton
functions are now used to create objects instead of dealing with symbol text format directly. -
Fixed calculation of symbol width so that pins always touch symbol box even if the user specified too little width in the template file.
-
Dealing with "spacer"s gives better results/notifications.
-
-
The man page of the program has been updated to provide information about the source file format. Please see lepton-tragesym(1) for more information.
-
Several
(gschem *)
modules have been renamed to(schematic *)
ones. All the functions and variables available are still re-exported in the former ones but their using is discouraged. The following renames have been made:(gschem action)
=>(schematic action)
(gschem attrib)
=>(schematic attrib)
(gschem builtins)
=>(schematic builtins)
(gschem gschemdoc)
=>(schematic gschemdoc)
(gschem hook)
=>(schematic hook)
(gschem keymap)
=>(schematic keymap)
(gschem selection)
=>(schematic selection)
(gschem symbol check)
=>(schematic symbol check)
(gschem util)
=>(schematic util)
(gschem window)
=>(schematic window)
-
The following modules were simply renamed without providing any backwards compatibility:
(gschem core gettext)
=>(schematic core gettext)
(gschem repl)
=>(schematic repl)
-
The following core (written in C) Scheme modules have been renamed:
(gschem core attrib)
=>(schematic core attrib)
(gschem core builtins)
=>(schematic core builtins)
(gschem core hook)
=>(schematic core hook)
(gschem core keymap)
=>(schematic core keymap)
(gschem core selection)
=>(schematic core selection)
(gschem core util)
=>(schematic core util)
(gschem core window)
=>(schematic core window)
-
Grips can now be turned on and off at run-time. Use the new 'Options → Grips: On/Off' menu item or O-I keyboard shortcut.
-
In the 'Select Component' dialog, it is now possible to copy names and values of attributes to clipboard.
-
In tabbed GUI, tabs can now be rearranged by dragging them with mouse.
-
A context menu with common actions (
New
,Open
,Save
,Save As
,Page Manager
, andClose
) has been added to the active tab's header widget. -
The main menu code has been refactored and changed so that the type of selected objects is taken into account. Thus, some menu entries are not sensitive in some cases where it is inappropriate.
-
If Help → Find Component Documentation cannot find any documentation, a message box is displayed. No backtrace, nor Guile errors are printed to the log window.
-
All the
gschemrc
options are now deprecated, the settings have been migrated to new configuration system (*.conf
files). Uselepton-cli config
to read and modify them. New options have the same names and possible values (usetrue
/false
for booleans instead of"enabled"
and"disabled"
). Please refer to the Configuration Settings document ("Deprecated Settings") for more information. -
In the
Save As
dialog, the filter field now shows file extensions (.sch
,.sym
). A file's extension in theName
box is updated when the filter is changed. -
Tree view columns in the
Page Manager
window are now automatically resized. It helps when displayed paths are long: theChanged
column becomes visible again when you uncheck theShow full paths
checkbox. -
The
file-preview
option ([schematic.gui]
group) processing has been fixed. The user can turn the preview area in theOpen...
dialog on and off. -
The user can now change the paper size and orientation in the
Print
dialog. The combo boxes with these settings used to be set to default values and disabled. -
The context menu has been reorganized and updated.
-
Informational messages have been added to several lepton-schematic dialog boxes.
-
An "untitled" page can no longer be reverted (
Page → Revert
). This operation doesn't make sense for it and has been disabled. -
A new configuration parameter has been added:
show-tooltips
in theschematic.tabs
group (boolean
,true
by default). It enables or disables tooltips for tab header widgets in tabbed GUI. -
The
Single Attribute Editor
dialog can now be accepted by pressing theEnter
key when theName
field is focused. -
The save font configuration dialog has been improved so now it shows the name of selected font and full path names for configuration files.
-
The files lepton-gtkrc are now read from the system and user configuration directories. They can be used to customize the appearance of the program.
-
Fixed crashes on printing via the menu 'File → Print...' on some systems.
-
Fixed segfaults when the locale set by environment variables was not installed.
-
Fixed issue of incorrect main menu creation if system configuration file is missing.
-
Three new examples of analog simulation have been added. They reside in the directory netlist/examples/analog/.
-
RF_Amp
andTwoStageAmp
examples have been updated to make SPICE simulation work properly. -
gTAG
example scripts and configuration files have been fixed. -
Several
README
files have been updated. -
The obsolete Python script
bom
has been removed.
-
The version of the
libleptonrenderer
library has been fixed. -
The utility
lepton-xyrs
has been removed from the distribution since it has not been maintained or changed for many years and it does not belong to schematic capture.
- Static gettext domain name is now used for translation files.
- Two new procedures,
page-list->schematic
andfile-name-list->schematic
have been added to the(lepton schematic)
module to provide users with more intuitive way of<schematic>
record creation. The previously present proceduremake-toplevel-schematic
is still there, and has been made an alias of the latter. Itsnetlist-mode
argument has been made optional and is'geda
by default.
- The configure switch
--disable-gattrib
has been renamed to--disable-attrib
.
-
A new configuration upgrade tool,
lepton-upcfg
, and C and Scheme infrastructure for it have been added to simplify moving to Lepton's new configuration system. The new tool is aimed to convert legacygeda*.conf
files into newlepton*.conf
files by importing and renaming the settings in them. For example, in order to producelepton-user.conf
fromgeda-user.conf
, the user can use the commandlepton-upcfg --user
. Additionally, the user can switch between using of legacy and new configuration system using a new function,config-set-legacy-mode!()
, which may be set in some of Scheme files loaded by the tools. -
The module
(geda library)
has been renamed to(lepton library)
. All the functions and variables available are still re-exported in the former one but its using is discouraged. -
Warnings about deprecated and "dead" RC functions are now more verbose, and contain link to Configuration Settings wiki page.
-
Several clean-ups in the code and documentation have been made in both libraries' and GUI tools' code, removed some unused function arguments.
-
A main category has been added into Lepton desktop files. According to https://specifications.freedesktop.org/menu-spec/latest/apa.html, previously there was no valid main category in the desktop files. The problem is that without a main category, it is not possible to know for sure if a freedesktop compliant menu will show the applications the desktop files were made up for. This has been fixed by adding "Development" as main category for Lepton. Two additional categories have been rearranged in order "Electronics" to have priority over "Engineering".
-
The following rc procedures are now exported in the module
(lepton library)
:component-library-command
component-library-funcs
component-library-search
component-library
reset-component-library
-
The following rc procedures are now exported in the module
(geda deprecated)
:always-promote-attributes
attribute-promotion
bitmap-directory
bus-ripper-symname
keep-invisible
make-backup-files
print-color-map
promote-invisible
scheme-directory
-
Symbols with duplicated names have been moved to separate folders:
share/lepton-eda/sym-gnetman
share/lepton-eda/sym-verilog
share/lepton-eda/sym-vhdl
Now it's possible to use
gafrc
functioncomponent-library-search
withshare/lepton-eda/sym
without getting tons of warnings about duplicated symbols in the log. -
System-wide configuration file,
lepton-system.conf
, has been added to the distribution with default settings applicable for most installations. Its legacy predecessor,geda-system.conf
, has been added as well for backwards compatibility. -
The location of log files has been changed to
$XDG_CACHE_HOME/lepton-eda/logs/
. Previously they were stored in the user's configuration directory.
-
Building of the tools with Guile 2.2 is now supported.
-
Lepton now requires Glib 2.38.0 or later versions for build.
-
It is now possible to accelerate the tools some parts of which are written in Scheme when they are launched for the first time. Previously, on first running much time would be spent on compilation of Scheme code involved. The startup time can be reduced if the code is compiled and installed in advance. To make it work, a new
make
target,precompile
has been added. While the commandmake precompile
can be used for local builds, it could be much more convenient for end users if package managers working on packaging Lepton for some distributions "precompile" the code on the package building stage. The technik of "precompilation" has been already implemented to make packages for FreeBSD: FreeBSD port and binary package made from it. In essence, it included two steps:- A relevant section has been added to the port's
Makefile
, and - The list of compiled files has been added to the port's
pkg-plist
.
Package managers of other distributions could adopt this technik. Please see discussion at #339 for more information.
- A relevant section has been added to the port's
-
Fixed and improved VPATH (out-of-source) builds on some systems. It used to be that Lepton did not install files from the
docs/wiki/
subdirectory when the commandmake install
was used, because it was assumed that the directory contained only regular files. This has been fixed by changing appropriate Makefiles to search for symlinks as well. -
Build errors on FreeBSD 13.0-CURRENT on the link stage in the
utils/gschlas/
directory have been fixed. In earlier FreeBSD version Lepton EDA builds without errors. The issue happened to appear due to changing of the default linker from GNUld
told.lld
from thellvm
distribution. -
Fixed FreeBSD build errors on the
powerpc64
architecture with base system compiler gcc-4.2: (FreeBSD bug report #239311). -
Fixed build failures on Gentoo with gcc-8.2.0.
-
Several C functions in
liblepton
, various Lepton tools, contributed code (olib
,sarlacc_schem
,convert_sym
,gmk_sym
) as well as PO-files have been fixed to avoid compilation warnings and errors. Nowlepton-eda
compiles without warnings with gcc/g++ on several platforms. Several warnings reported by clang++/llvm have been fixed as well. -
The like changes as above have been done in the Scheme part of code to prevent various compilation and deprecation warnings in several modules and tools when compiled with guile-2.0 or guile-2.2.
-
LaTeX files are no longer generated by
make doxygen
since it was reported that several Ubuntu versions do not do TRT when building LaTeX documentation. -
Doxygen subsystem has been cleaned up to get rid of unused files since the tools rewritten in Scheme are not covered by its functionality any more.
-
Fixed some portability issues in documentation building.
-
Building of documentation no longer depends on the
fig2dev
program. The dependency has been eliminated. -
Gettext translation subsystem has been changed for most of the tools in that to avoid unintentional and unwanted updates of their translation PO files when the tools are built from sources.
-
Now Lepton EDA Scheme Reference Manual in the
HTML
format is built and installed with other files onmake && make install
. A CSS file has been added to prettify the generated HTML pages. -
Some empty application-specific directories that previously could not be removed after uninstalling all files by
make uninstall
are now correctly deleted.
-
liblepton
configuration C and Scheme API has been extended with functions for removing configuration keys and groups. -
A new Scheme module,
(lepton file-system)
, has been added. It exports functions that previously were global:regular-file?()
,directory?()
, andfile-readable?()
. The users may need to fix their scripts in which those functions were used by adding corresponding(use-modules ...)
line.. -
A new Scheme module,
(lepton rc)
, has been added. It exports functions and variables that previously were global: build-path,geda-data-path()
,geda-rc-path()
,path-sep()
,load-scheme-dir()
, andload-rc-from-sys-config-dirs()
. The users may need to fix their scripts in which those functions and variables were used by adding corresponding(use-modules ...)
line. -
Fixed
'config-keys
unit test which previously did not work correctly on some Ubuntu versions.
-
Default font name has been changed from
Arial
toSans
. -
Changes in path rendering:
-
Previously, the library was not able to render zero line width paths properly since the zero value for the line width field in the path definition was interpreted as a request for the default line width. Therefore the path objects were always enlarged by some amount in size. Now, when line width of a path is set to zero, the stroke is not rendered, thus allowing drawing of filled figures without increasing their size by a half of the line width, so the object sizes strongly correspond to what the user wanted. No line is drawn when exported with
lepton-cli export
command. In thelepton-schematic
GUI, 1 screen pixel line is used for rendering zero line width path objects to provide visual feedback to the user. -
Now, path objects can be rendered with different line cap styles when the line width is non-zero. Previously, the default
square
style was always used.
-
-
Three legacy rc procedures,
attribute-promotion
,promote-invisible
, andkeep-invisible
, have been adjusted to return their boolean values if used with no arguments, instead of just#t
. This allows using the results in Scheme plugins. The procedurebitmap-directory
now returns its string value if used with no arguments. If no value has been previously set, it returns#f
. -
A new hook,
open-page-hook
, has been added to the(gschem hook)
module. It allows to evaluate Scheme code when an existing schematic page is loaded. -
New Scheme API functions for working with object selectable status have been added to the
(geda object)
module:object-selectable?
andset-object-selectable!
. Together with page hooks they can allow to save locking status of primitive objects without changing the current file format. -
The function
arc-end-angle
has been fixed so it now correctly returns the end angle of an arc. Since its creation, it gave improper results because it was a sibling of a C function returning the sweep angle of an arc. A new function,arc-sweep-angle
, has been added to maintain that functionality.
-
A few improvements have been made in option processing:
-
Getopt-long functions are no more directly used inside netlister modules, so the modules can now be loaded in other programs having other options. This affects unit testing and
lepton-schematic
GUI, as in those cases another set of options may be used. -
Processing of some options yielding lists when several of such options are used, no more results in reversed lists.
-
Processing of the
-c
option has been fixed so there is now no errors when it used more than once.
-
-
The option -w introduced in Lepton EDA 1.9.6 has been removed. It was used to suppress warnings about missing configuration files. This is no longer needed, since the function
config-load!()
has been fixed to not complain if those files are absent. -
A few improvements have been made in the SRFI-64 unit-test suite:
-
There is no more limit for backtrace length if an error occurs, the unit-test script uses default stack size which makes debugging a bit more convenient.
-
Backtrace output is now formatted properly without newline mangling.
-
Directories containing modules
lepton-netlist
depends on have been added to the unit-test script load path. Modules depending onliblepton
andsymcheck
can now be used with the script.
-
-
A new record,
<schematic-component>
, has been added. It is now the basic record for using in the backends that work with components such as spice ones. -
<schematic>
record now contains a new field,packages
, containing the list of schematic packages, where any element of the list is a<package>
record. The<package>
records now contain sets of components with same refdes. The field packages is intended for use in backends working with multi-slot packages, e.g. PCB. -
The
schematic-netlist
field of the<schematic>
record has been renamed toschematic-components
to more accurately reflect destination of the field. -
Common
<package>
structures for<schematic-component>
's with default "refdes" attribute value are no longer created. Component's "refdes" value is considered to be default if the component has no attached "refdes", or its attached "refdes" is the same as the inherited one and has the suffix "?". -
A new module,
(netlist schematic-connection)
, has been added. The module has to provide records and functions for working with schematic connections, that is, directly or indirectly connected groups of nets. -
The
composite
field in the<schematic-component>
record, inherited from the<package>
structure, has been renamed tosources
. The field can be used to get source file names. -
The obsolete procedure
get-uref()
has been replaced with a local procedure and its using is discouraged. -
A new module,
(netlist schematic toplevel)
, has been added. It contains accessors for<toplevel-schematic>
record which is now obtained as a set of schematic files given on lepton-netlist command line. Thetoplevel-schematic
variable has been replaced with same named procedure. -
Arguments for
make-toplevel-schematic()
are now filenames instead of pages. This will allow reusing this function to encapsulate subschematics in future. -
A new module,
(netlist deprecated)
, has been added to isolate legacy code that is a subject for deprecation in the next stable release. -
A new function,
set-netlist-option!
, has been added to the(netlist option)
module. It lets the users set arbitrary default netlister option values when the netlister modules are used by other tools, e.g., when they're loaded while working inlepton-schematic
GUI. -
A new module
(netlist page)
has been added. The new module now contains an only procedure,filename->page()
, which opens a schematic page by filename. Depending on the form of its call, it can return either an already opened page for a given filename, or a new page, if the user so desires. -
Several issues related to hierarchical names have been fixed:
-
Reverse order setting for refdes attribute no longer affects netnames.
-
Now netnames are formed using true reversed hierarchical name, before they were formed from a string representing hierarchical refdes and local netnames. Since the hierarchical refdes string might be not reversed depending of the reverse order setting for refdes, the resulting strings did not reflect hierarchy correctly.
-
For the same reason, the separator for the "net=" and "netname=" attributes did not affected resulting net names, which has been fixed as well.
-
Removing of refdes mangling was previously possible only if the refdes separator was "/". This has been fixed to support other separators.
-
-
The following fixes have been made in the VAMS example:
- Deprecated gnetlistrc settings have been replaced with new configuration options.
- Wrong netlister name has been fixed.
- generate_netlist.scm has been moved to the example directory.
-
The
vams
backend code has been fixed as follows:-
The code does no longer emit Scheme return values of procedures, which previously mangled the output.
-
The output of generic and port definitions is now going into appropriate place.
-
A list of attributes that cannot form generics does no longer appear in the output. Two internal (or abstract) attributes,
slot=
andnet=
, are no longer used in forming VHDL generic maps, since they are intended for internal use by netlister itself.
-
-
The
allegro
backend has been refactored so obsolete procedures are no longer used in it. -
Two obsolete scripts written in sh and awk,
annotate.sh
andunannotate.sh
, have been removed from the distribution. -
Three sh scripts,
bompp.sh
,bom_xref.sh
, andsch2eaglepos.sh
, have been moved to the contrib/ directory. -
The directory netlist/utils/ and an only pretty much obsolete utility,
mk_verilog_syms
, contained in it, have been removed from the distribution. The script was used to initially create verilog symbols, and output symbols in obsolete format with limited set of pin attributes. By now, initially created verilog symbols have been modified in various ways, including manual intervention and generating the symbols with some new version of the program that did not however go to the repository, so the removing is safe. -
Netlister backends and associated files have been moved to a new subdirectory
share/lepton-eda/scheme/backend
. -
An arbitrary backend file can be loaded by specifying its path via the new
-f
command line switch tolepton-netlist
. The file should be named likegnet-NAME.scm
, whereNAME
is the backend's name. It's useful for testing new and 3rd party backends, as well as running backends from different installation paths.
-
The command line option -p has been removed. It was used to automatically place the main window with some default widget sizes.
-
Several configuration settings have been changed to ensure reasonable default values:
- The rubber band mode and magnetic net mode status bar
indicators are now shown by default
(
schematic.status-bar::show-rubber-band=true
,schematic.status-bar::show-magnetic-net=true
). - The tabbed GUI is enabled (
schematic.gui::use-tabs=true
). - Monospace font is used in the log window
(
schematic.log-window::font=Monospace 11
). - Monospace font is used in the macro widget entry
(
schematic.macro-widget::font=Monospace 11
).
- The rubber band mode and magnetic net mode status bar
indicators are now shown by default
(
-
The attribute attachment code has been rewritten in Scheme, changed and fixed in several ways:
-
Now attributes can be attached to any non-text objects.
-
Only visible attributes can be now attached.
-
If attributes are already attached or no attribute is selected, no action is undertaken.
-
Information about successful attachment is now printed to the log.
-
Successfully attached attributes and the object they are attached to are deselected after the attachment operation.
-
-
The attribute detachment behaviour has been changed. Before, attributes of selected objects (visible and invisible, selected or not) were all unconditionally stripped. The detachment code has been rewritten in Scheme, changed and fixed in several ways:
-
Now only selected visible attributes are detached from their respective parent objects.
-
There is no need to select parent objects in order to detach their attributes any more.
-
The info about successfully detached attributes is now output to the log.
-
If there is no selection, the selected attributes are not attached to any object, or selection does not include any attributes, nothing is undertaken.
-
Just detached attributes get unselected and their color is changed to the color of detached attributes.
-
-
Several improvements/fixes with regard to locking/unlocking of components and their attributes have been introduced:
-
Previously, when a component was locked, its attributes were also locked, but they changed the locking status after saving and reopening of schematic. Now, they become locked along with the component they're attached to.
-
Previously, toggling of locking status of a component and its attributes required selecting them all to do it properly. Otherwise, the locking status of not selected attributes would not change. Now, it is sufficient to select only the component to lock or unlock it together with the attributes, without having to additionally select them.
-
-
The action 'File → Save All' and processing of "untitled" schematics have been improved:
-
It used to be that on saving all files, all opened pages were silently saved, even if there were new "untitled" pages among them, that is, the pages newly created under the default file name and not yet saved to disk. Now such files are skipped from saving.
-
When constructing file name for a new "untitled" page, the names of already opened files and existing files in the current directory are taken into account. These names are not reused to prevent possible consequent data loss. The skipped names are printed to the log.
-
A message indicating the result of the "save all" operation is now shown in the status bar.
-
If tabbed GUI is enabled in configuration, the header of each tab widget correctly updates to reflect the status of its page, if it is saved or not.
-
"Save As" dialog box is now opened for new "untitled" pages on the "save all" operation, prompting the user to save them.
-
-
In the 'Edit Attributes' dialog, it is now possible to copy names and values of inherited attributes to clipboard. The feature was first requested on launchpad in #1405314.
-
Distinct parts of the
system-gschemrc
configuration file are moved to separate files under theconf/schematic/
subdirectory to simplify dealing with certain aspects oflepton-schematic
behaviour and searching for appropriate settings. The new files are loaded fromsystem-gschemrc
:attribs.scm
deprecated.scm
keys.scm
menu.scm
options.scm
stroke.scm
-
The following Scheme functions are now deprecated and do nothing:
gschem-image
gschem-pdf
gschem-use-rc-values
-
Several
gschemrc
settings has been changed as follows:add-attribute-offset
is now deprecated and does nothing.image-color
is now deprecated and does nothing.image-size
is now deprecated and does nothing.logging-destination
is now deprecated and does nothing.log-window-type
is now deprecated and does nothing.raise-dialog-boxes-on-exp
is now deprecated and does nothing.window-size
is now deprecated and does nothing.warp-cursor
is now "disabled" by default.fast-mousepan
is now "disabled" by default.log-window
is now "later" by default.undo-levels
is now "20" by default.undo-panzoom
is now "disabled" by default.
-
The
sys-doc-dir()
function code in the module(gschem gschemdoc)
module responsible for searching for system documentation directories has been known to fail in some circumstances when it tried to guess where the documentation files are installed. The guess-work has been eliminated by using fixed compile-time variables in the code. -
The geometry (size and position) of
lepton-schematic
's main window can now be stored in the cache configuration context, in theschematic.window-geometry
group. The geometry is saved on exit and restored on startup if the (new)[schematic.gui]::restore-window-geometry
configuration key is set totrue
(which is so by default). -
The macro widget has been improved in several ways:
-
A new configuration group,
schematic.macro-widget
, has been added for setting up the properties of the widget. -
The history of Scheme expressions executed via the
:
prompt is now saved in the configuration file in the cache configuration context (usually$XDG_CACHE_HOME/lepton-eda/gui.conf
). The commands are stored in thehistory
key and can be accessed by choosing appropriate items from drop-down list in the macro widget. The history length is set in thehistory-length
configuration key in theschematic.macro-widget
group in the user configuration context. The default value is 10. -
The macro widget now supports auto-completion of text.
-
A new configuration key,
font
, in theschematic.macro-widget
group in the user configuration context can now be used for setting up the font of the widget. -
As a side effect of refactoring of the widget, the program no longer crashes on evaluating of the command
(file-quit)
in the prompt.
-
-
New accelerator keys have been added to facilitate keyboard navigation in the following dialogs:
Single Attribute Editor
Edit Attributes
Select Component
Add Text
Edit Text
Object Properties
Options
Arc Params
-
The log window can now be cleared by choosing "Clear Log Window" menu item in the context menu. The user can cancel the action in the confirmation dialog.
-
Long lines in the log window can now be wrapped by clicking the "Wrap Long Lines" menu item in the log window's context menu.
-
Schematic page filename and more verbose information is now displayed in the page revert dialog.
-
If you select 'Print to File' option in the print dialog, the output PDF file name is now derived from the name of the current page instead of previous default name "output.pdf".
-
File filters in the dialog boxes 'Open...' and 'Save As...' now keep their last chosen values while the program is running. Previously, the filters were always set to choosing schematic files when the user opened the dialogs.
-
Wrong behaviour of the program when the value of draw-grips is set to "disabled" in
gschemrc
has been fixed, so now this setting prohibits drawing grips of selected objects still allowing the user to resize them. -
A new menu allowing exporting of netlists has been added to the program. As of now, the only item in the menu allows exporting of
allegro
netlists. Messages about processing are sent to log to provide the user with some feedback information in the log window. -
Fixed segmentation faults in the
always-promote-attributes
rc function (called from thegafrc
configuration file) when used with improper arguments. -
Avoided GTK warnings on output of some message strings to the status bar containing characters which are treated specially by GTK, such as '<' and '>'.
-
Page "changed" indicator is now shown in the tab headers as well: the file name shown is output in bolder font and an asterisk is added to emphasize that the file has been changed.
-
Fixed font preview in the font selection dialog. Previously, if a custom font name was specified in the configuration key
font
in theschematic.gui
configuration group, the text became invisible in the preview widget of the dialog, because the "Size" field was always initially set to zero. This has been fixed by setting the initial font size to non-zero value. -
Fixed page "changed" status indication. Previously, after successful Edit → Embed and Edit → Unembed operations the "changed" status of the page would not reflect in the page manager and in the window's title. Now, both are correctly updated so that the status is visible to the user.
-
Page manager visual appearance has been improved in several ways:
-
When working on hierarchical schematics, full schematic paths used to clutter the view most of the time. Now they can be shown at any time or hidden away by checking the "Show full paths" checkbox. By default, they are hidden. The state of the "Show full paths" checkbox is stored in the
show-full-paths
key of theschematic.page-manager
group in the cache configuration context. -
Minimal "Filename" column width has been reduced.
-
Scrollbars are now shown only when needed.
-
Superfluous "Right click on the filename for more options..." label has been removed.
-
The "Update" button has been removed from the page manager dialog, and a similar item has been added to the context menu.
-
-
Fixed a broken output of translated strings to the log when the program is compiled using guile-2.2. It is a known issue in guile-2.2. The function
scm_puts()
broke translated Unicode strings and output them as sets of bytes. Their further transformation by gtk functions resulted in unreadable text in the log window. -
Fixed segfaults triggered on some systems by the sequence Control+x Control+v when a component was selected.
-
Fixed errors triggered by the function
file-quit
on startup, for example, using the following command:lepton-schematic -c '(file-quit)'
. -
Fixed a bug of searching for
gschem-gtkrc
in wrong system config directories. -
The file
gschem.scm
, that defined some previously global Scheme functions, has been transformed into two modules —(schematic gui keymap)
and(schematic gui strokes)
. While this simplifies Lepton code a little and eliminates a superfluous step of loading the file with auxiliary functions, the functions are no more global, so the users may have to fix up their extensions, if they want to use those functions, by making sure the necessary modules are loaded within them. -
Exceptions in the (gschem gschemdoc) module are now catched and reported to the user in a message box.
-
The menu item Help → Find Component Documentation is now sensitive only if a component is selected, providing the user with a useful feedback.
-
The action
&repeat-last-action
(the /repeat/ key .) has been improved, so it now does as following:-
It now displays a log message when there is no last action to repeat rather than warning about an invalid action.
-
If an invalid action is requested, instead of using the Scheme function
error()
to report the failure, it just prints a warning to the log.
-
-
Deprecated export scripts
image.scm
,print.scm
and the--output
command line option have been removed. Schematics can be exported by usinglepton-cli export
or via the 'File → Write Image...' dialog box. -
Current schematic's full file path can be shown in the main window's title if the
title-show-path
configuration key (boolean) in theschematic.gui
group is set totrue
. -
Close confirmation dialog has been improved:
- It can be resized.
- "Show full paths" checkbox has been added.
-
The
Write Image...
dialog box has been improved as follows:- Image color mode can now be selected (greyscale or color).
- 1024x768 has been added to the list of image sizes.
- Selected directory, image size, image type and color mode are saved and restored when this dialog is opened next time.
-
New names are now used for temporary files created by undo subsystem in
$TMP
:lepton-schematic.save*
instead ofgschem.save*
.
-
The program no longer loads
gattribrc
files since for many years they provided no useful settings for the user. Previously available Scheme functionsquit()
,exit()
, andgattrib-version()
have been removed as well. -
Separate menu description XML file has been removed. Now the menu structure is defined in the source code only.
-
The size and position of the main window is now saved in the cache configuration context, in the group
attrib.window-geometry
, and restored on launching of the program.
-
The program no longer requires specifying any file name when interactive mode is requested, which may be convenient, for example, for debugging its functions.
-
A simple error is output instead of Scheme backtrace when neither interactive mode nor input files are specified on command line.
- Default font name for the
export
command has been changed fromArial
toSans
(export::font=Sans
).
- The program no longer loads
system-gschlasrc
since for many years it provided no useful settings for the user. Previously available Scheme functionsquit()
,exit()
, andgschlas-version()
have been removed as well.
- Default font name has been changed from
Arial
toSans
.
- Non-working
-d
(debug) option has been removed.
-
A new action,
edit-object-properties
, has been added. It is a replacement for four legacy actions which opened the same dialog:edit-color
,edit-linetype
,edit-filltype
,edit-pin-type
. The action is now bound to the shortcut E-O. -
Fixed icon name for "Down Symbol" entry in pop-up menu.
-
Improved diagnostics of input file errors:
-
If
--verbose
(-v
) command line option is passed tolepton-schematic
, it prints input files line by line as they are parsed in the terminal, which facilitates debugging of broken schematics. -
"Failed to load file" dialog error message has been improved. It now reports line number in the schematic file where parsing was stopped due to an error.
-
-
Several changes in the
lepton-schematic
menu make it more organized and easier to navigate through:- A new shortcut, O-F, for 'Options → Font', has been added.
- A new shortcut, T-I, for 'Attributes → Show/Hide Hidden Text', has been added while retaining the legacy one, E-N.
- Shortcut for 'Help → Find Component Documentation' has been changed to H-O.
- Shortcut for 'Options → Options' has been changed to O-O.
- Shortcut for 'Attributes → Find Text' has been changed to T-F.
- Obsolete 'Edit Pin Type' entry in pop-up menu has been replaced with 'Object Properties'.
-
Some issues with using of 'Help' menus have been fixed:
- Fixed doc searching bug in
lepton-schematic
's modulegschemdoc
which failed due to wrong guessing on the installed documentation paths. - Fixed blocking of
lepton-schematic
GUI on using 'Help' menu entries on systems where documentation viewer may not return control until the web browser is closed.
- Fixed doc searching bug in
-
A new test schematic for the
verilog
backend has been added. It allows checking changes in verilog module declarations. -
Log initialisation has been moved from the
(netlist)
module to thelepton-netlist
executable file to prevent repetition of the initialisation on every loading of the module and using the wrong log domain when the module is loaded, e.g., inlepton-schematic
GUI. -
Output of
lepton-netlist
version has been unified and placed into one procedure,lepton-netlist-version
. Version is now output once per run, and the procedure can be used interactively inlepton-netlist
REPL. -
lepton-netlist
interactive mode can now be used without specifying any file name on command line; the user can now load, traverse, and introspect arbitrary schematics data in its REPL. -
Some backward compatibility variables have been provided to ensure compatibility with legacy geda backends.
-
schematic-packages
andschematic-non-unique-packages
fields have been removed from the<schematic>
record since they are derivatives from its other structures. Two substitution procedures retrieving those data,schematic-package-names
andschematic-non-unique-package-names
, have been provided to provide the same functionality. -
New procedure
netlist-error
is now used instead oferror
in many backends for reporting errors. This simplifies error output by avoiding improper output of the program execution stack where it is not necessary. -
The program now catches errors in loaded code (specified by options
-g
,-l
,-m
,-c
) and exits with appropriate error message.
- The library has now facilities to load schematics in a verbose
manner, which is now used in
lepton-schematic
(see above) for debugging.
- All
(gnetlist module-name)
Scheme modules have been renamed to(netlist module-name)
.
- More portable gcc flags (namely,
AX_GCC_FLAGS
) are used now.-std=c99
substitutes for-std=gnu99
, and-Werror=uninitialized
is now used instead of-Werror=maybe-uninitialized
.
-
A new configuration key
text-sizes
inschematic.gui
group has been added. It can be set to a semicolon-separated list of text size values. Those values will appear in Text Entry... ('Add → Text)' and Text ('Edit → Text') dialogs instead of default built-in values. -
The middle mouse button can now be used to display the popup menu. Set
(middle-button "popup")
ingschemrc
configuration file for this to work. -
The maximum number of recent files to show in the
File → Open Recent
menu can now be configured usingmax-recent-files
key in theschematic.gui
group. -
Processing of
-q
(--quiet
) command line option has been fixed.
-
lepton-netlist --list-backends
standard output now contains just the list of backend names, making it more script-friendly. -
A bug in the function
get-all-connections
, which led to wrong netlists, has been fixed. The function now ignores pins of graphical components if they are connected to nets. -
Filtering of "no-connect" packages and nets has been added:
- A new
symbol=nc
attribute has been added to the list of processed attributes. Please see the Attributes page in the lepton wiki for more information on how it works and about backward compatibility. - A new function,
package-nc?
has been added to the(netlist package)
module to filter the "no-connect" packages. - The
<schematic>
record in the(netlist schematic)
module has been changed to contain the fieldnc-nets
providing the names of nets connected to the "no-connect" symbols. - Appropriate functions of the
drc2
backend have been modified accordingly to support the new attribute. - The "no-connect" symbols in the distribution (
nc-*.sym
) have been updated to reflect the above change. - Some netlister test schematics have been fixed to check for the new and legacy "no-connect" symbols.
- A new
-
Output of the
geda
backend has been changed. Now it outputs additional information on graphical symbols and "no-connect" symbols. -
Error output of the
bom2
backend has been fixed. -
Log file names are now prefixed with
netlist
instead ofgnetlist
. -
Reduced output to log files by removing disclaimer.
-
Fixed netlister name in the output of many backends.
-
A new command line option, -w, has been added to prevent "annoying" warnings about missing configuration files.
-
A new module,
(netlist error)
, and a new function in it,netlist-error()
, have been added. The function is recommended for using in code of backends instead oferror()
, since the latter outputs Scheme execution stacks awful for mere users and absolutely unnecessary in cases where there are no programming error. -
The program now exits with exit code 1 when neither backend nor interactive mode are given.
-
A non-portable invocation of
mktemp
has been fixed. -
Temporary file names are now prefixed with strings "lepton-schdiff-old", "lepton-schdiff-new", and "lepton-schdiff-diff" to facilitate debugging.
-
lepton-cli export
is now invoked instead of deprecated Scheme scripts. -
A new command line option, -d [VIEWER], has been added to specify the image viewing program. By default,
display
from the ImageMagick package is used. -
The script now uses the schematic font name set in the
schematic.gui::font
configuration key to output images. By default, if that key is not set, Arial is used.
-
The version of the
libleptonrenderer
library, mistakenly broken in the previous release, has been fixed. -
Fixed build on systems with several versions of
guile
package installed. On such systems, the user can specify the right program binary on theconfigure
stage, e.g.,./configure GUILE=/usr/bin/guile-2.0
.
- Log window scrolling has been fixed so that the last line of the log is shown correctly.
-
A new backend, tEDAx, aimed to support for the
pcb-rnd
program, has been added. -
The patch preventing using of some
bash
-specific constructs has been applied. -
Duplicate backend name output by the
--list-backends
command line option has been avoided.
-
gaf
has been renamed tolepton-cli
,gschem
has been renamed tolepton-schematic
,gnetlist
has been renamed tolepton-netlist
,gsch2pcb
has been renamed tolepton-sch2pcb
,gsymcheck
has been renamed tolepton-symcheck
,grenum
has been renamed tolepton-renum
,refdes-renum
has been renamed tolepton-refdes_renum
,tragesym
has been renamed tolepton-tragesym
,pcb_backannotate
has been renamed tolepton-pcb_backannotate
,garchive
has been renamed tolepton-archive
,gsymfix
has been renamed tolepton-symfix
,schdiff
has been renamed tolepton-schdiff
,gschlas
has been renamed tolepton-schlas
,gxyrs
has been renamed tolepton-xyrs
,gattrib
has been renamed tolepton-attrib
. -
By default, backward compatibility symlinks are not created for major renamed tools, namely,
gaf
,gattrib
,gnetlist
,gsch2pcb
,gschem
, andgsymcheck
, though the user can change that. A new configure option,--enable-compat-symlinks
, can be used to enable their creation. -
The users have now use
info lepton-scheme
to open texinfo manual on Lepton EDA Scheme API instead ofinfo geda-scheme
.
-
Compatibility with various non-Linux systems has been improved by avoiding of hardcoding paths for such interpreters as Perl, Python, or bash.
-
lepton-eda
can now be compiled in C++ mode basically by using./configure CC=g++ && make CC=g++
. -
The same readline history file ".lepton_history" residing in the user configuration directory is used for
lepton-schematic
,lepton-netlist
, andlepton-symcheck
. -
A new section about 'Makefile' creation has been added to CONTRIBUTING.md to facilitate non-gnu-make builds.
-
Fixed
--disable-deprecated
configure option. -
Fixed non-working Scheme API procedure
reset-source-library
.
-
Fixed Postscript output in landscape orientation.
-
Fixed
--layout
option processing for export.
-
All
lepton-netlist
(previously known asgnetlist
) functionality has been reimplemented in Scheme. -
Fixed processing of the
graphical
attribute. -
Fixed a regression in the
verilog
backend. -
A new example and a wiki page for it have been added for the
verilog
backend.
-
view-find-text-state action has been added ('View → Find Text State'). It helps when docking windows GUI is turned off (in that case all widgets are not always visible).
-
"Freestyle" colors gain default values. Now there is no need to share the color schemes if one use that colors in their schematics.
-
A new widget that allows the users to change the schematic font has been added ('Options → Font...'). The user can click the "Apply" button to preview the chosen font and then cick the "Save..." button to save the settings either to the local or user configuraion file. It changes
font
key inschematic.gui
group mentioned below. -
A new configuration key
font
inschematic.gui
group has been added. The user can now choose the font for schematic text. -
Program-specific settings are now stored in separate configuration file in
$XDG_CACHE_HOME
directory. -
A new widget for changing color scheme has been added. The user can now open 'View → Color scheme editor...', choose the colors she wants, and save the resulting color scheme under appropriate file name.
-
File save dialog now displays proper names for new files.
-
File save dialog is no longer opened after 'File → Save' for existing files if they have already been saved under default name.
-
Some duplicated log messages and superfluous newlines are no longer displayed in the log window.
-
Orphaned pages visible only in Scheme are no longer created after 'Page → Revert'.
-
Tabbed GUI support has been added to
lepton-schematic
: each schematic page can be now displayed in its own tab. By default, it is disabled and can be turned on by settingschematic.gui::use-tabs
configuration key totrue
. Two other configuration keys related to tabbed GUI areschematic.tabs::show-close-button
andschematic.tabs::show-up-button
. They determine whether to show "close" and "hierarchy up" buttons on each tab, respectively. -
Non-working options "-r" and "--config-file" have been removed.
-
A new hook,
switch-action-mode-hook
, has been added, which can be used to yield user subroutines on mode switch. Please checkinfo lepton-scheme
for details. -
'Text Entry...' dialog now respects the
text-size
option value. -
Freestyle colors have now appropriate names in GUI.
-
A new configuration key
modify-viewport
inschematic.undo
group has been added. It allows to change panning and zooming on undo/redo operations ifundo-panzoom
is set to "disabled" ingschemrc
configuration file. The default value is "false". -
Fixed naming of exported files in non-UTF-8 locales.
-
Warnings about missing standard menu items no longer clutter the log window when they are commented out in
system-gschemrc
. -
A new widget to check symbols using
lepton-symcheck
functionality has been added. Use 'Attributes → Find Specific Text...' or T, Shift+F, choose 'Check Symbol:' on the combo-box at left, and press the button 'Find'. A message dialog with info about wrong floating attributes will appear. Closing it with the 'OK' button will lead to opening a window with info on objects having errors or warnings if such objects exist. If you select any of them, the canvas will be panned and zoomed to have it centered on the page. -
Support for showing widgets as dialogs has been added. Now the users may decide, what type of GUI they prefer to use: dialog boxes (as it was before 1.9.2) or docking widgets. The type of GUI is controlled by the
use-docks
configuration key in theschematic.gui
group. By default it'strue
: use docking widgets. If it'sfalse
then the widgets will be shown as dialog boxes. -
A new module,
(schematic undo)
has been added, which contains a new procedure,undo-save-state
. It saves current state onto the undo stack. Now it's possible to support undo/redo operations while modifying a schematic by scripts written in Scheme. -
Filtering support has been added to hotkeys dialog. The user can quickly search by a desired keystroke or an action name in the
Filter:
entry. When searching for hotkeys, the user has to enter space between letters. -
A regression in the multiattrib dialog box, resulted in the wrong height of the value textview, has been fixed.
-
A new
font
configuration key in theschematic.log-window
group is now used to select the font used in the log window. -
Scrollbars in the log window are no longer shown if the text fits in the window.
-
Automatic scrolling is now used in text properties and object properties widgets.
-
Color selection combo box keeps updated in line with the current color scheme.
-
Several new statusbar settings can now be used to adjust the statusbar appearance. The user can change one of the settings in the
schematic.status-bar
configuration group in order to get her favorite view:-
Rubberband and magnetic net mode indicators can be now turned on by setting
show-rubber-band
and/orshow-magnetic-net
configuration keys totrue
, accordingly. -
Indication of mouse button assignment can be switched off by setting
show-mouse-buttons
configuration key tofalse
. -
The user can now affect the font style used for the active action text with two new keys:
status-active-color
andstatus-bold-font
.
Please see the Configuration Settings HowTo for more information on the above settings.
-
-
All status bar elements have now tooltip descriptions.
-
lepton-symcheck
(previously known asgsymcheck
) functionality has been fully reimplemented in Scheme. -
Fixed wrong evaluation of amount of failed checks.
-
No Scheme rc files are parsed for the utility any more. Useless rc procedures
gsymcheck-version
,quit
andexit
have been removed. -
A new option,
--interactive
, has been added, which allows working with the tool functions in an interactive REPL. -
Improvements and new checks in the utility:
-
Improved error messages about various objects.
-
Added checks for zero sized primitives.
-
Added checks for forbidden objects inside symbols (nets, buses, components).
-
Improved checks for duplicated floating attributes.
-
An incorrect warning message about a trailing backslash in text objects has been fixed.
-
Improved checks for the
pinseq
attribute multiplicity. -
Improved special checks for
device
andgraphical
attributes. -
Output messages about required floating attributes (
refdes
,device
, andfootprint
) have been unified and have now severity'warning
for all of them. -
Improved checks for symbol slotting: added checks for the
numslots
attribute and for duplicate pin numbers in theslotdef
attributes. Checks for duplicates in wrongly formed slots are avoided. -
Refactored checks for duplicates in
slotdef
,net
, andpinnumber
. -
Misleading warnings about matching pin number in
net
andpinnumber
attributes are removed.
-
-
Environment variable
GNETLIST
is no longer used inlepton-sch2pcb
to custom netlister executable name. It has been replaced withNETLISTER
. -
New options,
--backend-cmd
,--backend-net
, and--backend-pcb
can be used to customize backend names. Default backend names are pcbpins, PCB, and gsch2pcb, respectively.
- Using of both dot and clock in generated symbols for the
verilog
backend is now allowed. The user should use a new directive BOTH to make this work.
-
Lepton now requires GTK+ 2.24.0, Glib 2.25.0, Gio 2.25.0, Gdk-pixbuf 2.21.0 or later versions for build.
-
Fixed option
--enable-contrib
of the configure script.
- An error in Cygwin port for Windows has been fixed. Information
on how to build
lepton-eda
under Cygwin can be found in the lepton-eda wiki.
-
libgeda
has been renamed toliblepton
andlibgedacairo
has been renamed tolibleptonrenderer
. -
Most legacy
gnetlist
API functions have been implemented in Scheme. Some backends may need to be adjusted slightly to take advantage of the improved API. -
Direct output file access in
gnetlist
backends is now discouraged. Backends should write netlist data to the current Scheme output port, unless the backend is generating several files. Theoutput-filename
parameter to the main backend entry procedure is still meaningful; it reflects the output filename requested or is set to#f
ifgnetlist
is generating the netlist to standard output.
-
Lepton core tools will now automatically rotate per-user log files. 250 log files per tool will be retained from the last 24 hours, and 50 log files per tool from all time.
-
gEDA/gaf tools now search for data and configuration files in the standard XDG directories. By default, these are:
/usr/local/share/gEDA/
and/usr/share/gEDA
for system data/etc/xdg/gEDA/
for system configuration$HOME/.local/share/gEDA/
for per-user data$HOME/.config/gEDA/
for per-user configuration.
However, gEDA/gaf tools will still use
$HOME/.gEDA
for per-user files if that directory exists, they still obey the$GEDADATA
and$GEDADATARC
environment variables, and by default the search path includes the installation prefix selected when compiling Lepton. -
Lepton tools will now search for Scheme code in the
scheme
subdirectory of the per-user data directory before anywhere else, to allow easy low-level Lepton customisation. -
The
world-size
rc function has been deprecated, and no longer does anything.
-
The default editor view bounds have been expanded to allow symbols to be drawn without needing to translate them to the origin.
-
The multi-attribute editor now allows navigation between its controls with Tab and Shift+Tab, a tooltip for hinting how to add a literal linefeed or tab character, and a horizontal scrollbar to suppress window resizing.
-
You can now launch a Scheme Read-Eval-Print Loop (REPL) in gschem's controlling terminal with 'File → REPL' or with F, Shift+R.
-
Fix a crash when closing schematic pages, and several possible crashes when no page is open.
-
When undoing an operation the page is zoomed and scaled correctly, even if the
gschem
window was resized since the operation being undone. -
'File → Revert' will now detect changes to symbol libraries since the the page was loaded. This is helpful when trying to fix things up when symbols weren't found.
-
Faster page redraw operations.
-
Junction dots are now drawn slightly larger to ensure that they are clearly visible.
-
gnetlist
will no longer warn if some of the symbols in a merged component (i.e. symbols with the samerefdes
attribute) are missing an attribute. For example, you can now attach afootprint
attribute to only one symbol in a merged component without warnings.gnetlist
continues to warn when it finds conflicting values, however. -
The
gnetlist
REPL is now compatible with Geiser. Packages, package pins and pin nets can now be pretty-printed in the REPL. -
All rc functions related to hierarchy have been deprecated, and have been replaced with config file settings.
-
The
drc
backend has been extensively rewritten and improved. -
The
makedepend
backend has been fixed and can now generate Make rules for hierarchical schematics. It can also work with non-numbered schematic names. -
The
spice-sdb
backend now emits verbose info to standard error, so that verbose messages don't end up in the netlist. -
The
vams
(Verilog AMS) backend now generates entity files correctly. -
The
redac
backend no longer duplicates connection info. -
Several backends no longer emit trailing whitespace.
-
Changes for backend authors:
-
A new
object-id
function has been added to allow backends to access the object identifiers used during netlist generation. -
The
gnetlist-version
function has been removed.
-
-
Internal changes:
-
A new Scheme test suite has been added, using the SRFI-64 framework.
-
"Graphical" netlists are no longer used during netlist generation.
-
Schematic page tree creation and transformation procedures are now accessible from Scheme.
-
A new
(gnetlist schematic)
module provides procedures for working with schematics as first-class objects during netlisting. -
The new
(gnetlist option)
and(gnetlist config)
modules provide procedures for working withgnetlist
's command-line arguments and configuration data.
-
-
A new procedure,
log!
, has been added to the(geda log)
module. It allows Scheme code to emit log messages in the same way that the tools' C code does. -
Two new Scheme procedures for working with source library have been added to the
(geda library)
module:source-library-contents
andset-source-library-contents!
. -
Accessing Lepton values (objects, pages, etc.) via the Scheme API is now much faster.
Please check info geda-scheme
for full details.
-
Lepton requires Guile 2.0 or later for build. However, running the full test suite requires Guile 2.0.13.
-
The Lepton source tarball no longer includes
libintl
. When building Lepton with internationalisation support, GNUgettext
0.18 or later is required. -
The configure script now supports an
--enable-contrib
switch. Unless this is specified, the tools in thecontrib
directory will not be compiled or installed. -
The configure script now supports an
--enable-relocatable
switch. When specified, Lepton tools do not have the configured prefix compiled into them. This option is not supported on BSD systems. -
The configure script now supports a
--disable-deprecated
switch. When specified, various deprecated features and behaviour are disabled, which may break backward-compatibility with some configurations.
Please see NEWS-1.9.2.txt for info on pre-1.9.3 changes (before Lepton EDA has forked from geda-gaf).