mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 15:40:19 +02:00
*** empty log message ***
This commit is contained in:
parent
916d65b1d1
commit
5dade85779
3 changed files with 41 additions and 0 deletions
21
NEWS
21
NEWS
|
@ -40,6 +40,27 @@ instead write
|
||||||
|
|
||||||
The latter syntax is more consistent with existing Lisp practice.
|
The latter syntax is more consistent with existing Lisp practice.
|
||||||
|
|
||||||
|
** Guile now does fancier printing of structures. Structures are the
|
||||||
|
underlying implementation for records, which in turn are used to
|
||||||
|
implement modules, so all of these object now print differently and in
|
||||||
|
a more informative way.
|
||||||
|
|
||||||
|
The Scheme printer will examine the builtin variable
|
||||||
|
*struct-printer* whenever it needs to print a structure object. When
|
||||||
|
this variable is not `#f' it is deemed to be a procedure and will be
|
||||||
|
applied to the structure object and the output port. When
|
||||||
|
*struct-printer* is `#f' or the procedure return `#f' the structure
|
||||||
|
object will be printed in the boring #<struct 80458270> form.
|
||||||
|
|
||||||
|
This hook is used by some routines in ice-9/boot-9.scm to implement
|
||||||
|
type specific printing routines. Please read the comments there about
|
||||||
|
"printing structs".
|
||||||
|
|
||||||
|
One of the more specific uses of structs are records. The printing
|
||||||
|
procedure that could be passed to MAKE-RECORD-TYPE is now actually
|
||||||
|
called. It should behave like a *struct-printer* procedure (described
|
||||||
|
above).
|
||||||
|
|
||||||
** Guile now supports a new R4RS-compliant syntax for keywords. A
|
** Guile now supports a new R4RS-compliant syntax for keywords. A
|
||||||
token of the form #:NAME, where NAME has the same syntax as a Scheme
|
token of the form #:NAME, where NAME has the same syntax as a Scheme
|
||||||
symbol, is the external representation of the keyword named NAME.
|
symbol, is the external representation of the keyword named NAME.
|
||||||
|
|
|
@ -1,3 +1,14 @@
|
||||||
|
Wed Jun 4 23:27:16 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||||||
|
|
||||||
|
* boot-9.scm (struct-layout, %struct-printer-tag, struct-printer,
|
||||||
|
make-struct-printer, set-struct-printer-in-vtable!): New bindings
|
||||||
|
to support printing of structures.
|
||||||
|
(record-type-vtable, make-record-type): Add slot to hold printing
|
||||||
|
function and initialize it with something appropriate. Removed
|
||||||
|
commented out printing code.
|
||||||
|
(record-type-name, record-type-fields): Adjusted slot offsets.
|
||||||
|
(%print-module): Reduce argument list to "mod" and "port".
|
||||||
|
|
||||||
Sat May 31 18:57:12 1997 Gary Houston <ghouston@actrix.gen.nz>
|
Sat May 31 18:57:12 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||||||
|
|
||||||
* boot-9.scm: signal-handler, alarm-thunk: removed.
|
* boot-9.scm: signal-handler, alarm-thunk: removed.
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||||||
|
|
||||||
|
* struct.c (struct_printer): New variable that holds a handle on
|
||||||
|
the Scheme variable *struct-printer*. This variable can be set by
|
||||||
|
Scheme code to override the printing of structures.
|
||||||
|
(scm_print_struct): If struct_printer is set, call it. If it is
|
||||||
|
not set, or returns #f, print the structure in the old fashion.
|
||||||
|
Include "eval.h" for scm_apply.
|
||||||
|
|
||||||
Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
|
||||||
|
|
||||||
* struct.c (scm_struct_ref, scm_struct_set_x): Use
|
* struct.c (scm_struct_ref, scm_struct_set_x): Use
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue