Initial refactor. Needs epic amounts of testing.
Add STOPWATCH
Get threaded parsing working
Add optimizations for ascii strings, plus various other smaller optimizations. Fix warnings. Fix a few bugs. Make thread save data when the terminal needs raw data for clipboard copying instead of passing possibly dangling pointers in token.position. Update architectures for test target.
Cleanup ITERM_DEBUG semantics. Use a semaphore and allow 8 outstanding executeTokens blocks.
Store tokens in a CVector instead of a NSMutableArray for better performance.
Log millseconds from stopwatch for better precision on very fast operations
Remove assertion that fires for some stupid reason but is harmless
Add comment about failed optimization of finding length of ascii string.
Convert _updateDisplayUntil into a NSTimeInterval for a few percent speedup
Don't store ascii data in NSData because it takes forever to dealloc. Instead, use a 128 byte static buffer if possible.
Increase the number of collections of VT100Tokens. This is a big performance win.
Convert frequently used VT100 parsers from Obj-C to C functions to reduce time spent in objc_msgsend.
Optimize clearing lines in VT100Grid
Fix bug in previous commit that entered the for loop in clearScreenChars in the wrong condition
Recycle tokens in a background thread (big performance win)
Improve dynamic redraw frequency to avoid randomly switching between fast and slow updates
Speed up dropping lines
Remove log statement
Initialize screen_char_t’s in PTYTask thread for ascii strings. Combine ALTSEM_FG_DEFAULT and ALTSEM_BG_DEFAULT into one value so totally default characters are 0s and calloc initializes all the fields of screen_char_t except code for ascii data. Add ALTSEM_REVERSED_DEFAULT so foreground and background can take each other’s default values in reverse video.