aboutsummaryrefslogtreecommitdiff
path: root/notes/distributions.txt
blob: 53f58cca96f3d2da3e36a5714cdc681ce914a28c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

How to make things easier for Linux / OS distributions
======================================================

* Have a linting flag
    - Environment variable SLUL_LINT=1
    - Make it clear that it must be set at *runtime*
      (OR: copy it over to built binaries if set during compilation)
    - Check that all paths, ELF file formatting, symbols, etc.
      seem to be correct.
    - Enable various runtime checks in the stdlib (e.g. file formats etc.)

* Have some SLUL subcommand to install a module given a specific prefix
  (e.g. `/usr` on most GNU or Musl distributions) and distribution-specific
  overrides (Fedora and Debian install libraries under different paths:
  `/usr/lib64` on Fedora vs `/usr/lib/<cpu>-<kernel>-<libc>` on Debian).

* Release the following components separately?
    - bootstrap compiler + bootstrap runtime library
    - real compiler (written in bootstrap subset,
      so it is compileable with bootstrap compiler)
    - real runtime library (platform specific base)
        - probably should be written in C?
        - but maybe with a Zig buildfile in addition to the Makefile,
          for those who want to use Zig for easy cross-compilation.
    - platform-independent part(s) of runtime library
        - what exactly is platform independent? some functions
          may benefit from platform-optimized code. other might
          require it.
        - maybe some modules could be written in C or another language