/*===========================================================================*/
/*   (Llib/bexit.scm)                                                        */
/*   Bigloo (4.5b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Fri Dec 22 05:17:06 PM CET 2023     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/bigloo/bin/bigloo -ldopt -L/home/serrano/prgm/project/bigloo/bigloo/libbacktrace/home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b  -srfi enable-gmp -srfi bigloo-unsafe -O3 -fcfa-arithmetic -q -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -rm -copt -w -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -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_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_za762unwindza7d2stac1571z00,
		BGl_z62unwindzd2stackzd2valuezf3z91zz__bexitz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_defaultzd2uncaughtzd2exceptionzd2handlerzd2envz00zz__bexitz00,
		BgL_bgl_za762defaultza7d2unc1572z00,
		BGl_z62defaultzd2uncaughtzd2exceptionzd2handlerzb0zz__bexitz00, 0L, BUNSPEC,
		1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_exitdzd2protectzd2setz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762exitdza7d2prote1573z00,
		BGl_z62exitdzd2protectzd2setz12z70zz__bexitz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42failsafezd2mutexzd2profilezd2envz90zz__bexitz00,
		BgL_bgl_za762za742failsafeza7d1574za7,
		BGl_z62z42failsafezd2mutexzd2profilez20zz__bexitz00, 0L, BUNSPEC, 0);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_envzd2getzd2exitdzd2valzd2envz00zz__bexitz00,
		BgL_bgl_za762envza7d2getza7d2e1575za7,
		BGl_z62envzd2getzd2exitdzd2valzb0zz__bexitz00, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string1564z00zz__bexitz00,
		BgL_bgl_string1564za700za7za7_1576za7, "unwind-protect", 14);
	      DEFINE_STRING(BGl_string1565z00zz__bexitz00,
		BgL_bgl_string1565za700za7za7_1577za7, "exit out of dynamic scope", 25);
	      DEFINE_STRING(BGl_string1566z00zz__bexitz00,
		BgL_bgl_string1566za700za7za7_1578za7, "/tmp/bigloo/runtime/Llib/bexit.scm",
		34);
	      DEFINE_STRING(BGl_string1567z00zz__bexitz00,
		BgL_bgl_string1567za700za7za7_1579za7, "&env-get-exitd-val", 18);
	      DEFINE_STRING(BGl_string1568z00zz__bexitz00,
		BgL_bgl_string1568za700za7za7_1580za7, "dynamic-env", 11);
	      DEFINE_STRING(BGl_string1569z00zz__bexitz00,
		BgL_bgl_string1569za700za7za7_1581za7, "&env-set-exitd-val!", 19);
	      DEFINE_STRING(BGl_string1570z00zz__bexitz00,
		BgL_bgl_string1570za700za7za7_1582za7, "__bexit", 7);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_unwindzd2stackzd2untilz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762unwindza7d2stac1583z00,
		BGl_z62unwindzd2stackzd2untilz12z70zz__bexitz00, 0L, BUNSPEC, 5);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_exitdzd2pushzd2protectz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762exitdza7d2pushza71584za7,
		BGl_z62exitdzd2pushzd2protectz12z70zz__bexitz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_z42exitdzd2mutexzd2profilezd2envz90zz__bexitz00,
		BgL_bgl_za762za742exitdza7d2mu1585za7,
		BGl_z62z42exitdzd2mutexzd2profilez20zz__bexitz00, 0L, BUNSPEC, 0);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_exitdzd2popzd2protectz12zd2envzc0zz__bexitz00,
		BgL_bgl_za762exitdza7d2popza7d1586za7,
		BGl_z62exitdzd2popzd2protectz12z70zz__bexitz00, 0L, BUNSPEC, 1);
	      DEFINE_EXPORT_BGL_PROCEDURE(BGl_unwindzd2untilz12zd2envz12zz__bexitz00,
		BgL_bgl_za762unwindza7d2unti1587z00,
		BGl_z62unwindzd2untilz12za2zz__bexitz00, 0L, BUNSPEC, 2);
	     
		DEFINE_EXPORT_BGL_PROCEDURE(BGl_valzd2fromzd2exitzf3zd2envz21zz__bexitz00,
		BgL_bgl_za762valza7d2fromza7d21588za7,
		BGl_z62valzd2fromzd2exitzf3z91zz__bexitz00, 0L, BUNSPEC, 1);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_envzd2setzd2exitdzd2valz12zd2envz12zz__bexitz00,
		BgL_bgl_za762envza7d2setza7d2e1589za7,
		BGl_z62envzd2setzd2exitdzd2valz12za2zz__bexitz00, 0L, BUNSPEC, 2);

/* 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_1726, char *BgL_fromz00_1727)
	{
		{
			if (CBOOL(BGl_requirezd2initializa7ationz75zz__bexitz00))
				{
					BGl_requirezd2initializa7ationz75zz__bexitz00 = BBOOL(((bool_t) 0));
					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 141 */
			{	/* Llib/bexit.scm 142 */
				obj_t BgL_arg1155z00_1492;

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

	}



/* &val-from-exit? */
	obj_t BGl_z62valzd2fromzd2exitzf3z91zz__bexitz00(obj_t BgL_envz00_1687,
		obj_t BgL_valz00_1688)
	{
		{	/* Llib/bexit.scm 141 */
			return BGl_valzd2fromzd2exitzf3zf3zz__bexitz00(BgL_valz00_1688);
		}

	}



/* unwind-stack-value? */
	BGL_EXPORTED_DEF bool_t unwind_stack_value_p(obj_t BgL_valz00_4)
	{
		{	/* Llib/bexit.scm 152 */
			{	/* Llib/bexit.scm 142 */
				obj_t BgL_arg1155z00_1493;

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

	}



/* &unwind-stack-value? */
	obj_t BGl_z62unwindzd2stackzd2valuezf3z91zz__bexitz00(obj_t BgL_envz00_1689,
		obj_t BgL_valz00_1690)
	{
		{	/* Llib/bexit.scm 152 */
			return BBOOL(unwind_stack_value_p(BgL_valz00_1690));
		}

	}



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

	}



/* &unwind-until! */
	obj_t BGl_z62unwindzd2untilz12za2zz__bexitz00(obj_t BgL_envz00_1691,
		obj_t BgL_exitdz00_1692, obj_t BgL_valz00_1693)
	{
		{	/* Llib/bexit.scm 162 */
			return
				BGl_unwindzd2untilz12zc0zz__bexitz00(BgL_exitdz00_1692,
				BgL_valz00_1693);
		}

	}



/* 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 173 */
			{

			BgL_zc3z04anonymousza31156ze3z87_1071:
				{	/* Llib/bexit.scm 175 */
					obj_t BgL_exitdzd2topzd2_1072;

					BgL_exitdzd2topzd2_1072 = BGL_EXITD_TOP_AS_OBJ();
					if (BGL_EXITD_BOTTOMP(BgL_exitdzd2topzd2_1072))
						{	/* Llib/bexit.scm 176 */
							BGl_exitdzd2execzd2andzd2popzd2protectsz12z12zz__bexitz00
								(BgL_exitdzd2topzd2_1072);
							if (PROCEDUREP(BgL_proczd2bottomzd2_10))
								{	/* Llib/bexit.scm 179 */
									return
										(VA_PROCEDUREP(BgL_proczd2bottomzd2_10) ? ((obj_t(*)(obj_t,
													...))
											PROCEDURE_ENTRY(BgL_proczd2bottomzd2_10))
										(BgL_proczd2bottomzd2_10, BgL_valz00_9,
											BEOA) : ((obj_t(*)(obj_t,
													obj_t))
											PROCEDURE_ENTRY(BgL_proczd2bottomzd2_10))
										(BgL_proczd2bottomzd2_10, BgL_valz00_9));
								}
							else
								{	/* Llib/bexit.scm 181 */
									obj_t BgL_hdlz00_1075;

									BgL_hdlz00_1075 = BGL_UNCAUGHT_EXCEPTION_HANDLER_GET();
									if (PROCEDUREP(BgL_hdlz00_1075))
										{	/* Llib/bexit.scm 182 */
											return
												(VA_PROCEDUREP(BgL_hdlz00_1075) ? ((obj_t(*)(obj_t,
															...))
													PROCEDURE_ENTRY(BgL_hdlz00_1075)) (BgL_hdlz00_1075,
													BgL_valz00_9, BEOA) : ((obj_t(*)(obj_t,
															obj_t))
													PROCEDURE_ENTRY(BgL_hdlz00_1075)) (BgL_hdlz00_1075,
													BgL_valz00_9));
										}
									else
										{	/* Llib/bexit.scm 182 */
											return
												BGl_errorz00zz__errorz00(BGl_string1564z00zz__bexitz00,
												BGl_string1565z00zz__bexitz00, BgL_valz00_9);
										}
								}
						}
					else
						{	/* Llib/bexit.scm 176 */
							BGl_exitdzd2execzd2andzd2popzd2protectsz12z12zz__bexitz00
								(BgL_exitdzd2topzd2_1072);
							POP_EXIT();
							if (CBOOL(BgL_tracestkz00_11))
								{	/* Llib/bexit.scm 190 */
									BGL_SET_TRACE_STACKSP(BgL_tracestkz00_11);
								}
							else
								{	/* Llib/bexit.scm 192 */
									obj_t BgL_tmpz00_1768;

									BgL_tmpz00_1768 = BGL_CURRENT_DYNAMIC_ENV();
									bgl_init_trace(BgL_tmpz00_1768);
								}
							{	/* Llib/bexit.scm 195 */
								bool_t BgL_test1596z00_1771;

								if ((BgL_exitdzd2topzd2_1072 == BgL_exitdz00_7))
									{	/* Llib/bexit.scm 196 */
										bool_t BgL__ortest_1039z00_1084;

										if (INTEGERP(BgL_estampz00_8))
											{	/* Llib/bexit.scm 196 */
												BgL__ortest_1039z00_1084 = ((bool_t) 0);
											}
										else
											{	/* Llib/bexit.scm 196 */
												BgL__ortest_1039z00_1084 = ((bool_t) 1);
											}
										if (BgL__ortest_1039z00_1084)
											{	/* Llib/bexit.scm 196 */
												BgL_test1596z00_1771 = BgL__ortest_1039z00_1084;
											}
										else
											{	/* Llib/bexit.scm 197 */
												obj_t BgL_arg1171z00_1085;

												BgL_arg1171z00_1085 =
													EXITD_STAMP(BgL_exitdzd2topzd2_1072);
												BgL_test1596z00_1771 =
													(
													(long) CINT(BgL_arg1171z00_1085) ==
													(long) CINT(BgL_estampz00_8));
									}}
								else
									{	/* Llib/bexit.scm 195 */
										BgL_test1596z00_1771 = ((bool_t) 0);
									}
								if (BgL_test1596z00_1771)
									{	/* Llib/bexit.scm 195 */
										if (EXITD_CALLCCP(BgL_exitdzd2topzd2_1072))
											{	/* Llib/bexit.scm 200 */
												void *BgL_arg1167z00_1083;

												BgL_arg1167z00_1083 =
													EXITD_TO_EXIT(BgL_exitdzd2topzd2_1072);
												CALLCC_JUMP_EXIT(BgL_arg1167z00_1083, BgL_valz00_9);
											}
										else
											{	/* Llib/bexit.scm 198 */
												JUMP_EXIT(EXITD_TO_EXIT(BgL_exitdzd2topzd2_1072),
													BgL_valz00_9);
											}
										return BUNSPEC;
									}
								else
									{	/* Llib/bexit.scm 195 */
										goto BgL_zc3z04anonymousza31156ze3z87_1071;
									}
							}
						}
				}
			}
		}

	}



