comparison src/eval.c @ 173:8eaf7971accc r20-3b13

Import from CVS: tag r20-3b13
author cvs
date Mon, 13 Aug 2007 09:49:09 +0200
parents 85ec50267440
children 9ad43877534d
comparison
equal deleted inserted replaced
172:a38aed19690b 173:8eaf7971accc
287 ((markobj) (b->doc_and_interactive)); 287 ((markobj) (b->doc_and_interactive));
288 #ifdef COMPILED_FUNCTION_ANNOTATION_HACK 288 #ifdef COMPILED_FUNCTION_ANNOTATION_HACK
289 ((markobj) (b->annotated)); 289 ((markobj) (b->annotated));
290 #endif 290 #endif
291 /* tail-recurse on constants */ 291 /* tail-recurse on constants */
292 return (b->constants); 292 return b->constants;
293 } 293 }
294 294
295 static int 295 static int
296 compiled_function_equal (Lisp_Object o1, Lisp_Object o2, int depth) 296 compiled_function_equal (Lisp_Object o1, Lisp_Object o2, int depth)
297 { 297 {
417 do_debug_on_exit (Lisp_Object val) 417 do_debug_on_exit (Lisp_Object val)
418 { 418 {
419 /* This is falsified by call_debugger */ 419 /* This is falsified by call_debugger */
420 Lisp_Object v = call_debugger (list2 (Qexit, val)); 420 Lisp_Object v = call_debugger (list2 (Qexit, val));
421 421
422 return ((!UNBOUNDP (v)) ? v : val); 422 return !UNBOUNDP (v) ? v : val;
423 } 423 }
424 424
425 /* Called when debug-on-call behavior is called for. Enter the debugger 425 /* Called when debug-on-call behavior is called for. Enter the debugger
426 with the appropriate args for this. VAL is either t for a call 426 with the appropriate args for this. VAL is either t for a call
427 through `eval' or 'lambda for a call through `funcall'. 427 through `eval' or 'lambda for a call through `funcall'.
481 skip_debugger (Lisp_Object conditions, Lisp_Object data) 481 skip_debugger (Lisp_Object conditions, Lisp_Object data)
482 { 482 {
483 /* This function can GC */ 483 /* This function can GC */
484 Lisp_Object tail; 484 Lisp_Object tail;
485 int first_string = 1; 485 int first_string = 1;
486 Lisp_Object error_message; 486 Lisp_Object error_message = Qnil;
487 487
488 for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail)) 488 for (tail = Vdebug_ignored_errors; CONSP (tail); tail = XCDR (tail))
489 { 489 {
490 if (STRINGP (XCAR (tail))) 490 if (STRINGP (XCAR (tail)))
491 { 491 {
513 /* Actually generate a backtrace on STREAM. */ 513 /* Actually generate a backtrace on STREAM. */
514 514
515 static Lisp_Object 515 static Lisp_Object
516 backtrace_259 (Lisp_Object stream) 516 backtrace_259 (Lisp_Object stream)
517 { 517 {
518 return (Fbacktrace (stream, Qt)); 518 return Fbacktrace (stream, Qt);
519 } 519 }
520 520
521 /* An error was signalled. Maybe call the debugger, if the `debug-on-error' 521 /* An error was signalled. Maybe call the debugger, if the `debug-on-error'
522 etc. variables call for this. CONDITIONS is the list of conditions 522 etc. variables call for this. CONDITIONS is the list of conditions
523 associated with the error being signalled. SIG is the actual error 523 associated with the error being signalled. SIG is the actual error
629 *debugger_entered = 1; 629 *debugger_entered = 1;
630 } 630 }
631 631
632 UNGCPRO; 632 UNGCPRO;
633 Vcondition_handlers = all_handlers; 633 Vcondition_handlers = all_handlers;
634 return (unbind_to (speccount, val)); 634 return unbind_to (speccount, val);
635 } 635 }
636 636
637 637
638 /**********************************************************************/ 638 /**********************************************************************/
639 /* The basic special forms */ 639 /* The basic special forms */
1354 /* Call FUNC. */ 1354 /* Call FUNC. */
1355 if (SETJMP (c.jmp)) 1355 if (SETJMP (c.jmp))
1356 { 1356 {
1357 /* Throw works by a longjmp that comes right here. */ 1357 /* Throw works by a longjmp that comes right here. */
1358 if (threw) *threw = 1; 1358 if (threw) *threw = 1;
1359 return (c.val); 1359 return c.val;
1360 } 1360 }
1361 c.val = (*func) (arg); 1361 c.val = (*func) (arg);
1362 if (threw) *threw = 0; 1362 if (threw) *threw = 0;
1363 catchlist = c.next; 1363 catchlist = c.next;
1364 return (c.val); 1364 return c.val;
1365 } 1365 }
1366 1366
1367 1367
1368 /* Unwind the specbind, catch, and handler stacks back to CATCH, and 1368 /* Unwind the specbind, catch, and handler stacks back to CATCH, and
1369 jump to that CATCH, returning VALUE as the value of that catch. 1369 jump to that CATCH, returning VALUE as the value of that catch.
1551 1551
1552 if (EQ (loser, Vcondition_handlers)) /* may have been rebound to some tail */ 1552 if (EQ (loser, Vcondition_handlers)) /* may have been rebound to some tail */
1553 Vcondition_handlers = victim->cdr; 1553 Vcondition_handlers = victim->cdr;
1554 1554
1555 free_cons (victim); 1555 free_cons (victim);
1556 return (Qnil); 1556 return Qnil;
1557 } 1557 }
1558 1558
1559 static Lisp_Object 1559 static Lisp_Object
1560 condition_case_unwind (Lisp_Object loser) 1560 condition_case_unwind (Lisp_Object loser)
1561 { 1561 {
1568 victim = XCONS (loser); 1568 victim = XCONS (loser);
1569 if (EQ (loser, Vcondition_handlers)) /* may have been rebound to some tail */ 1569 if (EQ (loser, Vcondition_handlers)) /* may have been rebound to some tail */
1570 Vcondition_handlers = victim->cdr; 1570 Vcondition_handlers = victim->cdr;
1571 1571
1572 free_cons (victim); 1572 free_cons (victim);
1573 return (Qnil); 1573 return Qnil;
1574 } 1574 }
1575 1575
1576 /* Split out from condition_case_3 so that primitive C callers 1576 /* Split out from condition_case_3 so that primitive C callers
1577 don't have to cons up a lisp handler form to be evaluated. */ 1577 don't have to cons up a lisp handler form to be evaluated. */
1578 1578
1662 c.next = catchlist; 1662 c.next = catchlist;
1663 1663
1664 if (SETJMP (c.jmp)) 1664 if (SETJMP (c.jmp))
1665 { 1665 {
1666 /* throw does ungcpro, etc */ 1666 /* throw does ungcpro, etc */
1667 return ((*hfun) (c.val, harg)); 1667 return (*hfun) (c.val, harg);
1668 } 1668 }
1669 1669
1670 record_unwind_protect (condition_case_unwind, c.tag); 1670 record_unwind_protect (condition_case_unwind, c.tag);
1671 1671
1672 catchlist = &c; 1672 catchlist = &c;
1690 have this code here, and it doesn't cost anything, so I'm leaving it.*/ 1690 have this code here, and it doesn't cost anything, so I'm leaving it.*/
1691 UNGCPRO; 1691 UNGCPRO;
1692 catchlist = c.next; 1692 catchlist = c.next;
1693 Vcondition_handlers = XCDR (c.tag); 1693 Vcondition_handlers = XCDR (c.tag);
1694 1694
1695 return (unbind_to (speccount, c.val)); 1695 return unbind_to (speccount, c.val);
1696 } 1696 }
1697 1697
1698 static Lisp_Object 1698 static Lisp_Object
1699 run_condition_case_handlers (Lisp_Object val, Lisp_Object var) 1699 run_condition_case_handlers (Lisp_Object val, Lisp_Object var)
1700 { 1700 {
1711 return val; 1711 return val;
1712 #else 1712 #else
1713 int speccount; 1713 int speccount;
1714 1714
1715 if (NILP (var)) 1715 if (NILP (var))
1716 return (Fprogn (Fcdr (val))); /* tailcall */ 1716 return Fprogn (Fcdr (val)); /* tailcall */
1717 1717
1718 speccount = specpdl_depth_counter; 1718 speccount = specpdl_depth_counter;
1719 specbind (var, Fcar (val)); 1719 specbind (var, Fcar (val));
1720 val = Fprogn (Fcdr (val)); 1720 val = Fprogn (Fcdr (val));
1721 return unbind_to (speccount, val); 1721 return unbind_to (speccount, val);
1822 record_unwind_protect (condition_bind_unwind, tem); 1822 record_unwind_protect (condition_bind_unwind, tem);
1823 Vcondition_handlers = tem; 1823 Vcondition_handlers = tem;
1824 1824
1825 /* Caller should have GC-protected args */ 1825 /* Caller should have GC-protected args */
1826 tem = Ffuncall (nargs - 1, args + 1); 1826 tem = Ffuncall (nargs - 1, args + 1);
1827 return (unbind_to (speccount, tem)); 1827 return unbind_to (speccount, tem);
1828 } 1828 }
1829 1829
1830 static int 1830 static int
1831 condition_type_p (Lisp_Object type, Lisp_Object conditions) 1831 condition_type_p (Lisp_Object type, Lisp_Object conditions)
1832 { 1832 {
1833 if (EQ (type, Qt)) 1833 if (EQ (type, Qt))
1834 /* (condition-case c # (t c)) catches -all- signals 1834 /* (condition-case c # (t c)) catches -all- signals
1835 * Use with caution! */ 1835 * Use with caution! */
1836 return (1); 1836 return 1;
1837 else 1837 else
1838 { 1838 {
1839 if (SYMBOLP (type)) 1839 if (SYMBOLP (type))
1840 { 1840 {
1841 return (!NILP (Fmemq (type, conditions))); 1841 return !NILP (Fmemq (type, conditions));
1842 } 1842 }
1843 else if (CONSP (type)) 1843 else if (CONSP (type))
1844 { 1844 {
1845 while (CONSP (type)) 1845 while (CONSP (type))
1846 { 1846 {
1861 #if 1 /* RMS Claims: */ 1861 #if 1 /* RMS Claims: */
1862 /* Most callers are not prepared to handle gc if this 1862 /* Most callers are not prepared to handle gc if this
1863 returns. So, since this feature is not very useful, 1863 returns. So, since this feature is not very useful,
1864 take it out. */ 1864 take it out. */
1865 /* Have called debugger; return value to signaller */ 1865 /* Have called debugger; return value to signaller */
1866 return (value); 1866 return value;
1867 #else /* But the reality is that that stinks, because: */ 1867 #else /* But the reality is that that stinks, because: */
1868 /* GACK!!! Really want some way for debug-on-quit errors 1868 /* GACK!!! Really want some way for debug-on-quit errors
1869 to be continuable!! */ 1869 to be continuable!! */
1870 error ("Returning a value from an error is no longer supported"); 1870 error ("Returning a value from an error is no longer supported");
1871 #endif 1871 #endif
1953 NNUNGCPRO; 1953 NNUNGCPRO;
1954 } 1954 }
1955 NUNGCPRO; 1955 NUNGCPRO;
1956 #if 0 1956 #if 0
1957 if (!EQ (tem, Qsignal)) 1957 if (!EQ (tem, Qsignal))
1958 return (return_from_signal (tem)); 1958 return return_from_signal (tem);
1959 #endif 1959 #endif
1960 /* If handler didn't throw, try another handler */ 1960 /* If handler didn't throw, try another handler */
1961 Vcondition_handlers = all_handlers; 1961 Vcondition_handlers = all_handlers;
1962 } 1962 }
1963 1963
1966 /* t is used by handlers for all conditions, set up by C code. 1966 /* t is used by handlers for all conditions, set up by C code.
1967 * debugger is not called even if debug_on_error */ 1967 * debugger is not called even if debug_on_error */
1968 else if (EQ (handler_data, Qt)) 1968 else if (EQ (handler_data, Qt))
1969 { 1969 {
1970 UNGCPRO; 1970 UNGCPRO;
1971 return (Fthrow (handlers, Fcons (sig, data))); 1971 return Fthrow (handlers, Fcons (sig, data));
1972 } 1972 }
1973 /* `error' is used similarly to the way `t' is used, but in 1973 /* `error' is used similarly to the way `t' is used, but in
1974 addition it invokes the debugger if debug_on_error. 1974 addition it invokes the debugger if debug_on_error.
1975 This is normally used for the outer command-loop error 1975 This is normally used for the outer command-loop error
1976 handler. */ 1976 handler. */
1981 &stack_trace_displayed, 1981 &stack_trace_displayed,
1982 &debugger_entered); 1982 &debugger_entered);
1983 1983
1984 UNGCPRO; 1984 UNGCPRO;
1985 if (!UNBOUNDP (tem)) 1985 if (!UNBOUNDP (tem))
1986 return (return_from_signal (tem)); 1986 return return_from_signal (tem);
1987 1987
1988 tem = Fcons (sig, data); 1988 tem = Fcons (sig, data);
1989 return (Fthrow (handlers, tem)); 1989 return Fthrow (handlers, tem);
1990 } 1990 }
1991 else 1991 else
1992 { 1992 {
1993 /* handler established by real (Lisp) condition-case */ 1993 /* handler established by real (Lisp) condition-case */
1994 Lisp_Object h; 1994 Lisp_Object h;
2004 outer_handlers, 1, 2004 outer_handlers, 1,
2005 &stack_trace_displayed, 2005 &stack_trace_displayed,
2006 &debugger_entered); 2006 &debugger_entered);
2007 UNGCPRO; 2007 UNGCPRO;
2008 if (!UNBOUNDP (tem)) 2008 if (!UNBOUNDP (tem))
2009 return (return_from_signal (tem)); 2009 return return_from_signal (tem);
2010 2010
2011 /* Doesn't return */ 2011 /* Doesn't return */
2012 tem = Fcons (Fcons (sig, data), Fcdr (clause)); 2012 tem = Fcons (Fcons (sig, data), Fcdr (clause));
2013 return (Fthrow (handlers, tem)); 2013 return Fthrow (handlers, tem);
2014 } 2014 }
2015 } 2015 }
2016 } 2016 }
2017 } 2017 }
2018 2018
2088 2088
2089 static Lisp_Object 2089 static Lisp_Object
2090 call_with_suspended_errors_1 (Lisp_Object opaque_arg) 2090 call_with_suspended_errors_1 (Lisp_Object opaque_arg)
2091 { 2091 {
2092 Lisp_Object *kludgy_args = (Lisp_Object *) get_opaque_ptr (opaque_arg); 2092 Lisp_Object *kludgy_args = (Lisp_Object *) get_opaque_ptr (opaque_arg);
2093 return (primitive_funcall ((lisp_fn_t) get_opaque_ptr (kludgy_args[0]), 2093 return primitive_funcall ((lisp_fn_t) get_opaque_ptr (kludgy_args[0]),
2094 XINT (kludgy_args[1]), kludgy_args + 2)); 2094 XINT (kludgy_args[1]), kludgy_args + 2);
2095 } 2095 }
2096 2096
2097 static Lisp_Object 2097 static Lisp_Object
2098 restore_current_warning_class (Lisp_Object warning_class) 2098 restore_current_warning_class (Lisp_Object warning_class)
2099 { 2099 {
2510 /* note that this is continuable. */ 2510 /* note that this is continuable. */
2511 Fsignal (Qquit, Qnil); 2511 Fsignal (Qquit, Qnil);
2512 } 2512 }
2513 2513
2514 2514
2515 DEFUN ("strerror", Fstrerror, 1, 1, 0, /*
2516 Return the error string associated with integer ERRNUM.
2517 This function is an interface to strerror(3).
2518 The returned string may or may not be translated.
2519 */
2520 (errnum))
2521 {
2522 CHECK_INT (errnum);
2523 return build_ext_string (strerror (XINT (errnum)), FORMAT_NATIVE);
2524 }
2525
2526
2527 /**********************************************************************/ 2515 /**********************************************************************/
2528 /* User commands */ 2516 /* User commands */
2529 /**********************************************************************/ 2517 /**********************************************************************/
2530 2518
2531 DEFUN ("commandp", Fcommandp, 1, 1, 0, /* 2519 DEFUN ("commandp", Fcommandp, 1, 1, 0, /*
2629 PUSH_BACKTRACE (backtrace); 2617 PUSH_BACKTRACE (backtrace);
2630 2618
2631 final = Fcall_interactively (cmd, record, keys); 2619 final = Fcall_interactively (cmd, record, keys);
2632 2620
2633 POP_BACKTRACE (backtrace); 2621 POP_BACKTRACE (backtrace);
2634 return (final); 2622 return final;
2635 } 2623 }
2636 else if (STRINGP (final) || VECTORP (final)) 2624 else if (STRINGP (final) || VECTORP (final))
2637 { 2625 {
2638 return Fexecute_kbd_macro (final, prefixarg); 2626 return Fexecute_kbd_macro (final, prefixarg);
2639 } 2627 }
3017 lisp_eval_depth--; 3005 lisp_eval_depth--;
3018 if (backtrace.debug_on_exit) 3006 if (backtrace.debug_on_exit)
3019 val = do_debug_on_exit (val); 3007 val = do_debug_on_exit (val);
3020 POP_BACKTRACE (backtrace); 3008 POP_BACKTRACE (backtrace);
3021 UNGCPRO; 3009 UNGCPRO;
3022 return (val); 3010 return val;
3023 } 3011 }
3024 3012
3025 else 3013 else
3026 { 3014 {
3027 struct gcpro gcpro1, gcpro2, gcpro3; 3015 struct gcpro gcpro1, gcpro2, gcpro3;
3076 3064
3077 lisp_eval_depth--; 3065 lisp_eval_depth--;
3078 if (backtrace.debug_on_exit) 3066 if (backtrace.debug_on_exit)
3079 val = do_debug_on_exit (val); 3067 val = do_debug_on_exit (val);
3080 POP_BACKTRACE (backtrace); 3068 POP_BACKTRACE (backtrace);
3081 return (val); 3069 return val;
3082 } 3070 }
3083 3071
3084 3072
3085 Lisp_Object 3073 Lisp_Object
3086 funcall_recording_as (Lisp_Object recorded_as, int nargs, 3074 funcall_recording_as (Lisp_Object recorded_as, int nargs,
3514 /* Do the debug-on-exit now, while arg_vector still exists. */ 3502 /* Do the debug-on-exit now, while arg_vector still exists. */
3515 if (backtrace_list->debug_on_exit) 3503 if (backtrace_list->debug_on_exit)
3516 tem = do_debug_on_exit (tem); 3504 tem = do_debug_on_exit (tem);
3517 /* Don't do it again when we return to eval. */ 3505 /* Don't do it again when we return to eval. */
3518 backtrace_list->debug_on_exit = 0; 3506 backtrace_list->debug_on_exit = 0;
3519 return (tem); 3507 return tem;
3520 } 3508 }
3521 3509
3522 /* Apply a Lisp function FUN to the NARGS evaluated arguments in ARG_VECTOR 3510 /* Apply a Lisp function FUN to the NARGS evaluated arguments in ARG_VECTOR
3523 and return the result of evaluation. 3511 and return the result of evaluation.
3524 FUN must be either a lambda-expression or a compiled-code object. */ 3512 FUN must be either a lambda-expression or a compiled-code object. */
3895 /* This function can GC */ 3883 /* This function can GC */
3896 struct gcpro gcpro1; 3884 struct gcpro gcpro1;
3897 Lisp_Object args[2]; 3885 Lisp_Object args[2];
3898 3886
3899 if (NILP (arg)) 3887 if (NILP (arg))
3900 return (Ffuncall (1, &fn)); 3888 return Ffuncall (1, &fn);
3901 GCPRO1 (args[0]); 3889 GCPRO1 (args[0]);
3902 gcpro1.nvars = 2; 3890 gcpro1.nvars = 2;
3903 args[0] = fn; 3891 args[0] = fn;
3904 args[1] = arg; 3892 args[1] = arg;
3905 RETURN_UNGCPRO (Fapply (2, args)); 3893 RETURN_UNGCPRO (Fapply (2, args));
4443 4431
4444 if (SYMBOLP (function)) 4432 if (SYMBOLP (function))
4445 { 4433 {
4446 tem = XSYMBOL (function)->function; 4434 tem = XSYMBOL (function)->function;
4447 if (NILP (tem) || UNBOUNDP (tem)) 4435 if (NILP (tem) || UNBOUNDP (tem))
4448 return (Qnil); 4436 return Qnil;
4449 } 4437 }
4450 4438
4451 GCPRO2 (opaque, function); 4439 GCPRO2 (opaque, function);
4452 specbind (Qinhibit_quit, Qt); 4440 specbind (Qinhibit_quit, Qt);
4453 /* gc_currently_forbidden = 1; Currently no reason to do this; */ 4441 /* gc_currently_forbidden = 1; Currently no reason to do this; */
4491 4479
4492 if (SYMBOLP (function)) 4480 if (SYMBOLP (function))
4493 { 4481 {
4494 tem = XSYMBOL (function)->function; 4482 tem = XSYMBOL (function)->function;
4495 if (NILP (tem) || UNBOUNDP (tem)) 4483 if (NILP (tem) || UNBOUNDP (tem))
4496 return (Qnil); 4484 return Qnil;
4497 } 4485 }
4498 4486
4499 GCPRO4 (cons, opaque, function, object); 4487 GCPRO4 (cons, opaque, function, object);
4500 4488
4501 specbind (Qinhibit_quit, Qt); 4489 specbind (Qinhibit_quit, Qt);
4528 4516
4529 if (SYMBOLP (function)) 4517 if (SYMBOLP (function))
4530 { 4518 {
4531 tem = XSYMBOL (function)->function; 4519 tem = XSYMBOL (function)->function;
4532 if (NILP (tem) || UNBOUNDP (tem)) 4520 if (NILP (tem) || UNBOUNDP (tem))
4533 return (Qnil); 4521 return Qnil;
4534 } 4522 }
4535 4523
4536 GCPRO5 (cons, opaque, function, object1, object2); 4524 GCPRO5 (cons, opaque, function, object1, object2);
4537 specbind (Qinhibit_quit, Qt); 4525 specbind (Qinhibit_quit, Qt);
4538 /* gc_currently_forbidden = 1; Currently no reason to do this; */ 4526 /* gc_currently_forbidden = 1; Currently no reason to do this; */
4617 Fset_buffer (buf); 4605 Fset_buffer (buf);
4618 Fset (symbol, ovalue); 4606 Fset (symbol, ovalue);
4619 Fset_buffer (current); 4607 Fset_buffer (current);
4620 UNGCPRO; 4608 UNGCPRO;
4621 } 4609 }
4622 return (symbol); 4610 return symbol;
4623 } 4611 }
4624 4612
4625 static Lisp_Object 4613 static Lisp_Object
4626 specbind_unwind_wasnt_local (Lisp_Object buffer) 4614 specbind_unwind_wasnt_local (Lisp_Object buffer)
4627 { 4615 {
4650 Fset_buffer (buffer); 4638 Fset_buffer (buffer);
4651 Fkill_local_variable (symbol); 4639 Fkill_local_variable (symbol);
4652 Fset_buffer (current); 4640 Fset_buffer (current);
4653 UNGCPRO; 4641 UNGCPRO;
4654 } 4642 }
4655 return (symbol); 4643 return symbol;
4656 } 4644 }
4657 4645
4658 4646
4659 /* Don't want to include buffer.h just for this */ 4647 /* Don't want to include buffer.h just for this */
4660 extern struct buffer *current_buffer; 4648 extern struct buffer *current_buffer;
4757 if (quitf) 4745 if (quitf)
4758 Vquit_flag = Qt; 4746 Vquit_flag = Qt;
4759 4747
4760 UNGCPRO; 4748 UNGCPRO;
4761 4749
4762 return (value); 4750 return value;
4763 } 4751 }
4764 4752
4765 4753
4766 int 4754 int
4767 specpdl_depth (void) 4755 specpdl_depth (void)
4768 { 4756 {
4769 return (specpdl_depth_counter); 4757 return specpdl_depth_counter;
4770 } 4758 }
4771 4759
4772 4760
4773 /* Get the value of symbol's global binding, even if that binding is 4761 /* Get the value of symbol's global binding, even if that binding is
4774 not now dynamically visible. May return Qunbound or magic values. */ 4762 not now dynamically visible. May return Qunbound or magic values. */
5120 DEFSUBR (Funwind_protect); 5108 DEFSUBR (Funwind_protect);
5121 DEFSUBR (Fcondition_case); 5109 DEFSUBR (Fcondition_case);
5122 DEFSUBR (Fcall_with_condition_handler); 5110 DEFSUBR (Fcall_with_condition_handler);
5123 DEFSUBR (Fsignal); 5111 DEFSUBR (Fsignal);
5124 DEFSUBR (Finteractive_p); 5112 DEFSUBR (Finteractive_p);
5125 DEFSUBR (Fstrerror);
5126 DEFSUBR (Fcommandp); 5113 DEFSUBR (Fcommandp);
5127 DEFSUBR (Fcommand_execute); 5114 DEFSUBR (Fcommand_execute);
5128 DEFSUBR (Fautoload); 5115 DEFSUBR (Fautoload);
5129 DEFSUBR (Feval); 5116 DEFSUBR (Feval);
5130 DEFSUBR (Fapply); 5117 DEFSUBR (Fapply);