📄 history
字号:
HISTORY of changesSyntax description: * Bug fix + New feature - Note/change : Obsolete/old stuff------------------------------------------------------------------------------14.12 - The win32 and unix version in the same archive. At last. May 9, 1998.14.11 - Completed my win32 port. No complaints when compiled with VC++ 4.2 (fplc still to go) * The .FPL <-> .FPC checker did not work properly for non-amiga systems. Now fixed.14.10 - The FPLTAG_INTERPRET tag does not work for compiled programs. I have not yet made the corrections that'll make it work. I don't know if I will either. I re-wrote some minor things in the FrexxEd FPL programs to avoid using this. * exported symbols from within compiled programs were not deleted the proper way which could ruin internal lists14.9 * 'fplc' now uses a lot less memory when compiling. * #line lines could get parsed very wrong by the compiler * Compiled programs declared variables slightly wrong. They excluded the file name information which was lethal...14.8 - Slightly bug tested. * Now compiled scripts run fine under unix-style OSes. - Improved the nested runs data backup and removed the ugly 'struct Store' usage. * Exported functions from compiled programs did not get their "I belong in this file" setup properly. * it previously could crash some memory if a program that ran did very little and was allowed to return a string. + fpl (interpreter) now skips first lines that starts with '#!' to enable 100% use as a true unix script language. Unfortunately, the compiler does not [yet?] support this (since the preprocessor has a habit of adding a #line statement on the absolutely first line which ruins this). We might need to come up with a nice way to make work in the compiler as well as making compiled output that can be run in the same smooth manner under unix (and similar) operating systems. * 'fplc' deals with cpp-instructions that skips 'line' as in '# 3' (such as the gcc preprocessor generates by default) * the GETLONG macro used to run compiled programs crashed under solaris and made me decide to have one amiga version and one non- amiga. The non-amiga does not use those dirty typecasts of char pointers to long, but uses a function.14.7 * Compiles as shared library on Linux, Solaris and IRIX. Linked library on SunOS. More? * Made returning strings from inside functions work [better]! Reported by Jorgen Olmats. * fplc now deals with #line instructions followed by lines with quoted strings as it should. * fplc did not deal with 'continue' properly until now. + fplc now shows version number when 'fplc' only is entered.14.6 - lots14.3 * conditional expressions ?:-style, were _not_ treated in a good way by the compiler.14.0 - rename() is from now on only possible on external or exported functions due to compiler effeciency decisions. - expressions like (++name, name++) were *not* previously taken take care of properly. - FPL compiler available. Running compiled programs is done transparent just as if they were still interpreted.13.8 * A single character access (from a string) were accepted in places where strings are required.13.7 + If FPLTAG_ISOLATE is used in a fplExecuteXXXX() call, the program run can't access nor declare any exported identifiers. Only external, internal and those it creates within its own program. (FPLTAG_ISOLATE forces all 'export' variables to be treated as regular globals.)13.6 * Fixed a stupid read from NULL that could occur at strange times...13.5 * Executing files that only declared/exported variables/funcitons repeatedly wasn't taken care of properly... * a fplAddFunction()-call with an already existing name didn't make FPL happy... (still doesn't, but now it survives!)13.4 * rename() to "" returned a very random number. * The FPLSEND_GETSYMBOL_* didn't work properly if the hash table size was altered.13.3 * fplAddVariable() that added a string with NULL as default string did crash.13.2 * ltostr() didn't work properly on numbers like 1<<31... + [Amiga]燜PLdb is much improved. It's now cabable of showing function return codes and a few other things as well as it can be controlled through ARexx and even disabled/enabled. * Setting DEBUG_MODE with the fplReset() or in the fplInit() will now switch on/off "global" debug mode. That is everything will be run in debug mode. Previously, they only switched it on and off just like the 'debug()' function, which made them pretty useless...!13.1 * External functions that were expected to return a string, but didn't, could make FPL rather confused... I even improved interpreting speed pretty much when strings are returned from external functions. : [Amiga] FPLTAG_LOCKUSED is removed. There is no substitute, but I doubt anyone will ever miss it... * sprintf() now has some better checks when using more %-codes than parameters + 'rename' can change name of already existing identifiers. By using this the right way, you can alter the working of *any* already written or added function in FPL. Even external or internal ones!! + exists() returns information about the presence of identifiers.13.0 + sscanf() is here! + [Amiga] FPLdb version 2 is introduced and needed if you want to debug FPL from now on! A couple of new switches and cleaned code have gotten be started to create a better and more advanced debugger.12.6 + The interpreter makes much better assumptions and errors now about functions that return optional types. An example, we have a function called 'myown()' that has been added by the program to return optional string or int. Previously, uses like this caused problems: int a; a = myown("return string!"); /* this returned a string */ * Removed an error that would occur when an integer was returned from a function returning optional type, when FPL expected a string! * The following little program stopped with 'Out of memory error!': string hi() { string p; return p; } hi(); * Using variable references as parameters to inside functions could mess up the return-value of the function!!!12.5 * A string that ended with a single backslash confused fplConvertString().12.4 + fplStrtol() now accepts NULL in the third parameter.12.3 * Accessing the first column of an empty string will now generate an "Illegal string index error" instead of simply crashing... * If sprintf() didn't make a string (or a zero-length), FPL could write to a stupid address (0x000004) ...12.2 - FPL now keeps a good control of the "break level". Thereby, it can alert much better on breaks with too high level and other illegal uses (like using break outside of loops and switches). * 'continue' is now harder to abuse. * FPL could loose track of the real line number when passing if()- statements that wasn't evaluated. + Added the FPLSEND_GETVERSION and FPLSEND_GETREVISION to enable the FPL library user to get FPL version and revision number.12.1 * Using nested switch()-statements actually had a high fail ratio since FPL would find the 'case' - labels of "inner-level" switch()es ! + Included all the xxxxxxxTags() functions to the actual library instead of have them as separate stubs. Not made for the Amiga library.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -