Re: The Big Plan - was Euphoria 2.5 Features..... ??
- Posted by akusaya at gmx.net Dec 09, 2003
- 580 views
R> - binder (has always been written 100% in Euphoria) R> becomes radically simpler, smaller (reduced to 1/10 the size?, R> plus shared copy of front-end to produce the IL), R> easier to maintain in the future In addition, I have a tip to reduce the back-end interpreter size, that is removing the machine_proc/func code that can be replaced by Windows/Linux API. The code of the API implementation is only automatically included when it is used in the program. So, if the program uses (for example) free_console(), the bound program will consist of back-end interpreter, free_console.lib and the program itself. But if the program doesn't use free_console(), the bound program will consist of back-end interpreter and the program itself. So it's smaller. Some machine_func/proc code that can be replaced that I found are: (win32 only, i don't know linux APIs) M_FREE_CONSOLE = 54 change to kernel32:FreeConsole M_SEEK = 19, M_WHERE = 20, M_DIR = 22, M_CURRENT_DIR = 23, change to kernel32: file functions M_FLUSH = 60, M_LOCK_FILE = 61, M_UNLOCK_FILE = 62, M_CHDIR = 63 M_SOUND = 1, M_LINE = 2, M_PALETTE = 3, M_GRAPHICS_MODE = 5, M_CURSOR = 6, are these still needed? M_WRAP = 7, maybe these can be changed to M_SCROLL = 8, respective machine-code (for the dos32) M_SET_T_COLOR = 9, M_SET_B_COLOR = 10, or to ncurses library/win32 console API M_POLYGON = 11, (in separate file) M_TEXTROWS = 12, M_VIDEO_CONFIG = 13, M_ELLIPSE = 18, M_GET_POSITION = 25, M_ALL_PALETTE = 27 M_SLEEP = 64 change to kernel32:Sleep M_GET_MOUSE = 14, M_MOUSE_EVENTS = 15, don't know M_MOUSE_POINTER = 24