Update to Inform v6.41
[inform.git] / src / symbols.c
index 8f2a09e52c90a4bd563e73bec844235caa60cb5f..e8ac5b6446031572fd6bd4c4e3f90e89276b48b3 100644 (file)
@@ -1,7 +1,7 @@
 /* ------------------------------------------------------------------------- */
 /*   "symbols" :  The symbols table; creating stock of reserved words        */
 /*                                                                           */
-/*   Part of Inform 6.40                                                     */
+/*   Part of Inform 6.41                                                     */
 /*   copyright (c) Graham Nelson 1993 - 2022                                 */
 /*                                                                           */
 /* Inform is free software: you can redistribute it and/or modify            */
@@ -521,8 +521,6 @@ extern void check_warn_symbol_has_metaclass(const assembly_operand *AO, char *co
 extern void issue_unused_warnings(void)
 {   int32 i;
 
-    if (module_switch) return;
-
     /*  Update any ad-hoc variables that might help the library  */
     if (glulx_mode)
     {   global_initial_value[10]=statusline_flag;
@@ -553,8 +551,8 @@ extern void issue_debug_symbol_warnings(void)
 }
 
 /* ------------------------------------------------------------------------- */
-/*   These are arrays used only during story file (never module) creation,   */
-/*   and not allocated until then.                                           */
+/*   These are arrays used only during story file creation, and not          */
+/*   allocated until then.                                                   */
 
        int32 *individual_name_strings; /* Packed addresses of Z-encoded
                                           strings of the names of the
@@ -571,8 +569,6 @@ extern void write_the_identifier_names(void)
     for (i=0; i<no_individual_properties; i++)
         individual_name_strings[i] = 0;
 
-    if (module_switch) return;
-
     veneer_mode = TRUE;
 
     null_value = compile_string(unknown_attribute, STRCTX_SYMBOL);
@@ -821,18 +817,12 @@ static void stockup_symbols(void)
         create_rsymbol("Grammar__Version", 2, CONSTANT_T);
     grammar_version_symbol = symbol_index("Grammar__Version", -1);
 
-    if (module_switch)
-        create_rsymbol("MODULE_MODE",0, CONSTANT_T);
-
     if (runtime_error_checking_switch)
         create_rsymbol("STRICT_MODE",0, CONSTANT_T);
 
     if (define_DEBUG_switch)
         create_rsymbol("DEBUG",      0, CONSTANT_T);
 
-    if (define_USE_MODULES_switch)
-        create_rsymbol("USE_MODULES",0, CONSTANT_T);
-
     if (define_INFIX_switch)
     {   create_rsymbol("INFIX",      0, CONSTANT_T);
         create_symbol("infix__watching", 0, ATTRIBUTE_T);
@@ -940,6 +930,14 @@ static void stockup_symbols(void)
         create_symbol("FLOAT_INFINITY",  0x7F800000, CONSTANT_T);
         create_symbol("FLOAT_NINFINITY", 0xFF800000, CONSTANT_T);
         create_symbol("FLOAT_NAN",       0x7FC00000, CONSTANT_T);
+        /* Same for double constants. Each of these has a high 32-bit
+           word and a low 32-bit word. */
+        create_symbol("DOUBLE_HI_INFINITY",  0x7FF00000, CONSTANT_T);
+        create_symbol("DOUBLE_LO_INFINITY",  0x00000000, CONSTANT_T);
+        create_symbol("DOUBLE_HI_NINFINITY", 0xFFF00000, CONSTANT_T);
+        create_symbol("DOUBLE_LO_NINFINITY", 0x00000000, CONSTANT_T);
+        create_symbol("DOUBLE_HI_NAN",       0x7FF80000, CONSTANT_T);
+        create_symbol("DOUBLE_LO_NAN",       0x00000001, CONSTANT_T);
     }
 
     if (symbol_definitions && symbol_definitions_count) {