Inter-Office Memorandum To Interpress Interest Date December 29, 1982 From Doug Wyatt Location Palo Alto Subject Implementing Interpress Organization PARC/ISL XEROX Filed on: [Indigo]IPImpl.Tioga and IPImpl.Interpress Uses: [Indigo]Styles>Interpress.Style and Cedar.Style Implementing Interpress Introduction Introduction goes here. If you are looking at this document on-line, you might want to use the level-clipping function to see the overall structure rather than simply plowing straight through. Hit the "Levels" button in the top menu, then hit "FirstLevelOnly" in the new menu that appears. That will show you the major section headings. Hit "MoreLevels" to see the subsections, or hit "AllLevels" to read the details. Cedar vs. Mesa Type representation Types Any, Mark, Body, other stuff (Block, Page). Storage management Worry about multiple instances? Encodings The skeleton Handling {} and [] The base language State Allow for multiple instances of the interpreter running in parallel. Example: several windows displaying Interpress documents. The stack Linked list or array? Impact on the implementation of ROLL. Frames and Contexts Note that frames must be copied; one might be tempted to use the pool mechanism to restore values overwritten by FSET, but this will not suffice. For example, consider an Operator that calls itself recursively. One useful optimization for frames: don't copy until the first FSET. Errors Carefully define what happens when an UNMARK0 causes an error. The imager Imager variables Saving and restoring persistent and non-persistent variables. Is the mechanism general enough for arbitrary Pools? What's special about the Transformation T? What should be cached? Sampled masks and the cache Clipper must note whether a sampled mask has been clipped. Priority Handling IFCOPY How does IFCOPY interact with priorityImportant? PD files The printing engine Performance