1. 20 Feb, 2016 1 commit
    • Eli Zaretskii's avatar
      Fix memory reservation on MS-Windows · ea0b6044
      Eli Zaretskii authored
      * src/w32heap.c (mmap_alloc): Reserve memory in 64KB granular
      units.  This avoids leaving gaps in reserved memory regions that
      no one can use, since memory reservation must produce 64KB-aligned
      addresses.  (Bug#22526)
      ea0b6044
  2. 14 Feb, 2016 1 commit
    • Eli Zaretskii's avatar
      Make 'mmap_realloc' on MS-Windows more reliable · 8badf953
      Eli Zaretskii authored
      * src/w32heap.c (mmap_alloc): If reserving memory succeeds, but
      committing fails, return NULL.  Don't call GetLastError twice for
      the same API error.
      (mmap_realloc): Zero out MEMORY_BASIC_INFORMATION structures
      before calling VirtualQuery, to avoid using garbled values if the
      call fails.  If committing more pages from the same block fails,
      fall back on mmap_alloc + CopyMemory.  Enhance debugging printouts
      if the call to VirtualAlloc to commit more pages fails.
      (Bug#22526)
      8badf953
  3. 24 Jan, 2016 1 commit
    • Alan Mackenzie's avatar
      Expunge "allow" + infinitive without direct object from source and doc. · fbce4757
      Alan Mackenzie authored
      Do the same for "permit", "enable", and "prevent".
      
      * doc/emacs/mule.texi:
      * doc/lispref/control.texi:
      * doc/lispref/display.texi:
      * doc/lispref/frames.texi:
      * doc/lispref/functions.texi:
      * doc/lispref/nonascii.texi:
      * doc/lispref/streams.texi:
      * doc/lispref/windows.texi:
      * doc/misc/dbus.texi:
      * doc/misc/eww.texi:
      * doc/misc/flymake.texi:
      * doc/misc/octave-mode.texi:
      * doc/misc/org.texi:
      * doc/misc/reftex.texi:
      * doc/misc/tramp.texi:
      * doc/misc/wisent.texi:
      * etc/NEWS:
      * lisp/autorevert.el:
      * lisp/cedet/mode-local.el:
      * lisp/cedet/semantic/senator.el:
      * lisp/cedet/semantic/wisent.el:
      * lisp/dos-fns.el:
      * lisp/frameset.el:
      * lisp/gnus/gnus-agent.el:
      * lisp/gnus/mm-util.el:
      * lisp/international/characters.el:
      * lisp/ldefs-boot.el:
      * lisp/mail/mailclient.el:
      * lisp/man.el:
      * lisp/mh-e/mh-search.el:
      * lisp/net/tramp-cmds.el:
      * lisp/net/tramp-gvfs.el:
      * lisp/org/org-crypt.el:
      * lisp/org/org-element.el:
      * lisp/org/org-feed.el:
      * lisp/org/org.el:
      * lisp/org/ox-ascii.el:
      * lisp/org/ox-icalendar.el:
      * lisp/org/ox-publish.el:
      * lisp/org/ox.el:
      * lisp/play/gamegrid.el:
      * lisp/play/gomoku.el:
      * lisp/progmodes/antlr-mode.el:
      * lisp/progmodes/python.el:
      * lisp/progmodes/vhdl-mode.el:
      * lisp/strokes.el:
      * lisp/textmodes/ispell.el:
      * lisp/tree-widget.el:
      * lisp/vc/pcvs.el:
      * lisp/window.el:
      * src/lisp.h:
      * src/w32.c:
      * src/w32heap.c:
      * src/w32term.c:
      * src/window.c:
      * src/xfaces.c:
      
      Replace solecisms like "This allow to do something" with a correct
      alternative, such as "This allow you to do something", "This allows
      something to be done" or "This allows the doing of something".
      fbce4757
  4. 16 Jan, 2016 1 commit
  5. 01 Jan, 2016 1 commit
  6. 22 Oct, 2015 1 commit
    • Eli Zaretskii's avatar
      Include file cleanup for w32 files in src directory · d4352f81
      Eli Zaretskii authored
      * src/w32xfns.c: Don't include keyboard.h, window.h, charset.h,
      fontset.h, blockinput.h.
      * src/w32uniscribe.c: Don't include dispextern.h, character.h,
      charset.h, fontset.h.
      * src/w32term.c: Don't include systty.h, systime.h, charset.h,
      character.h, ccl.h, dispextern.h, disptab.h, intervals.h,
      process.h, atimer.h, keymap.h, w32heap.h.  Include bitmap/gray.xbm
      in an ifdef-ed away block.
      Include fcntl.h for CYGWIN.
      (set_frame_param): Remove unused function.
      * src/w32select.c: Don't include charset.h and composite.h.
      (setup_config, Fw32_get_clipboard_data): Avoid compiler warnings
      due to pointer signedness mismatches.
      * src/w32reg.c (w32_get_string_resource): Avoid compiler warnings
      due to pointer signedness mismatches.
      * src/w32proc.c: Include unistd.h.  Don't include systime.h,
      process.h, dispextern.h.
      (sys_spawnve, Fw32_short_file_name, Fw32_long_file_name)
      (Fw32_application_type): Avoid compiler warnings due to pointer
      signedness mismatches.
      * src/w32menu.c: Don't include keymap.h, termhooks.h, window.h,
      character.h, charset.h, dispextern.h.
      (simple_dialog_show, add_menu_item): Avoid compiler warnings due
      to pointer signedness mismatches.
      * src/w32inevt.c: Don't include dispextern.h, window.h,
      termhooks.h, w32heap.h.
      * src/w32font.c: Don't include dispextern.h, character.h,
      charset.h, fontset.h, font.h.
      (intern_font_name, add_font_entity_to_list)
      (registry_to_w32_charset, w32_to_x_charset, fill_in_logfont)
      (list_all_matching_fonts): Avoid compiler warnings due to pointer
      signedness mismatches.
      * src/w32fns.c: Don't include character.h, intervals.h,
      dispextern.h, epaths.h, charset.h, ccl.h, fontset.h, systime.h,
      termhooks.h, w32heap.h, bitmap/gray.xbm, font.h, w32font.h.
      (w32_color_map_lookup, add_system_logical_colors_to_map)
      (x_decode_color, x_set_name, FPRINTF_WM_CHARS, Fxw_color_defined_p)
      (Fxw_color_values, x_display_info_for_name, Fset_message_beep)
      (x_create_tip_frame, Fx_file_dialog, Fsystem_move_file_to_trash)
      (w32_parse_hot_key, Ffile_system_info, w32_kbd_patch_key): Avoid
      compiler warnings, mainly due to pointer signedness mismatches.
      (unwind_create_frame_1): Remove unused function.
      * src/w32console.c: Don't include character.h, disptab.h, frame.h,
      window.h, termhooks.h, dispextern.h.
      (w32con_write_glyphs, w32con_write_glyphs_with_face): Fix pointer
      signedness mismatch.
      * src/w32.c: Include c-strcase.h and systty.h.  Don't include
      w32heap.h.
      d4352f81
  7. 27 Jul, 2015 1 commit
  8. 10 Jul, 2015 1 commit
  9. 19 May, 2015 1 commit
  10. 13 Jan, 2015 1 commit
    • Eli Zaretskii's avatar
      Fix problems with 32-bit wide-int build exposed by MinGW · 5aa618b0
      Eli Zaretskii authored
       lisp.h (XPNTR): Move definition to after XTYPE, to avoid
       compilation error in an unoptimized build when !USE_LSB_TAG.
       src/w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
       same larger value as for the 64-bit build.
       src/w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
       avoid compiler warnings.
       src/w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
       Avoid compiler warnings about cast from integer to pointer of
       different size.
       src/w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
       UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
       casting from integer to pointer of different size.
       (add_menu_item): Pass the help-echo string as a pointer to
       Lisp_String, not as a Lisp_Object.
       (w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
       string object from its C pointer.
       src/w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
       make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
       C pointer.
       <WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
       (Fx_create_frame): Type-cast the result of XFASTINT to avoild
       compiler warnings about size differences.
       (Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
       pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
       (Fw32_toggle_lock_key): Pass the new state of the key as a C
       integer; use -1 for nil.  Doc fix.
       src/.gdbinit (xgetsym): New subroutine.
       (xsymname, xsymbol): Use it.
       (xprintsym): No need to call xgetptr.
      5aa618b0
  11. 01 Jan, 2015 2 commits
  12. 27 Nov, 2014 1 commit
  13. 09 Nov, 2014 1 commit
  14. 27 Jun, 2014 1 commit
  15. 04 Jun, 2014 2 commits
  16. 03 Jun, 2014 3 commits
  17. 02 Jun, 2014 3 commits
  18. 01 Jun, 2014 1 commit
  19. 30 May, 2014 1 commit
  20. 29 May, 2014 1 commit
  21. 27 May, 2014 1 commit
    • Fabrice Popineau's avatar
      Use mmap(2) emulation for buffer text on MS-Windows. · 587fd086
      Fabrice Popineau authored
       src/Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
       configure.
       (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
       src/lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
       for MinGW, since it no longer uses gmalloc.
       src/buffer.c: Do not define mmap allocations functions for Windows.
       Remove mmap_find which is unused. Remove mmap_set_vars which does
       nothing useful.
       [WINDOWSNT]: Include w32heap.h.
       (init_buffer): Always allocate new memory for buffers.
       src/emacs.c: Remove mmap_set_vars calls.
       src/image.c (free_image): Undef free for Windows because it is
       redirected to our private version.
       src/unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits
       compatibility.
       (copy_executable_and_dump_data): Remove dumping the heap section.
       (unexec): Restore using_dynamic_heap after dumping.
       src/w32heap.c (dumped_data_commit, malloc_after_dump)
       (malloc_before_dump, realloc_after_dump, realloc_before_dump)
       (free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
       (mmap_free): New functions.
       src/w32heap.h: Declare dumped_data and mmap_* function prototypes.
      
       nt/inc/ms-w32.h: Switch to the system heap allocation scheme
       instead of GNU malloc and ralloc.
       nt/inc/sys/mman.h: New file.
       nt/INSTALL: Update for the new build requirements.
      
       etc/NEWS: Mention build changes on MS-Windows.
      
       configure.ac (C_HEAP_SWITCH) define for different values of
       dumped heap size depending on 32/64bits arch on Windows.
       Don't check for pthreads.h on MinGW32/64, it gets in the way.
       Use mmap(2) for buffers and system malloc for MinGW32/64.
      587fd086
  22. 01 Jan, 2014 1 commit
  23. 31 Dec, 2013 1 commit
    • Fabrice Popineau's avatar
      Minor fixes for MinGW64 build. · bd717ca4
      Fabrice Popineau authored
       configure.ac (canonical, C_SWITCH_SYSTEM): Support a 64-bit
       MinGW64 build on MS-Windows.
      
       nt/inc/ms-w32.h (sys_kill): Fix prototype.
      
       src/w32term.c (w32_initialize): Use LCID and LOWORD.
       src/w32proc.c (create_child): Use pid_t for 5th argument.
       (IsValidLocale): Don't provide prototype for MinGW64.
       (Fw32_get_valid_keyboard_layouts, Fw32_get_keyboard_layout)
       (Fw32_set_keyboard_layout): Use HKL and HIWORD/LOWORD.
       src/w32heap.c (allocate_heap) [_WIN64]: Use "ull", not "i64", which
       MinGW64 doesn't support.
       src/lisp.h (EMACS_INT) [_WIN64]: Define for the MinGW64 build.
      bd717ca4
  24. 22 Jan, 2013 1 commit
  25. 01 Jan, 2013 1 commit
  26. 08 Oct, 2012 2 commits
  27. 30 Sep, 2012 1 commit
    • Fabrice Popineau's avatar
      Support x64 build on MS-Windows with MSVC. · 62aba0d4
      Fabrice Popineau authored
       src/w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
       (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
       compatibility with x64.
       src/w32term.c (w32_draw_underwave): Don't use GCC extensions for
       defining an XRectangle structure.
       src/w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
       arithmetics for compatibility with x64.
       src/w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
       compatibility with x64.
       src/w32heap.h: Adjust prototypes and declarations.
       src/w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
       (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
       DWORD, long, and unsigned long, for compatibility with x64.
       (allocate_heap) [_WIN64]: Reserve 32GB of memory.
       (sbrk): Argument is now of type ptrdiff_t.
       src/w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
       less than 0x0500.
       (w32_msg_pump): Use WPARAM type for 'result'.
       src/w32.c (init_environment, get_emacs_configuration): Support AMD64
       architecture.
       (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
       compatibility with x64.
       src/vm-limit.c (lim_data): Now size_t.
       (check_memory_limits): Adjust prototypes of real_morecore and
       __morecore to receive argument of type ptrdiff_t.  Use size_t for
       five_percent and data_size.
       src/unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
       variables, for compatibility with x64.
       (rva_to_section, offset_to_section, relocate_offset)
       (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
       (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
       (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
       for compatibility with x64.
       src/sysdep.c (STDERR_FILENO): Define if not already defined.
       src/ralloc.c (real_morecore): Argument type is now ptrdiff_t.
       (__morecore): Argument type is now ptrdiff_t.
       (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
       (relinquish): Use ptrdiff_t type for 'excess'.
       (r_alloc_sbrk): Argument type is now ptrdiff_t.
       src/makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
       (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
       instead of a literal number.
       src/gmalloc.c [WINDOWSNT]: Include w32heap.h.
       (min): Define only if not already defined.
       src/frame.c (x_report_frame_params): Use EMACS_UINT for the return
       value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
       hosts.
       src/image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
       'bitmaps' is a pointer.
       src/dispextern.h (x_bitmap_pixmap): Adjust prototype.
       src/alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
      
       nt/makefile.w32-in ($(TRES)): Use $(EMACS_MANIFEST).
       nt/inc/sys/socket.h: Don't map Winsock error codes to standard ones
       that are already defined.
       nt/inc/ms-w32.h (EMACS_INT, EMACS_UINT, EMACS_INT_MAX, PRIuMAX)
       (pI, _INTPTR) [_MSC_VER]: Fix definitions for MSVC.
       [_MSC_VER]: Add pragmas to suppress some MSVC warnings.
       nt/preprep.c (pfnCheckSumMappedFile, rva_to_section)
       (offset_to_section, relocate_offset, OFFSET_TO_RVA)
       (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
       (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
       (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): Use
       DWORD_PTR instead of DWORD for compatibility with x64.
       nt/nmake.defs: Support AMD64.
       (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros.
       nt/gmake.defs: (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST):
       New macros.
       nt/addsection.c (pfnCheckSumMappedFile, rva_to_section)
       (offset_to_section, relocate_offset, OFFSET_TO_RVA)
       (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
       (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
       (copy_executable_and_add_section, main): Use DWORD_PTR instead of
       DWORD, for compatibility with x64.
       nt/emacs-x64.manifest: New file.
       nt/emacs-x86.manifest: Renamed from emacs.manifest.
      
       lib-src/ntlib.c (gettimeofday): Copy from src/w32.c.  lib/gettime. 
       needs this function.
      62aba0d4
  28. 17 Sep, 2012 1 commit
    • Daniel Colascione's avatar
      Implement cygw32 · 0fda9b75
      Daniel Colascione authored
      Here, we use the generic window-system configuration system we just
      implemented to support the w32 window-system in the mainline build
      under Cygwin.  (Previously, the w32 window system could only be
      compiled as part of the NT-native Emacs build process.)
      
      The changes in this patch need to be applied atomically in order to
      avoid breaking Emacs.  The changes include:
      
        - Changes throughout the Lisp and C code to not assume that
            NT Emacs and the w32 window system are synonymous.
      
        - Wiring up the regular select(2) event loop to Windows messages
      
        - Cleaning up the w32 drag-and-drop receiving code.
      
        - Exposing Cygwin path conversion functions to elisp.
      
        - Unicode file dialog support when compiling for Cygwin.
      
        - Splitting the w32 term lisp initialization code into code
          applicable to any w32 window-system and code specific to
          system-type windows-nt.
      
        - Integrating the old and new w32 code into the build system.
      0fda9b75
  29. 15 Sep, 2012 1 commit
    • Eli Zaretskii's avatar
      Fix MS-Windows build broken by 2012-09-15T07:06:56Z!eggert@cs.ucla.edu,... · 7105c8cb
      Eli Zaretskii authored
      Fix MS-Windows build broken by 2012-09-15T07:06:56Z!eggert@cs.ucla.edu, completing fix for bug #12446.
      
       src/w32xfns.c:
       src/w32uniscribe.c:
       src/w32term.c:
       src/w32select.c:
       src/w32reg.c:
       src/w32proc.c:
       src/w32menu.c:
       src/w32inevt.c:
       src/w32heap.c:
       src/w32font.c:
       src/w32fns.c:
       src/w32console.c:
       src/w32.c:
       src/w16select.c: Remove inclusion of setjmp.h, as it is now included
       by lisp.h.  This completes removal of setjmp.h inclusion
       erroneously announced in the previous commit.
       src/lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
       more accurate.
       src/image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
       not defined as a macro.  The latter happens on MS-Windows.
      7105c8cb
  30. 29 Jul, 2012 2 commits
    • Eli Zaretskii's avatar
      Rename OS_WINDOWS_95 to OS_9X. · 417a7a0e
      Eli Zaretskii authored
       src/w32heap.h (OS_9X): Renamed from OS_WINDOWS_95.
       src/w32heap.c (cache_system_info):
       src/w32.c (sys_rename):
       src/w32proc.c (find_child_console, sys_kill): All users changed.
      417a7a0e
    • Paul Eggert's avatar
      Don't use the abbreviation "win" to refer to Windows (Bug#10421). · b46a6a83
      Paul Eggert authored
      * lisp/org/ob-lilypond.el (ly-w32-ly-path): Rename from ly-win32-ly-path.
      (ly-w32-pdf-path): Rename from ly-win32-pdf-path.
      (ly-w32-midi-path): Rename from ly-win32-midi-path.
      (ly-determine-ly-path, ly-determine-pdf-path, ly-determine-midi-path):
      Check for "windows-nt", not "win32", in system-type.
      * src/regex.c (MAX_BUF_SIZE): Remove some incorrect and
      long-ago-commented-out code that talks about "WIN32".
      * src/w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
      All uses changed.
      b46a6a83
  31. 13 Jun, 2012 2 commits
    • Andreas Schwab's avatar
      Use a simple struct to implement compile time checks for the Lisp_Object type · 646b5f55
      Andreas Schwab authored
      * configure.in: Rename --enable-use-lisp-union-type to
      --enable-check-lisp-object-type and define CHECK_LISP_OBJECT_TYPE
      instead of USE_LISP_UNION_TYPE.
      
      * admin/make-emacs: Rename --union-type to --check-lisp-type.  Define
      CHECK_LISP_OBJECT_TYPE insted of USE_LISP_UNION_TYPE.
      * admin/CPP-DEFINES (DEBUG_LISP_OBJECT_TYPE): Renamed from
      USE_LISP_UNION_TYPE.
      
      * src/lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
      instead of union.
      (XLI, XIL): Define.
      (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG): Use
      them.
      * src/emacs.c (gdb_use_struct): Renamed from gdb_use_union.
      * src/.gdbinit: Check gdb_use_struct instead of gdb_use_union.
      * src/alloc.c (widen_to_Lisp_Object): Removed.
      (mark_memory): Use XIL instead of widen_to_Lisp_Object.
      * src/frame.c (delete_frame): Remove outdated comment.
      * src/w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
      USE_LISP_UNION_TYPE.
      (Fw32_unregister_hot_key): Likewise.
      (Fw32_toggle_lock_key): Likewise.
      * src/w32menu.c (add_menu_item): Likewise.
      (w32_menu_display_help): Use XIL instead of checking
      USE_LISP_UNION_TYPE.
      * src/w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
      (init_heap): Likewise.
      * src/w32term.c (w32_read_socket): Update comment.
      646b5f55
    • Paul Eggert's avatar
      USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604) · bfe3e0a2
      Paul Eggert authored
      * alloc.c (make_number) [!defined make_number]:
      Remove, as lisp.h always defines this now.
      (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
      (roundup_size): Verify that it is a power of 2.
      * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
      * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
      * lisp.h (USE_LSB_TAG): Allow the builder to compile with
      -DUSE_LSB_TAG=0, to override the automatically-selected default.
      USE_LSB_TAG now is always defined to be either 0 or 1.
      All uses changed.
      (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
      code works fine either way, and efficiency is not a concern here,
      as the union type is for debugging, not for production.
      (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
      Use an inline function on all platforms when using the union type,
      since this is simpler and 'static inline' can be used portably
      within Emacs now.
      (LISP_INITIALLY_ZERO): New macro.
      (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
      (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
      bfe3e0a2