Bence Sipka
Bence Sipka
There may be cases when a tail recursive call has multiple execution paths after the call itself. The optimization should be performed in cases where it is possible. One example...
The deadlock detection mechanism of saker.build depends on the `ThreadGroup` API. The code itself is not really robust as lingering threads may cause the deadlock not to be noticed. Additionally,...
[Project Loom](https://openjdk.java.net/projects/loom/) introduces virtual threads for the JVM. It doesn't support unscheduling virtual threads that are in a `synchronized` block. As virtual threads will be a very important feature for...
Add syntax for switch expressions in build script. One commonly occurring scenario is to assign some variable or perform some action based on the value of another variable. Currently this...
Saker.build primarily uses case-sensitive representation of files and their hierarchies. This may cause some synchronization or other file management issues when dealing with case-insensitive file systems. In general, we expect...
**Feature description** The build tasks in the script could be declared based on the enclosing task context. It should reduce the boilerplate that surrounds a task invocation. E.g.: ``` some.task(...
This issue servers as a place of discussion for build cache related implementation. As of the current state (2020.01.12.), there is a basic implementation of the build cache that passes...
CI builds are often performed from a clean state, and rarely use incremental builds. This means that there is no reason for the build system to store and persist the...
Given the following scenario: 1. The build task T is being invoked. 1. The task starts a new thread W. 1. The thread W starts to wait for other task...
If an input parameter is specified for a build task, and that task doesn't recognize that parameter, a warning should be issued during build. This should be done by enhancing...