Git log: 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: 7f4e55c 074a209
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 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
commit 2bc6da072fff2adc630858aaf6530b14bd613768
Author: Gábor Németh <homar@riseup.net>
Date: Mon May 22 12:17:02 2023 +0200
Remove more Windows-only files
commit 715c8698a5f657f9b4b695595967f95997ea91d9
Author: Gábor Németh <homar@riseup.net>
Date: Mon Mar 6 10:53:02 2023 +0100
Bump copyright years
commit 320e8e9f192b222aa4fc966ad6848cef592dd63a
Author: Gábor Németh <homar@riseup.net>
Date: Mon Mar 6 10:49:23 2023 +0100
Bump std version
commit 3be2ef2a9c8181b2f0b63fce2c5657b8f883137f
Author: Gábor Németh <homar@riseup.net>
Date: Mon Mar 6 10:29:37 2023 +0100
Dependency change
Libfreetype6-dev became obsolete after transition to libfreetype-dev.
commit a42b700477a6320aeb15d3bf688a5add0b51aaf2
Author: Gábor Németh <homar@riseup.net>
Date: Tue Dec 20 12:45:55 2022 +0100
Report test failures on non-amd64
Partially revert decision in b08e310c to only run tests for amd64. We run the tests but only fail on amd64, as logic errors are expected to either happen on all or none of the arch:s.
Report about pixel errors in different arch:s is still a valuable input, if any, so we keep those on all other archs.
commit 318058e1b412e7ad075966696f91cd767a2b7fe1
Author: Gábor Németh <homar@riseup.net>
Date: Sun Dec 18 10:24:57 2022 +0100
Remove patches applied by upstream
commit 1818a91532a7aefb9a0d2de8931c010343328af1
Author: Gábor Németh <homar@riseup.net>
Date: Fri Mar 3 14:20:52 2023 +0100
Start on new upstream 8.4
Fix uscan matching in d/watch to capture the 3-part version number.
commit ecfe357f402762445baf219af9de6554c34fdef5
Merge: 21ceac3 b47ca0f
Author: Gábor Németh <homar@riseup.net>
Date: Wed May 24 15:50:18 2023 +0200
Merge branch 'master' into debian/next2
commit b47ca0ff1e88645efc4dbaa3ad3d05c15a53f95d
Author: Gábor Németh <homar@riseup.net>
Date: Wed May 24 13:14:56 2023 +0200
[build] Bump autoconf version
commit fe095f06d6cfc2863aa4dcfbe6e1631c29e79168
Author: Gábor Németh <homar@riseup.net>
Date: Wed May 24 10:20:11 2023 +0200
[test] NOFONT canon for contour tests
commit 9931601473d7a55ecaf1f4cf2eb87b0c8237394d
Author: Gábor Németh <homar@riseup.net>
Date: Wed May 24 09:50:22 2023 +0200
[build] Make NOFONT the default for contour unit tests
This results in omission of titles in the generated PNGs. The original behavior
can still be achieved if MSC_TEST_NOFONT is *not* set or empty and
MSCGEN_NOFONT is *set* to empty or "0". So preset value of the latter is
honored iff the former is null or unset.
commit eb5dbaec2f8d902172b707da4daad74da766d27e
Author: Gábor Németh <homar@riseup.net>
Date: Wed May 24 08:51:33 2023 +0200
[test] Contour unit tests report on cout, not PNG
commit e1c687906432453a4bcab4ed4c9b3e719c34833c
Author: Gábor Németh <homar@riseup.net>
Date: Tue May 23 12:31:35 2023 +0200
[build] Fix make variable vs envvars
commit de9bce0be99fc98d213190c18646d1cf92c25903
Author: Gábor Németh <homar@riseup.net>
Date: Fri May 19 15:58:33 2023 +0200
[build] Option to test with NOFONT masking
MSC_TEST_NOFONT=1 creates test PNGs with NOFONT too, and calls pngdiff with
them as the 3rd argument.
Also, if set, unit tests do not draw fonts at all.
commit bbb114d987280b767d3b996f2bbd5543ceebe628
Author: Gábor Németh <homar@riseup.net>
Date: Fri May 19 14:53:30 2023 +0200
[ci] Undo NOFONT canonincals in the dist (part of bb6136e)
It was a bad idea, born of desperation. With the new pngdiff functionality we
can return to the practice of distributing the same canonicals in the tarball
as they are in the repo.
commit dd66b3ba95da313f0a258fd48d1c719a36b14bf1
Author: Gábor Németh <homar@riseup.net>
Date: Tue May 23 15:07:26 2023 +0200
[test] Unused params in contours test
commit 53066a5b4a32b576c1bf580f1817a51f962d1fde
Author: Gábor Németh <homar@riseup.net>
Date: Tue May 23 14:34:31 2023 +0200
[test] Unused vars in contour tests
commit 6b3fb0449cf80cf193be9961425fde5ea517bd58
Author: Gábor Németh <homar@riseup.net>
Date: Tue May 23 10:54:39 2023 +0200
[test] Allow creating unit tests w/o text
commit 46e2c60c643ff7094381ddaef6206dcc5e4d5829
Author: Gábor Németh <homar@riseup.net>
Date: Fri May 19 10:13:44 2023 +0200
[test] pngdiff accepts a 3rd PNG, for creating a mask
If specified, an alpha mask is created first with the diff of the 1st and 3rd
arguments, inflated by 2px (hard-coded for now). Then the diff between the 1st
and 2nd PNGs is only checked *outside* the mask.
Use it with a NOFONT canonical as the 3rd file to allow for font-less testing.
commit 71dbaea29083067805fda2518315a2d15998d56d
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Apr 26 09:33:43 2023 +0200
nit: Better natvis for UPtrList<>
commit a017c38d4df1196b50f9ba146d05c19178f4a52f
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed May 10 17:24:27 2023 +0200
[graph, gui] URLs now clickable
- [graph] Revamped text formatting to make URLs blue and underlined.
- [graph] Added 'link_format' graphviz attribute
- [graph] Documented these changes. Also that we ignore URL, and similar
attributes
- [gui] Links (that are URLs) are now clickable and open the browser
- Quick and dirty common mechanism to determine what references are
clickable URLs.
commit 5cd0545e90839520fd5978709c69971c13997d55
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Apr 26 09:33:06 2023 +0200
[gui] Beautify PNG options dialog
commit c3956ceac21099ed10cd799cccbc2b59c61add60
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Apr 25 15:41:37 2023 +0200
[gui] fix: Keep Fit to Window/Width mechanism
commit 24f3b6fb817c4aa34b24b55599f41197b41510dd
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Apr 25 13:15:44 2023 +0200
[gui] Don't display success on a failed Load
commit bc708541c89abcacde30d8eaccb1d30bb1a62fd9
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Apr 25 13:15:15 2023 +0200
Added contour::Range::operator[]
commit a06d6ca73ac42ac75699786056a7d91e7ddff92c
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Apr 19 16:02:42 2023 +0200
nits: string_view, range-based for & spelling
Also, better error messages for misapplied chart-specific CLI arguments.
commit f0a7ca0f36ca56d82d74d3b04ee31d3d35df5727
Author: Gábor Németh <homar@riseup.net>
Date: Tue May 23 08:46:20 2023 +0000
Missing license files in dist
commit 95e572c5fbda5a714ec502555f25080ee5045bc9
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri May 19 16:44:20 2023 +0200
[win] Build nits
- use C++20 for Msc-generator Handler project instead of c++latest,
because the latter uses modules on VS 2022 Preview and does not
compile that way due to some missing precompiled header error.
- uplift Advanced Installer version to 20.6
commit 685bf66ccf8d055e260de24b27b0339f1297c656
Author: Gábor Németh <homar@riseup.net>
Date: Wed May 17 15:08:16 2023 +0200
[ci] winbuild is manual for now
commit 115222c089068113f8b280588c17f436d6509488
Author: Gábor Németh <homar@riseup.net>
Date: Wed May 10 15:56:02 2023 +0200
[ci] 2nd shot at winbuild: install deps in build-time
Revert to install&build scenario: getting 3PPs takes only 6-7' out of 40'.
- Switch to C++ MSVC 2020
- Use winflexbison; manually instead of choco, as version 3.8.2 is needed
- Use Graphviz from choco at a fixed version [1]. Added an env var for include directory path.
- Include MFC & redistributables
- Do not registered the Msc handlers dll in the CI (needs admin privileges)
- Use AdvancedInstaller from choco
- Produce .msi as an artifact
[1] GV 7.1 to avoid API change; S.E.P. [2]
[2] https://en.wikipedia.org/wiki/Somebody_else%27s_problem
commit d6d9a2c85b8bae1e9cdcabfcbbc0d83c2d2d67e2
Author: Gábor Németh <homar@riseup.net>
Date: Thu May 4 10:32:55 2023 +0000
[ci] First shot at a Windows build
We use a customized builder image (unfinished; only has Bison as of yet).
Unfortunately, pulling the image and running it in dind (11') is slower than installing the tools in an ephemeral build run (7-8')
so we leave this track.
commit 59125ec1b76bba278f0fdb7714189046b2d8b2db
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Apr 17 14:26:17 2023 +0200
v8.4 release fixes
commit 6aabf6679c05cf8cc9d86b61e945b7ce3d96d78b
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Apr 13 19:00:19 2023 +0200
v8.4 version bump and doc update
commit fc125dd190bea398dae2bd6da5afdfec3db68d0e
Author: Zoltan Turanyi <teknos@gmail.com>
Date: Fri Apr 14 16:02:58 2023 +0200
[doc] dos2unix all example files
This avoids having extra line breaks in the doc.
commit 67711c520b304794056f58eba4a6d5145bffd918
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Apr 13 18:48:40 2023 +0200
Remove unused param from FileListProc signature
commit 989b7390b24ff1f122fda417d87fa138d96634e3
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Apr 13 18:25:17 2023 +0200
fix: Embedded chart text encode workaround for PPT
It seems that if the chart text contains "cid" (!) then PowerPoint
cannot process the embedded image's Alt-Text. (Word can.) So we
add a workaround by breaking up "cid" to "c~0id" allowing ~0 to
represent zero spaces.
This is a non-backwards compatible fix. A chart containing "cid" which
was inserted into PowerPoint (or Word) with this fix, will not be
correctly loaded by earlier versions of Msc-generator. They will have
"c~0id" in the source code.
commit 6dece71d58723a56e37ac4f74fc45d16785d383f
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Apr 12 14:04:08 2023 +0200
nits
commit 9ab5dad213a19c424b47e80f4ef157ab6dd85268
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Apr 12 14:03:52 2023 +0200
[win] Remove /permissive
This also allows using modules, which is automatic in VS 17.6.0
preview 3.0.
commit 4662cce00b6d96e3a84351c7e716af70bd834e34
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Mar 30 13:24:26 2023 +0200
[win] Remove YaccBisonDefines
Only needed by flex, so no longer needed.
commit 59540c1591bb655c26feea7f336eb030defe5ca8
Author: Gábor Németh <homar@riseup.net>
Date: Fri Apr 14 08:09:00 2023 +0000
[doc] Fix comment line showing in PDF
commit 71ac4ce496002203586bf4c4d23030af5e22c567
Author: Gábor Németh <homar@riseup.net>
Date: Tue Mar 14 16:50:01 2023 +0100
Add default empty field initializers
commit 540342b43e804eb65ea82427127e7e31438645f8
Author: Gábor Németh <homar@riseup.net>
Date: Tue Mar 14 16:49:16 2023 +0100
Add explicit empty initializers
commit 13e2ad7fbabbf7e54fd6b65d1a7be4307378a829
Author: Gábor Németh <homar@riseup.net>
Date: Tue Mar 14 16:47:03 2023 +0100
Cleanup unused params
Unused function parameter names are
- marked as such for large / non-trivial-looking bodies;
- made into inline comments in declarations;
- removed for override definitions.
commit 3f318e768ab7472fc82dd50a60111a135b30c4d6
Author: Gábor Németh <homar@riseup.net>
Date: Tue Mar 14 13:41:24 2023 +0100
[build] Simplify compiler flags
commit ea264e0b34b9e47b23e1b7a264eb6e7c51df4a59
Author: Gábor Németh <homar@riseup.net>
Date: Tue Mar 14 13:27:09 2023 +0100
Remove duplicate license file
commit 84d897df081c057d3568944404dfb0fff8cc5715
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Mar 14 19:15:03 2023 +0100
fix: 3-colon filenames
Plus a few string copy eliminations
commit 8f75f13dc5cac886702ba09a8c8b4c0d2ea820b2
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Mar 14 17:23:57 2023 +0100
Parse "C:a.pptx:2" cmdline input file name well
Windows paths can legitimately contain one colon (after a drive letter
or server spec). Allow this when parsing for ":<slide>:<chart>" specs.
That is, if the term between the two colons or after a single colon is
not a number, assume it is part of the file name. If there are two
colons, the part after the last one must be a number.
While "C:123" is a valid Windows path to a file, we will interpret it as
"C:" for filename and "123" for slide number. Likewise "C:123:2" will be
"C:" for filename, "123" for slide number and "2" for chart number.
(But "C:123:2:1" will have "C:123" as filename.) The user can easily
correct this by using "C:./123" as filename.
Thanks for the bug report, Adam.
commit f8dfed36e73fb64b95a6c7a16e5755849e5e48a7
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Mar 14 16:37:26 2023 +0100
[gui] Keep recovery state longer
When opening the GUI, the recovery state is kept until
- you open a file
- you paste from the clipboard
- you select recovery and make a change
- select new and make a change
Especially, if you exit from the Welcome Screen, the recovery info is
kept.
commit e55c1d99b11957a4d3af7409efba30125318d40c
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Mar 13 12:37:28 2023 +0100
Remove lex-specific code no longer needed
commit 1d99ff3139af9916abefa8a042ff280dfc62f261
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Mar 13 12:22:42 2023 +0100
Ported Graph to maphoon-lexer
commit 020e113db874f8d72b96c968c08c33a66d3492c8
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Mar 13 07:52:46 2023 +0100
Ported Flow to maphoon-lexer
commit cf5fc88c1f9b0301f4b2cce216d2995c5d9dec26
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Mar 10 20:48:29 2023 +0100
Ported Block to maphoon-lexer
commit b6a8617affaf50c532dacbf20c0cb33ad13dd5d7
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Mar 8 15:53:14 2023 +0100
Ported Msc to maphoon-lexer
In addition to the steps taken in portint the Xxx language, we have
introduced the following things.
- Since the msc language uses start conditions of lex to cater for
backwards compatibility with mscgen, we have added msc::lexing_state
to enumerate the type of tokenizing needed, generate 3 parsers
and use the one for the current lexing_state.
In addition, the get_token() and readandclassify() functions return
not only the token, but also the supposed new state.
- Since I did not want to rewrite the code to re-classify the TOK_REL_*
tokens again in get_token() the EArcSymbol value is also returned by
readandclassify (as msc::token_state_symbol<TOKEN>::symbol). This is
not very nice, since it is used only for some tokens.
commit d159f4cf19de021cfda180e81067971d8bc90413
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Mar 9 09:58:15 2023 +0100
Make LanguageCollection::libraries private
commit 78e88459cbd5622361823b1b8d30baaffbb9883e
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Mar 8 15:51:30 2023 +0100
Csh::ParseText() now takes an rvalue string ref
And all other related functions (BeforeYaccParse, ParseDesignText) have
been adjusted to this. As a result the 'designs' variable read from
the designs is also passed on being moved, e.g. in do_main() (so is
'languages' if we are at that).
It will save one memcopy of the colored text at every parse.
commit e21d60be33bd10d305e1bfac4f525f0b150d55fd
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Feb 24 16:08:13 2023 +0100
Ported Xxx to maphoon-lexer
commit 98c160f77dd16b15beafe37a7dab5311baece5a7
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Mar 10 15:24:23 2023 +0100
fix: SetVariable() error location
commit 5224728026a55c6d5f9e1994c4983dc5abdebcc4
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Mar 7 13:14:56 2023 +0100
Prepare to utilize maphoon-lexer
- Add the parser script for Windows
- Add a description of the (somewhat contorted) lexing/parsing process.
- Remve MultiString (as we will not use C++ parsing and keep using
'multi_segment_string' instead, which is a POD type).
- Update .gitignore to ignore the intermediate files.
commit d1400a066cdfb7385c48ceae1972d475ee705c22
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Mar 9 12:15:03 2023 +0100
maphoon: added without(string), iword(), oneof()
commit b47c1ff603bac608c37a11f63f2512b1f9fe2d65
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Feb 24 11:22:50 2023 +0100
maphoon: avoid string copies with ostringstream
commit 0d2fd2c0d958bee7a11315bc8e2bf7a219d4efef
Author: Zoltan Turanyi <teknos@gmail.com>
Date: Tue Mar 7 09:25:01 2023 +0100
maphoon: enable minimaztion
Fixes a bug as suggested by Hans.
commit eef3f9f46a366c618bcd9f56ec2b38526b2be462
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Feb 17 16:45:57 2023 +0100
maphoon: small improvements
commit fcac01ea270fd9876b7a96b2ecdcb493cf95967a
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Jan 20 17:38:55 2023 +0100
Added maphoon-lexer
Only the lexer part of maphoon.
commit 61ce93587a5634acbf71d0ec0f1405b24f7b29df
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Mar 7 10:36:54 2023 +0100
Remove QuotedStrings
This commit breaks Msc-generator in itself, as it relies on the token
semantic values to be from the Csh::input_text string_view. This is not
the case for lex. But we are preparing to get to maphoon-lexer for which
it is.
commit ad5ff68ee047a21f9f9bf8492c73dce89c131ec7
Author: Zoltán Turányi <teknos@gmail.com>
Date: Sat Mar 11 20:46:40 2023 +0100
fix: save FileLineCol copies
commit 7ffc1c78e6ed118ef2fe7c53eb508d8141e4aa9e
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Mar 10 21:46:33 2023 +0100
nit: fix debug printout in msc-gen.cpp
commit 11d6a56d962c5bb753565623e61515028ba774e3
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Mar 10 21:17:01 2023 +0100
nit: use _ASSERT instead of assert
commit 87d0cdb8b97a66beb478aa07f20a1ae234fe33d2
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Mar 6 22:00:45 2023 +0100
Color parameter values and conditions correctly
- graph: register quoted strings well
- all: multi strings or quoted strings will be correctly colored as a
label when passed to parameters, used as default value for parameters
or used in ifthenelse conditions.
As a solution here, we make Csh::QuotedStrings sorted all the time.
commit 5d5cffc7e1c9deaffee215165316895b408913ae
Author: Zoltán Turányi <teknos@gmail.com>
Date: Sun Mar 5 21:56:44 2023 +0100
Correctly color parameter names and multi strings
Now $xxx will be colored as parameter even if part of an entity name,
label or anything else, really. As a bonus, escape sequences are also
correctly colored if part of a label with ~ concatenating multiple
parts.
commit b844a1eefe0beeffc5b75665ee8a599ca23773c5
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Mar 2 22:44:23 2023 +0100
flex buffsize to 640K
This is a stopgap commit to fix a problem introduced by the previous
commit. The changes in the previous commit work only if we can the
input text in-place - which flex does not do, so here we increase the
flex buffer size to mimic that. Since we plan to change to maphoon-lexer
(which scans in-place), this commit will fade away.
commit acae7018be9244a9d57ae23efba902457c0a15ed
Author: Zoltán Turányi <teknos@gmail.com>
Date: Wed Mar 1 07:10:31 2023 +0100
Improve lexing with flex
- Changing the 'str' type from owning char* to a string-view like POD
type. This avoids calling strdup at every text symbol.
- Improve 'multi_segment_string' to be able to hold non-owning strings,
which allows memory allocations, too.
- Switching from 'const std::string &' and 'const char *' arguments to
std::string_view in many Chart, Csh and element members, like
constructors, 'AttributeValues()', AttributeNamesForStyle(),
AttributeValuesForStyle(), etc.
- Rationalizing the return value of Procedure::MatchParameters().
- Changing the colon-string processing routines to avoid returning a
malloc'd C-string.
- Uplifting the lexer and grammar files to match the above changes.
Note that this commit does not and can not pass all tests. We use
string_views as semantic values of parts of the source text to avoid
strdup() calls. This speeds up parsing (overall, not just lexing) on the
xxx language by ~8%. However, flex rewrites the buffer, thus in case of
a buffer exhaustion, the string_views change value. This can be fixed by
increasing the buff size (see the next commit), but in some cases it
is not a solution, such as in case of tests/basic/cshfix.block, which is
three characters: "a-\n". To parse this construct the lookahead is
needed, which does not exist beyond the newline, so flex calls YYINPUT
to get more bytes. This first clears the buffer and then returns EOF.
Thus the string_view that pointed to the name of the box becomes empty
and the box will have no label. We could, of course, use yy_scan_buffer,
which scans a bytestream in-place - but the bytestream must end in two
zeros.
All the above is not a problem, since we plan to switch to maphoon-lexer
to kick flex off. maphoon-lexer will just read the bytes in-place and
will not insert zeros to create an in-place C-string for yytext and such
nonsense.
commit c3a0fe4c1cf8faa012efbdd103eb206172958be4
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Jan 30 12:11:39 2023 +0100
Prepare for maphoon parsing
The main thing is to move EScopeOpen and procedure_parse_helper in
chartbase.h and adding the (yet unused) parser_tools.h.
The plan is to remove parse_tools.{h,cpp} and language_misc.h from
libcgencommon and all xxx_lang_misc.h from individual languages.
(Except from dot, since there we actually add something to it.)
We also added the 'src' dir to the list of includes, so that if we
add a parser/lexer tool, the languages can include from it.
Additional fixes
- A check for empty EntityCommandHelper in msc_lang.yy
- Save one memcpy in gvgraphs.cpp using the new, string_view capable
remove_head_tail_whitespace() in parser_tools.h.
- Adding a ctor to XxxInstruction.
commit 1928b15a5b5f0ac3e864ede9222499a19256c656
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Mar 13 12:21:46 2023 +0100
[gui] fix: error line numbers now always show
On first compile after Load() these were removed, mistakenly seen as
a filename.
commit 324745a02ae208bcef8ce90514a877b332d46c55
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Mar 7 10:50:20 2023 +0100
fix: --help text bad on --nodesigns
commit 217b0cbcd3d5a661f34f64343be4bf70c52c2b0b
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Mar 3 20:47:30 2023 +0100
fix: coloring quoted strings
commit ca20ce28359867e605c2fb76f5a2c6284f17a0b8
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Feb 27 12:13:43 2023 +0100
Avoid ostringstream for std::string <<
A performance improvement when using operator<<(std::string, T).
commit bd4a352b0b2a1665366cc91b66ed9fbcf9db64e8
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Feb 13 11:33:47 2023 +0100
xxx: improvements all around
commit ce8198ab0dec2db698eef63cf11bb94c55d23528
Author: Zoltán Turányi <teknos@gmail.com>
Date: Fri Feb 24 11:21:59 2023 +0100
avoid string copies with ostringstream
commit de222d669487c288d55a0c8ff5cd917f173cda6d
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Feb 23 08:13:09 2023 +0100
Allow an Error to be replaced in MscError
commit 4a2beac6df41cabf6d486d80e0447d398d020fbc
Author: Zoltán Turányi <teknos@gmail.com>
Date: Tue Feb 21 08:06:09 2023 +0100
[graph] Default extension is *.gv
See https://marc.info/?l=graphviz-devel&m=129418103126092
commit 8e8dbaa7fde01310813f22f72e6e9fa6ae70d6fc
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Feb 6 15:13:50 2023 +0100
Nit: added to_double
commit bac717ce1ca7db69c6e66f0762c656fb20830a86
Author: Zoltán Turányi <teknos@gmail.com>
Date: Mon Feb 6 15:13:26 2023 +0100
Rationalize Procedure::MatchParameters()
commit eed28f33b1a4a349bc3a09df218fcb4c3dbe7279
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Feb 2 23:59:20 2023 +0100
Better FileLineColRange
commit cda0190269173e1f68aec7e8da59f08040589da8
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Feb 2 23:58:26 2023 +0100
Allow string_view lookup here and there
commit 785cc0ec2435a153b17ed02cd713bc37452914d5
Author: Zoltán Turányi <teknos@gmail.com>
Date: Thu Feb 2 23:57:53 2023 +0100
Spelling and whitespace
commit 0911609ae72936628d8384bc24c393205dc01ca3
Author: Zoltán Turányi <teknos@gmail.com>
Date: Sat Feb 4 17:39:03 2023 +0100
Change style name list to vector
commit f7bc857593bf8f81db5a2e07cbb53abd93071aaa
Author: Zoltan Turanyi <teknos@gmail.com>
Date: Fri Mar 3 12:39:46 2023 +0100
Update version.h