l...@gnu.org (Ludovic Courtès) writes: > Andreas Rottmann <a.rottm...@gmx.at> skribis: > >> Not a hindrance, just an annoyance, IMHO. Maybe a reasonable compromise >> would be to add an --r6rs switch, to add these extensions, as well as >> turn on any R6RS-compatiblity reader options, so the script being >> executed can use the R6RS syntax we already support, even when it is >> disabled by default (cf. my latest patch). On the other hand, these >> extensions are not part of R6RS and orthogonal to whether the script to >> be run uses R6RS syntax incompatible with the default reader options. > > Yes, but still, a single --r6rs switch seems like a good tradeoff.
I don't think the command-line switch is a good solution. The problem is that even if the main program is not written in R6RS, and even if the main program does not use any R6RS libraries directly, this option might still be needed. Consider this thought experiment: My non-R6RS program uses a non-R6RS library in Guildhall, so I don't bother with the --r6rs option. Sometime later, some library (that I use only indirectly) gets upgraded, and the new version now uses an R6RS library. Suddenly my program stops working because I don't have the --r6rs option. In other words, this policy would force the top-level program to have knowledge about every module that is ever loaded in their program, directly or indirectly, now or in the future. Since it is not realistically possible for a program that uses guildhall packages to have such global knowledge, it would effectively force all users to add --r6rs. I see only two sane options: * Add these load extensions by default, to enable users and Guildhall repository maintainers to easily import R6RS libraries as-is. * Reject the dominant R6RS library naming convention, and force users and guildhall repository maintainers to rename the files to .scm and move *.guile.sls to *.scm. I can live with either of these options, but given the existence of guildhall, I see no good compromise position. IMO, we need to make a decision to either fully embrace or fully reject the R6RS library naming convention. Mark