@@ -494,39 +494,69 @@ Directories in "src":
494
494
495
495
"racket" --- starting point for the traditional Racket implementation
496
496
497
+ This implementation can build from "scratch" with a C
498
+ compiler, but first by building a CGC variant of Racket to
499
+ transform the C sourses to build a (normal) 3m variant.
500
+
497
501
"cs" --- starting point for the Racket-on-Chez implementation
498
502
503
+ Building the implementation requires both an existing Racket
504
+ (possibly created from the "racket" sources) and an existing
505
+ Chez Scheme build.
506
+
499
507
"rktio" --- portability layer for low-level I/O, used by "racket" and
500
- "cs"
508
+ "cs"
509
+
510
+ If you change "rktio.h", then be sure to regenerate
511
+ "rktio.rktl" and "rktio.inc" using an existing Racket
512
+ implementation that has the "parser-tools" package installed.
501
513
502
514
"start" --- main-executable wrapper, used by "racket" and "cs"
503
515
504
516
"foreign" --- the FFI implementation for "racket", including "libffi"
505
- (as needed for some platforms)
517
+ (as needed for some platforms)
518
+
519
+ "expander" --- the macro expander implementation, used by "racket"
520
+ and "cs"; doubles as the "expander" package
506
521
507
- "expander" --- the macro expander's implementation, used by "racket"
508
- and "cs"; doubles as the "expander" package
522
+ This expander is both included in Racket builds and used to
523
+ expand itself for including in "racket" or "cs". It's also
524
+ used to expand other libraries included in "cs".
509
525
510
- "thread" --- the thread scheduler's implementation, used by "cs"
526
+ If you change the expander, run `make` in its directory to
527
+ generate the "startup.inc" file that holds the expander's
528
+ implementation for inclusion in the traditional Racket
529
+ variant. The "cs" build (which needs an existing Racket to
530
+ build, anyway) picks up changes automatically.
511
531
512
- "io " --- the Racket I/O implementation, used by "cs"
532
+ "thread " --- the thread scheduler implementation, used by "cs"
513
533
514
- "regexp" --- the regexp matcher's implementation, used by "cs"
534
+ "io" --- the I/O implementation, used by "cs"
535
+
536
+ "regexp" --- the regexp matcher implementation, used by "cs"
515
537
516
538
"schemify" --- a Racket-to-Scheme compiler, used by "cs" and "cify"
517
539
518
- "cify" --- a Racket-to-C compiler, used by "racket" when embedding
519
- the expander as C code instead of Racket bytecode
540
+ Similar to "expander", this layer is applied to itself and
541
+ other libraries for inclusion in "cs".
542
+
543
+ "cify" --- a Racket-to-C compiler, used by "racket"
544
+
545
+ This compiler is used only when embedding the expander as C
546
+ code, instead of Racket bytecode, which is the default for
547
+ platforms where the Racket JIT is not supported.
520
548
521
549
"common" --- Racket libraries used by "thread", "io", etc.
522
550
523
- "gracket" --- implementation of the GRacket layer
551
+ "gracket" --- implementation of the GRacket layer for the traditional
552
+ Racket implementation
524
553
525
- "mzcom" --- implementation of the MzCOM layer (for Windows)
554
+ "mzcom" --- implementation of the MzCOM layer (for Windows)for the
555
+ traditional Racket implementation
526
556
527
557
"mysink" --- `ffi/unsafe/com` helper DLL implementation (for Windows)
528
558
529
- "mac" --- scripts for Mac OS ".app"s, used by "gracket"
559
+ "mac" --- scripts for Mac OS ".app"s, used by "gracket" and "cs"
530
560
531
561
"worksp" --- Windows projects and build scripts for "racket"
532
562
@@ -537,4 +567,4 @@ Directories in "src":
537
567
"utils" --- miscellaneous
538
568
539
569
"setup-go.rkt" --- helper script used by parts of the build that need
540
- to run substantial Racket programs
570
+ to run substantial Racket programs
0 commit comments