Commit graph

70 commits

Author SHA1 Message Date
Martin Kinkelin
ba0f030ea4 Restore posix.mak, forwarding to generic Makefile 2023-12-17 04:51:56 +01:00
Martin Kinkelin
fae32c873b Merge Makefiles 2023-12-17 04:50:15 +01:00
Iain Buclaw
11fad3cf9e Remove references to the archived druntime repository 2022-10-10 01:22:15 +02:00
Vladimir Panteleev
39c73d82c2 Update DustMite
This updates the distributed version to the latest version including
the improvements from
https://dlang.org/blog/2020/04/13/dustmite-the-general-purpose-data-reduction-tool/

* d785720 Add "indent" split mode
* e77126f splitter: Speed up optimization
* e0138ca dustmite: Preserve no-remove flags when applying "Concat" reductions
* d501228 Don't move code marked as no-remove
* 4d361cb dustmite: Use templates instead of delegates for dump
* 772a8fb dustmite: Use lockingBinaryWriter
* 621991b dustmite: Bulk adjacent writes
* dbd493a splitter: Don't compile in a debug-only field
* d19b15e Add coverage analysis and upload to Coveralls
* 630cf9c Track each entity's parent entity
* f56f6a4 splitter: Make Entity members used only by splitter private
* be2c452 splitter: Fix Dscanner warning
* 70d5503 splitter: Delete unused label
* 0e788b5 Revert "Track each entity's parent entity"
* 1f1f732 splitter: Don't dereference enum AAs at runtime
* 3fea926 dustmite: Mark final classes as such
* 02f8b2e splitter: Mark Entity class final
* 2ca0522 Overhaul tree representation and edit algorithms
* d9da7cf dustmite: Fail no-op concat reductions
* d439fed dustmite: Remove the concatPerformed bodge
* 0ec8fc5 dustmite: Log inapplicable reductions
* 2e19085 dustmite: Fix a TODO
* ad4124f dustmite: Start a new iteration after a successful Concat reduction
* 6d0cd9f dustmite: Remove `reduction == initialReduction` lookahead hack
* f197986 dustmite: Get rid of the "root" global
* 690ab07 dustmite: Update the lookahead iterator's root according to predictions
* 0dc5e04 dustmite: Remove special handling for the first lookahead step
* 8b5f639 dustmite: Handle inapplicable reductions in lookahead
* fd45d61 dustmite: Fix placement of --version in help text
* bf407bc dustmite: Make descendant recounting incremental
* 6878138 dustmite: Clean up test directories before writing to them
* a269d25 dustmite: Distinguish zero and uninitialized digests in lookahead queue
* 9eb4126 dustmite: Move lookahead saving and process creation into worker thread
* 5034c01 polyhash: Initial commit
* 3d28c6e polyhash: Add some comments
* 751ea2b polyhash: Optimize calculating powers of p
* f675253 polyhash: Use decreasing powers of p, instead of increasing
* b1b76cd polyhash: Convert to an output range interface
* 62d145b License under Boost Software License 1.0
* 19f0200 polyhash: Add mod-q (with non-power-of-two q) support
* 5b80b03 Unify incremental and full updates of computed Entity fields
* f85acdf Switch to incremental polynomial hashing
* 401d408 Work around DMD bug 20677
* 575406e Speed up applyReduction.edit
* 23a67fb Re-optimize incrementally for the Concat reduction
* 80b7ba4 dustmite: Speed up removing dependencies under removed nodes
* ec81973 Speed up address comparison
* 26f2039 dustmite: Tweak tree initialization order
* d5523e1 splitter: Clear hash for killed entities
* 048a0fd Keep children of removed nodes in the tree
* 48ed0a5 dustmite: Make findEntity traverse dead nodes
* 196f5f7 dustmite: Improve dump formatting of redirects and dead entities
* 404c8f9 dustmite: With both --trace and --dump, save dumps during trace
* 72cd08c dustmite: Don't attempt to concatenate dead files
* 53d3bf6 dustmite: Recalculate dead entities recursively too
* c3d1215 dustmite: Traverse dead entities when editing them, too
* 226a651 dustmite: Do not copy dead entities for editing
* b8f2844 Maintain cached cumulative dependents per-node
* 9f5a4f1 dustmite: Create less garbage during I/O
* df752dc Maintain cached full content of each node
* 4b165e6 Revert "Maintain cached full content of each node"
* 965fbc3 dustmite: Speed up strategy iteration over dead nodes
* 15d0a8f dustmite: Remove use of lazy arguments in address iteration
* b5c1ec0 splitter: Fix lexing D raw string literals (r"...")
* 2630496 dustmite: Fix "reduced to empty set" message
* 9505bf6 dustmite: Fix recursion for dead nodes in recalculate
* 6764e8d dustmite: Add --in-place
* 3a76633 dustmite: Remove Reduction.target
* c04c843 dustmite: Replace Reduction.address with an Address*
* d2cfa23 dustmite: Allow the test function to take an array of reductions
* 5e510c8 dustmite: Introduce Reduction.Type.Swap
* d4303ca dustmite: Add fuzzing mode
* 5fffd18 dustmite: Split up the DustMiteNoRemove string literals
* 714ea99 dustmite: Allow --reduce-only and --no-remove rules to stack
* ca18a07 dustmite: Add --remove switch
* de92616 dustmite: Reorder --help text
* 157b305 dustmite: Remove trailing punctuation from --help text
* 6746464 Add --white-out option
* 6705a94 dustmite: Update tagline
* e76496f splitter: Make EntityRef.address const
* 4cfed4c dustmite: Add debug=DETERMINISTIC_LOOKAHEAD
* 214d000 dustmite: Add reduction application cache
* e859e86 dustmite: Grow reduction application cache dynamically
* fd3ad29 dustmite: Speed up dependency recalculation
* a10ef7f dustmite: Fix crash with --whiteout + --trace
* 256a651 dustmite: Speed up dumping
* df42f62 dustmite: Add --max-steps
* 886c6f2 dustmite: Make measure's delegate scoped
* 732d0f1 dustmite: Add more performance timers
* 05acf86 dustmite: Implement non-linear lookahead prediction
* 0a7a937 dustmite: Improve prediction formula
* 990b3bc splitter: Improve parsing of successive keyword-prefixed blocks
* cb0855d dustmite: Make detection of suspicious files non-fatal
2020-11-23 09:47:39 +01:00
ZombineDev
afffab56c9 Build everything with -preview=dip1000
It already works.
2019-11-01 14:24:09 +02:00
The Dlang Bot
8d58d4a179
Merge pull request #361 from CyberShadow/pull-20181229-151907
Build DustMite with -version=Dlang_Tools
merged-on-behalf-of: Sebastian Wilzbach <sebi.wilzbach@gmail.com>
2018-12-29 17:06:52 +01:00
Vladimir Panteleev
b493d97962
Build DustMite with -version=Dlang_Tools
To identify the source in dustmite --version.

