/*===========================================================================*/
/*   (Llib/bexit.scm)                                                        */
/*   Bigloo (4.7a)                                                           */
/*   Inria -- Sophia Antipolis (c)       Thu Feb 19 09:11:58 AM CET 2026     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/4.7a/bin/bigloo -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/4.7a/lib/bigloo/4.7a +rm -mklib -cc gcc -fsharing -q -no-hello -unsafe -safee -O4 -stdc -c Llib/bexit.scm -indent -o objs/obj_u/Llib/bexit.c) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL___BEXIT_TYPE_DEFINITIONS
#define BGL___BEXIT_TYPE_DEFINITIONS
#endif													// BGL___BEXIT_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	static obj_t BGl_requirezd2initializa7ationz75zz__bexitz00 = BUNSPEC;
	static obj_t BGl_z62envzd2getzd2exitdzd2valzb0zz__bexitz00(obj_t, obj_t);
	static obj_t BGl_z62valzd2fromzd2exitzf3z91zz__bexitz00(obj_t, obj_t);
	extern obj_t BGl_typezd2errorzd2zz__errorz00(obj_t, obj_t, obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_modulezd2initializa7ationz75zz__bexitz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__threadz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zz__errorz00(long, char *);
	BGL_EXPORTED_DECL obj_t BGl_unwindzd2untilz12zc0zz__bexitz00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t bgl_uncaught_exception_handler(obj_t);
	BGL_EXPORTED_DECL obj_t bgl_failsafe_mutex_profile(void);
	static obj_t BGl_z62z42failsafezd2mutexzd2profilez20zz__bexitz00(obj_t);
	extern obj_t BGl_evaluate2zd2restorezd2statez12z12zz__evaluatez00(obj_t);
	BGL_EXPORTED_DECL obj_t unwind_stack_until(obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_exitdzd2execzd2protectz00zz__bexitz00(obj_t);
	extern bool_t BGl_integerzf3zf3zz__r4_numbers_6_5_fixnumz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_envzd2getzd2exitdzd2valzd2zz__bexitz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_exitdzd2pushzd2protectz12z12zz__bexitz00(obj_t,
		obj_t);
	static obj_t
		BGl_z62defaultzd2uncaughtzd2exceptionzd2handlerzb0zz__bexitz00(obj_t,
		obj_t);
	static obj_t BGl_genericzd2initzd2zz__bexitz00(void);
	static obj_t BGl_importedzd2moduleszd2initz00zz__bexitz00(void);
	static bool_t
		BGl_exitdzd2execzd2andzd2popzd2protectsz12z12zz__bexitz00(obj_t);
	static obj_t BGl_gczd2rootszd2initz00zz__bexitz00(void);
	static obj_t BGl_objectzd2initzd2zz__bexitz00(void);
	static obj_t BGl_z62unwindzd2stackzd2valuezf3z91zz__bexitz00(obj_t, obj_t);
	static obj_t BGl_z62unwindzd2untilz12za2zz__bexitz00(obj_t, obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t BGl_valzd2fromzd2exitzf3zf3zz__bexitz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_envzd2setzd2exitdzd2valz12zc0zz__bexitz00(obj_t,
		obj_t);
	extern obj_t BGl_evaluate2zd2restorezd2bpz12z12zz__evaluatez00(int);
	static obj_t BGl_methodzd2initzd2zz__bexitz00(void);
	static obj_t BGl_z62envzd2setzd2exitdzd2valz12za2zz__bexitz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t BGl_exitdzd2popzd2protectz12z12zz__bexitz00(obj_t);
	static obj_t BGl_z62z42exitdzd2mutexzd2profilez20zz__bexitz00(obj_t);
	BGL_EXPORTED_DECL obj_t BGl_exitdzd2protectzd2setz12z12zz__bexitz00(obj_t,
		obj_t);
	static obj_t BGl_loopze70ze7zz__bexitz00(obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_z62unwindzd2stackzd2untilz12z70zz__bexitz00(obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t);
	static obj_t BGl_z62exitdzd2popzd2protectz12z70zz__bexitz00(obj_t, obj_t);
	static obj_t BGl_z62exitdzd2pushzd2protectz12z70zz__bexitz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t bgl_exitd_mutex_profile(void);
	static obj_t BGl_z62exitdzd2protectzd2setz12z70zz__bexitz00(obj_t, obj_t,
		obj_t);
	BGL_EXPORTED_DECL bool_t unwind_stack_value_p(obj_t);
	extern obj_t BGl_errorz00zz__errorz00(obj_t, obj_t, obj_t);
	static obj_t *__cnst;


	   
		 
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_unwindzd2stackzd2valuezf3zd2envz21zz__bexitz00,
		BgL_bgl_za762unwindza7d2stac1593z00,
		BGl_z62unwindzd2stackzd2valuezf3z91zz__bexitz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_defaultzd2uncaughtzd2exceptionzd2handlerzd2envz00zz__bexitz00,
		BgL_bgl_za762defaultza7d2unc1594z00,
		BGl_z62defaultzd2uncaughtzd2exceptionzd2handlerzb0zz__bexitz00, 0L, BUNSPEC,
		1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_exitdzd2protectzd2setz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762exitdza7d2prote1595z00,
		BGl_z62exitdzd2protectzd2setz12z70zz__bexitz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42failsafezd2mutexzd2profilezd2envz90zz__bexitz00,
		BgL_bgl_za762za742failsafeza7d1596za7,
		BGl_z62z42failsafezd2mutexzd2profilez20zz__bexitz00, 0L, BUNSPEC, 0);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_envzd2getzd2exitdzd2valzd2envz00zz__bexitz00,
		BgL_bgl_za762envza7d2getza7d2e1597za7,
		BGl_z62envzd2getzd2exitdzd2valzb0zz__bexitz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_unwindzd2stackzd2untilz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762unwindza7d2stac1598z00,
		BGl_z62unwindzd2stackzd2untilz12z70zz__bexitz00, 0L, BUNSPEC, 5);
	      BGL_DEFINE_STRING(BGl_string1586z00zz__bexitz00,
		BgL_bgl_string1586za700za7za7_1599za7, "unwind-protect", 14);
	      BGL_DEFINE_STRING(BGl_string1587z00zz__bexitz00,
		BgL_bgl_string1587za700za7za7_1600za7, "exit out of dynamic scope", 25);
	      BGL_DEFINE_STRING(BGl_string1588z00zz__bexitz00,
		BgL_bgl_string1588za700za7za7_1601za7, "/tmp/bigloo/runtime/Llib/bexit.scm",
		34);
	      BGL_DEFINE_STRING(BGl_string1589z00zz__bexitz00,
		BgL_bgl_string1589za700za7za7_1602za7, "&env-get-exitd-val", 18);
	      BGL_DEFINE_STRING(BGl_string1590z00zz__bexitz00,
		BgL_bgl_string1590za700za7za7_1603za7, "dynamic-env", 11);
	      BGL_DEFINE_STRING(BGl_string1591z00zz__bexitz00,
		BgL_bgl_string1591za700za7za7_1604za7, "&env-set-exitd-val!", 19);
	      BGL_DEFINE_STRING(BGl_string1592z00zz__bexitz00,
		BgL_bgl_string1592za700za7za7_1605za7, "__bexit", 7);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_exitdzd2pushzd2protectz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762exitdza7d2pushza71606za7,
		BGl_z62exitdzd2pushzd2protectz12z70zz__bexitz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42exitdzd2mutexzd2profilezd2envz90zz__bexitz00,
		BgL_bgl_za762za742exitdza7d2mu1607za7,
		BGl_z62z42exitdzd2mutexzd2profilez20zz__bexitz00, 0L, BUNSPEC, 0);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_exitdzd2popzd2protectz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762exitdza7d2popza7d1608za7,
		BGl_z62exitdzd2popzd2protectz12z70zz__bexitz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_unwindzd2untilz12zd2envz12zz__bexitz00,
		BgL_bgl_za762unwindza7d2unti1609z00,
		BGl_z62unwindzd2untilz12za2zz__bexitz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_valzd2fromzd2exitzf3zd2envz21zz__bexitz00,
		BgL_bgl_za762valza7d2fromza7d21610za7,
		BGl_z62valzd2fromzd2exitzf3z91zz__bexitz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_envzd2setzd2exitdzd2valz12zd2envz12zz__bexitz00,
		BgL_bgl_za762envza7d2setza7d2e1611za7,
		BGl_z62envzd2setzd2exitdzd2valz12za2zz__bexitz00, 0L, BUNSPEC, 2);

/* contant bindings */
	static void bgl_constant_bindings()
	{
		BGL_BIND_PROCEDURE(BGl_envzd2setzd2exitdzd2valz12zd2envz12zz__bexitz00,
			BgL_bgl_za762envza7d2setza7d2e1611za7);
		BGL_BIND_PROCEDURE(BGl_valzd2fromzd2exitzf3zd2envz21zz__bexitz00,
			BgL_bgl_za762valza7d2fromza7d21610za7);
		BGL_BIND_PROCEDURE(BGl_unwindzd2untilz12zd2envz12zz__bexitz00,
			BgL_bgl_za762unwindza7d2unti1609z00);
		BGL_BIND_PROCEDURE(BGl_exitdzd2popzd2protectz12zd2envzc0zz__bexitz00,
			BgL_bgl_za762exitdza7d2popza7d1608za7);
		BGL_BIND_PROCEDURE(BGl_z42exitdzd2mutexzd2profilezd2envz90zz__bexitz00,
			BgL_bgl_za762za742exitdza7d2mu1607za7);
		BGL_BIND_PROCEDURE(BGl_exitdzd2pushzd2protectz12zd2envzc0zz__bexitz00,
			BgL_bgl_za762exitdza7d2pushza71606za7);
		BGL_BIND_STRING(BGl_string1592z00zz__bexitz00,
			BgL_bgl_string1592za700za7za7_1605za7);
		BGL_BIND_STRING(BGl_string1591z00zz__bexitz00,
			BgL_bgl_string1591za700za7za7_1604za7);
		BGL_BIND_STRING(BGl_string1590z00zz__bexitz00,
			BgL_bgl_string1590za700za7za7_1603za7);
		BGL_BIND_STRING(BGl_string1589z00zz__bexitz00,
			BgL_bgl_string1589za700za7za7_1602za7);
		BGL_BIND_STRING(BGl_string1588z00zz__bexitz00,
			BgL_bgl_string1588za700za7za7_1601za7);
		BGL_BIND_STRING(BGl_string1587z00zz__bexitz00,
			BgL_bgl_string1587za700za7za7_1600za7);
		BGL_BIND_STRING(BGl_string1586z00zz__bexitz00,
			BgL_bgl_string1586za700za7za7_1599za7);
		BGL_BIND_PROCEDURE(BGl_unwindzd2stackzd2untilz12zd2envzc0zz__bexitz00,
			BgL_bgl_za762unwindza7d2stac1598z00);
		BGL_BIND_PROCEDURE(BGl_envzd2getzd2exitdzd2valzd2envz00zz__bexitz00,
			BgL_bgl_za762envza7d2getza7d2e1597za7);
		BGL_BIND_PROCEDURE(BGl_z42failsafezd2mutexzd2profilezd2envz90zz__bexitz00,
			BgL_bgl_za762za742failsafeza7d1596za7);
		BGL_BIND_PROCEDURE(BGl_exitdzd2protectzd2setz12zd2envzc0zz__bexitz00,
			BgL_bgl_za762exitdza7d2prote1595z00);
		BGL_BIND_PROCEDURE
			(BGl_defaultzd2uncaughtzd2exceptionzd2handlerzd2envz00zz__bexitz00,
			BgL_bgl_za762defaultza7d2unc1594z00);
		BGL_BIND_PROCEDURE(BGl_unwindzd2stackzd2valuezf3zd2envz21zz__bexitz00,
			BgL_bgl_za762unwindza7d2stac1593z00);
	}

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;

		ADD_ROOT((void *) (&BGl_requirezd2initializa7ationz75zz__bexitz00));
