enso/.gitignore
Hubert Plociniczak 096fcfee82
Generate native image for engine-runner (#3638)
This PR adds a possibility to generate native-image for engine-runner.
Note that due to on-demand loading of stdlib, programs that make use of it are currently not yet supported
(that will be resolved at a later point).
The purpose of this PR is only to make sure that we can generate a bare minimum runner because due to lack TruffleBoundaries or misconfiguration in reflection config, this can get broken very easily.
To generate a native image simply execute:
```
sbt> engine-runner-native/buildNativeImage
... (wait a few minutes)
```
The executable is called `runner` and can be tested via a simple test that is in the resources. To illustrate the benefits
see the timings difference between the non-native and native one:
```
>time built-distribution/enso-engine-0.0.0-dev-linux-amd64/enso-0.0.0-dev/bin/enso --no-ir-caches --in-project test/Tests/ --run engine/runner-native/src/test/resources/Factorial.enso 6
720

real	0m4.503s
user	0m9.248s
sys	0m1.494s
> time ./runner --run engine/runner-native/src/test/resources/Factorial.enso 6
720

real	0m0.176s
user	0m0.042s
sys	0m0.038s
```

# Important Notes
Notice that due to a [bug in GraalVM](https://github.com/oracle/graal/issues/4200), which is already fixed in 22.x, and us still being on 21.x for the time being, I had to add a workaround to our sbt build to build a different fat jar for native image. To workaround it I had to exclude sqlite jar. Hence native image task is on `engine-runner-native` and not on `engine-runner`.

Will need to add the above command to CI.
2022-09-22 14:45:10 +00:00

152 lines
2.0 KiB
Plaintext

#############
## GraalVM ##
#############
graal_dumps
#########
## JVM ##
#########
graal_dumps/
target/
*.class
*.log
.java-version
##########
## Rust ##
##########
**/*.rs.bk
wasm-pack.log
generated/
/target
/build/rust/target/
#############
## Haskell ##
#############
dist
cabal-dev
.stack-work/
############
## NodeJS ##
############
node_modules/
package-lock.json
############
## System ##
############
.DS_Store
############
## Images ##
############
*.jpg
*.jpeg
*.bmp
*.psd
######################
## Tooling Specific ##
######################
.idea/
.vscode/
*.swp
.projections.json
.nvmrc
*.iml
############################
## Rendered Documentation ##
############################
javadoc/
scaladoc/
distribution/docs
distribution/docs-js
#######################
## Benchmark Reports ##
#######################
bench-report*.xml
##############
## Binaries ##
##############
/enso
/project-manager
*.exe
/enso.exp
/enso.lib
*.pdb
*.jar
/built-distribution/
#########
## IDE ##
#########
.editorconfig
.bloop/
.bsp/
project/metals.sbt
/app/ide-desktop/build.json
/app/ide-desktop/lib/client/electron-builder-config.json
#################
## Build Cache ##
#################
build-cache/
##################
## Native Image ##
##################
*.build_artifacts.txt
/runner
######################
## Enso-Development ##
######################
distribution/lib/Standard/Examples/*/data/scratch_file
distribution/lib/Standard/Examples/*/data/image.png
distribution/editions
distribution/lib/Standard/Table/*/polyglot/
distribution/lib/Standard/Database/*/polyglot/
distribution/lib/Standard/Examples/*/data/spreadsheet.xls
distribution/lib/Standard/Examples/*/data/spreadsheet.xlsx
distribution/lib/*/*/*/manifest.yaml
# Resources that are downloaded during the build.
/lib/scala/pkg/src/main/resources/*
test/Google_Api_Test/data/secret.json
test/Database_Tests/data/redshift_credentials.json
# Ignore test output folder
test-results
#################
## Enso-Caches ##
#################
*.ir
*.meta
.enso/