Discussion:
Grip 0.2.0 is released
David Pirotte
2018-06-18 02:39:00 UTC
Permalink
Hello,

Grip 0.2.0 is released.


* About

Grip, a Grip of Really Important Procedures, is a Guile Scheme toolbox
currently composed of Grip itself, Grip-SQLite, Grip-Gnome and
Grip-Clutter.

Notes:

Grip will try to install all its components, but will only do so
if it can effectively install Grip (core) and can statisfy the
component specific requirement(s): if you are only interested by
Grip (core), then you only need Guile, and you may safely ignore
all other dependencies.

Grip (core), Grip-SQLite and Grip-Gnome are being rewritten and
documented, you will spot that by yourself in the code if you
visit it, and read the documentation.

Until this process is complete, the modules you can safely use
and rely on are the Grip (core) modules that are documented, as
well as all Grip-Clutter modules and examples.

You are welcome to try and use Grip, and, keeping the above in mind,
help us to get it better - reviewing its interface design, the source
code, its tests and documentation.

New features are also welcome! Though in order to acheive stability, to
the best we can, we should, with all due respect and kindness, be
'nit-picky' with each other, and only include those that reach a
consensus, first with respect to their inclusion per se, then in terms
of interface design, implementation, tests and documentation.

http://www.nongnu.org/grip/index.html

* Download

Here are the compressed sources and a GPG detached signature [*]:

http://download.savannah.nongnu.org/releases/grip/grip-0.2.0.tar.gz
http://download.savannah.nongnu.org/releases/grip/grip-0.2.0.tar.gz.sig

This released was bootstrapped with the following tools:

-] autoconf (GNU Autoconf) 2.69
-] automake (GNU automake) 1.15.1
-] makeinfo (GNU texinfo) 6.5
-] pdflatex 3.14159265-2.6-1.40.19 (TeX Live 2018/Debian)
-] guile-2.2 2.2.3.22-c811-dirty
-] guile-lib-1.0 0.2.5.1
-] sqlite3 3.24.0
-] guile-gnome-gtk-2 2.16.5
-] guile-clutter-1.0 1.12.2.1

* Changes since 0.1.2

Here is a summary of the changes since version 0.1.2. See Grip's git
summary [1] and git log 2] for a complete description.

[1] http://git.savannah.gnu.org/cgit/grip.git/
[2] http://git.savannah.gnu.org/cgit/grip.git/log

** Installation location changes

The default and --prefix installation locations for source modules and
compiled files has been changed, and, in the absence of the new
configure option described below, are now:

$(datadir)/grip
$(libdir)/grip/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache

In the above, $(datadir) is substituted to the default /usr/local/share
or /your/prefix/share and $(libdir) is substituted to /usr/local/lib or
/your/prefix/lib, when/if --prefix was passed.

$(GUILE_EFFECTIVE_VERSION) is substituted to the stable version number
with which Grip is being compile, for example, 2.2

This change makes Grip compatible with the GNU Coding Standards, but it
also implies that, unless you use the new configure option describe
below, you will have to augment both Guile's variables %load-path and
%load-compiled-path, respectively, with the two (substituted) paths
described above, so that Guile finds Grip's installed source modules and
compiled files (see Grip's installation 'Notes' for more on this).

** New configure option

The configure option --with-guile-site has been added, used to
explicitly ask Grip's source modules and compiled files to be installed
using Guile's global site and site-ccache directories respectively (see
Grip's installation 'Notes' for more on this).

It will only be honored if (and only if) it is passed as:

--with-guile-site=yes

[ in this case, there is obviously no need to augment Guile's
[ variables %load-path and %load-compiled-path

** Module name changes

A few modules were having their name using plural, such as dates,
strings, ... I decided to rename these using singular. A few have been
renamed, such as fs-ops -> file. Here is list of these changes:

| New name | Previous name |
|----------------------+------------------------|
| (grip module) | (grip reexport) |
| (grip optargs) | (grip keywords) |
| (grip date) | (grip dates) |
| (grip file) | (grip fs-ops) |
| (grip list) | (grip lists) |
| (grip regex) | (grip regexp) |
| (grip string) | (grip strings) |
| (grip latex) | (grip tex-utils) |
| (grip queue) | (grip push) |
| (grip iter) | (grip do) |
| (grip angle) | (grip nbs pi) |
| (grip float) | (grip nbs fp) |
| (grip number hex) | (grip nbs hex) |
| (grip number nb2str) | (grip nbs nb2str) |
| (grip number str2nb) | (grip nbs str2nb) |
| (grip number) | (grip nbs) |
| (grip gnome color) | (grip gnome colours) |
| (grip gnome mdialog) | (grip gnome mdialogs) |
| (grip clutter color) | (grip clutter colours) |
| (grip db filter) | (grip db filters) |

** New modules

(grip store)

** Interfaces changes

The following procedures have been renamed, and their interface has
sometimes also changed (see the reference manual, also available
online):

*** (grip optargs)

split-keyword-args

both the two arguments and the two returned values have been inverted:
the first returned value is now the list of keyword arguments listed
in KEYWORDS (which is now the first argument of the procedure),
followed by the list of all other arguments.

*** (grip list)

| New name | Previous name |
|------------------+---------------|
| list-replace-all | list-replace |


*** (grip string)

| New name | Previous name |
|------------------------+----------------------|
| string-replace-all | str/replace-all |
| string-escape-sql | str/prep-str-for-sql |
| string-escape-filename | str/prep-str-for-fs |
| string-tokens | str/get-tokens |
| string-contains-ixs | str/contains? |
| string-span | str/span |
| string-read | str/read |

*** (grip float)

| New name | Previous name |
|-------------+---------------|
| float-zero? | fp/zero? |
| float=? | fp/=? |
| float<? | fp/<? |
| float>? | fp/>? |
| float-round | fp/round |

** New interfaces

*** (grip goops)

define-method*

*** (grip optargs)

strip-keyword-args

*** (grip string)

string-delete-all
string-escape
string-contains-ci-ixs

*** (grip store)

<store>
get
ref
set-!
remove!
inventory
init!
load!
save
store-inventory?

*** (grip angle)

radian->degree
degree->radian

*** (grip float)

float<=?
float>=?
float-member

** New variables

*** (grip string)

%filename-reserved-chars

** Documentation

Till now, Grip documentation was just a mock-up. There still is quite a
lot to do - along with reviewing/rewriting grip's modules) - but the
good news are I started to work on it.

The following modules are now fully documented:

(grip module)
(grip goops)
(grip optargs)
(grip list)
(grip string)
(grip queue)
(grip store)
(grip iter)
(grip angle)
(grip float)
(grip server)
(grip xft)
(grip utils)

The reference manual is now available online.

** Bugs fixed

There was a bug in str/replace-all, that would produce wrong results if
the str argument would contain valid regexp characters. This has been
fixed in string-replace-all.


* Bug reports

Please send Grip bug reports to one of the following addresses:

guile-***@gnu.org
guile-***@gnu.org

Please use 'Grip - bug report: ' to preceed the subject line of Grip bug
reports related emails, thanks!

* Mailing lists

For the time being, Grip uses Guile's mailing list:

guile-***@gnu.org is for general user help and discussion;

guile-***@gnu.org is used to discuss most aspects of Grip, including
development and enhancement requests.

Please use 'Grip: ' to preceed the subject line of Grip related emails,
thanks!

David


[*] 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 grip-0.2.0.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 A3057AD7

and rerun the 'gpg --verify' command

Loading...