Complement of
ad0877db8a
for https://github.com/CyberShadow/DustMite/issues/55.
2018-12-29 15:19:11 +00:00
Sebastian Wilzbach
1665332a84 Build tools with -dip25 2018-12-29 14:28:13 +01:00
Iain Buclaw
7f17609389 Add updatecopyright script. 2018-12-17 13:31:21 +01:00
Sebastian Wilzbach
b2cb7b86d6 Add -betterC unittest output 2018-08-13 21:26:36 +02:00
Sebastian Wilzbach
ca5384dd1b Support parsing only specific unittests (e.g. @betterc-test) 2018-07-31 16:17:06 +02:00
Sebastian Wilzbach
61cf8b8059 posix.mak: use -f to fix nightlies 2018-03-27 23:16:20 +02:00
Jonathan Marler
2995c873ae Since --rdmd is required, made it a "non-option" argument instead of an "option that is [REQUIRED]"
Non-option arguments are more conventional than "required options".
2018-03-19 07:03:48 -06:00
Jonathan Marler
6747242c1a support relative compiler filenames in rdmd_test 2018-03-18 20:36:09 -06:00
Joseph Rushton Wakeling
14474ebaff posix.mak: ensure clean target removes all generated files and dirs
The `clean` target has been updated to remove the entire directory of
files generated by the build, together with all its contents.  This
matches what is done in the dmd, druntime, and phobos makefiles, and
should be much more maintainable, since it no longer relies on correct
specification of all the individual files that need removing.

