summaryrefslogtreecommitdiff
path: root/libguile/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/init.c')
-rw-r--r--libguile/init.c286
1 files changed, 140 insertions, 146 deletions
diff --git a/libguile/init.c b/libguile/init.c
index 00d2e806a..e33a60324 100644
--- a/libguile/init.c
+++ b/libguile/init.c
@@ -1,153 +1,155 @@
-/* Copyright (C) 1995-2004, 2006, 2009-2014, 2016-2018
- * Free Software Foundation, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 3 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
+/* Copyright 1995-2004,2006,2009-2014,2016-2019
+ Free Software Foundation, Inc.
+
+ This file is part of Guile.
+
+ Guile is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Guile is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with Guile. If not, see
+ <https://www.gnu.org/licenses/>. */
-/* Include the headers for just about everything.
- We call all their initialization functions. */
#ifdef HAVE_CONFIG_H
-# include <config.h>
+# include <config.h>
#endif
-#include <stdlib.h>
+#include <fcntl.h>
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <sys/stat.h>
-#include <fcntl.h>
-#include <gmp.h>
+#include <unistd.h>
-#include "libguile/_scm.h"
+#include <gmp.h>
/* Everybody has an init function. */
-#include "libguile/alist.h"
-#include "libguile/async.h"
-#include "libguile/atomic.h"
-#include "libguile/backtrace.h"
-#include "libguile/bitvectors.h"
-#include "libguile/boolean.h"
-#include "libguile/bytevectors.h"
-#include "libguile/chars.h"
-#include "libguile/control.h"
-#include "libguile/continuations.h"
-#include "libguile/debug.h"
+#include "alist.h"
+#include "array-map.h"
+#include "arrays.h"
+#include "async.h"
+#include "atomic.h"
+#include "backtrace.h"
+#include "bitvectors.h"
+#include "boolean.h"
+#include "bytevectors.h"
+#include "chars.h"
+#include "continuations.h"
+#include "control.h"
+#include "debug.h"
#ifdef GUILE_DEBUG_MALLOC
-#include "libguile/debug-malloc.h"
+#include "debug-malloc.h"
#endif
-#include "libguile/deprecation.h"
-#include "libguile/dynl.h"
-#include "libguile/dynwind.h"
-#include "libguile/eq.h"
-#include "libguile/error.h"
-#include "libguile/eval.h"
-#include "libguile/evalext.h"
-#include "libguile/expand.h"
-#include "libguile/fdes-finalizers.h"
-#include "libguile/feature.h"
-#include "libguile/filesys.h"
-#include "libguile/finalizers.h"
-#include "libguile/fluids.h"
-#include "libguile/fports.h"
-#include "libguile/frames.h"
-#include "libguile/gc.h"
-#include "libguile/generalized-arrays.h"
-#include "libguile/generalized-vectors.h"
-#include "libguile/goops.h"
-#include "libguile/gsubr.h"
-#include "libguile/hash.h"
-#include "libguile/hashtab.h"
-#include "libguile/hooks.h"
-#include "libguile/gettext.h"
-#include "libguile/i18n.h"
-#include "libguile/instructions.h"
-#include "libguile/ioext.h"
-#include "libguile/keywords.h"
-#include "libguile/list.h"
-#include "libguile/load.h"
-#include "libguile/macros.h"
-#include "libguile/mallocs.h"
-#include "libguile/memoize.h"
-#include "libguile/modules.h"
-#include "libguile/net_db.h"
-#include "libguile/numbers.h"
-#include "libguile/loader.h"
-#include "libguile/objprop.h"
-#include "libguile/options.h"
-#include "libguile/pairs.h"
-#include "libguile/poll.h"
-#include "libguile/ports.h"
-#include "libguile/posix.h"
+#include "deprecated.h"
+#include "deprecation.h"
+#include "dynl.h"
+#include "dynwind.h"
+#include "eq.h"
+#include "error.h"
+#include "eval.h"
+#include "evalext.h"
+#include "expand.h"
+#include "extensions.h"
+#include "fdes-finalizers.h"
+#include "feature.h"
+#include "filesys.h"
+#include "finalizers.h"
+#include "fluids.h"
+#include "foreign-object.h"
+#include "foreign.h"
+#include "fports.h"
+#include "frames.h"
+#include "gc.h"
+#include "generalized-arrays.h"
+#include "generalized-vectors.h"
+#include "gettext.h"
+#include "goops.h"
+#include "gsubr.h"
+#include "guardians.h"
+#include "hash.h"
+#include "hashtab.h"
+#include "hooks.h"
+#include "i18n.h"
+#include "instructions.h"
+#include "intrinsics.h"
+#include "ioext.h"
+#include "jit.h"
+#include "keywords.h"
+#include "list.h"
+#include "load.h"
+#include "loader.h"
+#include "macros.h"
+#include "mallocs.h"
+#include "memoize.h"
+#include "modules.h"
+#include "net_db.h"
+#include "numbers.h"
+#include "objprop.h"
+#include "options.h"
+#include "pairs.h"
+#include "poll.h"
+#include "ports.h"
+#include "posix.h"
+#include "print.h"
+#include "private-options.h"
+#include "procprop.h"
+#include "procs.h"
+#include "programs.h"
+#include "promises.h"
#ifdef ENABLE_REGEX
-#include "libguile/regex-posix.h"
+#include "regex-posix.h"
#endif
-#include "libguile/print.h"
-#include "libguile/procprop.h"
-#include "libguile/procs.h"
-#include "libguile/programs.h"
-#include "libguile/promises.h"
-#include "libguile/array-map.h"
-#include "libguile/random.h"
-#include "libguile/rdelim.h"
-#include "libguile/read.h"
-#include "libguile/rw.h"
-#include "libguile/scmsigs.h"
-#include "libguile/script.h"
-#include "libguile/simpos.h"
-#include "libguile/smob.h"
-#include "libguile/socket.h"
-#include "libguile/sort.h"
-#include "libguile/srcprop.h"
-#include "libguile/stackchk.h"
-#include "libguile/stacks.h"
-#include "libguile/stime.h"
-#include "libguile/strings.h"
-#include "libguile/srfi-1.h"
-#include "libguile/srfi-4.h"
-#include "libguile/srfi-13.h"
-#include "libguile/srfi-14.h"
-#include "libguile/srfi-60.h"
-#include "libguile/strorder.h"
-#include "libguile/strports.h"
-#include "libguile/struct.h"
-#include "libguile/symbols.h"
-#include "libguile/syntax.h"
-#include "libguile/throw.h"
-#include "libguile/arrays.h"
-#include "libguile/trees.h"
-#include "libguile/unicode.h"
-#include "libguile/values.h"
-#include "libguile/variable.h"
-#include "libguile/vectors.h"
-#include "libguile/version.h"
-#include "libguile/vm.h"
-#include "libguile/vports.h"
-#include "libguile/guardians.h"
-#include "libguile/extensions.h"
-#include "libguile/uniform.h"
-#include "libguile/deprecated.h"
-
-#include "libguile/init.h"
-#include "libguile/private-options.h"
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-#include <unistd.h>
+#include "r6rs-ports.h"
+#include "random.h"
+#include "rdelim.h"
+#include "read.h"
+#include "rw.h"
+#include "scmsigs.h"
+#include "script.h"
+#include "simpos.h"
+#include "smob.h"
+#include "socket.h"
+#include "sort.h"
+#include "srcprop.h"
+#include "srfi-1.h"
+#include "srfi-13.h"
+#include "srfi-14.h"
+#include "srfi-4.h"
+#include "srfi-60.h"
+#include "stackchk.h"
+#include "stacks.h"
+#include "stime.h"
+#include "strings.h"
+#include "strorder.h"
+#include "strports.h"
+#include "struct.h"
+#include "symbols.h"
+#include "syntax.h"
+#include "throw.h"
+#include "trees.h"
+#include "unicode.h"
+#include "uniform.h"
+#include "values.h"
+#include "variable.h"
+#include "vectors.h"
+#include "version.h"
+#include "vm.h"
+#include "vports.h"
+#include "weak-set.h"
+#include "weak-table.h"
+#include "weak-vector.h"
+
+#include "init.h"
@@ -258,12 +260,6 @@ scm_load_startup_files ()
/* The main init code. */
-#ifdef _UNICOS
-typedef int setjmp_type;
-#else
-typedef long setjmp_type;
-#endif
-
/* All the data needed to invoke the main function. */
struct main_func_closure
{
@@ -397,6 +393,7 @@ scm_i_init_guile (void *base)
scm_init_array_handle ();
scm_bootstrap_bytevectors (); /* Requires array-handle */
scm_bootstrap_instructions ();
+ scm_bootstrap_intrinsics ();
scm_bootstrap_loader ();
scm_bootstrap_programs ();
scm_bootstrap_vm ();
@@ -516,6 +513,9 @@ scm_i_init_guile (void *base)
scm_bootstrap_i18n ();
scm_init_script ();
scm_init_unicode ();
+#if ENABLE_JIT
+ scm_init_jit ();
+#endif
scm_init_goops ();
@@ -542,9 +542,3 @@ scm_i_init_guile (void *base)
/* Finally, cause finalizers to run in a separate thread. */
scm_init_finalizer_thread ();
}
-
-/*
- Local Variables:
- c-file-style: "gnu"
- End:
-*/