Skip to content

Commit c7a606c

Browse files
authored
Merge pull request #182 from sogaiu/config-doc-tweaks
Tweak configuration docs
2 parents c501a1e + da51173 commit c7a606c

File tree

1 file changed

+30
-22
lines changed

1 file changed

+30
-22
lines changed

content/capi/configuration.mdz

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
:order 3}
44
---
55

6-
Janet can be configured by editing the source header @code`janetconf.h`. To build
7-
Janet on certain platforms, disable features to save space, or integrated Janet
8-
into certain environments, editing this file may be required, although in most
9-
cases the default build of Janet should work.
6+
Janet can be configured by editing the source header
7+
@code`janetconf.h`. To build Janet on certain platforms, disable
8+
features to save space, or integrate Janet into certain environments,
9+
editing this file may be required, although in most cases the default
10+
build of Janet should work.
1011

1112
Not all combinations of flags are guaranteed to work, although in most cases they should.
1213
You should should probably run the test suite on a particular set of flags to verify that
@@ -38,8 +39,6 @@ Define this if you know the interpreter will only run in a single threaded progr
3839
this define is set, global Janet state will use normal global C variables rather than thread local
3940
variables.
4041

41-
Setting this also disables the @code`thread/` module.
42-
4342
### @code`#define JANET_NO_DYNAMIC_MODULES`
4443

4544
Define this to disable loading of dynamic modules via the @code`native` function. This also lets
@@ -48,15 +47,19 @@ without linking to @code`-ldl` on Posix.
4847

4948
### @code`#define JANET_NO_ASSEMBLER`
5049

51-
Define this to disable the functions @code`asm` and @code`disasm` in the core library. The assembler
52-
is not needed to run most programs, can is useful for inspecting functions, debugging, and writing
53-
a compiler for the Janet abstract machine.
50+
Define this to disable the functions @code`asm` and @code`disasm` in
51+
the core library. The assembler is not needed to run most programs,
52+
but can be useful for inspecting functions, debugging, and writing a
53+
compiler for the Janet abstract machine.
5454

5555
### @code`#define JANET_NO_PEG`
5656

57-
Define this to disable the @code`peg` module. The core Janet library should work without the peg module, and
58-
be slightly smaller, but this flag is not recommended as the peg module itself is actually quite
59-
small. This disables the functions @code`peg/match` and @code`peg/compile`.
57+
Define this to disable the @code`peg` module. The core Janet library
58+
should work without the peg module, and be slightly smaller, but this
59+
flag is not recommended as the peg module itself is actually quite
60+
small. This disables the functions @code`peg/match`,
61+
@code`peg/compile`, @code`peg/find`, @code`peg/find-all`,
62+
@code`peg/replace`, and @code`peg/replace-all`.
6063

6164
### @code`#define JANET_NO_INT_TYPES`
6265

@@ -66,9 +69,10 @@ and unsigned 64 bit integers. The current implementation makes this module quite
6669

6770
### @code`#define JANET_REDUCED_OS`
6871

69-
Define this to compile the `os` module with only the bar minimum needed for @code`boot.janet`. This
70-
is just @code`os/exit`, @code`os/getenv`, and @code`os/which`. All other functions in the @code`os`
71-
module will be disabled.
72+
Define this to compile the `os` module with only the bare minimum
73+
needed for @code`boot.janet`. This is just @code`os/arch`,
74+
@code`os/compiler`, @code`os/exit`, and @code`os/which`. All other
75+
functions in the @code`os` module will be disabled.
7276

7377
### @code `#define JANET_API __attribute__((visibility ("default")))`
7478

@@ -112,10 +116,14 @@ and only expands as needed. This means that setting this value to a lower value
112116

113117
### @code`#define JANET_NO_NANBOX`
114118

115-
Internally, Janet uses a technique called nanboxing to make each Janet value take less memory and allow the VM to be faster
116-
(although Janet mainly uses the technique for the first reason). This technique, however, is not valid C of any kind, and will
117-
only work correctly on some architectures. Many 64 bit architectures will have trouble with the nanboxing code, so it is by
118-
default turned off on 64 bit, non x86 architectures. However, one may also want to turn off nanboxing for other reasons, so
119-
this flag is exposed for that reason. If an unsupported architecture mistakenly tries to use nanboxing, this could be
120-
considered a bug and the platform detection
121-
macros in @code`janet.h` should be updated to disable nanboxing for that platform.
119+
Internally, Janet uses a technique called nanboxing to make each Janet
120+
value take less memory and allow the VM to be faster (although Janet
121+
mainly uses the technique for the first reason). This technique,
122+
however, is not valid C of any kind, and will only work correctly on
123+
some architectures. Many 64 bit architectures will have trouble with
124+
the nanboxing code, so it is by default turned off on 64 bit, non x86
125+
architectures. However, the flag is exposed because one may also want
126+
to turn off nanboxing for other reasons. If an unsupported
127+
architecture mistakenly tries to use nanboxing, this could be
128+
considered a bug and the platform detection macros in @code`janet.h`
129+
should be updated to disable nanboxing for that platform.

0 commit comments

Comments
 (0)