guile-user
[Top][All Lists]
Advanced

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

Re: Seeking Advice on syntax/macros in separate files


From: Andrew Burgess
Subject: Re: Seeking Advice on syntax/macros in separate files
Date: Tue, 2 Mar 2021 09:47:43 +0000

* Ludovic Courtès <ludo@gnu.org> [2021-03-02 09:23:33 +0100]:

> Hi Andrew,
> 
> Andrew Burgess <andrew.burgess@embecosm.com> skribis:
> 
> > My concerns are based on this page of the guile manual:
> >
> >   
> > https://www.gnu.org/software/guile/manual/html_node/Compilation.html#Compilation
> >
> > specifically this:
> >
> >   "... Guile does not yet do proper dependency tracking, so that if
> >   file a.scm uses macros from b.scm, and b.scm changes, a.scm would
> >   not be automatically recompiled."
> 
> Yes.  Concretely, that means you can either use Makefiles or similar
> (like with most other languages) or turn off auto-compilation (with
> ‘--no-auto-compile’ or with ‘GUILE_AUTO_COMPILE=0’).
> 
> > So, my current thinking is to wrap the invocation of the guile script
> > in a shell script, which _always_ forces recompilation.  But, if I'm
> > doing that, I may as well just disable compilation completely.  But
> > this doesn't seem right.
> >
> > So, I'm sure I must be missing something here.  How do others deal
> > with this situation?
> 
> Common practice is to have makefiles or similar as part of your
> software.  When you run “make”, it runs ‘guild compile’ to compile all
> your Scheme source; upon “make install”, both .scm and .go files are
> installed.
> 
> Here’s an example that does that using the GNU autotools:
> 
>   https://notabug.org/cwebber/guile-gcrypt
> 
> For a pure Guile project, Guile Hall helps get started:
> 
>   https://gitlab.com/a-sassmannshausen/guile-hall
> 

Many thanks.  I knew I must be missing something.  It never occurred
to me that I should be pre-compiling the project.

I'll investigate the two solutions you've proposed.

Thanks again,
Andrew



reply via email to

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