guile-email 0.2.0 released

2019-08-09 Thread Arun Isaac

I am pleased to announce the release of guile-email 0.2.0. guile-email
is a collection of email utilities implemented in pure guile. It
supports parsing MIME (Multipurpose Internet Mail Extensions) compliant
email messages and reading emails from the mbox format.

guile-email is used by mumi, a web interface to the Debbugs bug
tracker. Mumi is primarily used by the Guix project at
https://issues.guix.info.

Project home-page: https://guile-email.systemreboot.net

* Features

- Parse RFC5322 compliant email messages (currently does not support
  obsolete syntax)
- Parse MIME compliant email messages as specified in RFC2045, RFC2046,
  RFC2047 and RFC2049
- Parse non-standard Emacs message mode parens style addresses
- Encode and decode Quoted-Printable encoding, Base64 encoding and
  Q-encoding
- Read emails from the mbox format

* Download

Please find the release tarball and a detached GPG signature at the
links below.

https://guile-email.systemreboot.net/releases/guile-email-0.2.0.tar.lz
https://guile-email.systemreboot.net/releases/guile-email-0.2.0.tar.lz.asc

Please see the NEWS file in the release tarball for a list of user
visible changes.


signature.asc
Description: PGP signature


Re: Happy birthday, Guile!

2020-02-16 Thread Arun Isaac

> Today, it’s been 9 years since Guile 2.0 came out!

Happy birthday, Guile! And, congratulations to the entire Guile
community!

> We used to have a “Guile potluck” for the anniversary, where people
> would bring their own hacks and virtually join for a party.  We missed
> it this year, but if there’s a nice hack that you’d like to share, now
> is a good time!

I just made some guile bindings for xapian[1], the search library. My
first use of the library will be to improve Guix package search. But,
I can think of many more interesting things to do with it!

https://git.systemreboot.net/guile-xapian/about

It's quite incomplete and probably a little premature to announce it
here, but since you asked! :-)

[1]: https://xapian.org/


signature.asc
Description: PGP signature


Re: How to operate on peg:tree structure

2020-02-21 Thread Arun Isaac

> That means i now have to do something useful with the peg tree. How does
> it work? I don'tknow exactly what to do from here. I guess i have to walk
> the tree somehow and execute the rules as i go, but i don't have a clue
> how to do this :/.

When I need to operate on a PEG parse tree, I use pre-post-order from
(sxml transform). But I'm not sure if this is the best way and I'd be
glad to hear if someone has a better way.

If you'd like a code example, see my use of pre-post-order in
guile-email.
https://git.systemreboot.net/guile-email/plain/email/email.scm

Cheers!


signature.asc
Description: PGP signature


Re: figuring out behaviour of peg

2020-03-15 Thread Arun Isaac

Hi Malte,

> Multiple consecutive module definitions also are parsed into a
> list. This *should* also not be the case. So is there a way to avoid
> this? I guess it has something to do with ()* clauses in the grammar
> definition?

This is another pain point with peg, but I don't know if it can be
helped. Like you noted, it has to do with the ()* clauses from the
following definition in your grammar.

> list   <-- listlb ws? listrb / listlb ws? comment* ws? value (comma 
> comment* ws? value)* comma? ws? comment* listrb

I normally handle this by post processing the parse tree using
pre-post-order. See below for code snippet.

> (pretty-print (peg:tree (match-pattern blueprint *bp*)))

--8<---cut here---start->8---
(pretty-print
 (pre-post-order
  (peg:tree (match-pattern blueprint *bp*))
  `((list *macro* . ,(lambda (_ . values)
   (filter list? (keyword-flatten '(value) values
(*text* . ,(lambda (_ value) value))
(*default* . ,(lambda tree tree)
--8<---cut here---end--->8---

You could also see my use of macro-process-address-list in guile-email
at https://git.systemreboot.net/guile-email/plain/email/email.scm

> (define *bp*
>   (read-delimited "" (open-input-file (cadr (command-line))) 'concat))

A minor nitpick: You could use call-with-input-file instead of
open-input-file. call-with-input-file automatically closes the port
after use.


signature.asc
Description: PGP signature


Re: guile program distributed as single executable?

2022-06-06 Thread Arun Isaac


Hi Andy,

> Hi, is there a way to "package" set of guile scripts, possibly with
> other files like extensions, shared libraries, etc all combined into a
> single executable?  Something like PyInstaller for Python. Thanks for
> info.

Not that I'm aware of, but `guix pack' probably comes
closest. https://guix.gnu.org/manual/en/html_node/Invoking-guix-pack.html

Not exactly what you want, but hope that helps!

Regards,
Arun



guile-email 0.3.0 released

2023-01-06 Thread Arun Isaac


Hello all,

I am pleased to announce the release of guile-email 0.3.0. Significant
changes since the 0.2.2 release are described in the NEWS
file. https://git.systemreboot.net/guile-email/tree/NEWS

I would like to thank Andrew Whatson, Mark H Weaver, Mathieu Othacehe
and Ricardo Wurmus for contributing bug reports and code towards this
release.

* What is guile-email?

guile-email is a collection of email utilities implemented in pure
guile. It supports parsing MIME (Multipurpose Internet Mail Extensions)
compliant email messages and reading emails from the mbox format.

Its features include:

- Parse RFC5322 compliant email messages (including obsolete syntax)
- Parse MIME compliant email messages as specified in RFC2045, RFC2046,
  RFC2047 and RFC2049
- Parse non-standard Emacs message mode parens style addresses
- Encode and decode Quoted-Printable encoding, Base64 encoding and
  Q-encoding
- Read emails from the mbox format

Project website: https://guile-email.systemreboot.net/

Happy hacking!
Arun



guile-dbi does not build with guile 3

2023-06-07 Thread Arun Isaac


Hi,

guile-dbi does not build successfully with guile 3.0, but it does build
successfully with guile 2.2. It may be something simple to do with
libltdl, but I am unable to figure it out. Does anyone have an idea? The
build logs are shown below.

Thank you!
Arun

--8<---cut here---start->8---
make  all-recursive
make[1]: Entering directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi'
Making all in libltdl
make[2]: Entering directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl'
make  all-am
make[3]: Entering directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl'
  CC   libltdlc_la-lt__alloc.lo
  CC   libltdlc_la-lt_dlloader.lo
  CC   libltdlc_la-lt_error.lo
  CC   libltdlc_la-ltdl.lo
  CC   libltdlc_la-slist.lo
  CC   lt__strl.lo
  CC   loaders/dlopen.lo
  CC   loaders/libltdlc_la-preopen.lo
  CCLD dlopen.la
  CCLD libltdlc.la
make[3]: Leaving directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl'
make[2]: Leaving directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl'
Making all in src
make[2]: Entering directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/src'
/gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/bin/guile-snarf 
-DHAVE_CONFIG_H -I../include -I/usr/include  -I../libltdl 
-I/gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/include/guile/3.0 
guile-dbi.c > guile-dbi.x \
|| { rm guile-dbi.x; false; }
make  all-recursive
make[3]: Entering directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/src'
Making all in dbi
make[4]: Entering directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/src/dbi'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/src/dbi'
Making all in test
make[4]: Entering directory 
'/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/src/test'
  CC   guile-dbd-test.lo
  CCLD libguile-dbd-test.la
ld: ../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o): in function 
`preopen_LTX_get_vtable':
/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:64:
 multiple definition of `preopen_LTX_get_vtable'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:64:
 first defined here
ld: ../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o): in function 
`lt_dlpreload_default':
/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:307:
 multiple definition of `lt_dlpreload_default'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:307:
 first defined here
