simon-git: spigot (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Wed May 26 16:13:10 BST 2021


TL;DR:
  7074ba3 Add missing virtual destructor in Scope base class.
  37382bb Remove a couple of unused member variables.
  25894cd Rename the evaluate() variant that takes an argvector.
  7dd3cfd Migrate to a CMake build system.

Repository:     https://git.tartarus.org/simon/spigot.git
On the web:     https://git.tartarus.org/?p=simon/spigot.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2021-05-26 16:13:10

commit 7074ba3fb592b58e0e7cd96ce8742588692316d8
web diff https://git.tartarus.org/?p=simon/spigot.git;a=commitdiff;h=7074ba3fb592b58e0e7cd96ce8742588692316d8;hp=9910e5bdc203bae6b7bbe1ed4a93f13755c1caee
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed May 26 12:03:19 2021 +0100

    Add missing virtual destructor in Scope base class.
    
    It has virtual methods, so it should have a virtual destructor. clang
    just pointed that out to me: for some reason, it only gave that
    warning when building for Windows, but the bug is the same on all
    platforms.

 expr.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 37382bbb50727992cf004ce96ef26ff8805c4c03
web diff https://git.tartarus.org/?p=simon/spigot.git;a=commitdiff;h=37382bbb50727992cf004ce96ef26ff8805c4c03;hp=7074ba3fb592b58e0e7cd96ce8742588692316d8
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed May 26 12:05:47 2021 +0100

    Remove a couple of unused member variables.
    
    clang warns about those these days, apparently. How nice of it.

 baseout.cpp  | 1 -
 inverter.cpp | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

commit 25894cdc7c964a87b2f5a527628b081bf6576ca6
web diff https://git.tartarus.org/?p=simon/spigot.git;a=commitdiff;h=25894cdc7c964a87b2f5a527628b081bf6576ca6;hp=37382bbb50727992cf004ce96ef26ff8805c4c03
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed May 26 12:06:07 2021 +0100

    Rename the evaluate() variant that takes an argvector.
    
    Virtual methods with the same name and different argument lists are
    tied together confusingly, so clang gave me a warning when classes
    like ExprNodeTypeBinary overrode that evaluate() method and also
    introduced a new one with a different argument list.
    
    I'm not 100% clear on what the C++ standard says about doing that, but
    now that clang has pointed it out, I agree it's a bit confusing. So
    I've renamed the argvector version to evaluatev(), and left evaluate()
    to be introduced by subclasses of known arity.

 expr.cpp | 10 +++++-----
 funcs.h  | 10 +++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

commit 7dd3cfdcdba945237baad93d99a4d47a47e7226e
web diff https://git.tartarus.org/?p=simon/spigot.git;a=commitdiff;h=7dd3cfdcdba945237baad93d99a4d47a47e7226e;hp=25894cdc7c964a87b2f5a527628b081bf6576ca6
Author: Simon Tatham <anakin at pobox.com>
Date:   Wed May 26 15:58:39 2021 +0100

    Migrate to a CMake build system.
    
    The previous pair of makefiles would let me build for Unix systems
    that could run an autotools 'configure', and for Windows using
    clang-cl, but there was some duplicated code between them, and they
    didn't make it easy to build for Windows in a more normal way. A
    CMake-based system should be easier all round.
    
    The new system still allows manual configuration of whether to build
    against GMP; it incorporates test.sh into the default 'make test'
    target; it auto-detects Halibut and uses that to build the man page
    and HTML manual.
    
    The top-level Buildscr is updated appropriately, to build using the
    new system. I've removed from Buildscr the previous wart that
    cross-built a Windows GMP, because it struck me that that was better
    put in its own separate build script instead of being awkwardly
    enabled as a side effect.
    
    Since my own usual habit as a developer in a CMake-based project is to
    put the build directory as a subdir 'build' of the main source dir, I
    suddenly found it inconvenient that that's also what the Python build
    script setup.py uses. So I've added a config file that makes that
    default to something with 'python' in the name.

 .gitignore                                        |   2 +-
 Buildscr                                          |  92 +++++---------
 Buildscr.gmp                                      |  18 +++
 CMakeLists.txt                                    | 146 ++++++++++++++++++++++
 MANIFEST.in                                       |   2 +-
 Makefile.am                                       |  34 -----
 Makefile.clangcl                                  |  74 -----------
 autogen.sh                                        |   2 -
 bigint.h                                          |   2 +-
 cmake.h.in                                        |   7 ++
 configure.ac                                      |  72 -----------
 contrib/clang-gmp-build-bin/README.txt            |  15 +++
 contrib/clang-gmp-build-bin/configure-gmp         |  14 +++
 contrib/clang-gmp-build-bin/lib                   |   2 +
 contrib/clang-gmp-build-bin/x86_64-pc-mingw64-gcc |   3 +
 main.cpp                                          |  13 +-
 manual.pl                                         |   8 ++
 setup.cfg                                         |   8 ++
 setup.py                                          |  34 ++---
 sources.mk                                        |  11 --
 spigot.h                                          |   6 +-
 21 files changed, 272 insertions(+), 293 deletions(-)



More information about the tartarus-commits mailing list