Ludovic Courtes
d9c82e2051
Fixed `scm_fixup_weak_alist ()'; update weak hash table size as needed.
...
* libguile/hashtab.c (scm_fixup_weak_alist): Added a REMOVED_ITEMS
parameter. Fixed a bug in the case where PREV is `SCM_EOL'.
(IS_WEAK_THING): New macro.
(START_WEAK_BUCKET_FIXUP): New macro.
(END_WEAK_BUCKET_FIXUP): New macro.
(scm_hash_fn_get_handle)[buckets]: New variable. Use the above
macros.
(scm_hash_fn_create_handle_x): Likewise.
(scm_hash_fn_remove_x): Likewise.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-9
2008-09-05 00:47:03 +02:00
Ludovic Courtes
e4d21e6bc9
Fixed the weak cell implementation (for weak hash tables).
...
* libguile/hashtab.c (wcar_cell_descr): New.
(wcdr_cell_descr): New.
(scm_weak_car_cell): Use `GC_malloc_explicitly_typed ()' instead of
`scm_gc_malloc_pointerless ()'.
(scm_weak_cdr_cell): Likewise.
(SCM_WEAK_CELL_WORD_DELETED_P): Use `SCM_CELL_OBJECT' instead of
`SCM_CELL_WORD'.
(scm_hash_fn_get_handle): Call `GC_disable ()' before calling
`scm_fixup_weak_alist ()' and `GC_enable ()' afterwards.
(scm_hash_fn_create_handle_x): Likewise.
(scm_hash_fn_remove_x): Likewise.
(scm_hashtab_prehistory): Initialize WCAR_CELL_DESCR and
WCDR_CELL_DESCR.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-8
2008-09-05 00:46:58 +02:00
Ludovic Courtes
3a2de079d5
First stab at implementing weak hash tables and vectors. Unable to run the REPL.
...
* libguile/hashtab.c (scm_weak_car_cell): New.
(scm_weak_cdr_cell): New.
(scm_doubly_weak_cell): New.
(SCM_WEAK_CELL_WORD_DELETED_P): New.
(SCM_WEAK_CELL_WORD): New.
(scm_fixup_weak_alist): New.
(make_hash_table): Always use non-weak vectors. Allocate
`scm_t_hashtable' objects as pointerless.
(scm_i_rehash): Always make NEW_BUCKETS a non-weak vector.
(scm_hash_fn_get_handle): Call `scm_fixup_weak_alist ()' on weak
buckets before calling ASSOC_FN.
(scm_hash_fn_remove_x): Likewise.
(scm_hash_fn_create_handle_x): Likewise. Also, use `scm_.*weak.*cell
()' for HANDLE when needed.
* libguile/symbols.c (lookup_interned_symbol): Check for nullified
pairs.
* libguile/vectors.c (scm_vector_elements): Abort on weak vectors.
(scm_vector_writable_elements): Likewise.
(scm_c_vector_ref): Check whether the referenced element has been
nullified.
(scm_c_vector_set_x): Use `GC_GENERAL_REGISTER_DISAPPEARING_LINK ()'.
(scm_i_allocate_weak_vector): Use `scm_gc_malloc_pointerless ()'
instead of `scm_gc_malloc ()' when allocating room for the vector
itself.
* libguile/weaks.c (scm_make_weak_key_alist_vector): Use
`scm_make_vector ()' instead of `scm_i_allocate_weak_vector ()'.
(scm_make_weak_value_alist_vector): Likewise.
(scm_make_doubly_weak_alist_vector): Likewise.
(weak_vectors): Removed.
(scm_i_init_weak_vectors_for_gc): Removed.
(scm_i_mark_weak_vector): Removed.
(scm_i_mark_weak_vector_non_weaks): Removed.
(scm_i_mark_weak_vectors_non_weaks): Removed.
(scm_i_remove_weaks_from_weak_vectors): Commented out.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-7
2008-09-05 00:46:53 +02:00
Ludovic Courtes
a82e795325
Fixed GC initialization and static roots.
...
* libguile/gc.c (scm_storage_prehistory): Call `GC_INIT ()'. Invoke
`GC_add_roots ()' as well.
(scm_init_gc): Removed call to `GC_init ()'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-6
2008-09-05 00:46:46 +02:00
Ludovic Courtes
c5018a2bbb
Added scm_gc_malloc_pointerless ()', equivalent to
GC_MALLOC_ATOMIC ()'.
...
* libguile/gc-malloc.c (scm_gc_register_collectable_memory): Tidied.
(scm_gc_unregister_collectable_memory): Likewise.
(scm_gc_malloc_pointerless): New.
* libguile/gc.h (scm_gc_malloc_pointer_less): New declaration.
* libguile/strings.c (make_stringbuf): Use it.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-5
2008-09-05 00:46:40 +02:00
Ludovic Courtes
6a4be32986
Fixed garbage collection of ports: basics work (no SMOBs, no guardians, no WHT).
...
* libguile/gc.c (scm_init_storage): Do not initialize SCM_I_PORT_TABLE
here: this is done in `scm_ports_prehistory ()'. This fixes the bug
mentioned in the previous patch log.
* libguile/ports.c (scm_new_port_table_entry): Slightly clarified the
code.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-4
2008-09-05 00:46:22 +02:00
Ludovic Courtes
fca4388748
First `working'' Guile! Crashes in
flush-all-ports' (relates to SCM_I_PORT_TABLE).
...
* libguile/gc.c (scm_gc_stats): Fixed so that it returns a relevant
result instead of just `SCM_EOL'.
* libguile/ports.c: Include `assert.h'. Don't include `malloc.h'.
(scm_make_port_type): Use `scm_gc_realloc ()' instead of `realloc ()'.
(scm_new_port_table_entry): Likewise.
(scm_flush): Added an assertion on the port number.
(scm_ports_prehistory): Use `scm_gc_malloc ()' instead of `scm_malloc ()'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-3
2008-09-05 00:46:14 +02:00
Ludovic Courtes
c812243ba1
Small fixes. Gets to the REPL and `abort ()'s soon after.
...
* libguile/inline.h (scm_cell): Re-added comment about the assignment
order of CAR/CDR.
* libguile/srcprop.c (scm_make_srcprops): Use `scm_gc_malloc ()' instead
of `malloc' + `scm_gc_register_collectable_memory ()'.
* libguile/threads.c (guilify_self_1): Likewise.
(guilify_self_2): Likewise.
* libguile/strings.c (make_stringbuf): Use `GC_MALLOC_ATOMIC ()' instead
of `scm_gc_malloc ()'.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-2
2008-09-05 00:46:07 +02:00
Ludovic Courtes
26224b3f5d
Merge from lcourtes@laas.fr--2005-mobile
...
Patches applied:
* lcourtes@laas.fr--2005-mobile/guile-core--boehm-gc--1.9 (base, patch 1)
- tag of lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--base-0
- Initial hack for Boehm's GC support: nothing works.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-1
2008-09-05 00:45:58 +02:00
Neil Jerram
5695ccd43b
(Slot Options): Added example from Ludovic Courtès
...
about difference between init-value, -form and -thunk.
2006-09-27 17:49:38 +00:00
Neil Jerram
94a2c24a64
(Using Guile in Emacs, GDS Introduction):
...
Editorial updates.
(GDS Architecture): Moved earlier in containing section; editorial
updates.
(GDS Getting Started, How to Use GDS): Merged; editorial updates;
subsections reordered.
2006-09-26 21:43:52 +00:00
Neil Jerram
ee6be719ce
* scheme-using.texi (Error Handling, Interactive Debugger): Minor
...
editorial improvements.
(Leave Debugger): Removed.
(Display Backtrace): Minor updates.
(Frame Selection, Frame Information, Frame Evaluation) : Minor
editorial improvements.
(Stepping and Continuing): Merged from three previous nodes; plus
minor improvements. Removed doc for `trace-finish', which no
longer exists.
* debugging/ice-9-debugger-extensions.scm (debugger:step):
Docstring improvements.
(debugger:next): Docstring improvements.
(debugger:continue): Docstring improvements.
* debugger/commands.scm (up, down): Docstring corrections.
(info-args, info-frame, position, evaluate): Docstring
improvements.
2006-09-25 21:05:46 +00:00
Neil Jerram
534cd14868
Fix typo.
2006-09-25 20:37:23 +00:00
Ludovic Courtès
49dec04b6a
Changes from arch/CVS synchronization
2006-09-20 13:13:34 +00:00
Ludovic Courtès
a17d26545d
Changes from arch/CVS synchronization
2006-09-20 12:48:45 +00:00
Rob Browning
ace5708285
*** empty log message ***
2006-09-20 00:34:02 +00:00
Rob Browning
162426a8ee
(build-link): Restore the removal of "/usr/lib" (in addition to
...
"/usr/lib/" from any -L arguments).
2006-09-20 00:33:56 +00:00
Neil Jerram
9f1ba6a9a4
Doc typo fixes
2006-09-15 09:23:18 +00:00
Rob Browning
418122ce6b
*** empty log message ***
2006-09-01 01:38:18 +00:00
Rob Browning
bd83658e66
(scm_c_port_for_each): Add a scm_remember_upto_here_1(ports) at the
...
end of the function to fix a GC bug.
2006-09-01 01:37:57 +00:00
Neil Jerram
5b2da4cc18
(Debug on Error): Added paragraph on need to use
...
debugging evaluator. Added text on what the Guile REPL code does.
2006-08-29 22:47:41 +00:00
Neil Jerram
b5944f6672
(scm_display_backtrace_with_highlights): Minor
...
improvements to docstring.
(scm_backtrace_with_highlights): Analogous improvements.
2006-08-28 22:17:26 +00:00
Neil Jerram
fc3d5c436f
(Examining the Stack): Minor improvements to
...
display-backtrace doc.
(Debug on Error): More new text on catching the error stack.
2006-08-28 22:16:42 +00:00
Neil Jerram
2202fd6cba
(Debug on Error): New text on how to catch errors
...
and the error stack.
2006-08-27 14:06:16 +00:00
Neil Jerram
01d2ee1585
(Using Guile in Emacs): New text about
...
available Emacs libraries.
(GDS Introduction): New node, containing GDS-specific introductory
text.
2006-08-23 22:11:24 +00:00
Neil Jerram
fce4b99e9e
* gds-server.el (gds-start-server): Change "ossau" to "ice-9".
...
* gds-scheme.el (gds-start-utility-guile): Change "ossau" to
"ice-9".
2006-08-18 14:21:23 +00:00
Neil Jerram
1e2346ae93
* configure.in: Generate Makefile for emacs subdir.
...
* Makefile.am (SUBDIRS): Add emacs subdir.
* configure.in: Generate Makefile for ice-9/debugging subdir.
2006-08-18 14:19:44 +00:00
Neil Jerram
e741cbb2ed
.cvsignore file
2006-08-18 13:43:09 +00:00
Neil Jerram
8746959cd3
* configure.in: Generate Makefile for ice-9/debugging.
...
* debugging/trc.scm: New file.
* debugging/traps.scm: New file.
* debugging/trace.scm: New file.
* debugging/steps.scm: New file.
* debugging/load-hooks.scm: New file.
* debugging/ice-9-debugger-extensions.scm: New file.
* debugging/example-fns.scm: New file.
* debugging/breakpoints.scm: New file.
* debugging/Makefile.am: New.
* Makefile.am (SUBDIRS): Add debugging.
2006-08-18 13:41:45 +00:00
Neil Jerram
9837893af2
(Using Guile in Emacs): Unignore extra GDS
...
intro text. (I will edit this down later. For now it's
convenient to have it all appearing, so it's visible on paper.)
2006-08-18 13:14:46 +00:00
Neil Jerram
62ae95577a
* scheme-using.texi (Run To Frame Exit): Improved doc for finish.
...
(Continue Execution): Improved doc for continue.
(Using Guile in Emacs): Lots of new docs about the Emacs
interface.
* api-debug.texi (Low Level Trap Calls): New.
(Using Traps): Removed, material incorporated into Low Level Trap
Calls.
(High Level Traps): New.
(Breakpoints): New.
* scheme-using.texi (Single Stepping): Improve doc for step and
next.
* api-debug.texi (Debug on Error): Note need to handling of errors
in C.
2006-08-11 16:21:14 +00:00
Neil Jerram
5af872e136
(Debugging): New intro text. New subsection
...
"Evaluation Model". Moved existing subsections "Capturing the
Stack or Innermost Stack Frame", "Examining the Stack", "Examining
Stack Frames", "Source Properties", "Decoding Memoized Source
Expressions" and "Starting a New Stack" under "Evaluation Model".
(Capturing the Stack or Innermost Stack Frame): Some new text, and
correction to doc for last-stack-frame.
(Debug on Error): Renamed from "Interactive Debugging".
2006-08-11 15:38:19 +00:00
Neil Jerram
b0b0deff2d
(scm_last_stack_frame): Correct docstring (returns a
...
frame, not a stack).
2006-08-11 15:33:41 +00:00
Neil Jerram
c9ef37410d
* api-debug.texi (Breakpoints): Removed (all wrong).
...
* guile.texi (API Reference): Improved summary for "Debugging"
menu item.
2006-08-01 21:51:12 +00:00
Neil Jerram
46f7666d7f
* scheme-debugging.texi (Debug Last Error, Interactive Debugger):
...
Moved/merged to scheme-using.texi, as REPL features.
(Examples): New.
(Intro to Breakpoints): New introductory text here. Removed all
subnodes except for Breakpoints Overview.
* scheme-using.texi: New.
* guile.texi (Programming in Scheme): Include new
scheme-using.texi file.
* Makefile.am (guile_TEXINFOS): Include new scheme-using.texi
file.
2006-08-01 21:33:17 +00:00
Rob Browning
b49123789f
*** empty log message ***
2006-07-19 06:56:37 +00:00
Rob Browning
08e5f84070
Add __attribute__ ((returns_twice)) to the ia64_getcontext prototype
...
so that gcc will make the right arrangements and avoid an illegal
instruction during call-with-current-continuation.
2006-07-19 06:56:30 +00:00
Ludovic Courtès
eaa94eaaa9
Changes from arch/CVS synchronization
2006-07-12 08:07:27 +00:00
Neil Jerram
ea19f0b3cf
* Makefile.am (ice9_sources): Add new files.
...
* gds-client.scm, gds-server.scm: New files.
2006-06-19 22:37:13 +00:00
Neil Jerram
731bcf738e
* Makefile.am: New file.
...
* gds.el, gds-scheme.el, gds-server.el: New files.
2006-06-19 22:01:23 +00:00
Kevin Ryde
22acb29853
merge from 1.8 branch
2006-06-17 23:41:24 +00:00
Kevin Ryde
c862d0e0c1
merge from 1.8 branch
2006-06-17 23:29:46 +00:00
Kevin Ryde
23f2b9a3de
merge from 1.8 branch
2006-06-17 23:15:59 +00:00
Kevin Ryde
a4f1c77ddb
merge from 1.8 branch
...
And: show "1.8" not "1.10" in effective version, that being what it
was at the time of that news entry
2006-06-17 22:57:28 +00:00
Kevin Ryde
5be9f7290b
merge from 1.8 branch
2006-06-17 22:53:04 +00:00
Kevin Ryde
9a9931719d
merge 1.8 branch
2006-06-17 22:47:50 +00:00
Ludovic Courtès
42be21d82a
Changes from arch/CVS synchronization
2006-06-16 07:39:59 +00:00
Ludovic Courtès
ad97642e70
Changes from arch/CVS synchronization
2006-06-13 08:14:01 +00:00
Ludovic Courtès
487f6be131
Added `structs.test'.
2006-06-13 07:56:41 +00:00
Ludovic Courtès
d15ad007c9
Changes from arch/CVS synchronization
2006-06-13 07:48:42 +00:00