ld: ../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o): in function 
`lt_dlpreload':
/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:316:
 multiple definition of `lt_dlpreload'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:316:
 first defined here
ld: ../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o): in function 
`lt_dlpreload_open':
/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:342:
 multiple definition of `lt_dlpreload_open'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-preopen.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/loaders/preopen.c:342:
 first defined here
ld: ../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o): in function 
`lt__malloc':
/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc.c:52: 
multiple definition of `lt__malloc'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc.c:52:
 first defined here
ld: 
../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc.c:40:
 multiple definition of `lt__alloc_die'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc.c:40:
 first defined here
ld: ../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o): in function 
`lt__zalloc':
/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc.c:63: 
multiple definition of `lt__zalloc'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc.c:63:
 first defined here
ld: ../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o): in function 
`lt__realloc':
/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc.c:74: 
multiple definition of `lt__realloc'; 
../../libltdl/.libs/libltdlc.a(libltdlc_la-lt__alloc.o):/tmp/guix-build-guile-dbi-2.1.8.drv-0/source/guile-dbi/libltdl/lt__alloc

London Guix meetup

2023-06-13 Thread Arun Isaac


Hi all,

We are organizing a casual Guix meetup in London. There is no specific
agenda. The intention is for Guix users and would-be Guix users in
London to get to know each other, and to put faces to names. No prior
experience with Guix (or Guile) is necessary. Newcomers are very
welcome!

Date: Tuesday, June 27 6–9 pm BST
Location: Barbican Centre, Silk Street, EC2Y 8DS, London
Mobilizon page:
https://mobilizon.fr/events/f18da336-07f5-489f-ae7c-394458668cea

Looking forward to meeting many of you for a pleasant summer's evening
by the fountains at the Barbican Centre! We will provide more exact
instructions on how to find us at the venue as we get closer to the date
of the event.

The date and time are almost confirmed, but we can nudge it a little if
you reply quickly (say, within a couple of days).

Regards,
Arun



Re: London Guix meetup

2023-06-14 Thread Arun Isaac


> However, if there are more events like this in the future then I'm
> certainly interested.

We can organize more such events for sure! :-)



Re: London Guix meetup

2023-06-26 Thread Arun Isaac


Hi all,

Just a quick reminder for tomorrow's Guix meetup at the
Barbican. Looking forward to seeing many of you! :-)

Date: Tuesday, June 27 6–9 pm BST
Location: Barbican Centre, Silk Street, EC2Y 8DS, London
Mobilizon page: https://mobilizon.fr/events/f18da336-07f5-489f-ae7c-394458668cea

How to find us:

Enter the Barbican Centre from the entrance on Silk Street (EC2Y
8DS). Once inside, follow the signs to the Lakeside Terrace [0,
1]. You'll find us there at a table or by the fountains. We will have
signs with the Guix logo to indicate it's us.

Please feel free to direct message https://octodon.social/@fabionatali
on the fediverse if you are unable to find us at the venue.

[0]: https://www.openstreetmap.org/way/34040002
[1]:
https://en.wikipedia.org/wiki/Barbican_Centre#/media/File:Barbican-arts-centre-large.jpg

Regards,
Arun



Re: London Guix meetup

2023-06-28 Thread Arun Isaac


Hi all,

We had a good turnout with 8 attendees. Thank you all for coming! We may
have another meetup in a month or so. Looking forward to seeing you all
again and hope to see new faces too!

Regards,
Arun



Re: London Guix meetup

2023-06-28 Thread Arun Isaac


Hi Etienne,

> Oops. I missed that! Is this a regular thing?
> Is there a UK community of sort, e.g. online platform, mailing list and so
> forth?

Nope, this was just the first meetup. There may be another meetup in a
month or so. We don't have any separate online presence yet.

Regards,
Arun



August Guix/Guile London meetup reminder

2023-08-23 Thread Arun Isaac


Hi all,

A quick reminder for the August edition of the Guix London meetup. As
usual, it'll be a chance to talk about Guix, our favourite package
manager and the Guile programming language.

Date/Time: Thursday 24th August, 6 pm onwards
Location: Riverside Terrace Cafe at the Southbank Centre
Mobilizon page:
https://mobilizon.fr/events/89220a82-ced2-413e-b291-7cc3fcd8aa7c

Regards,
Arun



September London Guix/Guile meetup

2023-09-12 Thread Arun Isaac


Hi all,

Guixers of the world (or more simply, from the London area) unite!
😃🤖🌈💻

Unbelievable, we've reached our fourth event already, which will be held
at the very heart of the City of London. Join us to talk about Guix,
Guile, Scheme & Lisp, and all things Free Software. Bring your laptop
for some in-person hacking if you like - and your best collection of
parentheses! :)

Participants will need to be registered at the reception, so please RSVP
asap with your details (your full name or, if you wish, a nickname—no
further details are required).

Location:

c/o HubHub
20 Farringdon Street, EC4A 4AB, London

Date/Time: Monday, September 25, 2023 from 6:00 PM to 8:30 PM
Mobilizon page: https://mobilizon.fr/events/552977a1-3398-47bf-a7c1-ee5afee211d9

For any questions, please get in touch via any of the following
channels:

- Arun: arunis...@systemreboot.net
- Fabio: m...@fabionatali.com and https://octodon.social/@fabionatali
- Guix Devel mailing list: https://lists.gnu.org/mailman/listinfo/guix-devel/

We look forward to seeing you!

Regards,
Arun



Re: September London Guix/Guile meetup

2023-09-25 Thread Arun Isaac


Reminder for today's London Guix/Guile meetup!

> Guixers of the world (or more simply, from the London area) unite!
> 😃🤖🌈💻
>
> Unbelievable, we've reached our fourth event already, which will be held
> at the very heart of the City of London. Join us to talk about Guix,
> Guile, Scheme & Lisp, and all things Free Software. Bring your laptop
> for some in-person hacking if you like - and your best collection of
> parentheses! :)
>
> Participants will need to be registered at the reception, so please RSVP
> asap with your details (your full name or, if you wish, a nickname—no
> further details are required).
>
> Location:
>
> c/o HubHub
> 20 Farringdon Street, EC4A 4AB, London
>
> Date/Time: Monday, September 25, 2023 from 6:00 PM to 8:30 PM
> Mobilizon page: 
> https://mobilizon.fr/events/552977a1-3398-47bf-a7c1-ee5afee211d9
>
> For any questions, please get in touch via any of the following
> channels:
>
> - Arun: arunis...@systemreboot.net
> - Fabio: m...@fabionatali.com and https://octodon.social/@fabionatali
> - Guix Devel mailing list: https://lists.gnu.org/mailman/listinfo/guix-devel/
>
> We look forward to seeing you!



October hybrid London Guix/Guile meetup

2023-10-13 Thread Arun Isaac


Hi all,

The next London Guix meetup is scheduled for Monday 23rd October, 6 pm
London time (i.e. UTC+0100) onward. 😃🤖🌈💻 Join us in person at 20
Farringdon Street, EC4A 4AB.

BIG NEWS 😃: If you like, you can join us remotely from anywhere on the
planet too, using the following link:

https://meet.jit.si/london-guix-meetup

As usual, we'll be talking about Guix, Guile, Scheme & Lisp, and all
things Free Software. If you have anything that you'd like to present or
discuss during the meetup you're welcome to let us know—but otherwise no
need for you to prepare anything or to have any previous knowledge. All
welcome!

If you register for the event, please indicate whether you'll be joining
in person and if so, please add your full name or a nickname, as we'll
need to register you at the reception.

Location:

c/o HubHub
20 Farringdon Street, EC4A 4AB, London

Date/Time: Monday, October 23, 2023 from 6 PM onwards
Mobilizon page: https://mobilizon.fr/events/170dac14-0897-46b1-8ee9-0058c82138ca

We look forward to seeing you!

Regards,
Arun



Re: October hybrid London Guix/Guile meetup

2023-10-22 Thread Arun Isaac


Hi all,

Just a reminder for the London Guix/Guile meetup tomorrow! Don't forget
that this is a hybrid meetup and you can join even if you are not in
London.

Online location: https://meet.jit.si/london-guix-meetup

Face-to-face location:

c/o HubHub
20 Farringdon Street, EC4A 4AB, London

Date/Time: Monday, October 23, 2023 from 6 pm onwards (UTC+0100)
Mobilizon page: https://mobilizon.fr/events/170dac14-0897-46b1-8ee9-0058c82138ca

Regards,
Arun



November online London Guix/Guile meetup

2023-11-14 Thread Arun Isaac


Hi All,

The next London Guix meetup is scheduled for Monday 20th November, 6 pm
London time (i.e. UTC) onward. 😃🤖🌈💻

This time the meetup will be fully online, at the link below.

https://meet.jit.si/london-guix-meetup

This is a great opportunity for people anywhere in the world to jump in!

As usual, we'll be talking about Guix, Guile, Scheme & Lisp, and all
things Free Software. If you have anything Guix-related that you'd like
to present or discuss during the meetup you're welcome to let us
know—but otherwise no need for you to prepare anything or to have any
previous knowledge of Guix. All welcome!

For any question, please get in touch via any of the following channels:

- Arun: arunis...@systemreboot.net
- Fabio: m...@fabionatali.com and https://octodon.social/@fabionatali
- Guix Devel mailing list: https://lists.gnu.org/mailman/listinfo/guix-devel/
- Mobilizon page: 
https://mobilizon.fr/events/87faa563-916e-4414-96b1-a69e9015ee97

We look forward to seeing you!

Regards,
Arun



December London Guix meetup

2023-12-04 Thread Arun Isaac


Hi all,

The next Guix London meetup is scheduled for Monday 11th December, 6 pm
London time (UTC) onward. 😃🤖🌈💻 Join us in person or online, address
and link below.

- In person, from 6:00 pm: 20 Farringdon St, EC4A 4AB
- Online, from 6:10 pm: https://meet.jit.si/london-guix-meetup

https://www.meetup.com/guix-london/events/297591582/

If you attend in person, please make sure you RSVP (either on meetup.com
or as an off-list reply to this mail) and share your full name (or a
nickname) so that we can register you at the building's reception.

The main part of the meetup will be a talk on G-expressions by Simon
Tournier. If you have any Guix or Guile related question or topic, there
should be time to talk about that too. All welcome!

# Agenda

- Kick-off (~5 mins): The meetup kicks off at 6:10 pm UTC (please arrive
  at 6:00 pm if you're attending in person, that gives us some leeway to
  sort access badges and other practicalities out) with a quick round of
  intros. If you like, you're welcome to briefly introduce yourself
  now. You're also welcome to jump on and off the call at any time.
  
- G-expressions, a talk by Simon Tournier (~30 mins + QA): Introduced in
  2021 as part of a significant refactoring, the "Big Change",
  G-expressions have become the regular tool for defining Guix
  packages. We will start with some Scheme core concepts such as
  quasiquote and unquote and then go to G-expressions. As an example, we
  will compute the Fibonacci sequence using G-expressions, derivations,
  and the Guix daemon.
  
- Open discussion (~30 mins): If you have any Guix related question or
  idea that you want to share with us, this is a great time to bring it
  up.

# Contact

For any question, please get in touch via any of the following channels:

- Arun: arunis...@systemreboot.net
- Fabio: m...@fabionatali.com and https://octodon.social/@fabionatali
- Guix Devel mailing list: https://lists.gnu.org/mailman/listinfo/guix-devel/

Guix London has no official ties with the Guix project. We commit to
promote the project and to always operate with the best intentions; any
mistake that we might make is due to us, Guix London, not the Guix
project.

# Code of conduct

We, Guix London's organisers, intend to create an open, friendly, and
safe environment where people from the most diverse backgrounds can get
together, learn about, teach, and discuss Guix and related topics in a
welcoming and constructive way.

To this end, Guix London adheres to the Guix project's official Code of
Conduct, as published at this link. Please make sure you familiarise
with the document and that you share its principles, before attending
our events.

Should you—at any time before, during, or after one of our events—want
to raise an issue or discuss any CoC-related topic, please do not
hesitate to reach out to the organisers at the contacts below.

- Arun Isaac, arunis...@systemreboot.net
- Fabio Natali, m...@fabionatali.com

# Get involved

Should you be interested in becoming a Guix London organiser, please let
us know. It'd be great to have you onboard. No previous Guix knowledge
is required. If you're interested (or simply want to know more), do not
hesitate to reach out to us!

Similarly, if you want to present on any Guix-related topic at one of
our events, that's also great. We'd love to hear from you.

Regards,
Arun



Re: cloning guile-picture-language returns 502

2023-12-05 Thread Arun Isaac


Hi Aleix,

These is Ricardo's (CCed) server. I have already told them about
it off-list. They are quite busy now, but they promised to fix this in
the second half of December or so.

Regards,
Arun



Re: December London Guix meetup

2023-12-10 Thread Arun Isaac


Hi all,

Just a gentle reminder for tomorrow's hybrid Guix meetup! See you all
tomorrow! :-)

Regards,
Arun

> The next Guix London meetup is scheduled for Monday 11th December, 6 pm
> London time (UTC) onward. 😃🤖🌈💻 Join us in person or online, address
> and link below.
>
> - In person, from 6:00 pm: 20 Farringdon St, EC4A 4AB
> - Online, from 6:10 pm: https://meet.jit.si/london-guix-meetup
>
> https://www.meetup.com/guix-london/events/297591582/
>
> If you attend in person, please make sure you RSVP (either on meetup.com
> or as an off-list reply to this mail) and share your full name (or a
> nickname) so that we can register you at the building's reception.
>
> The main part of the meetup will be a talk on G-expressions by Simon
> Tournier. If you have any Guix or Guile related question or topic, there
> should be time to talk about that too. All welcome!
>
> # Agenda
>
> - Kick-off (~5 mins): The meetup kicks off at 6:10 pm UTC (please arrive
>   at 6:00 pm if you're attending in person, that gives us some leeway to
>   sort access badges and other practicalities out) with a quick round of
>   intros. If you like, you're welcome to briefly introduce yourself
>   now. You're also welcome to jump on and off the call at any time.
>   
> - G-expressions, a talk by Simon Tournier (~30 mins + QA): Introduced in
>   2021 as part of a significant refactoring, the "Big Change",
>   G-expressions have become the regular tool for defining Guix
>   packages. We will start with some Scheme core concepts such as
>   quasiquote and unquote and then go to G-expressions. As an example, we
>   will compute the Fibonacci sequence using G-expressions, derivations,
>   and the Guix daemon.
>   
> - Open discussion (~30 mins): If you have any Guix related question or
>   idea that you want to share with us, this is a great time to bring it
>   up.
>
> # Contact
>
> For any question, please get in touch via any of the following channels:
>
> - Arun: arunis...@systemreboot.net
> - Fabio: m...@fabionatali.com and https://octodon.social/@fabionatali
> - Guix Devel mailing list: https://lists.gnu.org/mailman/listinfo/guix-devel/
>
> Guix London has no official ties with the Guix project. We commit to
> promote the project and to always operate with the best intentions; any
> mistake that we might make is due to us, Guix London, not the Guix
> project.
>
> # Code of conduct
>
> We, Guix London's organisers, intend to create an open, friendly, and
> safe environment where people from the most diverse backgrounds can get
> together, learn about, teach, and discuss Guix and related topics in a
> welcoming and constructive way.
>
> To this end, Guix London adheres to the Guix project's official Code of
> Conduct, as published at this link. Please make sure you familiarise
> with the document and that you share its principles, before attending
> our events.
>
> Should you—at any time before, during, or after one of our events—want
> to raise an issue or discuss any CoC-related topic, please do not
> hesitate to reach out to the organisers at the contacts below.
>
> - Arun Isaac, arunis...@systemreboot.net
> - Fabio Natali, m...@fabionatali.com
>
> # Get involved
>
> Should you be interested in becoming a Guix London organiser, please let
> us know. It'd be great to have you onboard. No previous Guix knowledge
> is required. If you're interested (or simply want to know more), do not
> hesitate to reach out to us!
>
> Similarly, if you want to present on any Guix-related topic at one of
> our events, that's also great. We'd love to hear from you.



January hybrid Guix London meetup

2024-01-09 Thread Arun Isaac


Hi all,

The next Guix London meetup is scheduled for Monday 15th January, 6 pm
London time (i.e. UTC) onward. Join us in person or online, address and
link below.

- In person, from 6:00 pm: 20 Farringdon St, EC4A 4AB
- Online, from 6:10 pm: https://meet.jit.si/london-guix-meetup
- https://www.meetup.com/guix-london/events/298422197/

If you attend in person, please make sure you RSVP and share your full
name (or a nickname) so that we can register you at the building's
reception.

The main part of the meetup will be an introduction to the guix-forge
project. If you have any Guix or Guile related question or topic, there
should be time to talk about that too. All welcome! Talk abstract
follows.

--8<---cut here---start->8---
# Self-hosting and autonomy using guix-forge

As free software programmers, whether we like it or not, we often host
our projects on large centralized and proprietary software forges such
as GitHub. In theory, it is perfectly possible to host our own forges
using free software such as GitLab, Gitea, etc. But, life is short, and
setup and maintenance of these services is more work than it seems at
first.

GNU Guix is well-known as a package manager, for the high quality of its
packages, and for the strong reproducibility guarantees it
provides. But, it is much less appreciated for its services, system
definitions and deployment features. That's such a shame since these
features can let you summon and dismiss entire systems at will—be they
bare-metal or virtualized—with nothing but a declarative plain text
configuration file.

In this talk, Arun will speak about guix-forge, a Guix channel that
provides Guix services for easy setup and maintenance of a software
forge. guix-forge uses existing free software such as cgit and/or klaus
for serving git repositories on the web, laminar and webhook for
continuous integration, uacme for managing TLS certificates, etc.
--8<---cut here---end--->8---

QA (on guix-forge) and open discussion (on anything Guix related) after
the talk.

Guix London has no official ties with the Guix project. We commit to
promote the project and to always operate with the best intentions; any
mistake that we might make is due to us, Guix London, not the Guix
project.

# Code of conduct

We, Guix London's organisers, intend to create an open, friendly, and
safe environment where people from the most diverse backgrounds can get
together, learn about, teach, and discuss Guix and related topics in a
welcoming and constructive way.

To this end, Guix London adheres to the Guix project's official Code of
Conduct, as published at this link. Please make sure you familiarise
with the document and that you share its principles, before attending
our events.

Should you—at any time before, during, or after one of our events— want
to raise an issue or discuss any CoC-related topic, please do not
hesitate to reach out to the organisers at the contacts below.

- Arun Isaac, arunis...@systemreboot.net
- Fabio Natali, m...@fabionatali.com

# Get involved

Should you be interested in becoming a Guix London organiser, please let
us know. It'd be great to have you onboard. No previous Guix knowledge
is required. If you're interested (or simply want to know more), do not
hesitate to reach out to us!

Similarly, if you want to present on any Guix-related topic at one of
our events, that's also great. We'd love to hear from you.

Cheers!
Arun



Re: January hybrid Guix London meetup

2024-01-15 Thread Arun Isaac


Hi all,

Just a gentle reminder for today's meetup! Details below.

Regards,
Arun

> Hi all,
>
> The next Guix London meetup is scheduled for Monday 15th January, 6 pm
> London time (i.e. UTC) onward. Join us in person or online, address and
> link below.
>
> - In person, from 6:00 pm: 20 Farringdon St, EC4A 4AB
> - Online, from 6:10 pm: https://meet.jit.si/london-guix-meetup
> - https://www.meetup.com/guix-london/events/298422197/
>
> If you attend in person, please make sure you RSVP and share your full
> name (or a nickname) so that we can register you at the building's
> reception.
>
> The main part of the meetup will be an introduction to the guix-forge
> project. If you have any Guix or Guile related question or topic, there
> should be time to talk about that too. All welcome! Talk abstract
> follows.
>
> --8<---cut here---start->8---
> # Self-hosting and autonomy using guix-forge
>
> As free software programmers, whether we like it or not, we often host
> our projects on large centralized and proprietary software forges such
> as GitHub. In theory, it is perfectly possible to host our own forges
> using free software such as GitLab, Gitea, etc. But, life is short, and
> setup and maintenance of these services is more work than it seems at
> first.
>
> GNU Guix is well-known as a package manager, for the high quality of its
> packages, and for the strong reproducibility guarantees it
> provides. But, it is much less appreciated for its services, system
> definitions and deployment features. That's such a shame since these
> features can let you summon and dismiss entire systems at will—be they
> bare-metal or virtualized—with nothing but a declarative plain text
> configuration file.
>
> In this talk, Arun will speak about guix-forge, a Guix channel that
> provides Guix services for easy setup and maintenance of a software
> forge. guix-forge uses existing free software such as cgit and/or klaus
> for serving git repositories on the web, laminar and webhook for
> continuous integration, uacme for managing TLS certificates, etc.
> --8<---cut here---end--->8---
>
> QA (on guix-forge) and open discussion (on anything Guix related) after
> the talk.
>
> Guix London has no official ties with the Guix project. We commit to
> promote the project and to always operate with the best intentions; any
> mistake that we might make is due to us, Guix London, not the Guix
> project.
>
> # Code of conduct
>
> We, Guix London's organisers, intend to create an open, friendly, and
> safe environment where people from the most diverse backgrounds can get
> together, learn about, teach, and discuss Guix and related topics in a
> welcoming and constructive way.
>
> To this end, Guix London adheres to the Guix project's official Code of
> Conduct, as published at this link. Please make sure you familiarise
> with the document and that you share its principles, before attending
> our events.
>
> Should you—at any time before, during, or after one of our events— want
> to raise an issue or discuss any CoC-related topic, please do not
> hesitate to reach out to the organisers at the contacts below.
>
> - Arun Isaac, arunis...@systemreboot.net
> - Fabio Natali, m...@fabionatali.com
>
> # Get involved
>
> Should you be interested in becoming a Guix London organiser, please let
> us know. It'd be great to have you onboard. No previous Guix knowledge
> is required. If you're interested (or simply want to know more), do not
> hesitate to reach out to us!
>
> Similarly, if you want to present on any Guix-related topic at one of
> our events, that's also great. We'd love to hear from you.
>
> Cheers!
> Arun



February hybrid Guix London meetup

2024-02-13 Thread Arun Isaac


Hi all,

The next Guix London meetup is scheduled for Monday 19th February, 6 pm
London time (i.e. UTC) onward. Join us in person or online. Address and
link are below.

- In person, from 6:00 pm: 20 Farringdon Street, EC4A 4AB
- Online, from 6:10 pm: https://meet.jit.si/london-guix-meetup

If you attend in person, please make sure you RSVP and share your full
name (or a nickname) so that we can register you at the building's
reception.

The main part of the meetup will be a talk on how to create custom Guix
packages or package variants, by Steve George a.k.a. Futurile. If you
have any Guix or Guile related question or topic, there should be the
time to talk about that too. All welcome! Talk abstract follows.

--8<---cut here---start->8---
Guix Packaging: creating local package variants simply!

Just like Gentoo or Arch Linux, every package in Guix is
source-available, and can be built by the user. In this entry level talk
we'll look at how to customise Guix packages. Guix radically simplifies
the steps to building our own packages through its declarative and
functional approach. This makes building our own package variants very
accessible—opening up the possibilities for a user to:

- Keep applications up to the latest versions
- Try out upstream development versions
- Patch applications to add features
- Tune applications to their hardware

In this talk, Steve will share examples and introduce how to use Guix's
programming interface for package building. We'll also contextualise
where these capabilities sit in the journey of learning to package and
contribute packages to Guix.
--8<---cut here---end--->8---

# About

For any question, please get in touch via any of the following channels:

- Arun: arunis...@systemreboot.net
- Fabio: m...@fabionatali.com and https://octodon.social/@fabionatali
- Guix Devel mailing list: https://lists.gnu.org/mailman/listinfo/guix-devel/

Guix London has no official ties with the Guix project. We commit to
promote the project and to always operate with the best intentions; any
mistake that we might make is due to us, Guix London, not the Guix
project.

# Code of conduct

We, Guix London's organisers, intend to create an open, friendly, and
safe environment where people from the most diverse backgrounds can get
together, learn about, teach, and discuss Guix and related topics in a
welcoming and constructive way.

To this end, Guix London adheres to the Guix project's official Code of
Conduct. Please make sure you familiarise with the document and that you
share its principles before attending our events.

Should you at any time before, during, or after one of our events want
to raise an issue or discuss any CoC-related topic, please do not
hesitate to reach out to the organisers at the contacts below.

- Arun Isaac, arunis...@systemreboot.net
- Fabio Natali, m...@fabionatali.com

# Get involved

Should you be interested in becoming a Guix London organiser, please let
us know. It'd be great to have you onboard. No previous Guix knowledge
is required. If you're interested (or simply want to know more), do not
hesitate to reach out to us!

Similarly, if you want to present on any Guix-related topic at one of
our events, that's also great. We'd love to hear from you.

Regards,
Arun



Re: February hybrid Guix London meetup

2024-02-18 Thread Arun Isaac


Hi all,

Just a quick reminder for the February hybrid Guix London meetup later
today.

See you soon!

> Hi all,
>
> The next Guix London meetup is scheduled for Monday 19th February, 6 pm
> London time (i.e. UTC) onward. Join us in person or online. Address and
> link are below.
>
> - In person, from 6:00 pm: 20 Farringdon Street, EC4A 4AB
> - Online, from 6:10 pm: https://meet.jit.si/london-guix-meetup
>
> If you attend in person, please make sure you RSVP and share your full
> name (or a nickname) so that we can register you at the building's
> reception.
>
> The main part of the meetup will be a talk on how to create custom Guix
> packages or package variants, by Steve George a.k.a. Futurile. If you
> have any Guix or Guile related question or topic, there should be the
> time to talk about that too. All welcome! Talk abstract follows.
>
> --8<---cut here---start->8---
> Guix Packaging: creating local package variants simply!
>
> Just like Gentoo or Arch Linux, every package in Guix is
> source-available, and can be built by the user. In this entry level talk
> we'll look at how to customise Guix packages. Guix radically simplifies
> the steps to building our own packages through its declarative and
> functional approach. This makes building our own package variants very
> accessible—opening up the possibilities for a user to:
>
> - Keep applications up to the latest versions
> - Try out upstream development versions
> - Patch applications to add features
> - Tune applications to their hardware
>
> In this talk, Steve will share examples and introduce how to use Guix's
> programming interface for package building. We'll also contextualise
> where these capabilities sit in the journey of learning to package and
> contribute packages to Guix.
> --8<---cut here---end--->8---
>
> # About
>
> For any question, please get in touch via any of the following channels:
>
> - Arun: arunis...@systemreboot.net
> - Fabio: m...@fabionatali.com and https://octodon.social/@fabionatali
> - Guix Devel mailing list: https://lists.gnu.org/mailman/listinfo/guix-devel/
>
> Guix London has no official ties with the Guix project. We commit to
> promote the project and to always operate with the best intentions; any
> mistake that we might make is due to us, Guix London, not the Guix
> project.
>
> # Code of conduct
>
> We, Guix London's organisers, intend to create an open, friendly, and
> safe environment where people from the most diverse backgrounds can get
> together, learn about, teach, and discuss Guix and related topics in a
> welcoming and constructive way.
>
> To this end, Guix London adheres to the Guix project's official Code of
> Conduct. Please make sure you familiarise with the document and that you
> share its principles before attending our events.
>
> Should you at any time before, during, or after one of our events want
> to raise an issue or discuss any CoC-related topic, please do not
> hesitate to reach out to the organisers at the contacts below.
>
> - Arun Isaac, arunis...@systemreboot.net
> - Fabio Natali, m...@fabionatali.com
>
> # Get involved
>
> Should you be interested in becoming a Guix London organiser, please let
> us know. It'd be great to have you onboard. No previous Guix knowledge
> is required. If you're interested (or simply want to know more), do not
> hesitate to reach out to us!
>
> Similarly, if you want to present on any Guix-related topic at one of
> our events, that's also great. We'd love to hear from you.
>
> Regards,
> Arun



Re: Shelling

2024-04-19 Thread Arun Isaac


Hi Tom,

I do write my shell scripts in Guile. For added nicety, I usually deploy
these scripts using Guix's G-expressions. This lets you easily manage
the dependencies of that script, and deploy to remote machines
effortlessly. See
https://systemreboot.net/post/deploy-scripts-using-g-expressions for
more details if you're interested.

Here's a more complex example of a guile script:
https://issues.genenetwork.org/topics/deploy/uthsc-vpn-with-free-software
This script connects to a university VPN. The script couldn't have come
together so nicely without Guile or Guix. The complete script itself is
at https://issues.genenetwork.org/topics/deploy/uthsc-vpn.scm

Cheers!
Arun



guile-xapian 0.4.0 released

2024-05-10 Thread Arun Isaac


Hi all,

guile-xapian 0.4.0 has been released.

guile-xapian provides Guile bindings for Xapian[1], a search engine
library used in popular applications such as the notmuch email
system. Xapian is a highly adaptable toolkit which allows developers to
easily add advanced indexing and search facilities to their own
applications. It has built-in support for several families of weighting
models and also supports a rich set of boolean query operators.

[1]: https://xapian.org/

Please find links to the project home page and tarball below. The
changes in this release are described in the NEWS file in the tarball.

https://guile-xapian.systemreboot.net/
https://guile-xapian.systemreboot.net/releases/guile-xapian-0.4.0.tar.lz
https://guile-xapian.systemreboot.net/releases/guile-xapian-0.4.0.tar.lz.asc

Cheers!
Arun



Re: guile-xapian 0.4.0 released

2024-05-11 Thread Arun Isaac


Hi,

Thanks, Nala!

> I'm not familiar with Xapian, is it possible to do similar things as
> VectorDB?

I am not very familiar with VectorDB. From what I can tell, Xapian and
VectorDB seem to have similar application areas, but Xapian takes a lot
simpler and more traditional approach. You can find a description of the
theory behind Xapian at https://xapian.org/docs/intro_ir.html

Regards,
Arun



Re: guile-xapian 0.4.0 released

2024-05-21 Thread Arun Isaac


> It’s a motivation for resuming [1] as a Guix extension ;-)

Ah, I hadn't thought of xapian search as a Guix extension. Nice idea!
:-)



Re: guile-xapian 0.4.0 released

2024-05-21 Thread Arun Isaac


>> It’s a motivation for resuming [1] as a Guix extension ;-)
>
> Ah, I hadn't thought of xapian search as a Guix extension. Nice idea!
> :-)

I'm happy to mentor someone if they are interested in such a project.

> [1]: https://issues.guix.gnu.org/39258



Re: Guile-cairo tutorial

2024-08-13 Thread Arun Isaac


Hi Gerrit,

> I made a translation to guile/scheme.
> https://gdraisma.home.xs4all.nl/cairo/
>
> Would that be of interest still?

Yes, definitely! I've always wanted to try out guile-cairo, but was put
off by having to read the C tutorial. Having a Guile version with
working examples is extremely useful. Thank you!

Regards,
Arun



Re: Qtile package

2024-09-15 Thread Arun Isaac


Hi Aarush,

You should really report this to bug-g...@gnu.org since this pertains to
the Guix project, not Guile.

If you are interested, you could also contribute a patch that fixes the
qtile package. Things will move faster that way.

Thanks,
Arun



C++ Foreign Function Interface

2016-03-10 Thread Arun Isaac
Hi,

Is there any foreign function interface for C++ shared libraries in
Guile? Can I somehow use the C FFI for this? Is there any documentation
for this?

Thanks,
Arun Isaac.


signature.asc
Description: PGP signature


Re: C++ Foreign Function Interface

2016-03-11 Thread Arun Isaac

Chris Vine  writes:

> If you want to link with a C++ library when using libguile (and, say,
> want to make functions in the library accessible to scheme code using
> scm_c_define_gsubr()), then you need to declare interface functions as
> extern "C" so they have C language linkage.  That will amongst other
> things suppress name mangling and make sure the correct calling
> convention is used.  The same applies if you are planning to use, say,
> pointer->procedure.

I'm trying to use the GNU Radio library (written in C++) from scheme.
While I can't really modify the library itself, I can wrap functions I
need in C, and then call them using Guile's C FFI. I'll do that.

Hans Åberg  writes:

> You will have to write it yourself. It has been discussed before on
> this list [1].

In one of the messages in the earlier thread, I found a link to
https://isocpp.org/wiki/faq/mixing-c-and-cpp

That page gives me some idea of how I can write C wrappers for my C++
library.



signature.asc
Description: PGP signature


Re: C++ Foreign Function Interface

2016-03-14 Thread Arun Isaac
Hans Åberg  writes:

> When calling C++ from C, you can’t pass a C++ exception through the C
> code. So in my example code, there are conversions between C++ and
> Guile exceptions.

Yeah, this was the discussion in the other thread you linked
to. Unfortunately, I don't know anything about C++ exceptions, and hence
didn't understand what your code was doing. Can any of this be
integrated into guile itself, so that C++ FFI will be easier for the end
programmer?

David Pirotte  writes:

> May be this will interest you:
>   https://github.com/BSeppke/vigra_c/

This is useful too. Thanks!



signature.asc
Description: PGP signature


Re: How to make GNU Guile more successful

2017-07-17 Thread Arun Isaac

Jan Wedekind writes:

> I am trying to do something like that (github.com/wedesoft/aiscm) but
> I am doing it in my spare time only.

Just hearing about aiscm. I was looking for something like this. Thank
you!



Anaphoric macros like when-let

2017-08-26 Thread Arun Isaac

Is there a Scheme or Guile equivalent to Emacs Lisp's `when-let' ?

