#include <sys/personality.h>
#endif
+Lisp_Object symbol_module;
+Lisp_Object function_module;
+Lisp_Object plist_module;
+
static const char emacs_version[] = PACKAGE_VERSION;
static const char emacs_copyright[] = COPYRIGHT;
static const char emacs_bugreport[] = PACKAGE_BUGREPORT;
_exit (EXIT_FAILURE);
}
-/* ARGSUSED */
+static int main2 (void *, int, char **);
+
int
main (int argc, char **argv)
+{
+ /* Override Guile's libgc configuration. */
+ xputenv ("GC_ALL_INTERIOR_POINTERS=1");
+ scm_boot_guile (argc, argv, main2, NULL);
+}
+
+/* ARGSUSED */
+static int
+main2 (void *ignore, int argc, char **argv)
{
bool do_initial_setlocale;
bool dumping;
atexit (close_output_streams);
- /* Override Guile's libgc configuration. */
- xputenv ("GC_ALL_INTERIOR_POINTERS=1");
- scm_init_guile ();
-
sort_args (argc, argv);
argc = 0;
while (argv[argc]) argc++;
if (!initialized)
{
+ symbol_module = scm_call (scm_c_public_ref ("guile", "define-module*"),
+ scm_list_1 (scm_from_utf8_symbol ("elisp-symbols")),
+ scm_from_locale_keyword ("pure"),
+ SCM_BOOL_T,
+ SCM_UNDEFINED);
+ function_module = scm_call (scm_c_public_ref ("guile", "define-module*"),
+ scm_list_1 (scm_from_utf8_symbol ("elisp-functions")),
+ scm_from_locale_keyword ("pure"),
+ SCM_BOOL_T,
+ SCM_UNDEFINED);
+ plist_module = scm_call (scm_c_public_ref ("guile", "define-module*"),
+ scm_list_1 (scm_from_utf8_symbol ("elisp-plists")),
+ scm_from_locale_keyword ("pure"),
+ SCM_BOOL_T,
+ SCM_UNDEFINED);
+
init_alloc_once ();
init_guile ();
init_fns_once ();
init_minibuf_once (); /* Create list of minibuffers. */
/* Must precede init_window_once. */
+ /* Called before syms_of_fileio, because it sets up
+ Qerror_condition. Called before other symbol-initialization
+ functions because it sets up symbols used by defsubr. */
+ syms_of_data ();
+
/* Call syms_of_xfaces before init_window_once because that
function creates Vterminal_frame. Termcap frames now use
faces, and the face implementation uses some symbols as
CANNOT_DUMP is defined. */
syms_of_keyboard ();
- /* Called before syms_of_fileio, because it sets up Qerror_condition. */
- syms_of_data ();
syms_of_fns (); /* Before syms_of_charset which uses hashtables. */
syms_of_fileio ();
/* Before syms_of_coding to initialize Vgc_cons_threshold. */