slotifier.git
12 days agoRelease 1.2. master
Nick Bowler [Tue, 27 Apr 2021 02:53:56 +0000 (22:53 -0400)]
Release 1.2.

12 days agoFix busted email link in README.
Nick Bowler [Tue, 27 Apr 2021 03:06:14 +0000 (23:06 -0400)]
Fix busted email link in README.

12 days agoFix generation of slotifier.pot.
Nick Bowler [Tue, 27 Apr 2021 02:51:38 +0000 (22:51 -0400)]
Fix generation of slotifier.pot.

The new options generator uses additional keywords that need to be
supplied to xgettext when generating the pot file.  Fix that up,
and sync the en.po file accordingly.

3 weeks agoUse option generator script from dxcommon.
Nick Bowler [Thu, 15 Apr 2021 23:07:41 +0000 (19:07 -0400)]
Use option generator script from dxcommon.

Instead of maintaining the relation between long options and help text
directly in C code, let's use this new script to generate C code from
a simple description file.

3 weeks agoMinor updates to README.
Nick Bowler [Thu, 15 Apr 2021 01:18:55 +0000 (21:18 -0400)]
Minor updates to README.

3 weeks agoExplicitly disable leak sanitizer in the testsuite.
Nick Bowler [Thu, 15 Apr 2021 01:14:01 +0000 (21:14 -0400)]
Explicitly disable leak sanitizer in the testsuite.

Building with -fsanitize=address also enables leak sanitizer, which
just causes all the test cases to fail for no good reason.

3 weeks agoFix inconsistent merging of asymmetric hole overlaps.
Nick Bowler [Thu, 15 Apr 2021 01:00:27 +0000 (21:00 -0400)]
Fix inconsistent merging of asymmetric hole overlaps.

When computing the overlap relation between holes with different
sizes, the current search may not find all overlaps in the case
where a smaller hole is visited before a larger one, because
searching for holes within the radius of the smaller hole could
potentially not find the larger one.

The search procedure is altered slightly in order to solve this.
First, we begin the search by looking at holes in descending tool
diameter, to give a known upper bound at each stage.

Then we find potential overlaps by finding all holes within this
upper bound, and select the results that actually overlap.

3 weeks agoProperly return failure status from main.
Nick Bowler [Wed, 14 Apr 2021 23:14:54 +0000 (19:14 -0400)]
Properly return failure status from main.

Due to an oversight, several failure cases in main are not properly
causing slotifier to exit with a failure status.  Fix that up, and
add a test case which tickles one of the affected error paths.

3 weeks agoFix crash when input has no holes.
Nick Bowler [Wed, 14 Apr 2021 01:33:13 +0000 (21:33 -0400)]
Fix crash when input has no holes.

When the search tree has no elements, it seems the CNearTreeObjects
function does not give a CVector with zero elements but rather a
null pointer.  This results in a null dereference when that is
passed to CVectorSize, instead of 0 as expected.

Add an explicit check for this case to avoid crashing.

3 weeks agoFix radius/diameter confusion in overlap search.
Nick Bowler [Wed, 14 Apr 2021 00:32:16 +0000 (20:32 -0400)]
Fix radius/diameter confusion in overlap search.

Drill sizes are specified as hole diameter, but the nearest neighbour
search is performed by distance.

The overlap relation is documented as "when the centre of one hole is
inside the other hole" which implies that we should be searching on
hole radius.  Presently the diameter is used, which is twice as far
as expected.

For holes that are the same size this is a minor technicality: such
holes that are apart by less than the hole diameter do "overlap" in
the drilled portion.  But when a small hole is near a large hole they
can be obviously disjoint yet slotifier can erroneously merge them.

Adjust the search to half the diameter, plus some slop (5 tenths)
so that holes exactly on the boundary are counted as overlapping.

7 weeks agoBump dxcommon to pull in build portability improvements.
Nick Bowler [Sun, 14 Mar 2021 20:39:33 +0000 (16:39 -0400)]
Bump dxcommon to pull in build portability improvements.

2 months agoRelease 1.1. v1.1
Nick Bowler [Mon, 15 Feb 2021 06:28:45 +0000 (01:28 -0500)]
Release 1.1.