Basically, I'm looking for a shorthand to express this:

(let ((x (foo))
  (when x
(bar x

as this:

(when-let (x (foo))
  (bar x))



Re: Anaphoric macros like when-let

2017-08-27 Thread Arun Isaac

Thank you, Kyle and Matt!



Re: Anaphoric macros like when-let

2017-08-28 Thread Arun Isaac

Mark H Weaver writes:

> mention that 'when-let' is not actually an anaphoric macro.  Anaphoric
> macros are those that introduce a binding that is not named by the
> user, e.g. 'it', which is called an anaphor.

Yes, you're right, of course! aif, awhen, etc. are the anaphoric
macros. I switched to if-let, when-let, etc. when they became available
in emacs lisp, and somehow wrongly continued to call them anaphoric
macros.



Re: Introduction

2018-07-11 Thread Arun Isaac


> Hello all, just a brief introduction. I have been in the Guile IRC group 
> for a few weeks now and have been schemeing for a bit longer than that. 
> I am happy to join you all.

Welcome to the Guile community, Brett. Nice to have you here! :-)



Re: How to write documentation comments for procedures?

2018-08-06 Thread Arun Isaac


> However, when I have a longer explanation for a procedure, longer than a
> single line of certain length, then the line will softly wrap in editors
> and the explanation will continue on the next line at the beginning
> usually.

In emacs, I find `fill-paragraph' (default keybinding of M-q) to be very
useful for wrapping long lines.



Re: How to write documentation comments for procedures?

2018-08-06 Thread Arun Isaac


> It still makes the second and later lines not indented though
> (starting at position 0, while the first line is indented, not
> starting at 0).

Looking at the guile source code, the lack of indentation in the second
and later lines seems to be the convention. So, I don't think this is a
problem. Something like the following is fine.

(define (foo arg)
  "This is the first line.
This is the second line."
  #t)



Re: guile-user Digest, Vol 189, Issue 4

2018-08-07 Thread Arun Isaac


> I did not know the procedure-documentation procedure. I guess I'll go
> with the one long docstring which has line breaks style then. This
> will also be easiest to write using that fill-paragraph shortcut.

Just one more minor addition. You can break up the docstring into
paragraphs as well. You don't have to keep the entire docstring as a
single paragraph. Breaking up a large docstring into paragraphs helps
readability. You can find many examples of this in the guile source
code.



Re: a small example of a REPL server

2018-11-28 Thread Arun Isaac
Catonano  writes:

> Could anyone write a small example of a REPL server for me ?

Is the following what you are looking for?

(use-modules (system repl server))
(run-server (make-tcp-server-socket))

The above code runs a REPL listening on the default port 37146 of
localhost.



Re: Help evaluating in the context of another module

2025-02-23 Thread Arun Isaac


Hi Nicolas,

> (save-module-excursion
>   (lambda ()
> (set-current-module (resolve-module '(guix scripts pull)))
> (reload-module (current-module))
> (display %options)))

Sorry, my answer wasn't very helpful. I guess it refers to %options from
the top level rather than from (guix scripts pull). I am not immediately
able to think of a different approach, though. For some reason, even (@@
(guix scripts pull) %options) doesn't seem to work for me.

> This snippet displays %options of (guix scripts pull):
> (eval
>  `(begin
> (reload-module (current-module))
> (display %options))
>  (resolve-module '(guix scripts pull) #:ensure #f))
>
> But I guess at this point they almost have the same length/readability
> already.

I guess so.

Regards,
Arun



Re: Help evaluating in the context of another module

2025-02-20 Thread Arun Isaac


Hi Nicolas,

How about the following?

(save-module-excursion
 (lambda ()
   (set-current-module (resolve-module '(guix scripts pull)))
   (your-code-here)))

Regards,
Arun