[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] [SCM] GNU Guile branch, syncase-in-boot-9, created. d6eb

From: Andy Wingo
Subject: [Guile-commits] [SCM] GNU Guile branch, syncase-in-boot-9, created. d6ebfd72268878d64c583998ea9d57c0eb22996e
Date: Fri, 24 Apr 2009 12:54:00 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

The branch, syncase-in-boot-9 has been created
        at  d6ebfd72268878d64c583998ea9d57c0eb22996e (commit)

- Log -----------------------------------------------------------------
commit d6ebfd72268878d64c583998ea9d57c0eb22996e
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 13:30:57 2009 +0200

    finish transition to bare/hygiene/public/private
    * module/ice-9/boot-9.scm (make-module-ref): Remove the transition
    * module/ice-9/psyntax.scm (get-global-definition-hook): Remove
      transition support. Also remove support for guile-macro.
      (build-global-reference, build-global-assignment): Remove transition
    * module/ice-9/psyntax-pp.scm: Regenerated.

commit a2716cbe1e9d2b43d1fb1a017cb8b1e97617da3c
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 13:13:29 2009 +0200

    only bend hygiene in macro-introduced output, not for explicit @/@@
    * module/ice-9/psyntax.scm
    * module/ice-9/psyntax-pp.scm
    * module/ice-9/boot-9.scm (make-module-ref): We were so almost there
      with what we had, sniff. The deal is that
        (begin (load "foo.scm") ((@@ (foo) bar)))
      would expand to
        (begin (load "foo.scm") (bar))
      because bar was unbound at expansion time, and make-module-ref assumed
      it was like the else in a cond. But it shouldn't have, because we
      /explicitly/ asked for the @@ var -- so now if we see a @ or @@, we
      never drop it. @@ introduced by hygiene can be dropped if it doesn't
      reference a var, though.
      Practically speaking, this means tagging all modules in psyntax with
      their intent: public or private (corresponding to @ or @@), hygiene
      (introduced by a macro), or bare (when we don't have a module). I'm
      not sure when we'd see a bare.
      The implementation is complicated by the need to support the old
      format and the new format at the same time, so that psyntax-pp can be

commit 384e92b3ae491e2f8495b0d188b384f138a8cc61
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 12:12:24 2009 +0200

    fix @ and syncase
    * module/ice-9/boot-9.scm
      (make-module-ref): equal?, not eq?, when matching on module name.
      (Module names don't have to come from an invocation of module-name in
      this process.)
    * module/ice-9/psyntax.scm (build-global-reference)
      (build-global-assignment, @): Rework the format of the module in syntax
      objects so that a car of #f indicates a public reference. Loading (foo
      %module-public-interface) didn't guarantee that (foo) was loaded and
    * module/ice-9/psyntax-pp.scm: Regenerated.
    * module/language/scheme/compile-ghil.scm (lookup-transformer):
      primitive-macro? does not exist any more.

commit 7c72fe0bb5a6ef00c90f6988ce3178a45ed95f26
Author: Andy Wingo <address@hidden>
Date:   Thu Apr 23 13:34:23 2009 +0200

    ice-9 syncase now deprecated, woo
    Remove #:use-module (ice-9 syncase) from lots of places, as it's no
    longer needed.

commit 01c161ca11b19d56ce994cba477a8fc4aeb8ac43
Author: Andy Wingo <address@hidden>
Date:   Thu Apr 23 13:30:23 2009 +0200

    it is alive!!!!! + concision + fix to compile-ghil
    * module/ice-9/boot-9.scm: Remove lots of debugging prints. Remove some
      already-deprecated attempts to load modules from shared libraries.
    * module/ice-9/psyntax.scm: If we have to create a variable for a
      syntactic binding, initialize its contents to a gensym. I'd like
      something more meaningful, but at least this way we can tell different
      macros apart. Only warn about missing modules if modules are booted.
      Chi the value part of a (set! (@ ...) ) expression -- whoops!
    * module/ice-9/psyntax-pp.scm: Regenerated.
    * module/language/glil.scm (parse-glil): Fix an unquoting error.
    * module/language/scheme/compile-ghil.scm: No need to import syncase, we
      gots it. Rework compiler to expand only once, with syncase, instead of
      incrementally. Fix define-scheme-transformer to work with syncase, by
      not referencing bare keywords. It works!

