mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-06 23:50:18 +02:00
*** empty log message ***
This commit is contained in:
parent
bde70eddce
commit
05d44505b8
9 changed files with 42 additions and 8 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-08-16 Han-Wen Nienhuys <hanwen@xs4all.nl>
|
||||||
|
|
||||||
|
* gh.texi (Defining new Scheme procedures in C): remove : - note:
|
||||||
|
causes spurious info reference.
|
||||||
|
|
||||||
2004-09-07 Kevin Ryde <user42@zip.com.au>
|
2004-09-07 Kevin Ryde <user42@zip.com.au>
|
||||||
|
|
||||||
* posix.texi (System Identification): Remove software-type, it doesn't
|
* posix.texi (System Identification): Remove software-type, it doesn't
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2005-06-10 Han-Wen Nienhuys <hanwen@xs4all.nl>
|
||||||
|
|
||||||
|
* boot-9.scm (set-module-eval-closure!): remove
|
||||||
|
set-procedure-property! closure 'module. Setting this property
|
||||||
|
causes un-gc-able modules.
|
||||||
|
|
||||||
2005-04-23 Kevin Ryde <user42@zip.com.au>
|
2005-04-23 Kevin Ryde <user42@zip.com.au>
|
||||||
|
|
||||||
* boot-9.scm (numerator, denominator): New functions as specified by
|
* boot-9.scm (numerator, denominator): New functions as specified by
|
||||||
|
|
|
@ -258,7 +258,7 @@
|
||||||
|
|
||||||
(define (environment-module env)
|
(define (environment-module env)
|
||||||
(let ((closure (and (pair? env) (car (last-pair env)))))
|
(let ((closure (and (pair? env) (car (last-pair env)))))
|
||||||
(and closure (procedure-property closure 'module))))
|
(and closure (eval-closure-module closure))))
|
||||||
|
|
||||||
|
|
||||||
;;; {Records}
|
;;; {Records}
|
||||||
|
@ -1063,10 +1063,12 @@
|
||||||
(let ((setter (record-modifier module-type 'eval-closure)))
|
(let ((setter (record-modifier module-type 'eval-closure)))
|
||||||
(lambda (module closure)
|
(lambda (module closure)
|
||||||
(setter module closure)
|
(setter module closure)
|
||||||
;; Make it possible to lookup the module from the environment.
|
|
||||||
;; This implementation is correct since an eval closure can belong
|
|
||||||
;; to maximally one module.
|
;; do not set procedure properties on closures.
|
||||||
(set-procedure-property! closure 'module module))))
|
;; since procedure properties are weak-hashes, they cannot
|
||||||
|
;; have cyclical data, otherwise the data cannot be GC-ed.
|
||||||
|
)))
|
||||||
|
|
||||||
(begin-deprecated
|
(begin-deprecated
|
||||||
(define (eval-in-module exp mod)
|
(define (eval-in-module exp mod)
|
||||||
|
|
|
@ -1,4 +1,11 @@
|
||||||
2005-06-19 Han-Wen Nienhuys <hanwen@xs4all.nl>
|
2005-06-10 Han-Wen Nienhuys <hanwen@xs4all.nl>
|
||||||
|
|
||||||
|
* modules.c (s_scm_eval_closure_module): new function. Return the
|
||||||
|
module inside an eval-closure.
|
||||||
|
|
||||||
|
* gc.c (scm_init_storage): make scm_stand_in_procs a weak_key hash
|
||||||
|
table. This means that procedure properties are GC'd if the
|
||||||
|
procedure dies.
|
||||||
|
|
||||||
* guile.c (main): use pointer iso. array. This fixes compile error
|
* guile.c (main): use pointer iso. array. This fixes compile error
|
||||||
on GCC 4.
|
on GCC 4.
|
||||||
|
|
|
@ -2827,7 +2827,7 @@ scm_init_storage ()
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
scm_stand_in_procs = scm_c_make_hash_table (257);
|
scm_stand_in_procs = scm_make_weak_key_hash_table (SCM_MAKINUM (257));
|
||||||
scm_permobjs = SCM_EOL;
|
scm_permobjs = SCM_EOL;
|
||||||
scm_protects = scm_c_make_hash_table (31);
|
scm_protects = scm_c_make_hash_table (31);
|
||||||
scm_gc_registered_roots = scm_c_make_hash_table (31);
|
scm_gc_registered_roots = scm_c_make_hash_table (31);
|
||||||
|
|
|
@ -340,6 +340,19 @@ SCM_DEFINE (scm_standard_eval_closure, "standard-eval-closure", 1, 0, 0,
|
||||||
}
|
}
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
|
|
||||||
|
|
||||||
|
SCM_DEFINE (scm_eval_closure_module, "eval-closure-module", 1, 0, 0,
|
||||||
|
(SCM closure),
|
||||||
|
"Return the module for @var{closure}.")
|
||||||
|
#define FUNC_NAME s_scm_eval_closure_module
|
||||||
|
{
|
||||||
|
SCM_ASSERT_TYPE(SCM_EVAL_CLOSURE_P (closure), closure, SCM_ARG1, FUNC_NAME, "eval-closure");
|
||||||
|
return SCM_PACK (SCM_CELL_WORD_1(closure));
|
||||||
|
}
|
||||||
|
#undef FUNC_NAME
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SCM_DEFINE (scm_standard_interface_eval_closure,
|
SCM_DEFINE (scm_standard_interface_eval_closure,
|
||||||
"standard-interface-eval-closure", 1, 0, 0,
|
"standard-interface-eval-closure", 1, 0, 0,
|
||||||
(SCM module),
|
(SCM module),
|
||||||
|
|
|
@ -118,6 +118,7 @@ extern SCM scm_current_module_lookup_closure (void);
|
||||||
extern SCM scm_current_module_transformer (void);
|
extern SCM scm_current_module_transformer (void);
|
||||||
extern SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep);
|
extern SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep);
|
||||||
extern SCM scm_standard_eval_closure (SCM module);
|
extern SCM scm_standard_eval_closure (SCM module);
|
||||||
|
extern SCM scm_eval_closure_module (SCM closure);
|
||||||
extern SCM scm_standard_interface_eval_closure (SCM module);
|
extern SCM scm_standard_interface_eval_closure (SCM module);
|
||||||
extern SCM scm_get_pre_modules_obarray (void);
|
extern SCM scm_get_pre_modules_obarray (void);
|
||||||
extern SCM scm_lookup_closure_module (SCM proc);
|
extern SCM scm_lookup_closure_module (SCM proc);
|
||||||
|
|
|
@ -25,7 +25,6 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
|
||||||
;;; Author: Michael Livshin
|
;;; Author: Michael Livshin
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(define-module (scripts snarf-check-and-output-texi)
|
(define-module (scripts snarf-check-and-output-texi)
|
||||||
:use-module (ice-9 streams)
|
:use-module (ice-9 streams)
|
||||||
:use-module (ice-9 match)
|
:use-module (ice-9 match)
|
||||||
|
|
|
@ -78,3 +78,4 @@
|
||||||
(gc)
|
(gc)
|
||||||
(remove-hook! after-gc-hook thunk)
|
(remove-hook! after-gc-hook thunk)
|
||||||
foo)))
|
foo)))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue