Debian Package Tracker
Register | Log in
Subscribe

msc-generator

Draws signalling charts from textual description

Choose email to subscribe with

general
  • source: msc-generator (main)
  • version: 8.6.2-4
  • maintainer: Gábor Németh (DMD)
  • arch: all any
  • std-ver: 4.7.2
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • oldstable: 8.1-2
  • stable: 8.6.2-4
  • testing: 8.6.2-4
  • unstable: 8.6.2-4
versioned links
  • 8.1-2: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 8.6.2-4: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • msc-generator
  • msc-generator-doc
  • msc-generator-nox
action needed
A new upstream version is available: 8.6.3 high
A new upstream version 8.6.3 is available, you should consider packaging it.
Created: 2025-09-09 Last update: 2025-09-09 05:00
136 new commits since last upload, is it time to release? normal
vcswatch reports that this package seems to have new commits in its VCS but has not yet updated debian/changelog. You should consider updating the Debian changelog and uploading this new version into the archive.

Here are the relevant commit logs:
commit 6b38b4e695ea0746f753dd2f0e4e7fb5ed10cd3d
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Apr 8 08:46:22 2025 +0200

    Standards-Version

commit 460b87a909714124fc50d40a60116c8a42636595
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Apr 8 08:44:32 2025 +0200

    Copyright year

commit 1f4968aef1a963c797ba34a6e0fd169fdc2c7035
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Mar 26 17:41:59 2025 +0100

    Add forward tags to patches

commit 02c383f0acf4843e0036aab4ffac2e73921a9d99
Author: Gábor Németh <homar@riseup.net>
Date:   Fri Aug 30 13:27:35 2024 +0200

    Only care for (PNG) test results on Debian/amd64
    
    as this is what upstream uses for pixel-wise comparison. This reverts Luma difference
    allowed in 6acf61fd.

commit cff51bcb809269160c5a882cc86dc08b0e1d84e8
Author: Gábor Németh <homar@riseup.net>
Date:   Fri Aug 30 13:01:27 2024 +0200

    Find duplicates with jdupes
    
    instead of hard-coded filenames as turned up by lintian.

commit 0469e355aa43268f531fc7c26cb8232249008a7e
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Aug 26 08:33:36 2024 +0200

    Adapt arm32 workaround for tests too

commit 33f12bd66521dd21b7d63f522ac7e754c8826331
Author: Gábor Németh <homar@riseup.net>
Date:   Thu Aug 15 07:29:19 2024 +0200

    Honor some debuild flags

commit 8cc1f84e6e3e357bda7935c5a1fea9c97be66081
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Aug 14 10:32:34 2024 +0200

    Dance around GCC oddity in arm32 builds

commit eae456c5cbe5c56b9d4485a3994c718ca2249cfc
Author: Gábor Németh <homar@riseup.net>
Date:   Sun Jul 28 18:07:28 2024 +0200

    Fix looong test runs in absence of LibreOffice

commit 7f90a70403fe52a3237e2c62e36e2c8a48907273
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jul 17 16:26:35 2024 +0200

    Clean Texinfo autogenerated files
    
    found by pbuilder --twice

commit 34afa3ad7eefefc12a3406566ee1d141bce06089
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Jul 15 15:32:43 2024 +0200

    Fixup copyright notices
    
    - Use appropriate short names
    - Fill in missing license info
    - Quote full license texts

commit 647ce021fdafb06f7bcc448cc244385c00be9c71
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Jul 15 14:53:59 2024 +0200

    Linitan overrides

commit da65cf0fb678814b03d379e6ed790edfdf51d22c
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Jul 15 14:52:11 2024 +0200

    Hardening binaries

commit 2dbb5e1dbe4d714aab4cf4e842297b40d5a5d4ed
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Jul 16 16:16:59 2024 +0200

    New upstream 8.6.2

commit 6e73003070858838f522672ede83ca933d7fa665
Merge: 718eac1c0 ece6959ca
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jul 24 09:26:50 2024 +0200

    Merge v8.6.2

commit 718eac1c07c8404bd048642a07526d1e7db4ad3a
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jul 24 09:21:11 2024 +0200

    Add comment on use of dpkg-vendor
    
    by Boyuan Yang <byang@debian.org>

commit ece6959ca494e23ff07b74b6ea88b5c78088294f
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jul 17 13:13:44 2024 +0200

    [test] Retry on types of LibreOffice failures

commit 6b13f0d89cf96af06d55d9bb21085fe850c5380f
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jul 17 08:19:45 2024 +0200

    Normalize license file name

commit 8a487c7e0f73527b35ef83e0d559d5360dee9c08
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Jul 16 15:15:49 2024 +0200

    Fix GV symbol externalization

commit a00c3a3610c700b0d6115d9b1af6f5e9e5847581
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Jul 16 15:15:27 2024 +0200

    Squash some compiler warnings

commit 6205cc2fc38b1b59c87406555246cfd6e9d43707
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Jul 16 12:11:55 2024 +0200

    [graph] fix: remove warning
    
    ...of redefinition of CGRAPH_API when included from graphchart.cpp (after
    including cgraph.h)

commit 8da99f7f71ee95f694c976d3c4b70caeefc72861
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Jul 16 09:05:05 2024 +0200

    v8.6.2 version bump

commit a211c01eb8470bb5722a457a1d4f57e73ab2c156
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Jul 16 08:57:11 2024 +0200

    License uplift
    
    - The WildMagic code (solve_degree) was moved from contour_distance.cpp
      to contour_edge.cpp over the years. Now we move the associated
      copyright text, as well.
    - Changing the documentation license from GFDL to (the very similar)
      CC BY-SA 4.0 to be debian compliant.

commit 81a2e01e6facbc3fbd9e6a8fd2b14fc3adecd448
Author: Gábor Németh <homar@riseup.net>
Date:   Fri Jul 12 14:01:49 2024 +0200

    Retry LibreOffice conversions in tests

commit 7e8e485089869b7574b5d460293839244e85e0d6
Author: Gábor Németh <homar@riseup.net>
Date:   Fri Jul 12 12:41:57 2024 +0200

    Skip test with missing font

commit 9ad94bfbb6caf04a98a568086f99a0890a519b1e
Author: Gábor Németh <homar@riseup.net>
Date:   Fri Jul 5 08:56:47 2024 +0200

    Fix duplicate file

commit 85cf18ab05af9e0dd9f7a928b7cc242e3496ca01
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jul 3 08:51:56 2024 +0200

    Uplift policy to 4.7.0

