Skip to content
This repository has been archived by the owner on Oct 18, 2023. It is now read-only.

Native Mac OS X standalone executable #7

Closed
HinTak opened this issue Dec 2, 2015 · 5 comments
Closed

Native Mac OS X standalone executable #7

HinTak opened this issue Dec 2, 2015 · 5 comments

Comments

@HinTak
Copy link
Owner

HinTak commented Dec 2, 2015

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.

@HinTak
Copy link
Owner Author

HinTak commented Dec 2, 2015

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.

@HinTak
Copy link
Owner Author

HinTak commented Dec 7, 2015

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).

@HinTak
Copy link
Owner Author

HinTak commented Feb 21, 2016

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.

@HinTak
Copy link
Owner Author

HinTak commented Feb 22, 2016

Just another note; there is an incentive to migrate towards sysdrawing-coregraphics (
http://github.com/mono/sysdrawing-coregraphics ) - it would likely go around the fontconfig cache rebuild issue, and possibly faster also.

@HinTak
Copy link
Owner Author

HinTak commented Aug 4, 2016

Would be nice to get the Cocoa webkit bridge working:
microsoft#29

and migrates to https://github.com/HinTak/sysdrawing-coregraphics and https://github.com/HinTak/MonoMac.Windows.Form to solve the fontconfig problem and get a more native look and feel.

@HinTak HinTak closed this as completed Aug 4, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant