Dep Software Build Automation Tool
Release Notes
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.