unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* There is no SCAN (introducing Compan)
@ 2016-09-18  7:38 Panicz Maciej Godek
  2016-09-18 14:17 ` Pascal J. Bourguignon
  2016-09-23 13:11 ` Amirouche Boubekki
  0 siblings, 2 replies; 4+ messages in thread
From: Panicz Maciej Godek @ 2016-09-18  7:38 UTC (permalink / raw)
  To: guile-user@gnu.org

Probably everybody's heard about the Comprehensive Perl Archive Network, or
CPAN. From the pragmatic standpoint, it seems to be adding a lot of value
to the programming system, because it allows to avoid reinventing the
wheel, and many popular programming systems manage to develop their
counterparts of CPAN.

However, it seems that while there are similar repositories around some
Scheme implementations (e.g. Chicken), and there have been some attempts to
inceive that idea to Guile (vide guildhall) and to Scheme in general (vide
Scheme NOW, or SNOW), they didn't seem to succeed -- such thing as Scheme
Comprehensive Archive Network doesn't exist.

My guess is that the reason for that is that the Scheme culture and the
Scheme programmers often focus on understanding, and they often prefer to
create their own libraries (or even language implementations) rather than
re-use existing ones. Therefore the idea of a centralized repository
doesn't go well with Scheme, just as the idea of a "single/main
implementation" fails to work.

However, presently there's plenty of decentralized repositories and their
servers available on the Internet, like Github or Bitbucket, and chances
are that many people keep their modules there (I do).

Therefore, I wrote Compan, which is meant to be a "Community Package
Manager" for Guile.

In short, it allows to load modules from remote repositories. Once you
(use-modules (compan)), provided that all the prerequisites are satisfied,
you can use the "load-modules" macro, that clones the desired repository,
adjusts load paths and imports the appropriate modules -- for example:

(load-modules ("https://bitbucket.org/panicz/dogma" (lib)))

The (compan) module is around 100 lines of Guile code (GPL3) that can be
found here:
https://github.com/panicz/compan

(but I'd love to see a similar functionality present in the Guile's core
module system one day)

Happy hacking,
Panicz


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-09-23 13:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-18  7:38 There is no SCAN (introducing Compan) Panicz Maciej Godek
2016-09-18 14:17 ` Pascal J. Bourguignon
2016-09-18 18:41   ` Panicz Maciej Godek
2016-09-23 13:11 ` Amirouche Boubekki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).