Redub v1.25.7: From auto compiler installing to watching directories
Hipreme
msnmancini at hotmail.com
Tue Oct 21 17:53:27 UTC 2025
# Changelog for redub v1.25.7
Lots of work has been done to redub: from watching folders and
compiling them to installing your selected compiler and setting
it to use as default, even in clean builds of Windows due to not
having libcurl dependencies anymore!
Redub can also make universal builds for OSX and even be used for
your CI on github, hope you guys enjoy those updates since it has
got a lot of exciting functionalities all integrated in that
single tool.
## Redub Exclusive Functionality
- Windows is now using winhttp for downloading thus not requiring
libcurl
- Improved Redub hashmap performance
- Added `redub use`: Lets you use which compiler you specify,
examples; `redub use ldc 1.41.0`, `redub use dmd 2.111.0`, `redub
use opend dmd`
- Added `redub install`: Installs for you the specified compiler,
same syntax as `redub use`
- Added `redub watch`: Lets you watch a folder which it will
rebuild every time a change is detected.
- Added `build-universal`: A command to build osx-universal
binaries and improved args parsing API for reusage
- Added `MrcSnm/setup-dlang at v2` action for github, so you can use
redub on your CI
- Redub now can **dub.selections.json** for faster fetching,
achieved via `redub build --prefetch`
## Updated
- Improved support to dub recipes and other major projects are
now also supported:
[dagon](https://code.dlang.org/packages/dagon),
[dmd](https://code.dlang.org/packages/dmd)
- `redub run package:subPackage at version` now works as the same
as dub
- `redub init` and `redub init -t yourprojectname` support now
works the same as dub
- Redub now generates dub.selections.json
- Optimized source checking speed
- Improved performance of exclusiveMerge and adv diff include
check
- Improved error messages
- Performance on the environment parsing (no useless lock)
- Improved warning for when running redub
- Do not parse for the environment if no preGenerateRun is needed
- Added `"frameworks"` to the recipe - Do not build dependencies
with no sources - Added --dest alias to --targetPath - Fixed typo
on build failure
- Fixed naming format and added windows arm64
- Improved a little getNextString (hipjson)
- Greatly reduced structure sizes
- Multi language projects is now possible
- Now it is possible to build D and C together
- Many performance improvements
- Support for runtime working directories
- Added build type error message when using an unknown build
type and new build type for size
## PRs merged
- Merge pull request
[#53](https://github.com/MrcSnm/redub/pull/53) from
KitsunebiGames/link-merge-ex
- Merge pull request
[#52](https://github.com/MrcSnm/redub/pull/52) from
KitsunebiGames/main
- Merge pull request
[#54](https://github.com/MrcSnm/redub/pull/54) from
KitsunebiGames/remove-implicit-update
- Merge pull request
[#37](https://github.com/MrcSnm/redub/pull/37) from
kassane/artifacts-ci
## Fixed
- Memory corruption bug in macOS
- Parse reruns were happening in path cases since they didn't
had a version and null versions were not registered (register
them with *
- Redub wasn't handling dub add-path Redub now also exists the
program right after printing --version or --help
- Redub now only reads the command ifit is the first argument
- Bug on linux terminal
- Bug where invalid arguments were silently returned
- Printing pregen build commands for every project
- Setting importPaths won't break cache anymore since
importPaths now directly depends on sourcePaths and it is being
handled in a single place
- isApple was being negated. Linker flags were being sent with
quotes which made it don't work
- build redub using redub cause infinite loop #50
- Wait for redub spawned threads instead of thread_joinAll as it
was hanging hbuild
- Bug on static array usage on hipjson
- toolchainsRequirement from SDL and made a version to use D AA
on AArch64 since there is a bug on the GC
- Parser bug when running actual preGenerateCommands
- Now it will save the successful build steps on CTRL+C
- Correctly handling CTRL+C so no cache is actually saved
- Bug when having an excludedSourceFile throughout dependency
tree
- Do not build plugin as shared D runtime as we can't guarantee
the druntime is shared
- Use WinAPI for registering as realtime process and handle
exceptions on process kill
- Now fully parallelized build will wait to finish all the
succesful builds before issuing an error so the cache can be
restored correctly
- Remove optionals before they can affect the build
- Added emscripten platform filter
- Cycle detection improvement, using buildexception where it
makes sense and print the actual cycle
- Issue #48 - Now correctly parsing subpackages even when they
are re-specified but no sub package was found earlier
- Issue #47 - File marked as dirty even though they are in
excludedSourceFiles
- Crashing when trying to access a property of a string in subpkg
- Now using 2-steps parsing for environment
- Now only parse environment data after every package was parsed
- #46, environment variables, and now it supports '{}' syntax
- Bug where sometimes the subpackage would be searched in the
wrong place after running one time and verbose output improval
- Issue #45, improve printing by showing which file was
generated, where and its size
- Archiver now putting object files correctly
- Do not generate dub.selections.json for plugins
- Problem where empty redub meta would cause bug and compiler
identification was wrong
- Identify for ld64 linker for not emitting start group, now
also clears compilation info cache even after resulting in
failure.
- Lua style comments on SDL
- Missing ISA on linker file. Now unknown OS is also correctly
found
|Changelog Metadata|
|------------------:|
|Generated with
[changelog-d](https://code.dlang.org/packages/changelog-d) v1.1.0|
|Contribute at https://github.com/MrcSnm/changelog-d|
More information about the Digitalmars-d-announce
mailing list