commit c5ad45c7b34346f0f7084477479e7367c30a67f6
Author: Andy Wingo <address@hidden>
Date:   Thu Apr 23 12:41:03 2009 +0200

    allow redefinition of global macros to variables
    * module/ice-9/psyntax.scm: Allow the redefinition of keywords to
      variables. Otherwise we can't do (define let #f), which is totally
      useful and stuff.
    * module/ice-9/psyntax-pp.scm: Regenerated.

commit 85e95b47108a84f0829cf17c5dde40f53814186e
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 14:08:32 2009 +0200

    fix load for syncase-in-boot-9; compile-psyntax works again
    * module/ice-9/r4rs.scm:
    * module/ice-9/boot-9.scm (%load-verbosely, assert-load-verbosity)
      (%load-announce, %load-hook, load): Move these from r4rs.scm to
    * module/ice-9/compile-psyntax.scm: Update to work with
    * module/ice-9/psyntax-pp.scm: Recompiled with syncase-in-boot-9.

commit 64e5d08d3e7076b554f724efede860883f846b5f
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 14:01:26 2009 +0200

    leap of faith: (ice-9 syncase) in psyntax-pp.scm -> (guile)
    * module/ice-9/psyntax-pp.scm: Manually switch psyntax-pp over to (guile)
      from (ice-9 syncase). Heh heh.

commit 131826039c62bdfd5932272b5d19d4b08cbe4e63
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 13:54:38 2009 +0200

    syncase early in boot-9, defmacros in terms of syntax-case -- halfway 
    * module/ice-9/boot-9.scm
      (eval-when): Remove, as syncase is going to handle this one for us.
      (sc-expand, sc-expand3, sc-chi, install-global-transformer)
      (syntax-dispatch, syntax-error, annotation?, bound-identifier=?)
      (datum->syntax-object, free-identifier=?, generate-temporaries)
      (identifier?, syntax-object->datum, void, andmap): Oh, ugly of uglies:
      add these exciting definitions to the main environment. Hopefully we
      can pull them back out soon.
      (make-module-ref, resolve-module): Stub these out, as a replacement for
      (%pre-modules-transformer): Define to sc-expand, so that we are using
      syncase from the very start.
      (defmacro, define-macro): Define in terms of syntax-case.
      (macroexpand, macroexpand-1): Remove, there should be a different way
      to get at this -- though perhaps with the same name.
      (make-module): Make sc-expand the default module-transformer.
      (process-define-module): Issue a deprecation warning when using ice-9
      (primitive-macro?): Remove, no meaning...
      (use-syntax): Deprecate.
      (define-private, define-public, defmacro-public): Rework in terms of
    * module/ice-9/syncase.scm: Gut, as syncase is provided by core now.

commit a26934a850fba4ee1caf5d44cdbbe95115c91be0
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 13:50:14 2009 +0200

    module-name returns '(guile) during boot; psyntax tweak
    * module/ice-9/boot-9.scm (module-name): Return '(guile) before the
      module system is booted, for syncase's benefit. Defer redefinition
      until the module system is booted.
    * module/ice-9/psyntax.scm (put-global-definition-hook): Only set a
      variable if it's unbound.
    * module/ice-9/psyntax.scm: Regenerated.

commit 757937c290ae64a7a75232793c659d0cca3dea10
Author: Andy Wingo <address@hidden>
Date:   Wed Apr 22 23:10:35 2009 +0200

    more steps on the way to boot-time syncase
    * module/ice-9/boot-9.scm: Define a version of module-add! for psyntax,
      before modules are booted.
    * module/ice-9/psyntax.scm: Remove a warning, and rename a variable.
      Initialize a new variable to 'sc-macro, though it will have no effect.
    * module/ice-9/psyntax-pp.scm: Regenerated.

commit 819cf0e8b8f09e769e194781ec57a52f9415763b
Author: Andy Wingo <address@hidden>
Date:   Thu Apr 23 11:25:22 2009 +0200

    I ain't broke, but brother I'm badly bent
    * module/ice-9/expand-support.scm (strip-expansion-structures): If, when
      producing @/@@ forms, we find that an @@ variable is not bound in its
      module, just serialize the symbol. This bends hygiene, in that it can
      introduce a global (but not lexical) reference in the expanded module,
      but it seems necessary to not produce (@@ (foo) else) in forms like
      ((@@ (foo) cond) ((test then) ((@@ (foo) else) bar))).


GNU Guile

reply via email to

[Prev in Thread] Current Thread [Next in Thread]