*** empty log message ***
This commit is contained in:
parent
8843e1fa41
commit
fc6bb2831d
4 changed files with 56 additions and 10 deletions
26
NEWS
26
NEWS
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue