]> git.draconx.ca Git - slotifier.git/log
slotifier.git
4 months agoTrivial manual fixes. master
Nick Bowler [Fri, 1 Dec 2023 03:59:38 +0000 (22:59 -0500)]
Trivial manual fixes.

For literal strings, we need to use \- instead of just - as some troff
processors turn plain "-" into "proper" unicode hyphens (as opposed to
hyphen-minus), which breaks copy+paste and searching.

Ensure that .Os follows .Dt in the mdoc prologue as apparently not doing
this results in broken manpage headings with groff 1.23.

4 months agoReplace gnulib patch with new common helper macro.
Nick Bowler [Fri, 1 Dec 2023 03:56:54 +0000 (22:56 -0500)]
Replace gnulib patch with new common helper macro.

Using the new DX_PATCH_GNULIB macro allows m4 to implement the
conditional dependency patches that were previously being done
in bootstrap.

10 months agoFix distribution of copysym.h.
Nick Bowler [Mon, 29 May 2023 00:41:25 +0000 (20:41 -0400)]
Fix distribution of copysym.h.

This needs to be listed as a source file somewhere otherwise the
distribution will not include it.  Fix that up.

10 months agoReplace Gnulib striconv with copyright_symbol from dxcommon.
Nick Bowler [Sat, 27 May 2023 06:10:50 +0000 (02:10 -0400)]
Replace Gnulib striconv with copyright_symbol from dxcommon.

The only use of the striconv module is to produce the copyright symbol
for --version output and at the start of an interactive session.  Using
the new, single-purpose function reduces code size quite a bit.

15 months agoUse new packed option format from gen-options.awk.
Nick Bowler [Sun, 8 Jan 2023 19:47:47 +0000 (14:47 -0500)]
Use new packed option format from gen-options.awk.

This new format uses a compact, fully constant array to generate the
real struct option array at runtime.  This allows the full-sized array
to be dropped after command-line processing is finished, and with
position-independent executables, reduces the amount of relocation
processing needed.

16 months agoAvoid Gnulib std-gnu11 module.
Nick Bowler [Fri, 18 Nov 2022 03:45:07 +0000 (22:45 -0500)]
Avoid Gnulib std-gnu11 module.

It has come to my attention that this module rewrites AC_PROG_CC in
a way that actually breaks Automake's AM_PROG_CC_C_O functionality.
This results in the "compile" script not being included or used in
packages bootstrapped with Autoconf 2.69.

With later versions of Autoconf things work because this module
doesn't touch things and thus disables itself.

I don't care about building with C11 one way or the other.  Let's
just skip the module.

2 years agoDisable deprecation warnings from Glib.
Nick Bowler [Tue, 5 Apr 2022 01:09:07 +0000 (21:09 -0400)]
Disable deprecation warnings from Glib.

Even if I wanted to make the suggested code changes to avoid these
pointless warnings, in this case the problem is not in tihs package,
but it comes from an external #include dependency via libgerbv.

Thankfully we can simply define a macro to shut it all up.

2 years agoBump dxcommon to fix builds using --disable-dependency-tracking.
Nick Bowler [Tue, 5 Apr 2022 01:07:06 +0000 (21:07 -0400)]
Bump dxcommon to fix builds using --disable-dependency-tracking.

Some build rules were inadvertently depending on directory creation that
happens as a side effect of depfiles generation.  This does not happen
when configuring with --disable-dependency-tracking, leading to issues
with VPATH builds.

Failures are easily observed with a command like

  make DISTCHECK_CONFIGURE_FLAGS=--disable-dependency-tracking distcheck

Using parallel make can hide problems since it seems Automake also
generates make rules that incidentally create these directories.

2 years agoUse help formatting routines from dxcommon.
Nick Bowler [Wed, 24 Nov 2021 02:55:01 +0000 (21:55 -0500)]
Use help formatting routines from dxcommon.

Reduce code duplication across packages by making use of this library
version of the block printing code.

2 years agoRelease 1.2. v1.2
Nick Bowler [Tue, 27 Apr 2021 03:09:30 +0000 (23:09 -0400)]
Release 1.2.

2 years 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.

2 years 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 years 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 years agoMinor updates to README.
Nick Bowler [Thu, 15 Apr 2021 01:18:55 +0000 (21:18 -0400)]
Minor updates to README.

3 years 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 years 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 years 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 years 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 years 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.

3 years 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.

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

3 years 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.

3 years 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.

3 years 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.

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

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

3 years 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.

3 years 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.

3 years 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.

3 years 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.

5 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.

5 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.

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