Docs
This commit is contained in:
parent
303ca9e825
commit
93a0d2b101
3 changed files with 62 additions and 51 deletions
51
README.md
51
README.md
|
|
@ -635,56 +635,7 @@ break> x
|
|||
- [Clojure in the Shell](https://lambdaisland.com/blog/2019-12-05-advent-of-parens-5-clojure-in-the-shell) by Arne Brasseur
|
||||
- [Clojure Tool](https://purelyfunctional.tv/issues/purelyfunctional-tv-newsletter-351-clojure-tool-babashka/) by Eric Normand
|
||||
|
||||
## Developing Babashka
|
||||
|
||||
To work on Babashka itself make sure Git submodules are checked out.
|
||||
|
||||
``` shellsession
|
||||
$ git clone https://github.com/borkdude/babashka --recursive
|
||||
```
|
||||
|
||||
To update later on:
|
||||
|
||||
``` shellsession
|
||||
$ git submodule update --recursive
|
||||
```
|
||||
|
||||
You need [Leiningen](https://leiningen.org/), and for building binaries you need GraalVM.
|
||||
|
||||
### REPL
|
||||
|
||||
`lein repl` will get you a standard REPL/nREPL connection. To work on tests use `lein with-profiles +test repl`.
|
||||
|
||||
### Adding classes
|
||||
|
||||
Add necessary classes to `babashka/impl/classes.clj`. For every addition, write
|
||||
a unit test, so it's clear why it is added and removing it will break the
|
||||
tests. Try to reduce the size of the binary by only adding the necessary parts
|
||||
of a class in `:instance-check`, `:constructors`, `:methods`, `:fields` or
|
||||
`:custom`.
|
||||
|
||||
The `reflection.json` file that is needed for GraalVM compilation is generated
|
||||
with:
|
||||
|
||||
lein with-profiles +reflection run
|
||||
|
||||
### Test
|
||||
|
||||
Test on the JVM (for development):
|
||||
|
||||
script/test
|
||||
|
||||
Test the native version:
|
||||
|
||||
BABASHKA_TEST_ENV=native script/test
|
||||
|
||||
### Build
|
||||
|
||||
To build this project, set `$GRAALVM_HOME` to the GraalVM distribution directory.
|
||||
|
||||
Then run:
|
||||
|
||||
script/compile
|
||||
## [Developing Babashka](doc/dev.md)
|
||||
|
||||
## Related projects
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,3 @@
|
|||
{:cljdoc.doc/tree
|
||||
[["Readme" {:file "README.md"}]]}
|
||||
[["Readme" {:file "README.md"}]
|
||||
["Developing Babashka" {:file "doc/dev.md"}]]}
|
||||
|
|
|
|||
59
doc/dev.md
Normal file
59
doc/dev.md
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# Developing Babashka
|
||||
|
||||
To work on Babashka itself make sure Git submodules are checked out.
|
||||
|
||||
``` shellsession
|
||||
$ git clone https://github.com/borkdude/babashka --recursive
|
||||
```
|
||||
|
||||
To update later on:
|
||||
|
||||
``` shellsession
|
||||
$ git submodule update --recursive
|
||||
```
|
||||
|
||||
You need [Leiningen](https://leiningen.org/), and for building binaries you need GraalVM.
|
||||
|
||||
## REPL
|
||||
|
||||
`lein repl` will get you a standard REPL/nREPL connection. To work on tests use `lein with-profiles +test repl`.
|
||||
|
||||
### Adding classes
|
||||
|
||||
Add necessary classes to `babashka/impl/classes.clj`. For every addition, write
|
||||
a unit test, so it's clear why it is added and removing it will break the
|
||||
tests. Try to reduce the size of the binary by only adding the necessary parts
|
||||
of a class in `:instance-check`, `:constructors`, `:methods`, `:fields` or
|
||||
`:custom`.
|
||||
|
||||
The `reflection.json` file that is needed for GraalVM compilation is generated
|
||||
with:
|
||||
|
||||
lein with-profiles +reflection run
|
||||
|
||||
## Test
|
||||
|
||||
Test on the JVM (for development):
|
||||
|
||||
script/test
|
||||
|
||||
Test the native version:
|
||||
|
||||
BABASHKA_TEST_ENV=native script/test
|
||||
|
||||
## Build
|
||||
|
||||
To build this project, set `$GRAALVM_HOME` to the GraalVM distribution directory.
|
||||
|
||||
Then run:
|
||||
|
||||
script/compile
|
||||
|
||||
|
||||
## Binary size
|
||||
|
||||
Keep notes here about how adding libraries and classes to Babashka grows the binary size.
|
||||
|
||||
On macOS:
|
||||
|
||||
2020/01/08, 303ca9e825d76a4a45bc4240a59139d342c13964: 36.9MB
|
||||
Loading…
Reference in a new issue