2 months agoBundle scripts to help re-bootstrap the package.
Nick Bowler [Mon, 15 Feb 2021 06:11:40 +0000 (01:11 -0500)]
Bundle scripts to help re-bootstrap the package.

We can include the main bootstrapping scripts easily enough in the
package.  If the user has a (possibly updated) Gnulib available, it
is now possible to regenerate the build system just by running the
included bootstrap script.

2 months agoBump dxcommon for DX_LINGUAS bug fixes.
Nick Bowler [Mon, 15 Feb 2021 05:07:24 +0000 (00:07 -0500)]
Bump dxcommon for DX_LINGUAS bug fixes.

Going through this packaging rigamarole has led us to discover
that mistakes were made.  This linguas helper turns out to be pretty
broken and can substitute syntax errors into the makefile in some
cases.

2 months agoUse AC_CONFIG_HEADERS rather than AC_CONFIG_HEADER.
Nick Bowler [Mon, 15 Feb 2021 05:45:59 +0000 (00:45 -0500)]
Use AC_CONFIG_HEADERS rather than AC_CONFIG_HEADER.

The former name has been supported since approximately forever ago and
the latter form is now formally deprecated (with a warning) in recent
versions of Autoconf.

2 months agoRelease 1. v1
Nick Bowler [Sun, 14 Feb 2021 19:21:18 +0000 (14:21 -0500)]
Release 1.

2 months agoAdd a README file.
Nick Bowler [Sat, 13 Feb 2021 23:04:39 +0000 (18:04 -0500)]
Add a README file.

2 months agoDon't use gnulib gettext module.
Nick Bowler [Sat, 13 Feb 2021 18:33:37 +0000 (13:33 -0500)]
Don't use gnulib gettext module.

This gives deprecation warnings, suggesting the use of gettext-h
instead.  I believe there is little reason not to switch, as
everything will work the same just that the NLS configure tests
will come from an installed GNU gettext when bootstrapping rather
than from gnulib.

2 months agoEnsure INSTALL is packaged.
Nick Bowler [Sat, 13 Feb 2021 18:28:03 +0000 (13:28 -0500)]
Ensure INSTALL is packaged.

When Automake is run in foreign mode, the standard INSTALL file is not
copied by automake --add-missing.  As this file provides general usage
instructions for the GNU build system, it is useful to have included
in the package.

Just copy the file manually when bootstrapping to make that happen.

2 months agoUse fix-gnulib's program integration.
Nick Bowler [Sat, 13 Feb 2021 18:09:27 +0000 (13:09 -0500)]
Use fix-gnulib's program integration.

Since we aren't building a library, we can use the program mode in
fix-gnulib which improves build time somewhat.

2 months agoGenerate ChangeLog from git at packaging time.
Nick Bowler [Sat, 13 Feb 2021 18:02:48 +0000 (13:02 -0500)]
Generate ChangeLog from git at packaging time.

Import the gitlog-to-changelog script from gnulib and add rules to
generate an up-to-date changelog from the git history, if available,
when running 'make dist'.

The ChangeLog is otherwise taken from srcdir as usual, so that
modified versions can be prepared from a release tarball without
requiring the full git history.  In this scenario, the ChangeLog
would have to be manually edited.

In case the ChangeLog generation fails, a distcheck-hook is added to
hopefully catch issues before releasing tarballs with a broken
ChangeLog.

2 years agoAdd configure test for slot support in libgerbv.
Nick Bowler [Sun, 6 Jan 2019 17:31:28 +0000 (12:31 -0500)]
Add configure test for slot support in libgerbv.

Since slot support in gerbv is quite new, ensure that configure
detects old versions which do not support this feature and fail
early.

2 years agoBump dxcommon for depfiles updates.
Nick Bowler [Sun, 6 Jan 2019 17:11:10 +0000 (12:11 -0500)]
Bump dxcommon for depfiles updates.

The older snippets fail with Automake 1.16.

2 years agoInitial commit
Nick Bowler [Thu, 20 Dec 2018 20:53:25 +0000 (15:53 -0500)]
Initial commit