GNU Guile 3.0.6 released

2021-04-28 Thread Andy Wingo
We are pleased to announce GNU Guile release 3.0.6, the latest in the
3.0 stable release series.

Compared to the previous release in the 3.0 series, Guile 3.0.6 improves
source-location information for compiled code, removes the dependency on
libltdl, fixes some important bugs, adds an optional bundled "mini-gmp"
library, as well as the usual set of minor optimizations and bug fixes.

Compared to the previous stable series (2.2.x), Guile 3.0 adds support
for just-in-time native code generation, speeding up all Guile programs.
See the NEWS extract at the end of the mail for full details.


The Guile web page is located at http://gnu.org/software/guile/, and
among other things, it contains a copy of the Guile manual and pointers
to more resources.

Guile is an implementation of the Scheme programming language, packaged
for use in a wide variety of environments.  In addition to implementing
the R5RS, R6RS, and R7RS Scheme standards, Guile includes full access to
POSIX system calls, networking support, multiple threads, dynamic
linking, a foreign function call interface, powerful string processing,
and HTTP client and server implementations.

Guile can run interactively, as a script interpreter, and as a Scheme
compiler to VM bytecode.  It is also packaged as a library so that
applications can easily incorporate a complete Scheme interpreter/VM.
An application can use Guile as an extension language, a clean and
powerful configuration language, or as multi-purpose "glue" to connect
primitives provided by the application.  It is easy to call Scheme code
from C code and vice versa.  Applications can add new functions, data
types, control structures, and even syntax to Guile, to create a
domain-specific language tailored to the task at hand.

Guile 3.0.6 can be installed in parallel with Guile 2.2.x; see
http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html.

A more detailed NEWS summary follows these details on how to get the
Guile sources.

Here are the compressed sources:
  http://ftp.gnu.org/gnu/guile/guile-3.0.6.tar.lz   (10MB)
  http://ftp.gnu.org/gnu/guile/guile-3.0.6.tar.xz   (13MB)
  http://ftp.gnu.org/gnu/guile/guile-3.0.6.tar.gz   (21MB)

Here are the GPG detached signatures[*]:
  http://ftp.gnu.org/gnu/guile/guile-3.0.6.tar.lz.sig
  http://ftp.gnu.org/gnu/guile/guile-3.0.6.tar.xz.sig
  http://ftp.gnu.org/gnu/guile/guile-3.0.6.tar.gz.sig

Use a mirror for higher download bandwidth:
  http://www.gnu.org/order/ftp.html

Here are the SHA256 checksums:

  2e5b9e3e56a967a58ae591053a65c1851875bf5e06c60caab409d5647cff4975  
guile-3.0.6.tar.lz
  e2bd83c2077d721356e7579ca33097a13a20e2b7eda6c2362ee1166fbc845d28  
guile-3.0.6.tar.xz
  000fc43c1b0a5cfbd85b67e01afd58e847bd1f279e3439bb7db37282b0459f56  
guile-3.0.6.tar.gz

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify guile-3.0.6.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys 
4FD4D288D445934E0A14F9A5A8803732E4436885

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.71
  Automake 1.16.2
  Libtool 2.4.6
  Gnulib v0.1-4551-ga3a946f670
  Makeinfo 6.7

An extract from NEWS follows.


Changes in 3.0.6 (since 3.0.5)

* Notable changes

** Reimplement dynamic library loading ("dlopening") without libltdl

Guile used to load dynamic libraries with libltdl, a library provided by
the Libtool project.

Libltdl provided some compatibility benefits when loading shared
libraries made with older toolchains on older operating systems.
However, no system from the last 10 years or so appears to need such a
thick compatibility layer.

Besides being an unmaintained dependency of limited utility, libltdl
also has the negative aspect that in its search for libraries to load,
it could swallow useful errors for libraries that are found but not
loadable, instead showing just errors for search path candidates that
are not found.

Guile now implements dynamic library loading directly in terms of the
standard "dlopen" interface, providing a limited shim for platforms with
similar functionality exposed under different names (MinGW).

