Progress report Sept 1, 2020

A short progress report about some of the things we have been working on.

We have made some changes to the compiler:

  • We have added support for the FoxPro binary type (0h1234abcd). This is compiled into an array of bytes in the Core dialect and an instance of the new Binary type in the other dialects. Of course we have also added this new Binary type to the runtime and to the support code for the USUAL type.
  • We have added support for CATCH filters (CATCH <identifier> AS <type> WHEN <someexpression>)
  • We have added support for pattern matching in SWITCH statements (CASE <identifier> AS <Type>) and we have also added the support for filters to SWITCH statements (WHEN <expression>).
  • As you can see both of the previous extensions use the new WHEN keyword. This keyword is positional and can still be used as variable name or function/method name on other positions in your code.
  • Currency literals ($12.34) are now stored as Currency values and no longer as System.Double values.
  • We have fixed several reported errors.

We have also made some changes to the runtime:

  • We have added a new Binary type (see compiler changes)
  • We have fixed several reported issues
  • We have added settings for SET SAFETY and SET COMPATIBLE to the runtime
  • We have fixed several issues in the RDD system, such as setting the EOF and BOF flags with Advantage tables that are the child in a relation and also the calculation of VFP index key values for fields of type "Integer".

VS Integration:

  • We have fixed several small issues in the intellisense parser, such as a problem with default expressions and the AS/IS modifiers that were not properly shown in QuickInfo tips.
  • We have fixed some problems when retrieving XML comments from external XML files
  • The layout of the QuickInfo tips has been improved
  • We have fixed a problem with type lookup for the Windows Forms Editor where types with the same name existed in more than one external assembly (within different namespaces).
  • We have fixed a few problems in the code generation for the VO compatible editors
  • We are preparing the VS project system for .Net Core, .Net 5  and for the support for Nuget package references with the <PackageReference> syntax in your XSPROJ files, so you will no longer need packages.config and you will no longer have copies of the files from the nuget packages in your solution folders.

We are preparing a new build (2.6) internally. Because of some changes to external prototypes of methods we will increase the Assembly version, which means that you will most likely also need new versions of 3rd party products such as bBrowser, ReportPro and Xs2Ado with this new version.


  • Very good. If you need some testing help: We have now a nice collection of unit tests (type of overall tests) that runs every night and regularly finds something to be verified.

    In about half a week of time normally I can make some Beta-Tests without too much work.

    Logically I would not sit into an air plane that is controlled by our programs passing our unit tests the night before. But that's a question of security level and not a question of good/bad programs.