/* &unwind-stack-until! */
	obj_t BGl_z62unwindzd2stackzd2untilz12z70zz__bexitz00(obj_t BgL_envz00_1694,
		obj_t BgL_exitdz00_1695, obj_t BgL_estampz00_1696, obj_t BgL_valz00_1697,
		obj_t BgL_proczd2bottomzd2_1698, obj_t BgL_tracestkz00_1699)
	{
		{	/* Llib/bexit.scm 173 */
			return
				unwind_stack_until(BgL_exitdz00_1695, BgL_estampz00_1696,
				BgL_valz00_1697, BgL_proczd2bottomzd2_1698, BgL_tracestkz00_1699);
		}

	}



/* exitd-exec-and-pop-protects! */
	bool_t BGl_exitdzd2execzd2andzd2popzd2protectsz12z12zz__bexitz00(obj_t
		BgL_exitdz00_12)
	{
		{	/* Llib/bexit.scm 213 */
			{	/* Llib/bexit.scm 214 */
				obj_t BgL_g1040z00_1088;

				BgL_g1040z00_1088 = BGL_EXITD_PROTECT(BgL_exitdz00_12);
				{
					obj_t BgL_lz00_1090;

					BgL_lz00_1090 = BgL_g1040z00_1088;
				BgL_zc3z04anonymousza31172ze3z87_1091:
					if (PAIRP(BgL_lz00_1090))
						{	/* Llib/bexit.scm 216 */
							obj_t BgL_pz00_1093;

							BgL_pz00_1093 = CAR(BgL_lz00_1090);
							{	/* Llib/bexit.scm 217 */
								obj_t BgL_arg1185z00_1094;

								BgL_arg1185z00_1094 = CDR(BgL_lz00_1090);
								BGL_EXITD_PROTECT_SET(BgL_exitdz00_12, BgL_arg1185z00_1094);
								BUNSPEC;
							}
							BGl_exitdzd2execzd2protectz00zz__bexitz00(BgL_pz00_1093);
							{
								obj_t BgL_lz00_1796;

								BgL_lz00_1796 = CDR(BgL_lz00_1090);
								BgL_lz00_1090 = BgL_lz00_1796;
								goto BgL_zc3z04anonymousza31172ze3z87_1091;
							}
						}
					else
						{	/* Llib/bexit.scm 215 */
							return ((bool_t) 0);
						}
				}
			}
		}

	}