This change has a few practical impacts to Guile users.  There is a new
library search path variable, `GUILE_EXTENSIONS_PATH'.  Also, errors when
loading a library fails now have better errors.  And Guile no longer has
a libltdl dependency.

Although Guile no longer uses libltdl, for backwards compatibility Guile
still adds `LTDL_LIBRARY_PATH' to the loadable library search path, and
includes ad-hoc logic to support uninstalled dynamically loadable
libraries via also adding the ".libs" subdirectories of
`LTDL_LIBRARY_PATH' elements.  See "Foreign Libraries" in the
documentation for a full discuss

Re: GNU Guile 3.0.6 released

2021-04-28 Thread Jérémy Korwin-Zmijowski
Le mercredi 28 avril 2021 à 09:17 +0200, Andy Wingo a écrit :
> We are pleased to announce GNU Guile release 3.0.6, the latest in the
> 3.0 stable release series.

Hey Andy,

This is so coool !
Thank you to all the Guile Hackers involved.
Can't wait to play with it.

Take care,
Jérémy




[ANN] Guile-DRMAA 0.1.0

2021-04-28 Thread Ricardo Wurmus

Hi there,

I’m writing this to unceremoniously announce the first release 
(0.1.0) of Guile DRMAA.  Guile DRMAA provides Guile bindings to 
version 1 of the DRMAA library, a library to interact with 
different HPC schedulers.  It uses Matt Wette’s most excellent FFI 
helper; thank you!


Here’s the code:

   https://git.elephly.net/software/guile-drmaa.git

(You cannot *yet* get it through Guix, because there appears to be 
a regression in the excellent FFI helper included in nyacc 
versions later than 1.03.0.  A guix.scm file is included in the 
git repository that builds a slightly older version of nyacc.)


--
Ricardo



How to use guile in a development process

2021-04-28 Thread Anthony Quizon
Hello,

I'm having trouble finding a good development process with guile.

I have a file foo.scm and I'm trying to load it into the repl.
However, I couldn't find any documentation on how to easily do this.
I tried looking up ",help module" in the repl which told me to use ",load
FILE".
But when I tried this I got the error "In procedure primitive-load-path:
Unable to find file "system/repl/foo.scm" in load path"

I don't know where to look to change my load file for the repl.

I read in a forum somewhere to add (add-to-load-path ".") in my .guile file
but that didn't work.

How do I load a file from the current path that I'm in?
But more importantly, what is the typical workflow when using guile?
Do people write files to the filesystem and load them in the repl to try it
out?
Or is there a faster way to do things?

Thanks,


Re: [ANN] Guile-DRMAA 0.1.0

2021-04-28 Thread Matt Wette




On 4/28/21 2:39 AM, Ricardo Wurmus wrote:

Hi there,

I’m writing this to unceremoniously announce the first release (0.1.0) 
of Guile DRMAA.  Guile DRMAA provides Guile bindings to version 1 of 
the DRMAA library, a library to interact with different HPC 
schedulers.  It uses Matt Wette’s most excellent FFI helper; thank you!


Here’s the code:

   https://git.elephly.net/software/guile-drmaa.git

(You cannot *yet* get it through Guix, because there appears to be a 
regression in the excellent FFI helper included in nyacc versions 
later than 1.03.0.  A guix.scm file is included in the git repository 
that builds a slightly older version of nyacc.)


Sorry about the issues with nyacc.  As part of my test I compile-ffi 
glib and that beast
has been really testing my C preprocessor capability.  Please register a 
bug report.




Re: How to use guile in a development process

2021-04-28 Thread Nala Ginrut
Hi Anthony!
You may use "guile -L ." to add the current path to the load path, then you
can import the module.

Best regards.

On Thu, Apr 29, 2021, 08:57 Anthony Quizon  wrote:

> Hello,
>
> I'm having trouble finding a good development process with guile.
>
> I have a file foo.scm and I'm trying to load it into the repl.
> However, I couldn't find any documentation on how to easily do this.
> I tried looking up ",help module" in the repl which told me to use ",load
> FILE".
> But when I tried this I got the error "In procedure primitive-load-path:
> Unable to find file "system/repl/foo.scm" in load path"
>
> I don't know where to look to change my load file for the repl.
>
> I read in a forum somewhere to add (add-to-load-path ".") in my .guile file
> but that didn't work.
>
> How do I load a file from the current path that I'm in?
> But more importantly, what is the typical workflow when using guile?
> Do people write files to the filesystem and load them in the repl to try it
> out?
> Or is there a faster way to do things?
>
> Thanks,
>


Re: [ANN] Guile-DRMAA 0.1.0

2021-04-28 Thread Ricardo Wurmus



Matt Wette  writes:

(You cannot *yet* get it through Guix, because there appears to 
be a
regression in the excellent FFI helper included in nyacc 
versions 
later than 1.03.0.  A guix.scm file is included in the git

repository that builds a slightly older version of nyacc.)

Sorry about the issues with nyacc.  As part of my test I 
compile-ffi

glib and that beast
has been really testing my C preprocessor capability.  Please 
register

a bug report.


It’s quite likely I’m doing something silly due to the fact that 
the DRMAA library isn’t available at build time.  Here’s my bug 
report:


   https://savannah.nongnu.org/bugs/index.php?60474

Thank you!

--
Ricardo