Hi everyone,
We now consider the next round of improvements, bug fixes, etc. Here is the list so far ...
+ Add a binary-chop method to detect_screen_limits, defined at line 32524. The extra speed gained should lead to the compiler starting up almost instantly!
+ Use environment variables to record the front panel position. The compiler and Patch program will now appear at the same place, even outside of 512x256. Attached is a zip file to fully explain environment variables.
+ Patch program line 3880: Rename unsigned_PEEK_L to unsigned_long_input, which is a more accurate description. Additionally, there is an error in this piece of code. The number 65535 needs to be 65536, which is 2^16. Currently, if a user sets a heap space or stack value of 2^16 or higher, the Patch program, if used, because of the error, will display a value of one byte less. Unless the user changes this value to an even number, the QL will crash when running the compiled object file. The reset button then needs to be pressed.
+ The maximum value of heap has increased from half a megabyte to 999999; however, that is an odd number and would crash the QL. We need to change that value to one less, 999998. See Patch program line 5100 edit_panel.
+ For error trapping, QLIB uses Q_ERR, but does not always follow the rule of testing Q_ERR immediately, and once only, after being used. Afterwards, Q_ERR goes to zero, with the outcome of misleading error messages or no messages at all. To cure the problem, assign Q_ERR to a variable, then test the variable. See line 22640: a more appropriate message here is “Error “ & e.
+ Literal strings, those delimited by quote marks, are limited to a maximum of 512 chars. Any further chars get ignored, with no error message given. It is easy to check for this and provide an error message. The check could be added in at line 32598 in the procedure convert_hex_bin_tokens.
+ Patch: At line 1990 check_win is a procedure that does absolutely nothing. I thought we might use this to check that the filename ends with “_obj”, and if not then supply it.
+ Per Witte has reported that while one of his programs works perfectly with the original v3.36, it errors on v3.37. He is currently investigating the problem with Martin Head, and I wish them well in their efforts. Depending on what they find, there may have to be some further changes to the code.
The above is the list so far. Would you like to add to this list? You can supply code or just suggest ideas. All comments and suggestions are welcome. We have the source code now, and so anything is possible. If we all agree, the plan is to make this update in about a week or so.
As mentioned earlier, to give everyone a foretaste of what’s to come, I attach the zip file on environment variables.