This is the mail archive of the guile@sourceware.cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]