As a byproduct, this fixes an oversight in the old `clean` target which
meant that `rdmd_test` and `tests_extractor` were not being removed.

The `ROOT_OF_THEM_ALL` variable has been renamed to `GENERATED` to avoid
any nasty consequences for downstream users who might be overriding the
former in their build scripts.
2018-03-18 18:28:59 +01:00
Joseph Rushton Wakeling
4b6ae49f09 rdmd_test: rewrite to use externally-specifed rdmd executable
One key problem of the old `rdmd_test` was that it built its own rdmd
instance to test.  This meant that technically, it was never actually
run against the rdmd executable generated in the regular tools build.

This rewrite fixes this by repurposing the `--rdmd` flag of `rdmd_test`
to require not a path to `rdmd.d` but a path to the rdmd executable for
which the test suite should be run.  The provided executable is not used
directly, but is copied into a temporary directory: this is necessary in
order to run the fallback test, which involves copying a dummy compiler
into the same directory as the tested rdmd executable.

The `--compiler` flag has been removed (since `rdmd_test` no longer uses
it to build rdmd), but a new `--rdmd-default-compiler` flag is required
in order to specify the name of the default compiler for by the tested
rdmd.  This is needed in order to carry out the fallback compiler test,
which will fail if the provided name does not match that of the default
compiler used by the rdmd executable.

The `test_rdmd` target in `posix.mak` has been reworked to use the new
`--rdmd` and `--rdmd-default-compiler` flags.  By default these will be
invoked with the generated `rdmd` instance and the name of the compiler
used to build it, but these choices can be customized respectively with
the new `RDMD_TEST_EXECUTABLE` and `RDMD_TEST_DEFAULT_COMPILER` make
variables.

This should ensure that the rdmd instance generated by the regular build
is properly tested, while allowing `rdmd_test` to be used with arbitrary
`rdmd` instances if any developer should wish to do so.

Top-level module documentation has been tweaked to reflect the new flags
and intended usage, and help information has been added to the `getopt`
call, which will be output if the `-h|--help` flag is used, or if the
user fails to supply the required `--rdmd` or `--rdmd-default-compiler`
flags.
2018-03-13 22:56:42 +01:00
Joseph Rushton Wakeling
316e38d226 posix.mak: declare all variables used by test_rdmd next to the target
This is just a small piece of cleanup to group together all the various
make variables used with the `test_rdmd` target immediately prior to the
target itself, so they are easier to find and their purpose is easier to
understand.

It should help clarify that these variables are used only with tests and
do not impact application builds.
2018-03-13 22:06:01 +01:00
Diederik de Groot
e2a9f695bb
Use instead of 'release' posix.mak 2018-02-12 22:34:15 +01:00
Joseph Rushton Wakeling
a42070326f Provide a posix.mak variable to request verbose output from rdmd_test
This patch adds a new user-controllable `VERBOSE_RDMD_TEST` option to
`posix.mak`, which if set to 1 causes the `test_rdmd` target to pass the
`-v` flag to `rdmd_test`:

    make -f posix.mak test_rdmd VERBOSE_RDMD_TEST=1

This should provide an easy way for users to request verbose output from
multi-compiler tests of `rdmd`.  This can be helpful when tracking down
exactly what `rdmd` invocation failed during testing.
2018-02-04 19:57:40 +01:00
Joseph Rushton Wakeling
58fed57cd4 Allow setting rdmd_test test compilers when invoking posix.mak makefile
The `posix.mak` makefile has been updated to allow the user to set a new
`RDMD_TEST_COMPILERS` variable (which by default is set to the absolute
path of the compiler used to build all the D tools, including rdmd).

