d09c8f5b6d
Updated to rustc 1.83.0-nightly (94885bc69 2024-09-01).
2024-09-02 12:32:14 +01:00
0058abb8c0
Dependency file parser now supports backslashes at the end of the line to continue the line, as well as multiple dependencies in the same file
2024-09-01 23:30:06 +01:00
aefeb9db4c
Replaced CommandArg with Expr.
...
We're always going to have expressions as arguments, even if we add more kinds of arguments in the future.
2024-08-31 19:42:28 +01:00
5270d1713e
Builder now owns the rules.
2024-08-31 19:31:14 +01:00
f2e25a6f3d
Added documentation to BuildReason.
2024-08-31 19:22:01 +01:00
35482620cc
Moved BuildReason to it's own module.
2024-08-31 18:51:09 +01:00
1d4f979768
Added BuildReason::check_recursively.
2024-08-31 18:48:25 +01:00
0122422282
Added Target::normalized.
2024-08-31 18:45:20 +01:00
2edba32395
Renamed all ::new functions that parse an ast to ::from_ast.
2024-08-28 18:04:55 +01:00
7cb9053e05
Expander can now expand to a generic type.
2024-08-28 17:20:03 +01:00
d288880aaa
Expander is now created by run.
2024-08-28 17:12:21 +01:00
2f66dbba54
Slightly optimized expression matching.
...
Currently we still do full-linear searching, but at least now it's no longer `O(rules)`, but `O(prefixes + suffixes)`, which is much smaller for our use cases.
Eventually we'd like to improve it.
2024-08-28 16:58:15 +01:00
7ff924ac68
Added some customization for the tokio runtime.
...
In particular, being able to specify `TOKIO_MAX_BLOCKING_THREADS` achieves over 100% performance increases in some workloads.
2024-08-28 09:07:21 +01:00
c863fc673a
Fixed Builder::build_results reporting wrong number of results.
2024-08-28 08:10:56 +01:00
f10391dc08
Each build is now performed in it's own tokio task.
...
This implements proper multithreading to the program.
2024-08-28 08:07:30 +01:00
6c1fa7c056
Fixed possible deadlock when locking build guards.
...
This deadlock technically couldn't happen since we're single-threaded, but that might change in the future, so we're fixing it now.
2024-08-28 07:57:10 +01:00
fcf3c77971
Replaced Builder::build_results with into_build_results.
...
It's technically slower because it's got to lock everything, but at this point there should be no other locks (which our old solution relied on), so locking should be pretty fast.
2024-08-28 07:48:27 +01:00
5390fb8019
Added example with many outputs.
2024-08-26 15:20:49 +01:00
6eded9a8a9
Removed unnecessary async-recursion crate.
...
Although we still recurse, we always do it from behind from behind a pointer (such as `FuturesUnordered`), so we don't have infinite sizes.
2024-08-26 14:31:27 +01:00
4b49407e22
Added optional tokio-console feature.
2024-08-25 17:52:46 +01:00
6a51d700ba
Removed all lifetimes from BuildReason.
2024-08-25 17:33:01 +01:00
00ad444194
Replaced CowStr with ArcStr.
...
This is a reference-counted string with efficient slicing, cloning and conversion to/from `String`.
2024-08-25 17:21:00 +01:00
296136f0fd
Improved conversion of expressions to strings.
2024-08-25 12:49:07 +01:00
b0195cbd92
Expression expansion is now done in a single pass.
2024-08-25 12:28:42 +01:00
90d0ca4a04
Removed all string lifetimes.
...
Due to async tasks having issues with lifetimes, we need to remove them to switch to a multi-threaded executor.
Currently we're just leaking the string, but eventually we'd convert all strings to reference-counted.
2024-08-25 11:28:50 +01:00
2d5061fdf1
Aliases and patterns are now Arced to prevent additional lifetimes than 's.
2024-08-24 15:31:51 +01:00
ec30749d12
Patterns are now always represented by a BTreeMap<_, _> to ensure they're always sorted.
2024-08-24 15:26:15 +01:00
440ee5647d
Removed old TODO.
2024-08-24 15:01:38 +01:00
d7e21dc842
Sorted dependencies.
2024-08-22 16:02:26 +01:00
7b12dcb09c
Switched to tokio single-threaded runtime, since we don't use multiple tasks.
2024-08-22 15:01:45 +01:00
cc8881ec43
Merged all expand visitors into a single type.
2024-08-22 14:24:21 +01:00
c7ad075acc
Replaced usages of HashMap with IndexMap.
...
This is to minimize randomness due to `HashMap`'s iteration order being unspecified.
2024-08-22 13:11:23 +01:00
d7069d0e61
Removed ability to use command output as argument.
...
It wasn't used and complicated the code.
Ideally in the future we'll have a better mechanism to capture a command's stdout into a "variable" to then pass as as argument.
2024-08-22 11:57:01 +01:00
28854261db
Fixed new lint.
2024-08-22 11:46:34 +01:00
a32df67999
Merge branch 'dev'
2024-08-16 03:45:57 +01:00
c58e5a1fe8
Updated PKGBUILD sha512sum.
2024-08-16 03:45:04 +01:00
947a4881fb
Merge branch 'dev'
0.1.8
2024-08-16 03:41:49 +01:00
293f634ed1
Updated to 0.1.8.
2024-08-16 03:41:31 +01:00
cf3bdd613b
Fixed deadlock with rules with multiple outputs.
...
The deadlocked happened on setups like the new example `multiple-outputs` when a rule needed all outputs of a rule as a dependency.
2024-08-16 03:37:32 +01:00
ffbe133d75
Root .gitignore now ignores all logs.
2024-08-15 19:59:59 +01:00
8e328c4704
Most targets are now logged using their Display output, instead of Debug.
2024-08-15 19:59:48 +01:00
746c4287da
Added logging of build times when rebuilding.
2024-08-15 19:20:38 +01:00
0b00357c45
Moved recursive check earlier.
...
Added logging of reason for building target.
2024-08-15 05:31:36 +01:00
f2d56881ca
Added error for when a rule recurses on itself.
2024-08-13 23:24:05 +01:00
297731bd21
Optional dependency files now work as expected.
2024-08-12 19:19:41 +01:00
05adac62c7
Merge branch 'dev'
2024-08-10 16:14:42 +01:00
f67d2f677d
Added PKGBUILD for packaging in arch-based systems.
2024-08-10 16:13:35 +01:00
57d9ae427f
Merge branch 'dev'
0.1.7
2024-08-10 15:30:33 +01:00
34e1d77a29
Updated to 0.1.7.
...
This doesn't change any functionality, but `0.1.6` was un-publishable due to `npath` using a git dependency, so this fixes that.
2024-08-10 15:30:20 +01:00
2eeea264ca
Removed removed lint.
2024-08-10 15:30:11 +01:00