guile-devel
[Top][All Lists]
Advanced

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

Re: guile-vm 0.4


From: Rob Browning
Subject: Re: guile-vm 0.4
Date: 12 Apr 2001 13:09:10 -0500
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

Keisuke Nishida <address@hidden> writes:

> (require 'bar) will compile the file, but (load "baz.scm") won't.

Hmm, I'm not sure what I think of that.  If compiling (require 'bar)
will also demand write access to the slib dir, then I think that's
probably not good for the long run.  If it just byte-compiles the
functions into memory, then that would probably be fine, though it's
still a problem if anything in 'bar or any file required by 'bar isn't
supported by the VM.

> Maybe we should prepare a compiler command (`guilec' or something)
> and do not try to write .go files automatically?

Something like that sounds better to me, but you could just break it
up functionally:

  (vm-compile "foo.scm") -> compiles foo.scm, writing foo.go
  (vm-load "foo.go") -> loads byte compiled file
  (vm-compile/load "foo.scm") -> compiles, then loads.

so the user can choose what they want.  Note that I don't necessarily
think the functions need the "vm-" prefix.  I was just being explicit.

Then the user can do things like this:

  (for-each vm-compile files-to-compile)
  .. normal loads ...

and make sure that all the files they want compiled are ready before
they start loading.

It's kind of a weird situation, though, because I could see cases
where you don't want to write .go files to disk, but you do want
byte-compiling.  In that case, recursive compile-{load,require}'s seem
the only viable option.  Hmm.

> I'll support macros soon, if you want.  What syntax do you use?
> (defmacro, define-macro, define-syntax, etc.)

Well, we don't use macros much, and so I just eliminated all the calls
in the files I was trying to byte-compile, but mostly I was worried
about recursive vm compiles via "load" or "require".  I was only
trying to byte-compile a few files and didn't want to have to check
all the required and loaded sub-files for macros (and other
vm-incompatible bits) too.  From what you said above, only "require"
is an issue, but that could still be a problem since we use require
and I don't know whether or not files in the the required sub-tree of
slib files use macros...

-- 
Rob Browning <address@hidden> PGP=E80E0D04F521A094 532B97F5D64E3930



reply via email to

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