Microsoft (R) Build Engine version 15.6.0.0 ( Thu May 10 16:15:27 UTC 2018) for Mono
Copyright (C) Microsoft Corporation. All rights reserved.
/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.VisualBasic.Core.targets(73,5): error MSB6006: "vbnc" exited with code 255. [/home/runner/TIO-VB.vbproj]
@Pavel Please add #!/usr/bin/env sh to vbnc.
Passed that hurdle, but now I got another error.
/home/runner/Application.vb(3,9): error BC30451: 'Console' is not declared. It may be inaccessible due to its protection level. [/home/runner/TIO-VB.vbproj]
@Dennis Fixed on my end. Visual basic "cheats" and gets some import statements added automatically by default, but these imports aren't present with msbuild since the configuration in the vbproj file overrides those defaults. I just checked which import statements are included automatically by vbc and added them to the vbproj file.
Also, now that I know MSBuild supports specifying namespaces automatically imported into every file you compile, I will be using that more than could be considered reasonable in my own code from now on.
@Anush I think you're onto, but yes, there are issues to work out. Even if measuring CPU time, one (virtual server CPU) may be able to get more done in the same time compared to another. You'd have to be able to lock down which (type of) CPU is being used. On your local machine, you don't have that issue.
@Anush That idea isn't new, but this isn't possible with the hardware TIO is currently running on. Each core of one of DigitalOcean's standard plans is a shared virtual core/hyperthread. Even on the (considerably more expensive) CPU-optimized plans, you only get dedicated hyperthreads.
For a reliable timing service, we'd need at the very least dedicated physical cores, preferably a dedicated server.
@Adám Many open source projects and free services are mainly funded by donations from corporations. Although TIO isn't legally a non-profit (yet), it is both those things.
@Dennis Nope, see, that doesn't work. It works for vb(n)c because VbcToolPath looks for a script, but for some odd reason CscToolPath looks for a binary that can be run with mono instead,