Medley compile flags & their meanings Created: 28-Sep-89 JDS Updated: ** Flags that control compilation for various machine ** architectures, manufacturers, and OS versions Flag Name Meaning/Usage _________ ________________________________________________________ BYTESWAP Used when compiling for a hardware architecture that has byte-swapped words and word-swapped 32-bit cells, e.g. 80386. OS4 True if compiling for SunOS 4.x NOPIXRECT Used to suppress pixrect/pixwin options when they're not needed or not available. True if XWINDOW is. AIX True if compiling for AIX sparc True if we're compiling on a SPARC machine. NOASM If true, suppress any attempt to include assembler versions of things in the emulator. In 'lispemul.c', if this is true, disables: OPDISP PROFILE C_ONLY OPDISP Use "fast-opcode-dispatch" macros --Debugging/Tracing/Check-enabling flags-- DEBUG Used when debugging, to enclose trace and dump code. Best usage is with DBPRINT((controlString, args*));, which calls printf, and compiles only if DEBUG is true. See dbprint.h for the definition. TRACE TRACE2 OPTRACE If true, the dispatch loop prints the PC & opcode each time thru FNTRACE If true, you see the name of each function called. STACKCHECK If true, you see unusual cases of stack manipulation traced. E.g., the hard cases of RETURN, like non-contiguous stack frames, get mentioned. LISPTRACE True if you want to see LISP calls & returns traced to stdout; Generally, for traces of lisp-level events. PROFILE If true, the profiling control code is enabled. You must also change the optflags to contain -p or -pg, to use prof or gprof, respectively. CHECK FSBCHECK If true, you see a trace of large free stack blocks when the stack is manipulated; was used for debugging stack code. WINDOW INIT Used when compiling an emulator to build a loadup. Use it to dike out code that deals with network initialization, e.g. MYOPTRACE Used to check the stack's validity on each opcode execution. Requires NOASM PCTRACE When true, compiles in a 100-long ring buffer that holds the last 100 PCs, Function-blocks, and Opcodes executed. "pccounter" is the offset where the next one will go. Also requires NOASM. The 3 tables are called pc_table, fn_table, and op_table. --Flags that control new features, features under test, etc.-- DISPLAYBUFFER 10/3/89 JDS -- enables the experimental code for copying changed portions of the display bank to the frame buffer. Meant for supporting mono mode on a CG6 with no single-bit bitplane. 1/22/91 JDS: This is now the standard flag for compiling for color displays. WINDOW FLIPCURSOR If true, the "sandbar" line in the cursor will get flipped by the C stack-frame-moving code, just as it does on a D machine. Otherwise, you don't see it. ORG_FILPCORSORBAR If true, you get the pixwin version of cursor changing; otherwise, it gets done by direct writes into the display region. OLD_CURSOR If true, uses the pixwin cursor code (e.g., win_setcursor); otherwise, uses the direct-write technique. This is only needed for SUNDISPLAY. OS4_TYPE4BUG If true, includes the patches around SunOS 4.0.x's failure to tell you you've got a Type-4 keyboard. ALLDIRSEARCH CURRENTLY HARD DISABLED IN directory.c; looks like it controlled recursive directory searches?? KBINT If true (it looks like??), the emulator does most of the KBD transition processing in C, rather than interrupting LISP for it, and the transition interrupts happen when the OS signals a transition, rather than by polling? RS232INT If true, the RS232 device (NOT USED, a translation of Lisp's code), uses the interrupt signalling support of timer.c to know when to read characters. NOT USED, probably obsolete. TTYINT Analogous to RS232INT, for the translated TTY device. ETHERINT COLOR If TRUE, supports 8bits-per-pixel color on CG4 and CG6 frame buffer of Sun work station. IF COLOR is TRUE, don't use OLD_CURSOR flag. CATCH If true, includes some CATCH C code, for finding the blip, finding variable names and PVAR names in frames. As of 10/2/89 this code is unused, and is called nowhere else in the system. RECLAIMINC If true, then the RECLAIMCELL opcode calls gcreclaimcell in C; otherwise it punts. As of 10/3/89, this was never debugged and is not in any system. Probably fairly easy to debug?? KB_SUN4 The kbd type for the Type-4 keyboard. Defined only because older OS versions of the compiler don't define it automatically. FLTINT If true, use the floating-point exception interrupts to detect errors and overflows on FP operations. The interrupt sets a global error flag. Otherwise, calls library routines to see the condition code from each operation. For SPARCs, it's not clear that the interrupt trick works, because of code re- arrangement by the C compiler. XWINDOW True if compiling for an X-windows emulator. BIGATOMS True if this emulator will support 3-byte symbols, instead of the old, 2-byte atom numbers. NEWBITBLT True if we want to use assembler BITBLT code, rather than have code created inline by macro calls. USE_DLPI True if the ethernet API is via the SysV Data Link Provider Interface. Solaris uses DLPI. USE_NIT True if the ethernet API is via the Network Interface Tap. SunOS uses NIT. PKTFILTER True if the ethernet packets are to be filtered before being passed to the Lisp ethernet handler. Available on Sun systems for both the NIT and DLPI cases. MAIKO_ENABLE_NETHUB enables the support for Dodo Nethub networking for Dodo XNS services, see documentation: using-dodo-networking-with-maiko.md (implicitely disables USE_DLPI and USE_NIT) MAIKO_EMULATE_TIMER_INTERRUPTS enables emulation of recurring timer interrupts for platforms where SIGVTALRM/ITIMER_VIRTUAL or SIGALRM/ITIMER_REAL do not work as expected (like cygwin) timer is emulated by signaling an interrupt after a number of executed instructions, by default 20.000 instructions, this can be overriden by defining MAIKO_TIMER_ASYNC_EMULATION_INSNS_COUNTDOWN with the number of instructions between 2 interrupts additionally this adds the command line arguments -intr-emu-insns for overriding the compiled in instruction interval (not working if OPDISP (fast opcode dispatch) is used) MAIKO_EMULATE_ASYNC_INTERRUPTS same as MAIKO_EMULATE_TIMER_INTERRUPTS, but also signals an I/O interrupt after each instruction interval bitbltsub.c:#ifdef GETBASE testdisplay.c:#ifdef NOTUSED uraid.c:#ifdef ETHERINT bitblt.c:#ifndef COLOR lispmap.h:#ifdef MEDLEY