This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re:LAML
Kurt Noermark writes:
> Instead of quick and dirty solutions from my side
> I will prepare a new version of LAML in which the portability
> is addressed in a better way.
>
> I will go through the entire software complex and improve it
> whereever possible, such that it becomes more isolated - and more
> more well defined - what a port to another Scheme System involes.
>
> It will take some days, I think. I will send a message when I am done.
sorry, in my haste (to go to sleep), i did not include a proper change
log describing the patch. here is a complete list of changes:
* distribution-version: Updated.
* laml-config/config-example.guile: New file that the user may wish to
copy into laml-config/configuration and edit to taste. This is the
configuration I use personally.
* laml-config/laml-config.scm: (supported-platforms,
supported-scheme-systems, supported-operating-systems,
supported-kinds-of-emacs, supported-laml-activations): New vars.
Add `guile' as a scheme-system and `linux' as a platform.
(setup-file-descriptors): Rework to return a regularized alist,
generated algorithmically rather than a literal.
(warn-notedly): New procedure that issues warning and increments
the warning message counter `wm'.
(check-configuration!): Rework to use `warn-notedly'.
Add support for `guile-exec'. Use "supported-*" vars
instead of hard-coding.
(configure-file): Output informational message.
(laml-clean): New command. Documented in header comment.
* laml-config/templates/laml: Check for $1 and exit if not present.
Add support for guile.
* laml-config/templates/laml.scm: Reformat some comments to < 80cols.
(source-filename-without-extension, startup-directory): Remove direct
dependency on var `scheme-system'. Use `laml-canonical-command-line'
instead, which is defined by each scheme system. Arity is now 0.
(end-laml): New proc, factored from each scheme system's compatibility
file (they were identical).
(unknown-scheme-system-error): New proc.
(laml-canonical-command-line): New proc, stub, that basically calls
`unknown-scheme-system-error'. Meant to be overriden by scheme system
compatibility files.
(fake-startup-parameters): Likewise; functionality moved.
Load appropriate compatibility file based on symbol `scheme-system'.
* lib4/readme: Mention compatibility files in subdir sys.
* lib4/sys/drscheme.scm, lib4/sys/mzscheme.scm, lib4/sys/scm.scm,
lib4/sys/guile.scm: New files, all but guile.scm moved from parent
dir.
In each `laml-canonical-command-line' and `fake-startup-parameters'
are defined under comment "misc".
* styles/course-plan/course-plan.scm,
styles/elucidator/elucidator.scm,
styles/lecture-notes/lecture-notes.scm,
styles/manual/manual.scm,
styles/questionnaire/questionnaire.scm,
styles/simple.scm:
Rework call to `source-filename-without-extension' to be arity-0.
Remove manual loading of scheme-system dependent compatibility files.
--------
basically, i tried to encapsulate all dependencies of `scheme-system'
into laml.scm, and made laml-config.scm table-driven.
the diff turned out to be so huge because of whitespace issues.
apparently, the code is maintained on a windows machine w/ CRLF line
endings. mingle, in contrast, is a linux machine w/ plain LF endings.
using "diff -w" caused patch to be confused, so i had to drop the "-w".
you might consider using a package like whitespace.el to help minimize
these issues.
all in all, i feel this patch goes a long way to generalizing the
configuration process, and does not qualify as "quick and dirty". i
urge to you to apply it and save yourself some work. (it seems to work
for me. :)
regards,
thi