Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 5438:8d29f1c4bb98
Merge with 21.5 trunk.
author | Mats Lidell <matsl@xemacs.org> |
---|---|
date | Fri, 26 Nov 2010 06:43:36 +0100 |
parents | 308d34e9f07d c096d8051f89 |
children | 6506fcb40fcf |
comparison
equal
deleted
inserted
replaced
5437:002cb5224e4f | 5438:8d29f1c4bb98 |
---|---|
1675 #define GCBITS 2 | 1675 #define GCBITS 2 |
1676 #define INT_GCBITS 1 | 1676 #define INT_GCBITS 1 |
1677 | 1677 |
1678 #define INT_VALBITS (BITS_PER_EMACS_INT - INT_GCBITS) | 1678 #define INT_VALBITS (BITS_PER_EMACS_INT - INT_GCBITS) |
1679 #define VALBITS (BITS_PER_EMACS_INT - GCBITS) | 1679 #define VALBITS (BITS_PER_EMACS_INT - GCBITS) |
1680 /* This is badly named; it's not the maximum value that an EMACS_INT can | |
1681 have, it's the maximum value that a Lisp-visible fixnum can have (half | |
1682 the maximum value an EMACS_INT can have) and as such would be better | |
1683 called MOST_POSITIVE_FIXNUM. Similarly for MOST_NEGATIVE_FIXNUM. */ | |
1680 #define EMACS_INT_MAX ((EMACS_INT) ((1UL << (INT_VALBITS - 1)) -1UL)) | 1684 #define EMACS_INT_MAX ((EMACS_INT) ((1UL << (INT_VALBITS - 1)) -1UL)) |
1681 #define EMACS_INT_MIN (-(EMACS_INT_MAX) - 1) | 1685 #define EMACS_INT_MIN (-(EMACS_INT_MAX) - 1) |
1682 /* WARNING: evaluates its arg twice. */ | 1686 /* WARNING: evaluates its arg twice. */ |
1683 #define NUMBER_FITS_IN_AN_EMACS_INT(num) \ | 1687 #define NUMBER_FITS_IN_AN_EMACS_INT(num) \ |
1684 ((num) <= EMACS_INT_MAX && (num) >= EMACS_INT_MIN) | 1688 ((num) <= EMACS_INT_MAX && (num) >= EMACS_INT_MIN) |
2917 } while (0) | 2921 } while (0) |
2918 | 2922 |
2919 #define CONCHECK_INT(x) do { \ | 2923 #define CONCHECK_INT(x) do { \ |
2920 if (!INTP (x)) \ | 2924 if (!INTP (x)) \ |
2921 x = wrong_type_argument (Qfixnump, x); \ | 2925 x = wrong_type_argument (Qfixnump, x); \ |
2922 } while (0) | |
2923 | |
2924 /* NOTE NOTE NOTE! This definition of "natural number" is mathematically | |
2925 wrong. Mathematically, a natural number is a positive integer; 0 | |
2926 isn't included. This would be better called NONNEGINT(). */ | |
2927 | |
2928 #define NATNUMP(x) (INTP (x) && XINT (x) >= 0) | |
2929 | |
2930 #define CHECK_NATNUM(x) do { \ | |
2931 if (!NATNUMP (x)) \ | |
2932 dead_wrong_type_argument (Qnatnump, x); \ | |
2933 } while (0) | |
2934 | |
2935 #define CONCHECK_NATNUM(x) do { \ | |
2936 if (!NATNUMP (x)) \ | |
2937 x = wrong_type_argument (Qnatnump, x); \ | |
2938 } while (0) | 2926 } while (0) |
2939 | 2927 |
2940 END_C_DECLS | 2928 END_C_DECLS |
2941 | 2929 |
2942 /* -------------- properties of internally-formatted text ------------- */ | 2930 /* -------------- properties of internally-formatted text ------------- */ |
4314 MODULE_API Lisp_Object listu (Lisp_Object, ...); | 4302 MODULE_API Lisp_Object listu (Lisp_Object, ...); |
4315 DECLARE_DOESNT_RETURN (memory_full (void)); | 4303 DECLARE_DOESNT_RETURN (memory_full (void)); |
4316 void disksave_object_finalization (void); | 4304 void disksave_object_finalization (void); |
4317 void finish_object_memory_usage_stats (void); | 4305 void finish_object_memory_usage_stats (void); |
4318 extern int purify_flag; | 4306 extern int purify_flag; |
4307 #define ARRAY_DIMENSION_LIMIT EMACS_INT_MAX | |
4308 extern Fixnum Varray_dimension_limit; | |
4319 #ifndef NEW_GC | 4309 #ifndef NEW_GC |
4320 extern EMACS_INT gc_generation_number[1]; | 4310 extern EMACS_INT gc_generation_number[1]; |
4321 #endif /* not NEW_GC */ | 4311 #endif /* not NEW_GC */ |
4322 int c_readonly (Lisp_Object); | 4312 int c_readonly (Lisp_Object); |
4323 int lisp_readonly (Lisp_Object); | 4313 int lisp_readonly (Lisp_Object); |
4501 DECLARE_DOESNT_RETURN (args_out_of_range_3 (Lisp_Object, Lisp_Object, | 4491 DECLARE_DOESNT_RETURN (args_out_of_range_3 (Lisp_Object, Lisp_Object, |
4502 Lisp_Object)); | 4492 Lisp_Object)); |
4503 MODULE_API Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); | 4493 MODULE_API Lisp_Object wrong_type_argument (Lisp_Object, Lisp_Object); |
4504 MODULE_API | 4494 MODULE_API |
4505 DECLARE_DOESNT_RETURN (dead_wrong_type_argument (Lisp_Object, Lisp_Object)); | 4495 DECLARE_DOESNT_RETURN (dead_wrong_type_argument (Lisp_Object, Lisp_Object)); |
4506 void check_int_range (EMACS_INT, EMACS_INT, EMACS_INT); | 4496 void check_integer_range (Lisp_Object, Lisp_Object, Lisp_Object); |
4507 | 4497 |
4508 EXFUN (Fint_to_char, 1); | 4498 EXFUN (Fint_to_char, 1); |
4509 EXFUN (Fchar_to_int, 1); | 4499 EXFUN (Fchar_to_int, 1); |
4510 | 4500 |
4511 enum arith_comparison { | 4501 enum arith_comparison { |
4527 Qerror_conditions, Qerror_message, Qinteger_char_or_marker_p, | 4517 Qerror_conditions, Qerror_message, Qinteger_char_or_marker_p, |
4528 Qinteger_or_char_p, Qinteger_or_marker_p, Qlambda, Qlistp, Qnatnump, | 4518 Qinteger_or_char_p, Qinteger_or_marker_p, Qlambda, Qlistp, Qnatnump, |
4529 Qnonnegativep, Qnumber_char_or_marker_p, Qnumberp, Qquote, Qtrue_list_p; | 4519 Qnonnegativep, Qnumber_char_or_marker_p, Qnumberp, Qquote, Qtrue_list_p; |
4530 extern MODULE_API Lisp_Object Qintegerp; | 4520 extern MODULE_API Lisp_Object Qintegerp; |
4531 | 4521 |
4532 extern Lisp_Object Qarith_error, Qbeginning_of_buffer, Qbuffer_read_only, | 4522 extern Lisp_Object Qargs_out_of_range, Qarith_error, Qbeginning_of_buffer, |
4533 Qcircular_list, Qcircular_property_list, Qconversion_error, | 4523 Qbuffer_read_only, Qcircular_list, Qcircular_property_list, |
4534 Qcyclic_variable_indirection, Qdomain_error, Qediting_error, | 4524 Qconversion_error, Qcyclic_variable_indirection, Qdomain_error, |
4535 Qend_of_buffer, Qend_of_file, Qerror, Qfile_error, Qinternal_error, | 4525 Qediting_error, Qend_of_buffer, Qend_of_file, Qerror, Qfile_error, |
4536 Qinvalid_change, Qinvalid_constant, Qinvalid_function, | 4526 Qinternal_error, Qinvalid_change, Qinvalid_constant, Qinvalid_function, |
4537 Qinvalid_keyword_argument, Qinvalid_operation, | 4527 Qinvalid_keyword_argument, Qinvalid_operation, |
4538 Qinvalid_read_syntax, Qinvalid_state, Qio_error, Qlist_formation_error, | 4528 Qinvalid_read_syntax, Qinvalid_state, Qio_error, Qlist_formation_error, |
4539 Qmalformed_list, Qmalformed_property_list, Qno_catch, Qout_of_memory, | 4529 Qmalformed_list, Qmalformed_property_list, Qno_catch, Qout_of_memory, |
4540 Qoverflow_error, Qprinting_unreadable_object, Qquit, Qrange_error, | 4530 Qoverflow_error, Qprinting_unreadable_object, Qquit, Qrange_error, |
4541 Qsetting_constant, Qsingularity_error, Qstack_overflow, | 4531 Qsetting_constant, Qsingularity_error, Qstack_overflow, |
4542 Qstructure_formation_error, Qtext_conversion_error, Qunderflow_error, | 4532 Qstructure_formation_error, Qtext_conversion_error, Qunderflow_error, |
4543 Qvoid_function, Qvoid_variable, Qwrong_number_of_arguments, | 4533 Qvoid_function, Qvoid_variable, Qwrong_number_of_arguments, |
4544 Qwrong_type_argument; | 4534 Qwrong_type_argument; |
4535 | |
4545 extern Lisp_Object Qcdr; | 4536 extern Lisp_Object Qcdr; |
4546 extern Lisp_Object Qerror_lacks_explanatory_string; | 4537 extern Lisp_Object Qerror_lacks_explanatory_string; |
4547 extern Lisp_Object Qfile_error; | 4538 extern Lisp_Object Qfile_error; |
4548 extern Lisp_Object Qsequencep; | 4539 extern Lisp_Object Qsequencep; |
4549 extern MODULE_API Lisp_Object Qinvalid_argument, Qsyntax_error; | 4540 extern MODULE_API Lisp_Object Qinvalid_argument, Qsyntax_error; |
5006 Lisp_Object un_autoload (Lisp_Object); | 4997 Lisp_Object un_autoload (Lisp_Object); |
5007 void warn_when_safe_lispobj (Lisp_Object, Lisp_Object, Lisp_Object); | 4998 void warn_when_safe_lispobj (Lisp_Object, Lisp_Object, Lisp_Object); |
5008 MODULE_API void warn_when_safe (Lisp_Object, Lisp_Object, const Ascbyte *, | 4999 MODULE_API void warn_when_safe (Lisp_Object, Lisp_Object, const Ascbyte *, |
5009 ...) PRINTF_ARGS (3, 4); | 5000 ...) PRINTF_ARGS (3, 4); |
5010 extern int backtrace_with_internal_sections; | 5001 extern int backtrace_with_internal_sections; |
5002 extern Fixnum Vmultiple_values_limit; | |
5011 | 5003 |
5012 extern Lisp_Object Qand_optional; | 5004 extern Lisp_Object Qand_optional; |
5013 extern Lisp_Object Qand_rest; | 5005 extern Lisp_Object Qand_rest; |
5014 extern Lisp_Object Qautoload; | 5006 extern Lisp_Object Qautoload; |
5015 extern Lisp_Object Qcommandp; | 5007 extern Lisp_Object Qcommandp; |