/* exitd-exec-protect */
	obj_t BGl_exitdzd2execzd2protectz00zz__bexitz00(obj_t BgL_pz00_13)
	{
		{	/* Llib/bexit.scm 224 */
			if (BGL_MUTEXP(BgL_pz00_13))
				{	/* Llib/bexit.scm 226 */
					int BgL_arg1524z00_1500;

					{	/* Llib/bexit.scm 226 */
						obj_t BgL_tmpz00_1800;

						BgL_tmpz00_1800 = ((obj_t) BgL_pz00_13);
						BgL_arg1524z00_1500 = BGL_MUTEX_UNLOCK(BgL_tmpz00_1800);
					}
					return BBOOL(((long) (BgL_arg1524z00_1500) == 0L));
				}
			else
				{	/* Llib/bexit.scm 226 */
					if (PROCEDUREP(BgL_pz00_13))
						{	/* Llib/bexit.scm 227 */
							return
								(VA_PROCEDUREP(BgL_pz00_13) ? ((obj_t(*)(obj_t,
											...)) PROCEDURE_ENTRY(BgL_pz00_13)) (BgL_pz00_13,
									BEOA) : ((obj_t(*)(obj_t))
									PROCEDURE_ENTRY(BgL_pz00_13)) (BgL_pz00_13));
						}
					else
						{	/* Llib/bexit.scm 227 */
							if (PAIRP(BgL_pz00_13))
								{	/* Llib/bexit.scm 228 */
									BGL_ERROR_HANDLER_SET(BgL_pz00_13);
									return BUNSPEC;
								}
							else
								{	/* Llib/bexit.scm 228 */
									if (BGl_integerzf3zf3zz__r4_numbers_6_5_fixnumz00
										(BgL_pz00_13))
										{	/* Llib/bexit.scm 229 */
											return
												BGl_evaluate2zd2restorezd2bpz12z12zz__evaluatez00(CINT
												(BgL_pz00_13));
										}
									else
										{	/* Llib/bexit.scm 229 */
											if (VECTORP(BgL_pz00_13))
												{	/* Llib/bexit.scm 230 */
													return
														BGl_evaluate2zd2restorezd2statez12z12zz__evaluatez00
														(BgL_pz00_13);
												}
											else
												{	/* Llib/bexit.scm 230 */
													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 235 */
			BGL_EXITD_PROTECT_SET(BgL_exitdz00_14, BgL_pz00_15);
			return BUNSPEC;
		}

	}



/* &exitd-protect-set! */
	obj_t BGl_z62exitdzd2protectzd2setz12z70zz__bexitz00(obj_t BgL_envz00_1700,
		obj_t BgL_exitdz00_1701, obj_t BgL_pz00_1702)
	{
		{	/* Llib/bexit.scm 235 */
			return
				BGl_exitdzd2protectzd2setz12z12zz__bexitz00(BgL_exitdz00_1701,
				BgL_pz00_1702);
		}

	}



/* exitd-push-protect! */
	BGL_EXPORTED_DEF obj_t BGl_exitdzd2pushzd2protectz12z12zz__bexitz00(obj_t
		BgL_exitdz00_16, obj_t BgL_mz00_17)
	{
		{	/* Llib/bexit.scm 241 */
			{	/* Llib/bexit.scm 242 */
				obj_t BgL_arg1197z00_1721;

				{	/* Llib/bexit.scm 242 */
					obj_t BgL_arg1198z00_1722;

					BgL_arg1198z00_1722 = BGL_EXITD_PROTECT(BgL_exitdz00_16);
					BgL_arg1197z00_1721 =
						MAKE_YOUNG_PAIR(BgL_mz00_17, BgL_arg1198z00_1722);
				}
				BGL_EXITD_PROTECT_SET(BgL_exitdz00_16, BgL_arg1197z00_1721);
				return BUNSPEC;
			}
		}

	}



/* &exitd-push-protect! */
	obj_t BGl_z62exitdzd2pushzd2protectz12z70zz__bexitz00(obj_t BgL_envz00_1703,
		obj_t BgL_exitdz00_1704, obj_t BgL_mz00_1705)
	{
		{	/* Llib/bexit.scm 241 */
			return
				BGl_exitdzd2pushzd2protectz12z12zz__bexitz00(BgL_exitdz00_1704,
				BgL_mz00_1705);
		}

	}



/* exitd-pop-protect! */
	BGL_EXPORTED_DEF obj_t BGl_exitdzd2popzd2protectz12z12zz__bexitz00(obj_t
		BgL_exitdz00_18)
	{
		{	/* Llib/bexit.scm 247 */
			{	/* Llib/bexit.scm 248 */
				bool_t BgL_test1608z00_1827;

				{	/* Llib/bexit.scm 248 */
					obj_t BgL_arg1205z00_1723;

					BgL_arg1205z00_1723 = BGL_EXITD_PROTECT(BgL_exitdz00_18);
					BgL_test1608z00_1827 = PAIRP(BgL_arg1205z00_1723);
				}
				if (BgL_test1608z00_1827)
					{	/* Llib/bexit.scm 249 */
						obj_t BgL_arg1201z00_1724;

						{	/* Llib/bexit.scm 249 */
							obj_t BgL_arg1204z00_1725;

							BgL_arg1204z00_1725 = BGL_EXITD_PROTECT(BgL_exitdz00_18);
							BgL_arg1201z00_1724 = CDR(((obj_t) BgL_arg1204z00_1725));
						}
						BGL_EXITD_PROTECT_SET(BgL_exitdz00_18, BgL_arg1201z00_1724);
						return BUNSPEC;
					}
				else
					{	/* Llib/bexit.scm 248 */
						return BFALSE;
					}
			}
		}

	}



/* &exitd-pop-protect! */
	obj_t BGl_z62exitdzd2popzd2protectz12z70zz__bexitz00(obj_t BgL_envz00_1706,
		obj_t BgL_exitdz00_1707)
	{
		{	/* Llib/bexit.scm 247 */
			return BGl_exitdzd2popzd2protectz12z12zz__bexitz00(BgL_exitdz00_1707);
		}

	}



/* default-uncaught-exception-handler */
	BGL_EXPORTED_DEF obj_t bgl_uncaught_exception_handler(obj_t BgL_valz00_19)
	{
		{	/* Llib/bexit.scm 254 */
			return
				BGl_errorz00zz__errorz00(BGl_string1564z00zz__bexitz00,
				BGl_string1565z00zz__bexitz00, BgL_valz00_19);
		}

	}



/* &default-uncaught-exception-handler */
	obj_t BGl_z62defaultzd2uncaughtzd2exceptionzd2handlerzb0zz__bexitz00(obj_t
		BgL_envz00_1708, obj_t BgL_valz00_1709)
	{
		{	/* Llib/bexit.scm 254 */
			return bgl_uncaught_exception_handler(BgL_valz00_1709);
		}

	}



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

	}



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

	}



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

	}



/* &$failsafe-mutex-profile */
	obj_t BGl_z62z42failsafezd2mutexzd2profilez20zz__bexitz00(obj_t
		BgL_envz00_1711)
	{
		{	/* Llib/bexit.scm 266 */
			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 273 */
			return BGL_ENV_EXITD_VAL(BgL_envz00_20);
		}

	}



/* &env-get-exitd-val */
	obj_t BGl_z62envzd2getzd2exitdzd2valzb0zz__bexitz00(obj_t BgL_envz00_1712,
		obj_t BgL_envz00_1713)
	{
		{	/* Llib/bexit.scm 273 */
			{	/* Llib/bexit.scm 273 */
				obj_t BgL_auxz00_1840;

				if (BGL_DYNAMIC_ENVP(BgL_envz00_1713))
					{	/* Llib/bexit.scm 273 */
						BgL_auxz00_1840 = BgL_envz00_1713;
					}
				else
					{
						obj_t BgL_auxz00_1843;

						BgL_auxz00_1843 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1566z00zz__bexitz00,
							BINT(12041L), BGl_string1567z00zz__bexitz00,
							BGl_string1568z00zz__bexitz00, BgL_envz00_1713);
						FAILURE(BgL_auxz00_1843, BFALSE, BFALSE);
					}
				return BGl_envzd2getzd2exitdzd2valzd2zz__bexitz00(BgL_auxz00_1840);
			}
		}

	}



/* 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 274 */
			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_1714,
		obj_t BgL_envz00_1715, obj_t BgL_objz00_1716)
	{
		{	/* Llib/bexit.scm 274 */
			{	/* Llib/bexit.scm 274 */
				obj_t BgL_auxz00_1849;

				if (BGL_DYNAMIC_ENVP(BgL_envz00_1715))
					{	/* Llib/bexit.scm 274 */
						BgL_auxz00_1849 = BgL_envz00_1715;
					}
				else
					{
						obj_t BgL_auxz00_1852;

						BgL_auxz00_1852 =
							BGl_typezd2errorzd2zz__errorz00(BGl_string1566z00zz__bexitz00,
							BINT(12115L), BGl_string1569z00zz__bexitz00,
							BGl_string1568z00zz__bexitz00, BgL_envz00_1715);
						FAILURE(BgL_auxz00_1852, BFALSE, BFALSE);
					}
				return
					BGl_envzd2setzd2exitdzd2valz12zc0zz__bexitz00(BgL_auxz00_1849,
					BgL_objz00_1716);
			}
		}

	}



/* 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_string1570z00zz__bexitz00));
			BGl_modulezd2initializa7ationz75zz__objectz00(475449627L,
				BSTRING_TO_STRING(BGl_string1570z00zz__bexitz00));
			return
				BGl_modulezd2initializa7ationz75zz__threadz00(149516032L,
				BSTRING_TO_STRING(BGl_string1570z00zz__bexitz00));
		}

	}

#ifdef __cplusplus
}
#endif