#undef ADD_ROOT
		if (roots_max > 0)
			GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t BGl_modulezd2initializa7ationz75zz__bexitz00(long
		BgL_checksumz00_1743, char *BgL_fromz00_1744)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__bexitz00))
				{
					BGl_requirezd2initializa7ationz75zz__bexitz00 = BBOOL(((bool_t) 0));
					bgl_constant_bindings();
					BGl_gczd2rootszd2initz00zz__bexitz00();
					BGl_importedzd2moduleszd2initz00zz__bexitz00();
					return BGl_methodzd2initzd2zz__bexitz00();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zz__bexitz00(void)
	{
		{	/* Llib/bexit.scm 14 */
			return bgl_gc_roots_register();
		}

	}



/* val-from-exit? */
	BGL_EXPORTED_DEF obj_t BGl_valzd2fromzd2exitzf3zf3zz__bexitz00(obj_t
		BgL_valz00_3)
	{
		{	/* Llib/bexit.scm 144 */
			{	/* Llib/bexit.scm 145 */
				obj_t BgL_arg1156z00_1504;

				BgL_arg1156z00_1504 = BGL_EXITD_VAL();
				return BBOOL((BgL_valz00_3 == BgL_arg1156z00_1504));
			}
		}

	}



/* &val-from-exit? */
	obj_t BGl_z62valzd2fromzd2exitzf3z91zz__bexitz00(obj_t BgL_envz00_1699,
		obj_t BgL_valz00_1700)
	{
		{	/* Llib/bexit.scm 144 */
			return BGl_valzd2fromzd2exitzf3zf3zz__bexitz00(BgL_valz00_1700);
		}

	}



/* unwind-stack-value? */
	BGL_EXPORTED_DEF bool_t unwind_stack_value_p(obj_t BgL_valz00_4)
	{
		{	/* Llib/bexit.scm 155 */
			{	/* Llib/bexit.scm 145 */
				obj_t BgL_arg1156z00_1505;

				BgL_arg1156z00_1505 = BGL_EXITD_VAL();
				return (BgL_valz00_4 == BgL_arg1156z00_1505);
			}
		}

	}



/* &unwind-stack-value? */
	obj_t BGl_z62unwindzd2stackzd2valuezf3z91zz__bexitz00(obj_t BgL_envz00_1701,
		obj_t BgL_valz00_1702)
	{
		{	/* Llib/bexit.scm 155 */
			return BBOOL(unwind_stack_value_p(BgL_valz00_1702));
		}

	}



/* unwind-until! */
	BGL_EXPORTED_DEF obj_t BGl_unwindzd2untilz12zc0zz__bexitz00(obj_t
		BgL_exitdz00_5, obj_t BgL_valz00_6)
	{
		{	/* Llib/bexit.scm 165 */
			return
				BGl_loopze70ze7zz__bexitz00(BFALSE, BgL_exitdz00_5, BFALSE,
				BgL_valz00_6, BFALSE);
		}

	}



/* &unwind-until! */
	obj_t BGl_z62unwindzd2untilz12za2zz__bexitz00(obj_t BgL_envz00_1703,
		obj_t BgL_exitdz00_1704, obj_t BgL_valz00_1705)
	{
		{	/* Llib/bexit.scm 165 */
			return
				BGl_unwindzd2untilz12zc0zz__bexitz00(BgL_exitdz00_1704,
				BgL_valz00_1705);
		}

	}



/* unwind-stack-until! */
	BGL_EXPORTED_DEF obj_t unwind_stack_until(obj_t BgL_exitdz00_7,
		obj_t BgL_estampz00_8, obj_t BgL_valz00_9, obj_t BgL_proczd2bottomzd2_10,
		obj_t BgL_tracestkz00_11)
	{
		{	/* Llib/bexit.scm 176 */
			BGL_TAIL return
				BGl_loopze70ze7zz__bexitz00(BgL_proczd2bottomzd2_10, BgL_exitdz00_7,
				BgL_estampz00_8, BgL_valz00_9, BgL_tracestkz00_11);
		}

	}



/* loop~0 */
	obj_t BGl_loopze70ze7zz__bexitz00(obj_t BgL_proczd2bottomzd2_1733,
		obj_t BgL_exitdz00_1732, obj_t BgL_estampz00_1731, obj_t BgL_valz00_1730,
		obj_t BgL_tracestkz00_1729)
	{
		{	/* Llib/bexit.scm 177 */
		BGl_loopze70ze7zz__bexitz00:
			{	/* Llib/bexit.scm 178 */
				obj_t BgL_exitdzd2topzd2_1078;

				BgL_exitdzd2topzd2_1078 = BGL_EXITD_TOP_AS_OBJ();
				if (BGL_EXITD_BOTTOMP(BgL_exitdzd2topzd2_1078))
					{	/* Llib/bexit.scm 179 */
						BGl_exitdzd2execzd2andzd2popzd2protectsz12z12zz__bexitz00
							(BgL_exitdzd2topzd2_1078);
						if (PROCEDUREP(BgL_proczd2bottomzd2_1733))
							{	/* Llib/bexit.scm 182 */
								return
									BGL_PROCEDURE_CALL1(BgL_proczd2bottomzd2_1733,
									BgL_valz00_1730);
							}
						else
							{	/* Llib/bexit.scm 184 */
								obj_t BgL_hdlz00_1081;

								BgL_hdlz00_1081 = BGL_UNCAUGHT_EXCEPTION_HANDLER_GET();
								if (PROCEDUREP(BgL_hdlz00_1081))
									{	/* Llib/bexit.scm 185 */
										return
											BGL_PROCEDURE_CALL1(BgL_hdlz00_1081, BgL_valz00_1730);
									}
								else
									{	/* Llib/bexit.scm 185 */
										return
											BGl_errorz00zz__errorz00(BGl_string1586z00zz__bexitz00,
											BGl_string1587z00zz__bexitz00, BgL_valz00_1730);
									}
							}
					}
				else
					{	/* Llib/bexit.scm 179 */
						BGl_exitdzd2execzd2andzd2popzd2protectsz12z12zz__bexitz00
							(BgL_exitdzd2topzd2_1078);
						POP_EXIT();
						if (CBOOL(BgL_tracestkz00_1729))
							{	/* Llib/bexit.scm 193 */
								BGL_SET_TRACE_STACKSP(BgL_tracestkz00_1729);
							}
						else
							{	/* Llib/bexit.scm 195 */
								obj_t BgL_tmpz00_1787;

								BgL_tmpz00_1787 = BGL_CURRENT_DYNAMIC_ENV();
								bgl_init_trace(BgL_tmpz00_1787);
							}
						{	/* Llib/bexit.scm 198 */
							bool_t BgL_test1617z00_1790;

							if ((BgL_exitdzd2topzd2_1078 == BgL_exitdz00_1732))
								{	/* Llib/bexit.scm 199 */
									bool_t BgL__ortest_1039z00_1090;

									if (INTEGERP(BgL_estampz00_1731))
										{	/* Llib/bexit.scm 199 */
											BgL__ortest_1039z00_1090 = ((bool_t) 0);
										}
									else
										{	/* Llib/bexit.scm 199 */
											BgL__ortest_1039z00_1090 = ((bool_t) 1);
										}
									if (BgL__ortest_1039z00_1090)
										{	/* Llib/bexit.scm 199 */
											BgL_test1617z00_1790 = BgL__ortest_1039z00_1090;
										}
									else
										{	/* Llib/bexit.scm 200 */
											obj_t BgL_arg1169z00_1091;

											BgL_arg1169z00_1091 =
												EXITD_STAMP(BgL_exitdzd2topzd2_1078);
											BgL_test1617z00_1790 =
												(
												(long) CINT(BgL_arg1169z00_1091) ==
												(long) CINT(BgL_estampz00_1731));
								}}
							else
								{	/* Llib/bexit.scm 198 */
									BgL_test1617z00_1790 = ((bool_t) 0);
								}
							if (BgL_test1617z00_1790)
								{	/* Llib/bexit.scm 198 */
									if (EXITD_CALLCCP(BgL_exitdzd2topzd2_1078))
										{	/* Llib/bexit.scm 203 */
											void *BgL_arg1167z00_1089;

											BgL_arg1167z00_1089 =
												EXITD_TO_EXIT(BgL_exitdzd2topzd2_1078);
											CALLCC_JUMP_EXIT(BgL_arg1167z00_1089, BgL_valz00_1730);
										}
									else
										{	/* Llib/bexit.scm 201 */
											JUMP_EXIT(EXITD_TO_EXIT(BgL_exitdzd2topzd2_1078),
												BgL_valz00_1730);
										}
									return BUNSPEC;
								}
							else
								{

									goto BGl_loopze70ze7zz__bexitz00;
								}
						}
					}
			}
		}

	}



/* &unwind-stack-until! */
	obj_t BGl_z62unwindzd2stackzd2untilz12z70zz__bexitz00(obj_t BgL_envz00_1706,
		obj_t BgL_exitdz00_1707, obj_t BgL_estampz00_1708, obj_t BgL_valz00_1709,
		obj_t BgL_proczd2bottomzd2_1710, obj_t BgL_tracestkz00_1711)
	{
		{	/* Llib/bexit.scm 176 */
			return
				unwind_stack_until(BgL_exitdz00_1707, BgL_estampz00_1708,
				BgL_valz00_1709, BgL_proczd2bottomzd2_1710, BgL_tracestkz00_1711);
		}

	}



/* exitd-exec-and-pop-protects! */
	bool_t BGl_exitdzd2execzd2andzd2popzd2protectsz12z12zz__bexitz00(obj_t
		BgL_exitdz00_12)
	{
		{	/* Llib/bexit.scm 216 */
			{	/* Llib/bexit.scm 217 */
				obj_t BgL_g1040z00_1094;

				BgL_g1040z00_1094 = BGL_EXITD_PROTECT(BgL_exitdz00_12);
				{
					obj_t BgL_lz00_1096;

					BgL_lz00_1096 = BgL_g1040z00_1094;
				BgL_zc3z04anonymousza31170ze3z87_1097:
					if (PAIRP(BgL_lz00_1096))
						{	/* Llib/bexit.scm 219 */
							obj_t BgL_pz00_1099;

							BgL_pz00_1099 = CAR(BgL_lz00_1096);
							{	/* Llib/bexit.scm 220 */
								obj_t BgL_arg1187z00_1100;

								BgL_arg1187z00_1100 = CDR(BgL_lz00_1096);
								BGL_EXITD_PROTECT_SET(BgL_exitdz00_12, BgL_arg1187z00_1100);
								BUNSPEC;
							}
							BGl_exitdzd2execzd2protectz00zz__bexitz00(BgL_pz00_1099);
							{
								obj_t BgL_lz00_1815;

								BgL_lz00_1815 = CDR(BgL_lz00_1096);
								BgL_lz00_1096 = BgL_lz00_1815;
								goto BgL_zc3z04anonymousza31170ze3z87_1097;
							}
						}
					else
						{	/* Llib/bexit.scm 218 */
							return ((bool_t) 0);
						}
				}
			}
		}

	}



/* exitd-exec-protect */
	obj_t BGl_exitdzd2execzd2protectz00zz__bexitz00(obj_t BgL_pz00_13)
	{
		{	/* Llib/bexit.scm 227 */
			if (BGL_MUTEXP(BgL_pz00_13))
				{	/* Llib/bexit.scm 229 */
					int BgL_arg1542z00_1512;

					{	/* Llib/bexit.scm 229 */
						obj_t BgL_tmpz00_1819;

						BgL_tmpz00_1819 = ((obj_t) BgL_pz00_13);
						BgL_arg1542z00_1512 = BGL_MUTEX_UNLOCK(BgL_tmpz00_1819);
					}
					return BBOOL(((long) (BgL_arg1542z00_1512) == 0L));
				}
			else
				{	/* Llib/bexit.scm 229 */
					if (PROCEDUREP(BgL_pz00_13))
						{	/* Llib/bexit.scm 230 */
							return BGL_PROCEDURE_CALL0(BgL_pz00_13);
						}
					else
						{	/* Llib/bexit.scm 230 */
							if (PAIRP(BgL_pz00_13))
								{	/* Llib/bexit.scm 231 */
									BGL_ERROR_HANDLER_SET(BgL_pz00_13);
									return BUNSPEC;
								}
							else
								{	/* Llib/bexit.scm 231 */
									if (BGl_integerzf3zf3zz__r4_numbers_6_5_fixnumz00
										(BgL_pz00_13))
										{	/* Llib/bexit.scm 232 */
											return
												BGl_evaluate2zd2restorezd2bpz12z12zz__evaluatez00(CINT
												(BgL_pz00_13));
										}
									else
										{	/* Llib/bexit.scm 232 */
											if (VECTORP(BgL_pz00_13))
												{	/* Llib/bexit.scm 233 */
													return
														BGl_evaluate2zd2restorezd2statez12z12zz__evaluatez00
														(BgL_pz00_13);
												}
											else
												{	/* Llib/bexit.scm 233 */
													return BFALSE;
												}
										}
								}
						}
				}
		}

	}



/* exitd-protect-set! */
	BGL_EXPORTED_DEF obj_t BGl_exitdzd2protectzd2setz12z12zz__bexitz00(obj_t
		BgL_exitdz00_14, obj_t BgL_pz00_15)
	{
		{	/* Llib/bexit.scm 238 */
			BGL_EXITD_PROTECT_SET(BgL_exitdz00_14, BgL_pz00_15);
			return BUNSPEC;
		}

	}



/* &exitd-protect-set! */
	obj_t BGl_z62exitdzd2protectzd2setz12z70zz__bexitz00(obj_t BgL_envz00_1712,
		obj_t BgL_exitdz00_1713, obj_t BgL_pz00_1714)
	{
		{	/* Llib/bexit.scm 238 */
			return
				BGl_exitdzd2protectzd2setz12z12zz__bexitz00(BgL_exitdz00_1713,
				BgL_pz00_1714);
		}

	}



/* exitd-push-protect! */
	BGL_EXPORTED_DEF obj_t BGl_exitdzd2pushzd2protectz12z12zz__bexitz00(obj_t
		BgL_exitdz00_16, obj_t BgL_mz00_17)
	{
		{	/* Llib/bexit.scm 244 */
			{	/* Llib/bexit.scm 245 */
				obj_t BgL_arg1195z00_1738;

				{	/* Llib/bexit.scm 245 */
					obj_t BgL_arg1196z00_1739;

					BgL_arg1196z00_1739 = BGL_EXITD_PROTECT(BgL_exitdz00_16);
					BgL_arg1195z00_1738 =
						MAKE_YOUNG_PAIR(BgL_mz00_17, BgL_arg1196z00_1739);
				}
				BGL_EXITD_PROTECT_SET(BgL_exitdz00_16, BgL_arg1195z00_1738);
				return BUNSPEC;
			}
		}

	}



/* &exitd-push-protect! */
	obj_t BGl_z62exitdzd2pushzd2protectz12z70zz__bexitz00(obj_t BgL_envz00_1715,
		obj_t BgL_exitdz00_1716, obj_t BgL_mz00_1717)
	{
		{	/* Llib/bexit.scm 244 */
			return
				BGl_exitdzd2pushzd2protectz12z12zz__bexitz00(BgL_exitdz00_1716,
				BgL_mz00_1717);
		}

	}



/* exitd-pop-protect! */
	BGL_EXPORTED_DEF obj_t BGl_exitdzd2popzd2protectz12z12zz__bexitz00(obj_t
		BgL_exitdz00_18)
	{
		{	/* Llib/bexit.scm 250 */
			{	/* Llib/bexit.scm 251 */
				bool_t BgL_test1628z00_1846;

				{	/* Llib/bexit.scm 251 */
					obj_t BgL_arg1203z00_1740;

					BgL_arg1203z00_1740 = BGL_EXITD_PROTECT(BgL_exitdz00_18);
					BgL_test1628z00_1846 = PAIRP(BgL_arg1203z00_1740);
				}
				if (BgL_test1628z00_1846)
					{	/* Llib/bexit.scm 252 */
						obj_t BgL_arg1201z00_1741;

						{	/* Llib/bexit.scm 252 */
							obj_t BgL_arg1202z00_1742;

							BgL_arg1202z00_1742 = BGL_EXITD_PROTECT(BgL_exitdz00_18);
							BgL_arg1201z00_1741 = CDR(((obj_t) BgL_arg1202z00_1742));
						}
						BGL_EXITD_PROTECT_SET(BgL_exitdz00_18, BgL_arg1201z00_1741);
						return BUNSPEC;
					}
				else
					{	/* Llib/bexit.scm 251 */
						return BFALSE;
					}
			}
		}

	}



/* &exitd-pop-protect! */
	obj_t BGl_z62exitdzd2popzd2protectz12z70zz__bexitz00(obj_t BgL_envz00_1718,
		obj_t BgL_exitdz00_1719)
	{
		{	/* Llib/bexit.scm 250 */
			return BGl_exitdzd2popzd2protectz12z12zz__bexitz00(BgL_exitdz00_1719);
		}

	}



/* default-uncaught-exception-handler */
	BGL_EXPORTED_DEF obj_t bgl_uncaught_exception_handler(obj_t BgL_valz00_19)
	{
		{	/* Llib/bexit.scm 257 */
			return
				BGl_errorz00zz__errorz00(BGl_string1586z00zz__bexitz00,
				BGl_string1587z00zz__bexitz00, BgL_valz00_19);
		}

	}



/* &default-uncaught-exception-handler */
	obj_t BGl_z62defaultzd2uncaughtzd2exceptionzd2handlerzb0zz__bexitz00(obj_t
		BgL_envz00_1720, obj_t BgL_valz00_1721)
	{
		{	/* Llib/bexit.scm 257 */
			return bgl_uncaught_exception_handler(BgL_valz00_1721);
		}

	}



/* $exitd-mutex-profile */
	BGL_EXPORTED_DEF obj_t bgl_exitd_mutex_profile(void)
	{
		{	/* Llib/bexit.scm 268 */
			return BUNSPEC;
		}

	}



/* &$exitd-mutex-profile */
	obj_t BGl_z62z42exitdzd2mutexzd2profilez20zz__bexitz00(obj_t BgL_envz00_1722)
	{
		{	/* Llib/bexit.scm 268 */
			return bgl_exitd_mutex_profile();
		}

	}



/* $failsafe-mutex-profile */
	BGL_EXPORTED_DEF obj_t bgl_failsafe_mutex_profile(void)
	{
		{	/* Llib/bexit.scm 269 */
			return BUNSPEC;
		}

	}



/* &$failsafe-mutex-profile */
	obj_t BGl_z62z42failsafezd2mutexzd2profilez20zz__bexitz00(obj_t
		BgL_envz00_1723)
	{
		{	/* Llib/bexit.scm 269 */
			return bgl_failsafe_mutex_profile();
		}

	}



/* env-get-exitd-val */
	BGL_EXPORTED_DEF obj_t BGl_envzd2getzd2exitdzd2valzd2zz__bexitz00(obj_t
		BgL_envz00_20)
	{
		{	/* Llib/bexit.scm 276 */
			return BGL_ENV_EXITD_VAL(BgL_envz00_20);
		}

	}



/* &env-get-exitd-val */
	obj_t BGl_z62envzd2getzd2exitdzd2valzb0zz__bexitz00(obj_t BgL_envz00_1724,
		obj_t BgL_envz00_1725)
	{
		{	/* Llib/bexit.scm 276 */
			{	/* Llib/bexit.scm 276 */
				obj_t BgL_auxz00_1859;

				if (BGL_DYNAMIC_ENVP(BgL_envz00_1725))
					{	/* Llib/bexit.scm 276 */
						BgL_auxz00_1859 = BgL_envz00_1725;
					}
				else
					{
						obj_t BgL_auxz00_1862;

						BgL_auxz00_1862 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1588z00zz__bexitz00,
							BINT(12088L), BGl_string1589z00zz__bexitz00,
							BGl_string1590z00zz__bexitz00, BgL_envz00_1725);
						FAILURE(BgL_auxz00_1862, BFALSE, BFALSE);
					}
				return BGl_envzd2getzd2exitdzd2valzd2zz__bexitz00(BgL_auxz00_1859);
			}
		}

	}



