Actions

Difference between revisions of "Black Hole"

From Gambit wiki

 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''Black Hole''' is a module system for the [[Documentation|Gambit Scheme system]].
+
'''Black Hole''' (“BH”) is a module system abstraction for [[Documentation|Gambit]] providing recurring module file dependency compilation and loading, including export of macros, for regular R5RS Scheme.
 
 
Black Hole (from now and on addressed as ”BH”) enables Gambit with robust functionality for incremental software development, and thus enables Gambit for the development of large software projects.
 
 
 
BH is completely R5RS compliant, and any R5RS Scheme code can be taken into use within BH without any modifications.
 
  
 
Read further in the Introduction section of the documentation, found below.
 
Read further in the Introduction section of the documentation, found below.
Line 10: Line 6:
 
Its latest version is avilable via GIT, and can be downloaded using [http://www.git-scm.org GIT] by
 
Its latest version is avilable via GIT, and can be downloaded using [http://www.git-scm.org GIT] by
  
:<nowiki>git clone http://mwaza.dyndns.org/apps/files/modules.git</nowiki>
+
:<nowiki>git clone git://github.com/pereckerdal/blackhole.git</nowiki>
  
or via repo.or.cz mirror
+
There are also some libraries for Black Hole at
  
:<nowiki>git clone git://repo.or.cz/blackhole.git</nowiki>
+
:<nowiki>git clone git://github.com/pereckerdal/blackhole-libs.git</nowiki>
 +
 
 +
or non-automatically, probably very old copy [[media:Black_Hole.zip|here]].
 +
 
 +
Make sure you put the blackhole-libs into a directory called "std" in ~~/lib/modules
  
 
== Documentation ==  
 
== Documentation ==  
Is available in [[media:Black_Hole_Documentation.pdf|PDF]], [[media:Black_Hole_Documentation.pdf|HTML]], [[media:Black_Hole_Documentation.odf|OpenOffice]] and [[media:Black_Hole_Documentation.doc|Microsoft Word]] versions. [Note: These links are broken. At the moment, the best documentation available can be found at http://mwaza.dyndns.org/apps/files/bh-tutorial.html]
+
 
 +
Core documentation (2009): [[media:Black_Hole_Core.pdf|PDF]], [[media:Black_Hole_Core.odf|OpenOffice]] and [[media:Black_Hole_Core.doc|Microsoft Word]]
 +
 
 +
Bundled libraries documentation (2009): [[media:Black_Hole_Bundled_libraries.pdf|PDF]], [[media:Black_Hole_Bundled_libraries.odf|OpenOffice]] and [[media:Black_Hole_Bundled_libraries.doc|Microsoft Word]]
 +
 
 +
(The tutorial for the alpha release is no longer available. The old site http://mwaza.dyndns.org/apps/files/bh-tutorial.html is now offline.)
 +
 
 +
There is a setup guide by Mikael for Black Hole from nov. 2012: https://mercure.iro.umontreal.ca/pipermail/gambit-list/2012-November/006188.html
  
 
== Bundled libraries ==
 
== Bundled libraries ==
BH is bundled with a set of standard libraries, that serve a general purpose in Scheme software development. Please note however that BH in itself is completely independent of the bundled libraries, and can be separated from them without any modifications.
+
BH is bundled with a set of general purpose libraries, including:
  
The bundled libraries include:
+
*SRFI 1 (list processing), 13 (string), 14 (character sets), 16 (case-lambda support), 19 (time data types and procedures), 95 (sorting) and MORE (check the repository)
*SRFI 1 (list processing), 13 (string), 14 (character sets), 16 (case-lambda support), 19 (time data types and procedures), 95 (sorting)
 
 
*pregexp, hash digestion, base64 handling, UUID generator
 
*pregexp, hash digestion, base64 handling, UUID generator
 
*HTTP client, server, URI and session variable handling
 
*HTTP client, server, URI and session variable handling
Line 30: Line 36:
 
*String, u8vector, list, exception handling helper libraries
 
*String, u8vector, list, exception handling helper libraries
 
*let-optionals support
 
*let-optionals support
 +
 +
BH's core is completely independent of the bundled libraries, and can be separated from them without any modifications.
  
 
See the documentation for more information.
 
See the documentation for more information.
Line 35: Line 43:
 
== Additional libraries ==
 
== Additional libraries ==
 
Termite: A version suited for usage in Black Hole is found at GitHub, http://github.com/pereckerdal/termite/tree/master.
 
Termite: A version suited for usage in Black Hole is found at GitHub, http://github.com/pereckerdal/termite/tree/master.
 +
 +
Blackhole-web:  More extensions to BlackHole for use as a web framework are here:
 +
http://github.com/jonnay/Blackhole-web.  Currently it is just a copy of SSAX-SXML, but more are planned.  Check the Blackhole-web.org file for more information on what is to be done, and what is planned.

Latest revision as of 23:32, 3 October 2013

Black Hole (“BH”) is a module system abstraction for Gambit providing recurring module file dependency compilation and loading, including export of macros, for regular R5RS Scheme.

Read further in the Introduction section of the documentation, found below.

Download

Its latest version is avilable via GIT, and can be downloaded using GIT by

git clone git://github.com/pereckerdal/blackhole.git

There are also some libraries for Black Hole at

git clone git://github.com/pereckerdal/blackhole-libs.git

or non-automatically, probably very old copy here.

Make sure you put the blackhole-libs into a directory called "std" in ~~/lib/modules

Documentation

Core documentation (2009): PDF, OpenOffice and Microsoft Word

Bundled libraries documentation (2009): PDF, OpenOffice and Microsoft Word

(The tutorial for the alpha release is no longer available. The old site http://mwaza.dyndns.org/apps/files/bh-tutorial.html is now offline.)

There is a setup guide by Mikael for Black Hole from nov. 2012: https://mercure.iro.umontreal.ca/pipermail/gambit-list/2012-November/006188.html

Bundled libraries

BH is bundled with a set of general purpose libraries, including:

  • SRFI 1 (list processing), 13 (string), 14 (character sets), 16 (case-lambda support), 19 (time data types and procedures), 95 (sorting) and MORE (check the repository)
  • pregexp, hash digestion, base64 handling, UUID generator
  • HTTP client, server, URI and session variable handling
  • XML<->SXML routines
  • FIFO queue, mailbox, weight balanced tree, erlang-style list matcher
  • String, u8vector, list, exception handling helper libraries
  • let-optionals support

BH's core is completely independent of the bundled libraries, and can be separated from them without any modifications.

See the documentation for more information.

Additional libraries

Termite: A version suited for usage in Black Hole is found at GitHub, http://github.com/pereckerdal/termite/tree/master.

Blackhole-web: More extensions to BlackHole for use as a web framework are here: http://github.com/jonnay/Blackhole-web. Currently it is just a copy of SSAX-SXML, but more are planned. Check the Blackhole-web.org file for more information on what is to be done, and what is planned.