mirror of
https://gitlab.uni-marburg.de/langbeid/powersort.git
synced 2025-01-21 19:50:35 +01:00
docs: README
This commit is contained in:
parent
21940b29df
commit
df26347fbb
40
README.md
40
README.md
@ -1,10 +1,10 @@
|
||||
# Bring Powersort to Java
|
||||
|
||||
## Gradle
|
||||
Implementation of Powersort with the aim of integrating it into OpenJDK. Benchmarks are used to ensure that the runtime of the new sorting algorithm is never slower than the current Timsort implementation.
|
||||
|
||||
### Setup
|
||||
## Setup
|
||||
|
||||
The development dependencies (JDK23, Gradle, IntelliJ) can e.g. be installed with `nix` by running `nix-shell`.
|
||||
We use Gradle for dependency and build management.
|
||||
|
||||
**Commandline**
|
||||
|
||||
@ -26,18 +26,34 @@ This should include version >= 23, e.g.:
|
||||
| Detected by: Current JVM
|
||||
```
|
||||
|
||||
### Development Setup with nix
|
||||
|
||||
The provided [shell.nix](shell.nix) file can be used to set up a development environment with IntelliJ. The only prerequisite is to have a working `nix` installation for which there are multiple possibilities, e.g:
|
||||
|
||||
```shell
|
||||
# https://github.com/DeterminateSystems/nix-installer?tab=readme-ov-file#determinate-nix-installer
|
||||
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \
|
||||
sh -s -- install
|
||||
```
|
||||
|
||||
Then the dependencies (JDK23, Gradle, IntelliJ) can be installed with:
|
||||
|
||||
```shell
|
||||
nix-shell
|
||||
```
|
||||
|
||||
**IntelliJ**
|
||||
|
||||
When using `nix-shell`, some manual configuration is necessary:
|
||||
|
||||
- STRG ALT SHIFT s -> SDK -> add JDK ->
|
||||
- home path: /usr/lib/openjdk
|
||||
- name: usr-lib-jdk
|
||||
- STRG ALT s -> build tools -> gradle ->
|
||||
- local installation: /usr/lib/gradle
|
||||
- Gradle JVM: usr-lib-jdk
|
||||
- `STRG` `ALT` `SHIFT` `s` -> SDK -> add JDK ->
|
||||
- home path: `/usr/lib/openjdk`
|
||||
- name: `usr-lib-jdk`
|
||||
- `STRG` `ALT` `s` -> build tools -> gradle ->
|
||||
- local installation: `/usr/lib/gradle`
|
||||
- Gradle JVM: `usr-lib-jdk`
|
||||
|
||||
### Tasks
|
||||
## Tasks
|
||||
|
||||
List all Gradle tasks which can be run:
|
||||
|
||||
@ -49,7 +65,7 @@ This can also be done graphically in IntelliJ:
|
||||
|
||||
![intellij-gradle.png](intellij-gradle.png)
|
||||
|
||||
### Test Cases
|
||||
## Test Cases
|
||||
|
||||
Run the task "test":
|
||||
|
||||
@ -57,7 +73,7 @@ Run the task "test":
|
||||
./gradlew test
|
||||
```
|
||||
|
||||
### Benchmark
|
||||
## Benchmark
|
||||
|
||||
There are two different benchmarks. One is based on the JMH benchmark framework, the other one is a custom benchmark implementation.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user