commit 6acf61fd873dbace124e58484c278778e0738a15
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Mar 25 09:51:24 2024 +0100

    [test] Allow Luma diff for non-Debian
    
    Otherwise insignificant off-by-one-pixel failures happened
    on eg. Ubuntu 24.04

commit 277f45970e5321c6aeba945affbd0346aacf3453
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Mar 5 13:20:30 2024 +0100

    [test] Increase nofont mask radius for non-amd64
    
    Lot of tests failed on esp. Arm64 due to one-pixel-off around text characters. The default is still keptt to be in-line with the upstream testing framework.

commit 91254180e82f960215db549fb9255da25a842cbc
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jul 3 08:46:53 2024 +0200

    New upstream v8.6.1

commit 497af4cab62c2b39e2e3beefffc78f31b0c8f46d
Merge: 6c9870efb 265d46c0f
Author: Gábor Németh <homar@riseup.net>
Date:   Thu Jul 11 13:48:17 2024 +0200

    Merge tag 'v8.6.1' into unstable

commit 347260d5339884288e2f26ead112bf62b45b9bb9
Author: Gábor Németh <homar@riseup.net>
Date:   Thu Jul 11 12:42:41 2024 +0200

    [ci] Fix removing version.txt

commit 265d46c0f4299f04dfc615d22962aa6caf7c733d
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Jul 11 09:32:32 2024 +0200

    v8.6.1 version bump

commit 9f16918715ebc2008db62c7375ab7085b63577f0
Author: Gábor Németh <homar@riseup.net>
Date:   Thu Jul 11 05:51:57 2024 +0000

    [ci] Sync for v8.6

commit 863f72ff0e7d2dcdb5d963426d28638c5721487c
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Mon Jul 8 16:56:22 2024 +0200

    [build] fix: Remove precompiled graphviz for [win]
    
    Now you need to locally install graphviz to compile Msc-generator.
    This has always been the case as you needed the header files.
    With this patch the compiled binaries are removed.
    You can either
    - install to src/imported/graphviz; or
    - set GV_PATH to where you have installed.
    Although Advanced Installer only works from the former.
    This patch also prunes the list of libraries linked and correctly sets
    __declspec(dllimport) for windows builds on imported graphviz symbols.

commit db66bfe49867d30566617ceb87eb4c2cbe1554f9
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Mon Jul 8 16:45:18 2024 +0200

    fix: error squiggles at line ends
    
    Previously error squiggles did not show at the line end (or at the file
    end). This patch fixes that.
    We also sanitized the error collection routine.

commit 006e67319d9827427915f8b1c2d301a2779918d3
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Mon Jul 8 13:28:23 2024 +0200

    fix: don't crash for --tei-mode without -S

commit 6c9870efbca552f9406b0d8364dbf854fcb8dbd3
Author: Gábor Németh <homar@riseup.net>
Date:   Sat Jan 20 08:45:45 2024 +0100

    Bump copyright years

commit 9158adecb30c9db176eebccbf7d796816b1cbc29
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Oct 3 08:17:51 2023 +0200

    Drop unused BD

commit c3ab30e379b5d358ec7b07a7a8990aa96238baa7
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Oct 2 16:18:05 2023 +0200

    Fix DEP-3 header for 0001

commit d384d020609dfe4188d505c7dca93bc7de2c3f0c
Author: Gábor Németh <homar@riseup.net>
Date:   Fri Jan 19 15:51:48 2024 +0100

    Start on new upstream 8.5

commit 5b8ec245fa1d25681349f63632e65bc62e874a44
Merge: 7f4e55c65 074a209f8
Author: Gábor Németh <homar@riseup.net>
Date:   Fri Jan 19 15:47:56 2024 +0100

    Merge tag 'v8.5' into debian/unstable

commit 074a209f8b6fdf193eda5f1e4af84be273487b7c
Author: Gábor Németh <homar@riseup.net>
Date:   Thu Jan 18 16:55:59 2024 +0100

    [build] Add missing images for dist

commit dccfe7a7351bdbe324ce46e85eb83785bc04e330
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Jan 15 11:01:02 2024 +0000

    [ci] Make building with 'my' default

commit adc6618f2baa5a4d896168151dcff224c6c9c2ba
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Dec 5 17:20:40 2023 +0100

    v8.5 version bump and doc update

commit 8c294a96af1466564109b4d704f3f06d8ef53d1d
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Dec 8 16:27:06 2023 +0100

    [signalling] fix: last page in OLE is distorted
    
    When copying the last page of a chart as an OLE object to the clipboard,
    it ended up in the right size object for the last page, but compressing
    the last page to the bottom of the rectangle having empty space above
    corresponding to previous pages.
    
    This turned out to be a problem with EMF/WMF drawing. When drawing the
    last page of a signalling chart, the background fill was not clipped
    by cairo/windows (not sure which is to blame). So the entire chart
    background was added to the EMF (with the size of only the last page),
    which compressed the image in the Y dir.
    
    This is a workaround to avoid clipping the background for WMF/EMF
    exactly at the bk rectangle's edge.

commit b7cfda09d31feb3774085e846ddb89fe5d8a52fa
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Dec 7 15:05:27 2023 +0100

    fix: Canvas WMF and EMF drawing
    
    - fake_scale now calculated from actual page size, not the size of the
      whole chart.
    - Bad control flow fully prevented WMF and EMF file output.
    - WMF was not a possible file extension for output files.

commit 1ff4ff1c33d1b8aed12e5d5ed32f1290bf8e757d
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Dec 8 22:10:01 2023 +0100

    [win] Dont allow pasting arbitrary text as a chart

commit 163eab33351de4773468fc39aa27270e248e073f
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Dec 7 15:03:41 2023 +0100

    [win] fix: blocking compilation freezes
    
    It ended up in an infinite loop by forcing redraw from inside OnDraw().
    It also did not take compilation result due to seq number mismatch.

commit 96414d9c4e78ba871c7be6ba422d2029f5daf63d
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Dec 5 16:48:56 2023 +0100

     [win, gui] fix: multi-page copying
    
    Now when copying the entire chart, we use the currently selected page.
    - win: Removed the sub-buttons of the "Copy Chart" button
    - gui: we save clipboard content even if only page or gui state changes

