1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
guile/module/srfi
Andy Wingo f4ca107f7f Rebase throw/catch on top of raise-exception/with-exception-handler
* libguile/exceptions.c:
* libguile/exceptions.h: New files.
* libguile.h: Add exceptions.h.
* libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
  (DOT_X_FILES, DOT_DOC_FILES, modinclude_HEADERS): Add exceptions.c and
  exceptions.h.
* libguile/init.c (scm_i_init_guile): Initialize exceptions.
* libguile/threads.c (scm_spawn_thread): Use new names for
  scm_i_make_catch_handler and scm_c_make_thunk.
* libguile/throw.c: Rewrite to be implemented in terms of
  with-exception-handler / raise-exception.
* libguile/throw.h: Use data types from exceptions.h.  Move
  scm_report_stack_overflow and scm_report_out_of_memory to
  exceptions.[ch].
* module/ice-9/boot-9.scm (&error, &programming-error)
  (&non-continuable, make-exception-from-throw, raise-exception)
  (with-exception-handler): New top-level definitions.
  (throw, catch, with-throw-handler): Rewrite in terms of
  with-exception-handler and raise-exception.
: New top-level definitions.
* module/ice-9/exceptions.scm: Adapt to re-export &error,
  &programming-error, &non-continuable, raise-exception, and
  with-exception-handler from boot-9.
  (make-quit-exception, guile-quit-exception-converter): New exception
  converters.
  (make-exception-from-throw): Override core binding.
* test-suite/tests/eval.test ("inner trim with prompt tag"): Adapt to
  "with-exception-handler" being the procedure on the stack.
  ("outer trim with prompt tag"): Likewise.
* test-suite/tests/exceptions.test (throw-test): Use pass-if-equal.
* module/srfi/srfi-34.scm: Reimplement in terms of core exceptions, and
  make "guard" actually re-raise continuations with the original "raise"
  continuation.
2019-11-13 22:24:19 +01:00
..
srfi-4 (srfi srfi-4 gnu) uses private define-bytevector-type from (srfi srfi-4) 2014-02-07 18:00:04 +01:00
srfi-9 doc: Fix typo in `set-record-type-printer!' doc. 2012-11-17 15:34:49 +01:00
srfi-42 Add implementation of SRFI 42 2010-10-03 12:09:50 +02:00
srfi-64 Implement SRFI-64 - A Scheme API for test suites. 2014-02-01 01:19:55 -05:00
srfi-67 fix srfi-67 compilation 2011-09-02 19:49:26 +02:00
srfi-1.scm Rewrite boot-9 map to be recursive and pure 2014-05-01 21:17:28 +02:00
srfi-2.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
srfi-4.scm Remove private unused duplicate c32/c64vector definitions 2014-02-07 17:57:30 +01:00
srfi-6.scm String ports use UTF-8; ignore %default-port-encoding. 2013-08-07 01:22:22 -04:00
srfi-8.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
srfi-9.scm SRFI-9 uses make-record-type 2019-10-23 12:04:58 +02:00
srfi-10.scm Deprecate passing a non-zero size to make-module 2019-09-27 22:57:38 +02:00
srfi-11.scm actually inline call-with-values to tree-il's <let-values> 2009-08-06 11:48:16 +02:00
srfi-13.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
srfi-14.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
srfi-16.scm Add srfi-16 and srfi-30 to %cond-expand-features. 2014-01-14 02:19:52 -05:00
srfi-17.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
srfi-18.scm srfi-18: 'thread-sleep!' timeout-as-a-number is relative. 2018-08-07 11:40:40 +02:00
srfi-19.scm SRFI-19: Rename 'tai-epoch-in-jd' to 'utc-epoch-in-jd'. 2019-06-18 05:15:07 -04:00
srfi-26.scm Get rid of `define-macro' in the SRFI 26 implementation 2010-12-07 23:13:55 +01:00
srfi-27.scm Add missing 'cond-expand' feature identifiers; remove srfi-6 from core list. 2013-03-21 12:50:04 -04:00
srfi-28.scm Implement SRFI 28: Basic Format Strings. 2014-12-02 11:49:05 -05:00
srfi-31.scm Add missing 'cond-expand' feature identifiers; remove srfi-6 from core list. 2013-03-21 12:50:04 -04:00
srfi-34.scm Rebase throw/catch on top of raise-exception/with-exception-handler 2019-11-13 22:24:19 +01:00
srfi-35.scm Rebase SRFI-35 on top of (ice-9 exceptions) 2019-11-04 15:18:57 +01:00
srfi-37.scm SRFI-37: Account for zero-length arguments. 2017-04-20 10:58:54 +02:00
srfi-38.scm Add missing 'cond-expand' feature identifiers; remove srfi-6 from core list. 2013-03-21 12:50:04 -04:00
srfi-39.scm Add missing 'cond-expand' feature identifiers; remove srfi-6 from core list. 2013-03-21 12:50:04 -04:00
srfi-41.scm Add record type printer for srfi-41. 2013-04-07 12:44:31 -04:00
srfi-42.scm Add missing 'cond-expand' feature identifiers; remove srfi-6 from core list. 2013-03-21 12:50:04 -04:00
srfi-43.scm Improve compilation of make-vector without init 2018-01-05 15:18:16 +01:00
srfi-45.scm Add record type printer for srfi-45. 2013-04-07 12:43:17 -04:00
srfi-60.scm move srfi-1 and srfi-60 C impl to libguile, without public C api 2010-09-12 23:29:11 +02:00
srfi-64.scm Implement SRFI-64 - A Scheme API for test suites. 2014-02-01 01:19:55 -05:00
srfi-67.scm Add missing 'cond-expand' feature identifiers; remove srfi-6 from core list. 2013-03-21 12:50:04 -04:00
srfi-69.scm Add missing 'cond-expand' feature identifiers; remove srfi-6 from core list. 2013-03-21 12:50:04 -04:00
srfi-71.scm Make srfi-71 visible through 'cond-expand'. 2018-08-07 12:33:25 +02:00
srfi-88.scm Improve correctness and consistency of 'eval-when' usage. 2014-01-23 10:41:22 -05:00
srfi-98.scm Complete changing license to LGPLv3+ 2009-06-17 22:30:26 +01:00
srfi-111.scm Implement SRFI-111 Boxes. 2014-01-24 10:50:51 -05:00