Skip to content

Commit 2980253

Browse files
committed
Add a Requirements section in Build System docs
1 parent f9db0c2 commit 2980253

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

docs/build_system.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
There are many ways to build YARP, which means the build system is a bit more complicated than usual.
44

5+
## Requirements
6+
7+
* It must work to build YARP for all 6 uses-cases below.
8+
* It must be possible to build YARP without needing ruby/rake/etc.
9+
Because once YARP is the single parser in TruffleRuby, JRuby or CRuby there won't be another Ruby parser around to parse such Ruby code.
10+
Most/every Ruby implementations want to avoid depending on another Ruby during the build process as that is very brittle.
11+
* It is desirable to compile YARP with the same or very similar compiler flags for all use-cases (e.g. optimization level, warning flags, etc).
12+
Otherwise, there is the risk YARP does not work correctly with those different compiler flags.
13+
14+
The main solution for the second point seems a Makefile, otherwise many of the usages would have to duplicate the logic to build YARP.
15+
516
## General Design
617

718
1. Templates are generated by `templates/template.rb`

0 commit comments

Comments
 (0)