/* env-set-exitd-val! */
	BGL_EXPORTED_DEF obj_t BGl_envzd2setzd2exitdzd2valz12zc0zz__bexitz00(obj_t
		BgL_envz00_21, obj_t BgL_objz00_22)
	{
		{	/* Llib/bexit.scm 277 */
			return BGL_ENV_EXITD_VAL_SET(BgL_envz00_21, BgL_objz00_22);
		}

	}



/* &env-set-exitd-val! */
	obj_t BGl_z62envzd2setzd2exitdzd2valz12za2zz__bexitz00(obj_t BgL_envz00_1726,
		obj_t BgL_envz00_1727, obj_t BgL_objz00_1728)
	{
		{	/* Llib/bexit.scm 277 */
			{	/* Llib/bexit.scm 277 */
				obj_t BgL_auxz00_1868;

				if (BGL_DYNAMIC_ENVP(BgL_envz00_1727))
					{	/* Llib/bexit.scm 277 */
						BgL_auxz00_1868 = BgL_envz00_1727;
					}
				else
					{
						obj_t BgL_auxz00_1871;

						BgL_auxz00_1871 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1588z00zz__bexitz00,
							BINT(12162L), BGl_string1591z00zz__bexitz00,
							BGl_string1590z00zz__bexitz00, BgL_envz00_1727);
						FAILURE(BgL_auxz00_1871, BFALSE, BFALSE);
					}
				return
					BGl_envzd2setzd2exitdzd2valz12zc0zz__bexitz00(BgL_auxz00_1868,
					BgL_objz00_1728);
			}
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zz__bexitz00(void)
	{
		{	/* Llib/bexit.scm 14 */
			return BUNSPEC;
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zz__bexitz00(void)
	{
		{	/* Llib/bexit.scm 14 */
			return BUNSPEC;
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zz__bexitz00(void)
	{
		{	/* Llib/bexit.scm 14 */
			return BUNSPEC;
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zz__bexitz00(void)
	{
		{	/* Llib/bexit.scm 14 */
			BGl_modulezd2initializa7ationz75zz__errorz00(88804785L,
				BSTRING_TO_STRING(BGl_string1592z00zz__bexitz00));
			BGl_modulezd2initializa7ationz75zz__objectz00(475449627L,
				BSTRING_TO_STRING(BGl_string1592z00zz__bexitz00));
			return
				BGl_modulezd2initializa7ationz75zz__threadz00(149516032L,
				BSTRING_TO_STRING(BGl_string1592z00zz__bexitz00));
		}

	}

#ifdef __cplusplus
}
#endif
