# ;; -*- mode: org; coding: utf-8 -*-

#+TITLE: Grip NEWS

#+BEGIN_COMMENT

Copyright (C) 2011 - 2018
David Pirotte <david at altosw dot be>

This document is part of Grip.

Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice
and this notice are preserved.  This file is offered as-is, without any
warranty.

#+END_COMMENT


                 Grip - History of user-visible changes
                 ======================================

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

                           guile-user@gnu.org
                          guile-devel@gnu.org

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


* Latest News

** June 2018

Grip version 0.2.0 is released

*** Changes since 0.1.2

Here is a summary of the changes since version 0.1.2. See Grip's
[[http://git.savannah.gnu.org/cgit/grip.git/][git summary]] and [[http://git.savannah.gnu.org/cgit/grip.git/log][git log]] for a complete description.

**** 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.


* Older News

** March 2018

Grip version 0.1.2 is released

*** Changes since 0.1.1

Here is a summary of the changes since version 0.1.1. See Grip's
[[http://git.savannah.gnu.org/cgit/grip.git/][git summary]] and [[http://git.savannah.gnu.org/cgit/grip.git/log][git log]] for a complete description.

Dependencies
------------

	- Guile >= 2.0.14
	- Guile-Gnome >= 2.16.5

Grip-Gnome
Grip-Clutter
------------

  Guile-2.2 does not query (default-duplicate-binding-handler) at module
  expand eval load time as it did for Guile-2.0, a bad decision imo, but
  we have to cope with it, and declare #:dulicates (merge-generics ...)
  in each individual module instead, and remove our patched version of
  guild.

  All getters, setters, accessors and methods exported using g-export
  not as part of the module #:export declarations - which re-export
  defined names (and precisely should only be used for getters, setters,
  accessors and methods.

Bugs fixed
----------

	- The configure step was raising an exception if it could not
      find guile-gnome, but it should not, it should just not install
      grip-gnome in this case: this is fixed now.

** 29 Feb 2016

Grip version 0.1.1 is released.

*** Changes since 0.1.0

Grip
----

    - fixing read-config;
    - (grip sqlite3) renamed as (grip sqlite).

Grip-SQLite:
-----------

    - adding sqlite/table-rename;
    - use %sqlite-* variables for all query/command strings, not
      procedures;
    - (grip db sqlite) should not import (grip db filters).

Documentation:
--------------

	  Note: Grip's Users Manual still is a mock-up.

    - undefined links fixed;
    - all sections also part of the web-pages now sync.



