View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000057 | LDMud 3.5 | Runtime | public | 2004-05-10 10:32 | 2009-01-08 07:08 |
Reporter | Assigned To | ||||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | new | Resolution | open | ||
Summary | 0000057: Indirectly reference string literals | ||||
Description | In programs, use a string literal indirection to access strings: struct stringlit_s { ptrdiff_t start_index; size_t len; string_t * cache; } struct stringlit_s * string_literals; unsigned char * string_literal_data; where .start_index is an offset into string_literal_data where the .len string bytes can be found. Once a string literal has been looked up, the created string structure is stored in .cache . A second set of these structures/types is used to store the include filenames (this could be combined with the linenumber datablock). Here it would be useful to create datablock for the filenames at the time of swap-out, so that while the object is first in memory, the filenames are not duplicated. This way it will be possible to swap out the string literal data and include filenames instead of holding them in memory all the time. It would even possible, once the strings had been swapped out once, to create strings directly from the swap string_t * swap_get_string(swap_offset, len) instead of swapping all the data back in when the program is swapped in. Another side effect is that a GC doesn't need to keep track of a program's string literals. | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2004-05-10 10:32 |
|
New Issue | |
2009-01-08 07:08 | zesstra | Project | LDMud 3.3 => LDMud 3.5 |