More heads up: I've just added (r49239) a dummy sysutils
unit. These are basically the two core units for Object Pascal features. Basically this is what is needed for Delphi-level code. However, it comes with a price, which is slightly more code bloat. Especially sysutils
unit grew really large over the years, becoming kind a second "system unit" where all sorts of random massively interdependent system utilities and support code gets thrown in. Any code using the sysutils
unit will touch into the 100KiB range easily. This isn't only FPC's fault, but it's kinda the structure and API we inherited to be able to compile existing code. But this also makes such code unfeasible to run on an unexpanded QL. There isn't a way to avoid it, as anything more advanced even inside FPC will depend on sysutils
. So, yeah. It will of course still work happily on a memory expanded QL.
Anyway, this can be also considered also as a step towards "more advanced" systems, like producing binaries which are aimed at running on QPC and SMSQmulator. At the same time, volunteers are welcomed to implement the missing/stub functions.
Which is basically everything in rtl/sinclairql/sysutils.pp at this point.
Of course using these is entirely optional. One can still write code directly for the QL API to keep binary size low, if has to run on an unexpanded QL.