Mercurial > hg > xemacs-beta
annotate modules/README @ 5168:cf900a2f1fa3
extract gap array from extents.c, use in range tables
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-03-22 Ben Wing <ben@xemacs.org>
* Makefile.in.in (objs):
* array.c:
* array.c (gap_array_adjust_markers):
* array.c (gap_array_move_gap):
* array.c (gap_array_make_gap):
* array.c (gap_array_insert_els):
* array.c (gap_array_delete_els):
* array.c (gap_array_make_marker):
* array.c (gap_array_delete_marker):
* array.c (gap_array_delete_all_markers):
* array.c (gap_array_clone):
* array.h:
* depend:
* emacs.c (main_1):
* extents.c:
* extents.c (EXTENT_GAP_ARRAY_AT):
* extents.c (extent_list_num_els):
* extents.c (extent_list_locate):
* extents.c (extent_list_at):
* extents.c (extent_list_delete_all):
* extents.c (allocate_extent_list):
* extents.c (syms_of_extents):
* extents.h:
* extents.h (XEXTENT_LIST_MARKER):
* lisp.h:
* rangetab.c:
* rangetab.c (mark_range_table):
* rangetab.c (print_range_table):
* rangetab.c (range_table_equal):
* rangetab.c (range_table_hash):
* rangetab.c (verify_range_table):
* rangetab.c (get_range_table_pos):
* rangetab.c (Fmake_range_table):
* rangetab.c (Fcopy_range_table):
* rangetab.c (Fget_range_table):
* rangetab.c (put_range_table):
* rangetab.c (Fclear_range_table):
* rangetab.c (Fmap_range_table):
* rangetab.c (unified_range_table_bytes_needed):
* rangetab.c (unified_range_table_copy_data):
* rangetab.c (unified_range_table_lookup):
* rangetab.h:
* rangetab.h (struct range_table_entry):
* rangetab.h (struct Lisp_Range_Table):
* rangetab.h (rangetab_gap_array_at):
* symsinit.h:
Rename dynarr.c to array.c. Move gap array from extents.c to array.c.
Extract dynarr, gap array and stack-like malloc into new file array.h.
Rename GAP_ARRAY_NUM_ELS -> gap_array_length(). Add gap_array_at(),
gap_array_atp().
Rewrite range table code to use gap arrays. Make put_range_table()
smarter so that its operation is O(log n) for adding a localized
range.
* gc.c (lispdesc_block_size_1):
Don't ABORT() when two elements are located at the same place.
This will happen with a size-0 gap array -- both parts of the array
(before and after gap) are in the same place.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 22 Mar 2010 19:12:15 -0500 |
parents | 25e260cb7994 |
children | da1365dd3f07 |
rev | line source |
---|---|
996 | 1 This directory contains a number of XEmacs dynamic modules. These |
2 modules can be loaded directly with the command 'M-x load-module'. | |
3 However, the preferred method of loading a module is to issue a | |
4 "(require 'module-name)" command to the Lisp interpreter. This will | |
5 store information so that a later "(unload-feature 'module-name)" can | |
6 succeed. | |
388 | 7 |
996 | 8 To compile one of these modules, simply enter the desired directory, |
9 type 'configure', and then 'make'. If you are building the module for | |
10 an installed XEmacs, then 'make install' will place the module in the | |
11 appropriate directory for XEmacs to find it later (assuming you have | |
12 permission to write to that directory). A subsequent 'load-module' or | |
13 'require' will then load the module, as described above. | |
388 | 14 |
996 | 15 Each of these demonstrates different features and limitations of the |
16 XEmacs module loading technology. For a complete discussion on XEmacs | |
17 dynamic modules, please consult the XEmacs Module Writers Guide, which | |
18 can be found in the ../info directory. | |
388 | 19 |
996 | 20 For those wanting to get started with module writing, please see the |
21 'sample' directory. It contains two subdirectories: internal and | |
22 external. The 'internal' subdirectory contains the framework needed to | |
23 migrate some core piece of XEmacs functionality into code that can | |
24 either be compiled into the core or built as a separate module. The | |
25 'external' subdirectory contains the somewhat simpler framework needed | |
26 to build a module separately from XEmacs. These should be considered | |
27 starting places for module writing. |