[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
EDB 1.27 available
From: |
Thien-Thi Nguyen |
Subject: |
EDB 1.27 available |
Date: |
Thu, 13 Jul 2006 10:39:00 +0200 |
release notes:
this release is friendly enough to run on my primary emacs, where
(= emacs-uptime (- machine-uptime 60sec)), since i can configure
it with `--disable-badnames' and poke around w/ `edb-meta'. other
goodies are nice, too...
sveltening continues; compared w/ EDB 1.26, we see that
skram/sk4 has 487 (-8) records, skram/retired.data 458 (+22).
thi
README excerpt:
This directory contains EDB, the Emacs Database.
EDB was written by Michael Ernst <address@hidden>,
and is being maintained by Thien-Thi Nguyen <address@hidden>.
NEWS excerpt:
- 1.27 | 2006-07-13
- Configuration bugfix: Emacs executable specification made consistent
Configuration and build have different methods for specifying
the Emacs executable -- these used to be not easily overridden.
Now you can override them in both contexts similarly, by
specifying the environment variable `EMACS'. See README.
- Installation bugfix: Remember to install all relevant files!
Some files (db-lemacs.el, db-nosetf.el and db-oldnames.el)
are now installed (and not just distributed). This error was
due to a regression in the makefile introduced in EDB 1.26.
- Bugfix: Substitutions use literal text for replacement
Some i/o operations temporarily replace difficult-to-manage text
(like backslashes) w/ an easier-to-manage string. These used to
use `replace-match' without specifying that the replacement be
literal, which caused an "Invalid use of `\\' in replacement
text" error in some cases. These have been fixed.
- Bugfixes for edb-t-timedate.el
- `edb-t-timedate1:format-date' renders "%yy" correctly
This used to render years as modulo 1900, resulting in more than
two characters, for year 2000 and later. For example:
(defun (demo Y M D)
(let ((date (edb-t-timedate1:make-date Y M D)))
(edb-t-timedate1:format-date "%yy" date)))
before: (demo 2006 5 31) => "106"
now: (demo 2006 5 31) => "06"
- Specialized formatting functions use format consistent w/ name
Certain functions edb-t-timedate1:format-date-FOO used to use
formatting codes inconsistent w/ their names. Here is a table
showing the change and an example for each FOO, using SPC as a
separator between components (actual default separators vary):
FOO before (example) now (example)
ddmmyy %d %m %yy "3 5 06" %dd %mm %yy "03 05 06"
ddmmmyy %d %mon %yy "3 May 06" %dd %mon %yy "03 May 06"
yyyymmdd %year %m %d "2006 5 3" %year %mm %dd "2006 05 03"
- Bugfix: Last record no longer ignored for "inherent data"
For controls with inherent data (specified with the `:data'
control property), EDB used to silently ignore the last record
(off-by-one error in the implementation). Now, all records are
read properly. Also, the order of the records in memory is now
maintained to be the same as the order in the control.
- Bugfix: Emacs no longer queries about "safe" local variables
Previously, `edb-EXPERIMENTAL-interact' used to cause Emacs 22
to query about whether or not certain file-local variables are
"safe". Now, these internal details are properly hidden.
- Bugfix: Database w/ inherent data can coexist w/ other databases
Previously, a control file w/ inherent data could not be read in
the presence of other databases due to a bug in the accounting
internals; EDB would throw an error (wrong-type-arg: stringp).
Now, these databases can coexist w/o this particular problem.
For example:
(require 'database)
(dired "examples")
(edb-EXPERIMENTAL-interact "arb-demo.edb" "arb-demo")
(edb-EXPERIMENTAL-interact "forms-demo2-inherent.edb" nil)
- Emacs 21.x compatibility fixes
- No longer use three args with `defalias'
- Define `insert-buffer-substring-no-properties' if necessary
- Dropped items
- Command: db-convert
This was once documented in the info page as "rudimentary", but
was otherwise unreferenced and unused both in EDB and elsewhere.
Similar functionality may return in the future, after some of
EDB 1.x's (excessive) dynamicism is properly reigned in.
- Macro: deflocalvar
- Function: define-displaytype-from-optstring
- Function: define-one-char-enum-displaytype
- Function: define-type-alias
These were either unused, unimplemented (and throwing error if
called), or made obsolete by internal changes.
- Coordination with crypt++.el
EDB no longer calls `crypt-insert-file-contents' from external
package crypt++.el (if loaded). Instead, you can enable Auto
Compression mode, which is included with Emacs.
- Items listed in advance notice from EDB 1.26 NEWS (see below)
- Backward-incompatible change: format of :locals control more concise
Previously, the :locals vector elements could be either a symbol
or a pair (SYMBOL . INIT-VAL). Now, the format for the latter
variant is (SYMBOL INIT-FORM). Also, INIT-FORM is now evaluated
so you don't need to do that yourself. For example:
before: :locals `[foo (ht . ,(make-hash-table)) bar]
now: :locals [foo (ht (make-hash-table)) bar]
In other words, the syntax resembles that of a `let' bindings
block with square braces instead of parentheses on the outside.
- Example databases writable
The sooner you play with EDB (once it is built and loaded), the
sooner you can report any bugs you find. (Thanks!)
- Mode lines say "Database" as part of the mode name
before:
-***-Database: machine-dbase (Edit Abbrev 42/431)---All-
now:
-***- machine-dbase (Database Edit Abbrev 42/431)---All-
This is more informative (and looks nicer) in buffer listings.
- Changes to edb-t-timedate.el
- Some date formatting funcs now take optional arg SEPARATOR
These funcs (w/ default separator):
edb-t-timedate1:format-date-mmddyy "/"
edb-t-timedate1:format-date-yymmdd "" (empty string)
edb-t-timedate1:format-date-ddmmyy "."
edb-t-timedate1:format-date-ddmmmyy " " (space)
edb-t-timedate1:format-date-yyyymmdd "/"
now take an optional second arg SEPARATOR which can be used to
override the default listed above. There is presently support
for the (previously, and probably always to be, undocumented)
vars named by appending "-separator" to the functions' names,
but that support will be dropped for EDB 1.28.
To convert code that uses the obsoleted vars, find fragments:
(let ((FF-separator "*")) (FF date))
and change them to look like:
(FF date "*")
- New formatting func: edb-t-timedate1:format-date-iso
- New builtin displaytype: date-iso
For example:
(edb-t-timedate1:format-date-iso
(edb-t-timedate1:make-date 2006 7 3))
=> "2006-07-03"
See examples/eicsw.edb for an example usage.
- New func: db-set-field-help
- New support for field-specific help in `db-field-help'
You can now specify a field's help info (string or form that
produces a string when evaluated) separately from that of the
field's record type; it is no longer necessary to merge the help
information in the record type. Field-specific help is displayed
first, followed by two newlines, followed by the record type's
help.
- New attribute :index-function for tagged file layout setup
You can now specify `:index-function FUNC' as an attribute
override for tagged file layout setup. FUNC is called with one
arg, the database object. Relatedly, the manual now documents
the restriction on using `db-after-read-hooks' (you can use
:index-function, instead).
- New support for writing data in a control with inherent data
See (info "(./edb.info) Control properties reference")
specifically entry `:data TEXT-BLOCK-SPEC'. See also
examples/forms-demo2-inherent.edb (a control file).
- New configure option: --disable-badnames (see README)
- New command: edb-1int-to-single
This command helps you to migrate away from "internal file
layout", support for which will be dropped in EDB 2.x, by
translating that file into a functionally equivalent (more or
less) "control with inherent data". See info node by the same
name in the EDB manual.
- New command: edb-meta
This command summarizes EDB state in a new buffer. Since it
exposes some internals, it is useful for debugging EDB and/or
client programs, but probably not suited for casual users. To
try it out in place, build EDB and evaluate the forms:
(load-file "lisp/edb-meta.elc")
(edb-meta)
Once installed, `edb-meta' can be invoked automatically after
EDB is loaded (i.e., it is autoloaded).
- Advance notice for to-be-dropped items in EDB 1.28
(internal) database-recordfieldspec
(internal) database-recordfieldspec-type
(internal) database-set-recordfieldspec
(spurious) db-tagged-rrfr-hooks
(spurious) db-tagged-wrfr-before-hooks
(spurious) db-tagged-wrfr-after-hooks
Actually "spurious" is kind of a pun: Similar facilities exist
for customizing the reading/writing of tagged-format data, when
you use control properties, so you SHOULD use them (ha ha).
See examples/{eicsw,geneal}.edb.
- Maintenance uses files from GNU Automake 1.9.6
cvs tag:
v-1-27
tarball, anoncvs instructions, etc, in dir:
http://www.glug.org/people/ttn/software/edb/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- EDB 1.27 available,
Thien-Thi Nguyen <=