*** empty log message ***

This commit is contained in:
Marius Vollmer 2004-01-07 18:18:09 +00:00
commit fc6bb2831d
4 changed files with 56 additions and 10 deletions

26
NEWS
View file

@ -581,28 +581,29 @@ starting the week.
** New way to deal with non-local exits and reentries.
There is a new set of functions that essentially do what
scm_internal_dynamic_wind does, but in a more convenient way. Here is
a quick example of how to prevent a potential memory leak:
scm_internal_dynamic_wind does, but in a way that is more convenient
for C code in some situations. Here is a quick example of how to
prevent a potential memory leak:
void
foo ()
{
char *mem;
scm_begin_frame (0);
scm_frame_begin (0);
mem = scm_malloc (100);
scm_on_unwind (free, mem, SCM_F_WIND_EXPLICITELY);
scm_frame_unwind (free, mem, SCM_F_WIND_EXPLICITELY);
/* MEM would leak if BAR throws an error. SCM_ON_UNWIND frees it
/* MEM would leak if BAR throws an error. SCM_FRAME_UNWIND frees it
nevertheless.
*/
bar ();
scm_end_frame ();
scm_frame_end ();
/* Because of SCM_F_WIND_EXPLICITELY, MEM will be freed by
SCM_END_FRAME as well.
SCM_FRAME_END as well.
*/
}
@ -611,14 +612,19 @@ For full documentation, see the node "Frames" in the manual.
** New way to block and unblock asyncs
In addition to scm_c_call_with_blocked_asyncs you can now also use
scm_with_blocked_asyncs in a 'frame' (see above). Likewise for
scm_c_call_with_unblocked_asyncs and scm_with_unblocked_asyncs.
scm_frame_block_asyncs in a 'frame' (see above). Likewise for
scm_c_call_with_unblocked_asyncs and scm_frame_unblock_asyncs.
** New way to temporarily set the current input, output or error ports
C code can now use scm_with_current_<foo>_port in a 'frame' (see
C code can now use scm_frame_current_<foo>_port in a 'frame' (see
above). <foo> is one of "input", "output" or "error".
** New way to temporarily set fluids
C code can now use scm_frame_fluid in a 'frame' (see
above) to temporarily set the value of a fluid.
** New types scm_t_intmax and scm_t_uintmax.
On platforms that have them, these types are identical to intmax_t and

View file

@ -1,3 +1,9 @@
2004-01-07 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* scheme-control.texi, scheme-io.tex, scheme-scheduling.texi:
Adapt to new 'frame' names. Document scm_c_with_fluid,
scm_c_with_fluids, and scm_frame_fluid.
2004-01-06 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* scheme-control.texi: Document scm_on_unwind_with_scm and

View file

@ -1,3 +1,30 @@
2004-01-07 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* fluids.h, fluids.c (scm_frame_fluid): New.
* dynwind.c (scm_frame_end): Do not use scm_i_dowinds. Instead,
do the unwinding directly. It is simple enough.
* dynwind.h, dynwind.c: Did the following renamings:
scm_begin_frame -> scm_frame_begin,
scm_end_frame -> scm_frame_end,
scm_on_unwind -> scm_frame_unwind,
scm_on_rewind -> scm_frame_rewind,
scm_on_unwind_with_scm -> scm_frame_unwind_with_scm,
scm_on_rewind_with_scm -> scm_frame_rewind_with_scm.
Changed all uses.
* aync.h, async.c: Did the follwing renamings:
scm_with_blocked_asyncs -> scm_frame_block_asyncs,
scm_with_unblocked_asyncs -> scm_frame_unblock_asyncs.
Changed all uses.
* ports.h, ports.c: Did the follwing renamings:
scm_with_current_input_port -> scm_frame_current_input_port,
scm_with_current_output_port -> scm_frame_current_output_port,
scm_with_current_error_port -> scm_frame_current_error_port.
Changed all uses.
2004-01-07 Kevin Ryde <user42@zip.com.au>
* numbers.c (s_bignum): Remove, not used since gmp bignums.

View file

@ -1,3 +1,10 @@
2004-01-07 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* standalone/test-unwind.c: Adapted to 'frame' renamings.
(check_fluid): New.
* Makefile.am (SCM_TESTS): Added continuations.test.
2004-01-07 Kevin Ryde <user42@zip.com.au>
* tests/numbers.test (<): Add tests inum/bignum/flonum/frac with frac.