commit d26b4d2405cc62713143f743b39dfbcc50821ea0
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Dec 5 11:40:42 2023 +0100

    [win] Added AutoSave to the MFC GUI
    
    Also rationalized the checks for changes (both for AutoSave and Instant
    Compilation). Now we only check for changes 200ms after the last change
    was made. If the user kept typing we postpone the saves and compilations
    until we have 200ms of no change. This provides a less vibrant
    experience.

commit e9a2cc5be532cc73d8d221324a40909eb45171c5
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Mon Dec 4 11:34:41 2023 +0100

    [win] Added Instant Compile to the MFC GUI

commit 0cae5e9b2499513af69d3a3d89ca30034c4610fa
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Dec 1 15:47:41 2023 +0100

    [win] Added support for alt-text embedding
    
    - Changes to the GUI
      - Added AutoPaste checkbox to settings (saved to registry)
      - Added new "Copy entire chart" button, fixed button menu
    - Added logic to handle Clipboard-originated files & store original
      clipboard content (for update)
      - Added code to paste alt-text clipboard content
      - Added code to save when originating from Clipboard
      - Added code to copy to clipboard in alt-text format
    - Added CMscGenDoc::SetStatusMessage() to change the status bar.
    Known bugs: external editor does not handle this.

commit 7ded8d660800bffb6ae860648f41e304129d3cb3
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Dec 1 14:39:48 2023 +0100

    Extend DrawToFile() with single-page option
    
    Both Canvas::DrawToFile() and CDrawingChartData::DrawToFile() is
    extended with a parameter that allows drawing only a single page of
    the chart to a file.
    This also involves changing the Canvas ctor used for file output. It no
    longer adds page number to the filename, that was moved to
    Chart::DrawToFile().

commit 1daaf37a13936d99b9b62dfaef0745142bd00e80
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Nov 30 12:58:37 2023 +0100

    [win] rationalize CMscGenConf::SetLanguage()

commit c3fb5f52a98d464393d65a8f294fc73e0502846d
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Nov 30 12:53:53 2023 +0100

    [win] rationalize CDrawingChartData::GetSize()

commit e8a01957f7f091b11272091487d8e629b017bc11
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Nov 30 10:49:40 2023 +0100

    Small refactor of Canvas::GetPagePosition()

commit 14d0ba599700cf988276ce7628d9dc928e330760
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 29 20:47:21 2023 +0100

    [win] Clipboard ops moved to separate file
    
    So that the MFC GUI can use them later.

commit a5dba5e443aa90ebc4e87ffa07c2eb5af92ec678
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 29 20:45:50 2023 +0100

    [win] Disambiguate taking compile results
    
    There is a race condition scenario: a compilation is finished, then a
    message is sent, but is not processed until a second compilation is done
    and a second message is sent. Then we process the first message and take
    the compilation result (of the second compilation as it overwrites that
    of the first). When the second message comes, we will have no compile
    result.
    
    In this patch we fix this race. Now we track each compilation with a seq
    number and can match them to WM_APP+293 messages.

commit 31b0a22fd494d1bc5cf0340f30d1a354dce100fd
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 29 20:39:04 2023 +0100

    [win] opt: move CChartData instead of copy

commit a9e079ce3064a46c46a031f8f607f52f44ba52f9
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 29 20:35:40 2023 +0100

    [gui] More precise clipboard detection
    
    When we see an eligible object on the clipboard (Art_GVML or Alt-text)
    we only offer to paste it until it is on the clipboard.

commit 8e51bcf0901004446ee9f0d2a0135a2a2c1fe5cb
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 29 09:59:12 2023 +0100

    [gui] separate clipboard.h from GUI

commit 7f3357ee7f3c51fab82ba585e147904ecf8704d9
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Nov 28 14:06:30 2023 +0100

    Spelling

commit d3f549d21fb3b42eb20d42e76f823020364e641d
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Dec 11 20:42:23 2023 +0000

    [build] Fix UB regexp; fix #90

commit f39467ec1c4967ddb5bcf719476259be74402520
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Dec 1 15:33:28 2023 +0100

    [mac] fix: drop a framework deprecated in 10.11
    
    Starting in macOS 11.0, the Uniform Type Identifiers (UTI) framework
    replaces the older Core Services framework for UTI management.
    
    The use of deprecated values stopped working sometime Nov 2023.
    This patch makes Msc-generator work only on MacOS 11.0 and later.

commit a9b5d782b2ecbe1b05b08f0357db4166fdbe5d4d
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Nov 28 14:12:24 2023 +0100

    [mac] avoid a warning

commit 41cf4b85cbe4f77cda0ce6c6835eec5f71016aec
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Nov 28 17:49:41 2023 +0100

    [graph] Fix compatibility with graphviz 9.0
    
    Both 9.0 and 8.0 has introduced breaking API changes. Here we cater for
    them. Note that graphviz does not define a version macro available at
    compile time, hence the tinkering in configure. On Windows, please
    set the graphviz version in src/IncludesGraphviz.props manually.

commit b7e0e7409ff451f51f896df602ebfa0b7beb4685
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Nov 24 09:31:07 2023 +0100

    [contour] Make at() non-checking
    
    A few more percentages, all across the board.
    (Most cases we just use it in iterating through the contour, hence
    no checking is needed. Also at_next() and at_prev() uses it, and they
    are guaranteed to be in-bounds. Also, never did we get an exception
    so far.)
    
    This results in another 1.6% increase, bringing the total from where we
    started almost to 30%.
    
    Run on (24 X 1236 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 0.20, 0.25, 0.58
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3044 ns         3044 ns       230729
    ExpandBoxy/16             55765 ns        55765 ns        12577
    ExpandBoxy/256          7876395 ns      7875878 ns           89
    ExpandBoxyRotate/1         3631 ns         3631 ns       192275
    ExpandBoxyRotate/16       62579 ns        62578 ns        11112
    ExpandBoxyRotate/256    8312183 ns      8311254 ns           84
    ExpandCurvy/1             26525 ns        26523 ns        26388
    ExpandCurvy/16           224321 ns       224318 ns         3126
    ExpandCurvy/256         8438712 ns      8438524 ns           83
    UnionBoxy/1                7151 ns         7151 ns        98032
    UnionBoxy/16             156933 ns       156932 ns         4461
    UnionBoxy/256          21684130 ns     21682948 ns           32
    UnionBoxyRotate/1          7894 ns         7893 ns        88426
    UnionBoxyRotate/16       166515 ns       166503 ns         4201
    UnionBoxyRotate/256    22315575 ns     22314481 ns           31
    UnionCurvy/1              71387 ns        71388 ns         9786
    UnionCurvy/16            971975 ns       971967 ns          720
    UnionCurvy/256         72198055 ns     72191717 ns           10

commit 45d80af47f77be2c858add486fbcf97b5a08b867
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Nov 23 15:03:01 2023 +0100

    [contour] Improved storage for crosspoints
    
    Below a certain threshold we store them in a sorted vector, above we use
    our own hashmap. This way we could improve on the small use cases.
    
    Run on (24 X 2400 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 0.19, 4.67, 6.49
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3077 ns         3077 ns       227920
    ExpandBoxy/16             57622 ns        57622 ns        12172
    ExpandBoxy/256          8461165 ns      8460465 ns           83
    ExpandBoxyRotate/1         3695 ns         3695 ns       189408
    ExpandBoxyRotate/16       64395 ns        64394 ns        10884
    ExpandBoxyRotate/256    8890518 ns      8889880 ns           78
    ExpandCurvy/1             26667 ns        26666 ns        26073
    ExpandCurvy/16           224740 ns       224733 ns         3100
    ExpandCurvy/256         8618920 ns      8618740 ns           80
    UnionBoxy/1                7227 ns         7227 ns        97316
    UnionBoxy/16             163395 ns       163395 ns         4290
    UnionBoxy/256          22832381 ns     22831577 ns           31
    UnionBoxyRotate/1          8019 ns         8019 ns        87210
    UnionBoxyRotate/16       173376 ns       173361 ns         4037
    UnionBoxyRotate/256    23418420 ns     23418490 ns           30
    UnionCurvy/1              70937 ns        70935 ns         9877
    UnionCurvy/16            983335 ns       983313 ns          710
    UnionCurvy/256         75947501 ns     75946574 ns            9
    
    And this concludes the contour performance optimization batch, we have
    started in "[test] added simple perf test to measure Expand()" and
    continued for 11 commits. The cumulative performance gains are shown
    below. Boxy contours contain only horizontal and vertical edges, 4 times
    the number shown. Curvy contours only contain beziers the same number.
    
    --------------------------------------------------
    Benchmark            Old Time New Time Improvement
    --------------------------------------------------
    ExpandBoxy/1             3647     3077 15.63%
    ExpandBoxy/16           89383    57622 35.53%
    ExpandBoxy/256       15439473  8460465 45.20%
    ExpandBoxyRotate/1       4214     3695 12.32%
    ExpandBoxyRotate/16     95817    64394 32.79%
    ExpandBoxyRotate/256 15810175  8889880 43.77%
    ExpandCurvy/1           29061    26666  8.24%
    ExpandCurvy/16         248244   224733  9.47%
    ExpandCurvy/256      11399963  8618740 24.40%
    UnionBoxy/1              6645     7227 -8.76%
    UnionBoxy/16           243493   163395 32.90%
    UnionBoxy/256        91934166 22831577 75.17%
    UnionBoxyRotate/1        7609     8019 -5.39%
    UnionBoxyRotate/16     253343   173361 31.57%
    UnionBoxyRotate/256  93682701 23418490 75.00%
    UnionCurvy/1            74213    70935  4.42%
    UnionCurvy/16         1139692   983313 13.72%
    UnionCurvy/256      160781347 75946574 52.76%
    
    This is an overall ~28% increase across all test cases, with the small
    contours not improving this much (or getting a bit worse), but with the
    larger ones having a more significant improvement. The small cases
    suffer from the more logic, which is needed to improve the large cases.
    Also, curvy test cases do not improve (or get worse) that much because
    their runtime is somewhat spent on crosspoint finding, which is not
    changed by these patches.

commit 3157d9d79b2bf0d53a6d4bc7a7fbd60b18976b40
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Nov 23 10:49:04 2023 +0100

    [contour] Rearrange Ray fields to save padding
    
    We also move 'coverage_at_0_minus_inf', which is only ever used once per
    crosspoint from Ray to ContoursHelper::cp_heads.
    This reduces the size of Ray from 88/120 bytes (x86/x64) to 72/88 bytes.
    Surprisingly this has almost no effect on performance.

commit d5816db28d652a25927194c2d3fabdf48d905698
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Nov 23 09:55:16 2023 +0100

    nit: better error message

commit 9cf6d50e07ed9305595dce7aa742721dee7ee53e
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Nov 21 09:23:55 2023 +0100

    [contour] Deterministic CP ordering
    
    When evaluating the crosspoints and selecting start rays, do them in
    increasing order of the crosspoints to make this order deterministic.
    This is to make tests reproducible. Only 4 tests are broken in very
    minor ways, so we update them in canonical.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2400 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 4.21, 3.85, 7.14
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3197 ns         3197 ns       219019
    ExpandBoxy/16             59298 ns        59294 ns        11818
    ExpandBoxy/256          8578589 ns      8578126 ns           82
    ExpandBoxyRotate/1         3774 ns         3774 ns       184572
    ExpandBoxyRotate/16       65595 ns        65594 ns        10671
    ExpandBoxyRotate/256    8924224 ns      8923285 ns           78
    ExpandCurvy/1             26689 ns        26688 ns        26249
    ExpandCurvy/16           223863 ns       223861 ns         3121
    ExpandCurvy/256         8649631 ns      8649333 ns           80
    UnionBoxy/1                9078 ns         9077 ns        77168
    UnionBoxy/16             178782 ns       178779 ns         3924
    UnionBoxy/256          23158646 ns     23158062 ns           30
    UnionBoxyRotate/1          9840 ns         9839 ns        71189
    UnionBoxyRotate/16       185952 ns       185947 ns         3753
    UnionBoxyRotate/256    23859546 ns     23858207 ns           29
    UnionCurvy/1              72716 ns        72714 ns         9583
    UnionCurvy/16            991993 ns       991933 ns          705
    UnionCurvy/256         77092493 ns     77091358 ns            9

commit 505713b6fd5923d9e43e0de98bbdab0ffbf9dc9a
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Mon Nov 20 20:38:47 2023 +0100

    [contour] Further optimizing ContoursHelper
    
    Remove the in-place linked list for contours from Ray. This saves
    some memory and lookup. Instead simply order Rays such that the rays
    are ordered as in a contour.
    Also, the heads of the contours are now stored in an ordered vector
    rather than in a hashmap, as most of the times we only have a very few
    SimpleContours participating.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 1767.88 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 1.77, 3.14, 6.60
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3148 ns         3148 ns       222377
    ExpandBoxy/16             58574 ns        58573 ns        11940
    ExpandBoxy/256          8718093 ns      8717710 ns           80
    ExpandBoxyRotate/1         3674 ns         3673 ns       189143
    ExpandBoxyRotate/16       65069 ns        65068 ns        10767
    ExpandBoxyRotate/256    9087769 ns      9086854 ns           77
    ExpandCurvy/1             26779 ns        26778 ns        26185
    ExpandCurvy/16           225796 ns       225788 ns         3105
    ExpandCurvy/256         8790516 ns      8790273 ns           80
    UnionBoxy/1                8820 ns         8820 ns        79406
    UnionBoxy/16             186609 ns       186608 ns         3757
    UnionBoxy/256          23539413 ns     23538844 ns           30
    UnionBoxyRotate/1          9695 ns         9695 ns        72121
    UnionBoxyRotate/16       191479 ns       191475 ns         3644
    UnionBoxyRotate/256    24072302 ns     24071279 ns           29
    UnionCurvy/1              72496 ns        72494 ns         9614
    UnionCurvy/16            998862 ns       998853 ns          701
    UnionCurvy/256         77605554 ns     77602713 ns            9

commit 883c5e665e15ed6193fc6ca93a10722da017a4c5
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 22 14:20:38 2023 +0100

    [contour] fix: evaluate CPs for untangle
    
    When we do untangle (one contour), we try finding the rightmost point
    of the path and deduce the coverage right of each crosspoint (and store
    it in the head's coverage_at_0_minus_inf member). This makes evaluating
    the crosspoints faster, as we do not need to find this out the hard way
    by walking the whole contour and checking X crossings for each
    crosspoint individually.
    Now, this mechanism was broken for some contours, where the rightmost
    point was also a crosspoint. This patch fixes it.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2400 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 1.33, 2.81, 6.31
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3120 ns         3120 ns       225112
    ExpandBoxy/16             57256 ns        57255 ns        12230
    ExpandBoxy/256          8468749 ns      8468250 ns           83
    ExpandBoxyRotate/1         3654 ns         3653 ns       191672
    ExpandBoxyRotate/16       63917 ns        63917 ns        10947
    ExpandBoxyRotate/256    8875926 ns      8875386 ns           78
    ExpandCurvy/1             26843 ns        26843 ns        26034
    ExpandCurvy/16           224080 ns       224077 ns         3107
    ExpandCurvy/256         8723783 ns      8723582 ns           80
    UnionBoxy/1                8785 ns         8785 ns        80043
    UnionBoxy/16             183018 ns       183016 ns         3831
    UnionBoxy/256          23231065 ns     23229650 ns           30
    UnionBoxyRotate/1          9710 ns         9710 ns        72760
    UnionBoxyRotate/16       194118 ns       194116 ns         3609
    UnionBoxyRotate/256    23895696 ns     23895429 ns           29
    UnionCurvy/1              72573 ns        72571 ns         9640
    UnionCurvy/16            992309 ns       992297 ns          704
    UnionCurvy/256         77759144 ns     77756110 ns            9

commit de67863b8bd2d3747c1cf147056278e8a8e4dfb7
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Sun Nov 19 15:09:01 2023 +0100

    [contour] Optimize ContoursHelper data structures
    
    Replace the loose in-place lists in ContoursHelper::Ray with hashmaps
    to hold the head of contour and cp lists. This makes insertion to them
    much faster. It also makes Ray smaller, but this is not a large effect.
    We also realize that after PruneCrosspoints() all rays of a crosspoint
    are snapped to *exactly* the same coordinates, so strict equality is OK.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 1686.22 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 1.22, 2.54, 6.03
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3090 ns         3090 ns       227863
    ExpandBoxy/16             59533 ns        59533 ns        11759
    ExpandBoxy/256          8625136 ns      8624522 ns           80
    ExpandBoxyRotate/1         3677 ns         3677 ns       190909
    ExpandBoxyRotate/16       66114 ns        66114 ns        10594
    ExpandBoxyRotate/256    8978649 ns      8978082 ns           78
    ExpandCurvy/1             26556 ns        26555 ns        26374
    ExpandCurvy/16           225428 ns       225420 ns         3107
    ExpandCurvy/256         8744011 ns      8743616 ns           80
    UnionBoxy/1                6291 ns         6291 ns       111820
    UnionBoxy/16             176010 ns       176005 ns         3983
    UnionBoxy/256          33784629 ns     33781507 ns           21
    UnionBoxyRotate/1          7200 ns         7200 ns        97436
    UnionBoxyRotate/16       182913 ns       182904 ns         3827
    UnionBoxyRotate/256    34180432 ns     34178828 ns           21
    UnionCurvy/1              70126 ns        70125 ns         9952
    UnionCurvy/16            992774 ns       992768 ns          700
    UnionCurvy/256         88512068 ns     88506930 ns            8

commit 803a9c5f49bb6809f682ea918f05606f72fa32ec
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Sun Nov 19 15:39:02 2023 +0100

    Spelling

commit 200b611e667fe196d5dc0de01cfe985c1bd66a0e
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Nov 17 17:48:42 2023 +0100

    [contour] Optimize PruneCrosspoints()
    
    When creating the in-place ordered linked lists, we take too much time
    in linearly searching for the right place. We pre-sort the array to
    minimize the linear search time for the most pressing of the lists.
    
    For large unions (1K edges, many crosspoints) this improves performance
    by 2-3x (curvy or straight contours).
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 1889.13 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 1.13, 0.76, 0.86
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3060 ns         3059 ns       228050
    ExpandBoxy/16             58206 ns        58203 ns        12001
    ExpandBoxy/256          8538906 ns      8538540 ns           82
    ExpandBoxyRotate/1         3647 ns         3647 ns       192058
    ExpandBoxyRotate/16       64771 ns        64771 ns        10801
    ExpandBoxyRotate/256    8876092 ns      8875077 ns           79
    ExpandCurvy/1             26341 ns        26341 ns        26554
    ExpandCurvy/16           224607 ns       224599 ns         3116
    ExpandCurvy/256         8755116 ns      8754567 ns           80
    UnionBoxy/1                6250 ns         6250 ns       111537
    UnionBoxy/16             176146 ns       176147 ns         3971
    UnionBoxy/256          33756795 ns     33756231 ns           21
    UnionBoxyRotate/1          7137 ns         7137 ns        97904
    UnionBoxyRotate/16       183211 ns       183210 ns         3820
    UnionBoxyRotate/256    34233502 ns     34232768 ns           21
    UnionCurvy/1              70030 ns        70029 ns         9917
    UnionCurvy/16            998098 ns       998088 ns          701
    UnionCurvy/256         89037008 ns     89033030 ns            8

commit 84fe564d8b97fb9f3df8b435de8789e9e62bd8a5
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Nov 17 14:46:25 2023 +0100

    [contour] Optimize Edge::Crossing()
    
    Instead of passing in a pointer to a remote bool, we signal overlap as
    the sign of the return value. 5% improvement
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2382.78 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 1.04, 0.82, 0.87
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3092 ns         3092 ns       225583
    ExpandBoxy/16             58479 ns        58477 ns        11901
    ExpandBoxy/256          8578946 ns      8578339 ns           82
    ExpandBoxyRotate/1         3671 ns         3671 ns       191205
    ExpandBoxyRotate/16       65171 ns        65168 ns        10786
    ExpandBoxyRotate/256    8874038 ns      8873636 ns           79
    ExpandCurvy/1             26521 ns        26520 ns        26402
    ExpandCurvy/16           224298 ns       224294 ns         3108
    ExpandCurvy/256         8747602 ns      8747045 ns           80
    UnionBoxy/1                6281 ns         6281 ns       111417
    UnionBoxy/16             233701 ns       233698 ns         3001
    UnionBoxy/256          88473853 ns     88473339 ns            8
    UnionBoxyRotate/1          7200 ns         7200 ns        96409
    UnionBoxyRotate/16       244203 ns       244199 ns         2869
    UnionBoxyRotate/256    90075972 ns     90075198 ns            8
    UnionCurvy/1              70023 ns        70020 ns        10002
    UnionCurvy/16           1042126 ns      1042117 ns          669
    UnionCurvy/256        143005912 ns    142992150 ns            5

commit 46271fcc64a20a882b87a1bb78685080ffc3a1d5
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Nov 17 11:44:17 2023 +0100

    [contour] Optimize Edge::GetBezierHullBlock()
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2400 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 4.24, 2.01, 1.29
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3093 ns         3093 ns       227384
    ExpandBoxy/16             63126 ns        63124 ns        11088
    ExpandBoxy/256          9661498 ns      9660411 ns           72
    ExpandBoxyRotate/1         3668 ns         3668 ns       190580
    ExpandBoxyRotate/16       69606 ns        69604 ns        10061
    ExpandBoxyRotate/256   10037188 ns     10036719 ns           70
    ExpandCurvy/1             26399 ns        26398 ns        26487
    ExpandCurvy/16           224990 ns       224984 ns         3110
    ExpandCurvy/256         9063532 ns      9063044 ns           77
    UnionBoxy/1                6431 ns         6431 ns       109056
    UnionBoxy/16             242802 ns       242803 ns         2881
    UnionBoxy/256          91744030 ns     91739486 ns            8
    UnionBoxyRotate/1          7267 ns         7267 ns        95927
    UnionBoxyRotate/16       253878 ns       253868 ns         2763
    UnionBoxyRotate/256    93526998 ns     93526202 ns            8
    UnionCurvy/1              70180 ns        70174 ns         9983
    UnionCurvy/16           1064443 ns      1064436 ns          657
    UnionCurvy/256        149243001 ns    149241016 ns            5

commit 02d59d391f5b89d2324a1aeae5f3972d6680fed0
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Nov 17 11:30:36 2023 +0100

    [contour] Optimize Edge::Split()
    
    So that we do not copy the flags one-by-one.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2398.44 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 5.58, 3.06, 1.72
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3202 ns         3202 ns       220744
    ExpandBoxy/16             62769 ns        62769 ns        11157
    ExpandBoxy/256          9527944 ns      9527110 ns           73
    ExpandBoxyRotate/1         3742 ns         3742 ns       185159
    ExpandBoxyRotate/16       69260 ns        69260 ns        10141
    ExpandBoxyRotate/256    9842994 ns      9842690 ns           71
    ExpandCurvy/1             27223 ns        27222 ns        25694
    ExpandCurvy/16           232406 ns       232399 ns         3016
    ExpandCurvy/256         9701937 ns      9701832 ns           72
    UnionBoxy/1                6417 ns         6417 ns       109111
    UnionBoxy/16             244114 ns       244107 ns         2867
    UnionBoxy/256          91238731 ns     91237774 ns            8
    UnionBoxyRotate/1          7320 ns         7320 ns        95487
    UnionBoxyRotate/16       253537 ns       253533 ns         2759
    UnionBoxyRotate/256    91889547 ns     91883564 ns            7
    UnionCurvy/1              72927 ns        72924 ns         9594
    UnionCurvy/16           1133671 ns      1133657 ns          617
    UnionCurvy/256        158969167 ns    158954584 ns            4

commit 42f4fd9d2403dedf3c7e561d4b71b5e306b537e2
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 15 18:28:39 2023 +0100

    [contour] Optimize Range/Block::Overlap() if gap=0
    
    Some additional speedup.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2330.5 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 6.63, 3.85, 2.08
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3162 ns         3162 ns       221080
    ExpandBoxy/16             62124 ns        62123 ns        11265
    ExpandBoxy/256          9535133 ns      9533980 ns           73
    ExpandBoxyRotate/1         3803 ns         3803 ns       184758
    ExpandBoxyRotate/16       68706 ns        68706 ns        10187
    ExpandBoxyRotate/256    9834227 ns      9832842 ns           71
    ExpandCurvy/1             27992 ns        27990 ns        25018
    ExpandCurvy/16           234765 ns       234759 ns         2981
    ExpandCurvy/256         9667316 ns      9666984 ns           72
    UnionBoxy/1                6362 ns         6361 ns       109734
    UnionBoxy/16             237149 ns       237146 ns         2952
    UnionBoxy/256          92037391 ns     92029563 ns            8
    UnionBoxyRotate/1          7241 ns         7241 ns        96259
    UnionBoxyRotate/16       246903 ns       246898 ns         2834
    UnionBoxyRotate/256    93513362 ns     93510579 ns            7
    UnionCurvy/1              73331 ns        73329 ns         9537
    UnionCurvy/16           1124003 ns      1124007 ns          622
    UnionCurvy/256        158141054 ns    158141551 ns            4

commit 1c22eaf2f4e3f6f3e69ace13d1c9c1ebdf6d9120
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Nov 7 15:27:52 2023 +0100

    [contour] Broken out data storage from Edge
    
    - Meta, Update and the enums are now in EdgeBase
    - The actual coordinates and the metadata is stored in EdgeStorage
    - All functions in Edge refers to the coordinates and metadata via
      accessor functions.
    - We have tightened up sanity checking a bit via asserts. This resulted
      in minimal changes to contour canonical images.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2299.33 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 7.62, 4.69, 2.49
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3221 ns         3221 ns       217304
    ExpandBoxy/16             64012 ns        64011 ns        10939
    ExpandBoxy/256          9921228 ns      9920743 ns           70
    ExpandBoxyRotate/1         3784 ns         3784 ns       185293
    ExpandBoxyRotate/16       70436 ns        70435 ns         9929
    ExpandBoxyRotate/256   10266532 ns     10265627 ns           68
    ExpandCurvy/1             28235 ns        28235 ns        24805
    ExpandCurvy/16           237383 ns       237377 ns         2950
    ExpandCurvy/256         9819898 ns      9819090 ns           72
    UnionBoxy/1                6345 ns         6345 ns       110307
    UnionBoxy/16             238006 ns       238004 ns         2932
    UnionBoxy/256          91115695 ns     91114687 ns            7
    UnionBoxyRotate/1          7284 ns         7284 ns        96047
    UnionBoxyRotate/16       249491 ns       249486 ns         2789
    UnionBoxyRotate/256    93221069 ns     93221374 ns            8
    UnionCurvy/1              73833 ns        73830 ns         9494
    UnionCurvy/16           1132631 ns      1132595 ns          618
    UnionCurvy/256        159377044 ns    159369192 ns            4

commit fcda584c62553661d692784c6867563a61540d34
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 15 09:22:58 2023 +0100

    [contour] perf improvement, removing modulo
    
    Performance measurements (the tests/perftest) showed that 66% of
    ContoursHelper::FindCrosspointsHelper(contour::SimpleContour const*)
    was spent in doing the modulo of EdgeVector<>::next(size_t).
    It had been replaced to a much faster branch, instead.
    
    This commit also contains removal of modulo elsewhere and some spelling.
    
    This commit resulted in a 40% speed improvement for large expands and
    20% for small ones.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 2399.95 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 5.44, 4.80, 2.74
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3131 ns         3131 ns       222241
    ExpandBoxy/16             64679 ns        64675 ns        10816
    ExpandBoxy/256         10177695 ns     10176548 ns           69
    ExpandBoxyRotate/1         3791 ns         3791 ns       187171
    ExpandBoxyRotate/16       71145 ns        71145 ns         9844
    ExpandBoxyRotate/256   10433025 ns     10432030 ns           67
    ExpandCurvy/1             28454 ns        28454 ns        24658
    ExpandCurvy/16           236349 ns       236341 ns         2963
    ExpandCurvy/256         9905471 ns      9904955 ns           71
    UnionBoxy/1                6284 ns         6284 ns       111003
    UnionBoxy/16             238098 ns       238084 ns         2939
    UnionBoxy/256          89089513 ns     89082565 ns            8
    UnionBoxyRotate/1          7272 ns         7272 ns        96191
    UnionBoxyRotate/16       249242 ns       249235 ns         2808
    UnionBoxyRotate/256    95122406 ns     95119738 ns            7
    UnionCurvy/1              74723 ns        74721 ns         9343
    UnionCurvy/16           1143973 ns      1143961 ns          613
    UnionCurvy/256        159312827 ns    159313425 ns            4

commit 2200e012a3e0e549f536261813d7b98ad4b392c5
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Mon Nov 6 09:31:20 2023 +0100

    [test] added simple perf test to measure Expand()
    
    - You need Google Benchmark installed
    - Measures Expand() on an increasingly complex set of contours
    - The contours only have horizontal and vertical edges, 4x the number
      displayed in the text.
    - A second set of tests have only 15 degree slanted edges (a bit more
      compute power to calculate crossings.
    
    Perf results on bigdata5 using -O3 -DNDEBUG with g++-13:
    Run on (24 X 1776.6 MHz CPU s)
    CPU Caches:
      L1 Data 32 KiB (x12)
      L1 Instruction 32 KiB (x12)
      L2 Unified 256 KiB (x12)
      L3 Unified 15360 KiB (x2)
    Load Average: 5.91, 5.27, 3.06
    ---------------------------------------------------------------
    Benchmark                     Time             CPU   Iterations
    ---------------------------------------------------------------
    ExpandBoxy/1               3647 ns         3647 ns       191825
    ExpandBoxy/16             89385 ns        89383 ns         7829
    ExpandBoxy/256         15439916 ns     15439473 ns           45
    ExpandBoxyRotate/1         4214 ns         4214 ns       167277
    ExpandBoxyRotate/16       95817 ns        95817 ns         7323
    ExpandBoxyRotate/256   15811340 ns     15810175 ns           44
    ExpandCurvy/1             29063 ns        29061 ns        24046
    ExpandCurvy/16           248263 ns       248244 ns         2817
    ExpandCurvy/256        11400485 ns     11399963 ns           61
    UnionBoxy/1                6645 ns         6645 ns       105062
    UnionBoxy/16             243501 ns       243493 ns         2856
    UnionBoxy/256          91933859 ns     91934166 ns            8
    UnionBoxyRotate/1          7609 ns         7609 ns        92562
    UnionBoxyRotate/16       253359 ns       253343 ns         2764
    UnionBoxyRotate/256    93691533 ns     93682701 ns            8
    UnionCurvy/1              74214 ns        74213 ns         9407
    UnionCurvy/16           1139742 ns      1139692 ns          613
    UnionCurvy/256        160789415 ns    160781347 ns            4

commit 7099826ccf5ffbe18f4f2a0380f859853ae73a0b
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Sun Nov 19 15:12:21 2023 +0100

    Spelling

commit 6a022b8312749663190f36444210f512436d7116
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Wed Nov 15 12:10:25 2023 +0100

    [win] Remove workaround for VS bug
    
    Fixed by: https://developercommunity.visualstudio.com/t/Internal-compiler-error-when-inheriting-/10180917
    Plus some spellcheck.

commit f6d53bc9de9ba805d1fa29519dbd045dc68650c7
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Mon Nov 6 08:38:39 2023 +0100

    [block] Fix GUI expand/collapse for no-name boxes
    
    Also fix the associated help and some spellcheck.

commit 8858945c6ea52be6ea393b4df13f9d156f54c3bc
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Oct 2 16:13:18 2023 +0200

    [test] Dump failing tests as Base64
    
    We save some logfile space and PNG conversion hassle

commit b3deb113d9a50c13fcb79580b3cecf951767cb4f
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Oct 2 15:53:04 2023 +0200

    [test] More png tools

commit 4eb5eef130c1e49599dce30e85b7a09f9313fcb7
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Thu Nov 2 10:59:43 2023 +0100

    nits

commit 69e667e939186ea752ce82b387dc6273b5c51e72
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Fri Aug 18 14:05:13 2023 +0200

    [gui] --fps and MSCGEN_FPS to limit frame rate

commit cc2af02b8052483fa5d8588c1c9680eef7537057
Author: Zoltán Turányi <teknos@gmail.com>
Date:   Tue Oct 17 16:10:53 2023 +0200

    [gui] fix help text wrapping

commit 7f4e55c65200576c7ac9e031dc2999735cb0ba29
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Sep 25 16:14:23 2023 +0200

    Show failing tests in text log

commit 02d3631bd40391ec8f6a4959597527dcbc99598b
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Sep 25 15:56:45 2023 +0200

    New upstream tarball 8.4.2

commit 1da58068e398da8ae38e5c07687ae0db6a413554
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Sep 6 15:40:24 2023 +0200

    [build] Check for timeouts in unit tests

commit 3f4c7d158c598d0a2fbc2cd7cbe335c64ad8a51b
Author: Gábor Németh <homar@riseup.net>
Date:   Mon Aug 28 14:33:57 2023 +0200

    [build] Make explicit when unit tests finish
    
    and update the target file only then. Besides this checks whether `contours` gets stuck in verbose builds.

commit 9ab4c9a38df67c65644494ccac826bc5f54fce2b
Author: Gábor Németh <homar@riseup.net>
Date:   Tue Jul 18 10:56:10 2023 +0200

    Fix release tag in d/ch

commit 7f0f6688f893189ab61220e1118984ecedb110ef
Author: Gábor Németh <homar@riseup.net>
Date:   Wed Jun 14 16:18:55 2023 +0200

    Fix missing include with g++-13

commit cd4268b3f2e76f95e4bcd089b636c7b31cb98772
Author: Gábor Németh <homar@riseup.net>
Date:   Thu Jun 1 10:12:42 2023 +0200

    Switch to limpress-nogui (#1024840)

commit 0c9a1c4bf7e79adec102a1fe16f20cecf41ef902
Author: Gábor Németh <homar@riseup.net>
Date:   Thu May 25 12:28:30 2023 +0200

    Remove built header file
Created: 2022-06-16 Last update: 2025-09-09 00:03
testing migrations
  • This package will soon be part of the auto-graphviz transition. You might want to ensure that your package is ready for it. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
news
[rss feed]
  • [2025-04-21] msc-generator 8.6.2-4 MIGRATED to testing (Debian testing watch)
  • [2025-04-10] Accepted msc-generator 8.6.2-4 (source) into unstable (Gábor Németh) (signed by: Jeroen Ploemen)
  • [2024-09-03] msc-generator 8.6.2-3 MIGRATED to testing (Debian testing watch)
  • [2024-08-29] Accepted msc-generator 8.6.2-3 (source) into unstable (Gábor Németh) (signed by: Boyuan Yang)
  • [2024-08-21] Accepted msc-generator 8.6.2-2 (source) into unstable (Gábor Németh) (signed by: bage@debian.org)
  • [2024-07-29] Accepted msc-generator 8.6.2-1 (source) into unstable (Gábor Németh) (signed by: Boyuan Yang)
  • [2024-07-23] Accepted msc-generator 8.6.1-1 (source) into unstable (Gábor Németh) (signed by: Boyuan Yang)
  • [2024-02-25] msc-generator 8.5-1 MIGRATED to testing (Debian testing watch)
  • [2024-02-19] Accepted msc-generator 8.5-1 (source) into unstable (Gábor Németh) (signed by: Boyuan Yang)
  • [2023-10-03] msc-generator 8.4.2-1 MIGRATED to testing (Debian testing watch)
  • [2023-09-27] Accepted msc-generator 8.4.2-1 (source) into unstable (Gábor Németh) (signed by: Boyuan Yang)
  • [2023-09-07] Accepted msc-generator 8.4.1-3 (source) into unstable (Gábor Németh) (signed by: bage@debian.org)
  • [2023-09-05] Accepted msc-generator 8.4.1-2 (source) into unstable (Gábor Németh) (signed by: bage@debian.org)
  • [2023-09-03] msc-generator REMOVED from testing (Debian testing watch)
  • [2023-08-13] Accepted msc-generator 8.4.1-1 (source) into unstable (Gábor Németh) (signed by: bage@debian.org)
  • [2022-08-02] msc-generator 8.1-2 MIGRATED to testing (Debian testing watch)
  • [2022-07-28] Accepted msc-generator 8.1-2 (source) into unstable (Geert Stappers) (signed by: Gerardus Stappers)
  • [2022-07-27] Accepted msc-generator 8.1-1 (source) into unstable (Geert Stappers) (signed by: Gerardus Stappers)
  • [2022-04-04] msc-generator 7.2.1-1 MIGRATED to testing (Debian testing watch)
  • [2022-04-04] msc-generator 7.2.1-1 MIGRATED to testing (Debian testing watch)
  • [2022-03-29] Accepted msc-generator 7.2.1-1 (source) into unstable (Geert Stappers) (signed by: Gerardus Stappers)
  • [2022-03-19] Accepted msc-generator 7.2-1 (source amd64 all) into unstable, unstable (Debian FTP Masters) (signed by: Gerardus Stappers)
  • [2022-02-27] msc-generator 7.1-2 MIGRATED to testing (Debian testing watch)
  • [2022-02-21] Accepted msc-generator 7.1-2 (source) into unstable (Geert Stappers) (signed by: Gerardus Stappers)
  • [2022-02-15] Accepted msc-generator 7.1-1 (source amd64 all) into unstable, unstable (Debian FTP Masters) (signed by: Gerardus Stappers)
bugs [bug history graph]
  • all: 0
links
  • homepage
  • lintian
  • buildd: logs, reproducibility, cross
  • popcon
  • browse source code
  • edit tags
  • other distros
  • screenshots
  • debian patches
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 8.6.2-4build1

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing