Build Automator uses MSBuild to compile projects and solutions no matter if they are in Visual Studio or in Clarion.  By default, MSBuild is a single thread program, but there is a way to tell it to start multiple processes to compile.

After some experiments on a virtual machine, I'd say it's definitely worth it to try it out and see if it helps.  What you need is the /maxcpucount parameter which you can add to the "Additional Parameters" tab on the "Call MS-Build" action in Build Automator.

Compile with MSBuild

The benefit may not be as much as you had hoped for, but it definitely does improve performance.  Here are some numbers.  This was tested on a Windows 10, 64bit virtual machine in VMWare 12.5.  It is set up with 5.7GB of RAM.  In the first test it was set to use 1 CPU and 2 cores.

15:42:59.898
15:45:54.809 00:02:54.911  without /maxcpucount
15:33:22.832
15:36:04.000 00:02:41.168 with /maxcpucount:2
15:52:48.811
15:55:21.083 00:02:32.272  with /maxcpucount:8

In this test, I was able to shave off about 38 seconds with the 8 CPU setting.  Your milage may certainly wary as this may be different outside of virtualized environment and it may be different depending on what CPU you have and a lot of other configurations.  No errors were reported and everything seemed to compile correctly.

All generated files were destroyed before each test and ClarionCL.exe was used to generate.  The Clarion IDE was not involved at all in this process and was closed while the testing was performed.  Only command line utilities.

Bottom line is if you are compiling larger solutions with Build Automator, then you should check out the /maxcpucount parameter.  For more information about this parameter, please see the information on the MSDN Website

I have been working on a new build of Icetips Utilities and trying to finish Build Automator for a new public release.

There are a few new enhancements to the Registry Class where I have added a method to enumerate key values. You specify the key in the registry and it will give you the names of all the values, what datatype it is and the data in it. It supports all datatypes in the Registry except binary, haven't finished that one yet.

I'm also adding documentation to the Registry class and once I'm done with that, it is time to release it.

When I wrote the WriteStringToFile method in the String class, I had added an "Append" parameter, but had never added the code! That is now done, so you can use this method to append a string to an existing file. This is perfect for all sorts of logging where you want it sent directly to the file without delay.

I have improved the Preserve Variable Data template by making the condition optionally on the read or the write or both. I have also added embeds after the read and before the write so the data can be easily manipulated if needed. The help on this template has also been completed.

More on this and Build Automator later.

I have been using every spare moment this spring to try to get some work done in the front yard of our house. It is a project for several years to clean it up and make look good after several years of neglect and little or no maintenance. But patches here and there are now cleaned up, flowers and berry bushes planted and a lot of general clean up done. I'll post some pictures later:)

Arnor Baldvinsson