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