This can be used locally along the lines of:

    make -f posix.mak test RDMD_TEST_COMPILERS=dmd,gdmd,ldmd2

but the main point of this patch is to allow CI to start using this new
multi-compiler test functionality.  This will be added separately in a
follow-up patch.

No modifications have been made to windows makefiles, since this is not
required by Travis CI.
2018-02-04 19:57:40 +01:00
Martin Nowak
d56b5cc38e allow to configure DFLAGS and WARNINGS
- e.g. to test dlang/tools without erroring on deprecations (ci.dlang.org)
- use `override DFLAGS +=` for non-configurable target specific flags
2018-01-27 10:22:19 +01:00
Sebastian Wilzbach
404256f7f7
Merge pull request #253 from wilzbach/contributors
Add script to query for contributors between two releases
2017-12-08 12:31:28 +01:00
Martin Nowak
2be122dd2d leave it to user to build d-tags.json
- fixes remaking dlang.org when tool's Makefile is used by build scripts
- allows to build dman for prereleases, latest, or releases
2017-12-07 06:09:22 +01:00
Sebastian Wilzbach
e3dbef2b8a Add script to query for contributors between two releases 2017-12-05 00:01:53 +01:00
Sebastian Wilzbach
b02a2c6b3d Use DFLAGS for DUB builds + -fPIC by default 2017-10-12 15:29:01 +02:00
Vladimir Panteleev
72ab90cead
dman: Use d-tags.json instead of d.tag
Fixes issue 17731.
2017-08-08 15:43:28 +00:00
Sebastian Wilzbach
747d6e032b Add checkwhitespace to tools 2017-07-08 21:20:52 +02:00
Sebastian Wilzbach
e4df7b5536 Sort tools list alphabetically 2017-07-08 21:20:52 +02:00
Sebastian Wilzbach
6dee85894a Add modelSwitch to rdmd_test 2017-07-05 00:24:37 +02:00
Sebastian Wilzbach
a9750dbcb0 Use DUBFLAGS to pass architecture to DUB 2017-07-04 23:35:31 +02:00
Sebastian Wilzbach
3a6501a061 Run rdmd testsuite properly 2017-07-04 22:32:28 +02:00
Sebastian Wilzbach
c6ab2bb7aa Document osmodel.mak loading from ../dmd 2017-07-03 23:57:53 +02:00
Andrei Alexandrescu
332c989d0a Merge pull request #227 from wilzbach/os-model-mention-tools-and-dlang-org
osmodel.mak: use file directly from DMD
2017-07-03 14:50:40 -04:00
Sebastian Wilzbach
6cc392c4e2 osmodel.mak: use file directly from DMD 2017-07-03 20:37:02 +02:00
Sebastian Wilzbach
90ecf25243 Build all + dman on Travis 2017-07-03 19:30:20 +02:00
Sebastian Wilzbach
86bbd6923c HALT on deprecation messages 2017-07-03 02:02:53 +02:00
Sebastian Wilzbach
7f2f3e7ae3 Add testsuite for tests_extractor 2017-06-28 04:42:16 +02:00
RazvanN7
7364e9a42f Updated makefile to use dmd/generated/os/release/model/dmd 2017-03-03 09:39:00 +02:00
Sohgo Takeuchi
6c59876476 Use osmodel.mak in posix.mak to detect OS and MODEL 2015-11-04 12:06:24 +09:00
Vladimir Panteleev
0980a4c85e posix.mak: Add DELETE_ON_ERROR
Delete output files if the command fails.
2015-05-30 15:36:37 +00:00
John Colvin
1e905b2f13 add dustmite to install 2015-03-27 09:44:13 +00:00
Martin Nowak
341ef6c6ea fix make path for dlang.org d.tag 2015-02-17 14:25:07 +01:00
Vladimir Panteleev
398ca4572d Hand off d.tag generation to dlang.org makefiles 2015-02-12 17:00:36 +00:00
Vladimir Panteleev
546b985642 Remove findtags in favor of using chmgen-emitted tags 2015-01-28 12:34:10 +00:00
Vladimir Panteleev
3df025e5e8 Update Dustmite
Commits:
* f60abab splitter: Improve parens postprocessor
* 359c8a1 splitter: Add parens postprocessor
* 19e2774 splitter: Fix handling of trailing comments/whitespace
* ee5f31c splitter: Improve "else" handling
* 23b5186 dustmite: Change default strategy to inbreadth
* a8d9681 Add inbreadth strategy
* 306c9d4 Add pingpong strategy
* 3f4bf00 dustmite: Autoretry cache writes
* b7354d7 dustmite: Add --strategy switch
* 99a8169 splitter: Tweak block statement postprocessor
* 919b3ac splitter: Tweak block keyword postprocessor
* 95a3e69 splitter: Tweak pairing postprocessor
* 50e4ac5 splitter: Recognize function invariants
* 1aa5dff splitter: Reimplement pairs like any other separators
* 26b4aa6 runtests fixup
* 400e3d7 dustmite: Add --dump-html
* c66780e Add enum test
* 3cdc67f runtests: Add support for dump-only tests
* 80acb1b Fix maximum depth of dependency postprocessor output to be logarithmic
* 5f77e4a Add list test
* 5221a07 splitter: Pairing postprocessor fixes
* d2276f6 splitter: Group if/else together
* afc911a .gitignore
* 7d58f28 tests: Add UDAs to obfuscation tests
* 5d19124 runtests: Print which tests failed to finish
* f89898f New splitter module
* 3a90ebf dustmite: Improve --dump dependency formatting
* 711aa2b runtests: Run dustmite via rdmd
* 0f869bd Use unseeded RNG for --obfuscate --keep-length
* bc2e233 tests: Version progress (filtered reduction output)
* fd63894 Use src.result for final, versioned result
* d83dafb Add current test results
* 0550cc5 runtests: Pass opts when dumping as well
* d471242 .gitignore
* 5e52252 runtests: Fix opts loading
* bee1600 Fix coverage test
* 13d0300 Add test runner
* 0a180b6 Test command fixes
* 96570ef Add existing tests (most results are outdated)
* 75b0108 Add .gitignore
* e27ef66 dsplit: Don't consume whitespace after closing a pair
* 10d2fc5 dsplit: Split by .
* 0311f50 dsplit: Improve ! splitting
* 613459f dsplit: Split by !
* fb52bf3 dsplit: Unwrap useless nesting
* d16ea86 dsplit: Improve whitespace splitting
2014-04-14 08:55:37 +00:00
Martin Nowak
c5522e6adb simplify appending -lcurl 2014-03-02 01:26:54 +01:00
Martin Nowak
f0a2826b9c fix grepping for the linker invocation
- grep for the object file, -Xlinker isn't always present
2014-03-02 01:23:28 +01:00
Martin Nowak
9ec76d94a3 append default include/link paths to DMD
- So that using a different DMD will use the correct
  include/link paths defined by the corresponding dmd.conf.
2014-03-01 23:46:49 +01:00
Martin Nowak
fecc428014 remove no-warn-search-mismatch flag
- The flag isn't needed here. It's also not supported on FreeBSD and OSX.
2014-03-01 23:36:35 +01:00
Joseph Rushton Wakeling
0db18906c8 Fix Issue 12205: update posix.mak to use local, recently-built druntime and phobos.
This fixes https://d.puremagic.com/issues/show_bug.cgi?id=12205
by adding library/include paths to the locations where druntime
and phobos have been built, plus a flag to prevent/suppress
alignment errors in one of the builds.

In the event that the user wishes to build using the system dmd
instead of the locally-built ../dmd/src/dmd, this is trivial to
achieve by overriding with DMD=dmd.  DFLAGS will also then be
overridden with those from the system dmd.conf.
2014-02-21 22:23:05 +01:00