Mono has an architecture with a tool called mkbundle which in effect statically linking and bundle a small mono runtime with the .net dll/exe's to make a standalone executable.
I have used that on linux before, and successfully; the process is the same with mac os X. The disappointing thing is that there is no noticeable performance gain (what I was after), and also (1) the system libraries of the typical linux systems are too varied, and even standalone binaries don't transplant well between different linux distributions, (2) I was working on proprietary dll/exe's and distributing the outcome of proprietary dll/exe's statically linked with MIT-licensed mono runtime is legally dubious.
Neither of these applies with Font Validator on Mac OS X - Mac OS X's system API is far more stable between OS versions, and the license is compatible.
Just due to lack of time and motivation/priority, really.
The text was updated successfully, but these errors were encountered:
I should also mention that statical linking tends to make multi-threaded application's performance suffer. My previous project wasn't multi-threaded, but Font Validator - at least the GUI - is. We'll see how that might be the case if/when it is done.
Did a bit of experiment on both linux and mac os x. mkbundle has bit-rotted slightly since I last looked at it so it is another bug to file with the mono folks (soon); but it seems do-able, the only issue being that the stand-alone binary can't find the xsl style sheet (again this is a well-known issue - stand-alone binary have no knowledge of location of auxilliary files - it can be worked-around by having the file in memory as a byte array).
Native executables were released from Jan 2016 onwards, and user experience is on the whole positive; the process of making them is a bit tedious and somewhat labour-intensive and not yet scriptable, but is documented step-by-step privately. At some stage I'll put the instruction out.