Dep Software Build Automation Tool
Release Notes
Dep 0.6
Dep 0.6 was released on 19 October 2025. Changes are:
-
Added reparse/rescan to pattern expansion and fixed includes/pattern interation
-
Stopped running queued jobs after a failure
-
Improved -v verbosity settings and added more
-
Sped up by removing slow and unnecessary calculateIncludeModTime loop
-
Removed buggy and unnecessary FOLDERLIST_ALL logic
-
Removed unused parameters and variables
-
Changed --noskip to --link
-
Fixed --mkdir --link interaction edge case
-
File format changes:
- Broke fileinfo cache lines over a block of several optional lines
- Added rebuiltsametime cache lines
- Build rules starting with %pseudo or similar no longer require braces
- If a build rule has braces, the opening brace must be on the
first line of the rule (this is to prevent a grammar ambiguity)
- Changed if statement from if-{-} style to if-then-end style
-
Added rebuiltSameTime logic to track non-changing file writes over multiple invocations
-
Ignored filesize of directories
-
Changed default settings from fast+confusing to slow+reliable
-
Changed --noskip to its opposite fast
-
Ignored failing mkdir commands
-
Opened files properly before looking in them for includes
-
Removed wonky advice in diagnostics
-
added --readcache option
-
added --nomkdir option
-
added LINE special variable
-
Changed "imm echo" to "print"
-
TLDR: Fixed design flaws, fixed usability flaws, debugged, added new stuff, fixed performance flaws
Dep 0.51
Dep 0.51 was released on 20 December 2024. Changes are:
-
Fixed bugs in pattern rule construction affecting folders and precompiled headers
-
Stopped constructing so many temporary patterns
-
Updated Dep's own DepFile
-
Fixed --ruleincludes by not reading includes from cache (when not using --treeincludes)
-
Fixed --ruleincludes / pattern interaction bug by re-running the parser on expanded patterns
Dep 0.5
Dep 0.5 was released on 12 October 2024. Changes are:
-
Improvements to build ordering via whichComesFirst
-
Cached getFileState
-
Added timestampsize
-
Added implementsHeader
-
Cached getCompletionSeconds
-
Refactored shared memory
-
Runs recently-failed steps until 15% through the job, then switches to critical-path steps
-
When looking for the finished job, stopped looking through old jobs
-
Improved pattern matching of #include statements
-
Stopped looking for #include statements when the cached copy is OK
-
Debug senseModTime/senseSize/senseRule/FILEFLAG\_STAT\_CHANGED
-
Get the updated mod time before writing it back to cache
-
Fixed 'file exists' errors on mkdir commands
-
Gradually scaled up from number of processors (e.g. 8) number of register sets (e.g. 16)
-
Fixed bug that sometimes reset the number of pipelines
-
Fixed bug that sometimes let there be more pipelines than register sets
-
Fixed syntax lookup of commands starting with "-":w
-
Added new acceptance test in Gossammer Markup Language
-
Added exists\_file\_ext mechanism that marks all .so/.dll rules at %exists
-
Added mechanism that marks all mkdir rules at %exists
-
Added --noskip option that runs all %exists rules
-
Added mechanism that automatically finds all mkdir dependencies
-
Changed %exist to %exists
-
Added %alias for precompiled headers
-
Added --noreadcache, --nowritecache and --writecache
-
Debugged pipeline commands
-
Refactored verbosity options and output
-
Added --tracefile option
-
Stopped making duplicate stat() calls
-
Debugged marking of re-generated files
-
Debugged reading of #include files from .c files
-
Added % patterns
-
Shrank some struct sizes
-
Fixed memory leaks
-
Refactored parser buffer creation+deletion
-
Changed --simplesort to --fixedorder
-
Refactored nextCommand to remove startMore option
-
The set of --treeincludes include files now depends on the list of -I options
Dep 0.4
Dep 0.4 was released on 30 May 2023. Changes are:
-
Added filename and line number to duplicate rule warning messages
-
Fixed bug that caused non-duplicate rules to be listed as warnings
-
Separated environment variable spaces for parallel execution streams
-
Fixed bug that wrote duplicate rules to .DepFileCache
-
Fixed bug in determining locations of included source files
-
Fixed bug in normalizing file path names
Dep 0.3
Dep 0.3 was released on 9 March 2023. Changes are:
-
Changed findIncludes mechanism to look at filenames instead of options such as -c, to handle
instances such as gcc a.c b.o
-
Fixed bugs in quote mark parsing
-
Combined operations on rule and tree includes
Dep 0.2
Dep 0.2 was released on 16 February 2023. Changes are:
-
Added sensing and invalidation of some misbuilt files (generally 0 byte
files, but 8 bytes for .a files)
-
Added %outz for files that may validly be zero length
-
Fixed bugs in handling of rules with no inputs e.g. mkdir commands
-
Added existence dependencies
-
Changed -p option to -j
-
No need to put " > %out " in syntax lines any more, it is now always assumed
-
Fixed bugs in interpretation of nested for loops
-
Allowed braces on subsequent lines of for loops
-
Changed "if ... endif" to "if { }"
-
Fixed some errors in the generation of .DepFileCache and suppressed some others in readback
-
Improved line and column number reporting in DepFile syntax error messages
-
Added /etc/depsyntax file, which includes syntaxes of common commands
-
Fixed bug in export statements within rules: they are now run during execution, not during parsing
Dep 0.1
Dep 0.1 was released on 7 December 2022.
Copyright and Licence
Copyright (C) 2022 Matthew Rickard
Dep is free software licenced under the GNU General Public Licence version 3.