Hello! Andy Wingo <wi...@pobox.com> writes:
> On Tue 07 Dec 2010 11:33, Andy Wingo <wi...@pobox.com> writes: > >> The new R6RS support is great. However we are currently pulling in (rnrs >> base) into the set of modules needed by the compiler, because (language >> assembly compile-bytecode) uses open-bytevector-output-port, and the >> ports impl gained a dep on base. >> >> Is there any way that we can remove this dependency? It will speed up >> bootstrap and the pause as the first expression at the REPL is >> compiled. > > How about we move most of the procedures that are defined in C via > scm_init_r6rs_ports to (ice-9 binary-ports). Then (rnrs io ports) can > still be a r6rs module, and low-level code can avoid pulling in r6rs. A potential problem is that (rnrs io ports) uses bytevectors, defined in (rnrs bytevectors), so we would perhaps need an (ice-9 bytevectors) as well[*], and a new node in the manual for each, etc. Is the only problem of the current solution that compilation of Guile itself is slower? (Which is a real problem, but I’m trying to get the big picture.) Thanks, Ludo’. [*] (rnrs io ports) doesn’t import (rnrs bytevectors), but it may seem slightly inconsistent to have (ice-9 binary-ports) and not (ice-9 bytevectors).