boo-lang / boo

The Boo Programming Language.
BSD 3-Clause "New" or "Revised" License
874 stars 148 forks source link

Native Boo.Lang.dll embedding ? #187

Closed Guevara-chan closed 6 years ago

Guevara-chan commented 6 years ago

Recently I found myself noticing, that ILMerge, while being quite a nice tool, is not widely spread among .net developers. Naturally, additional dependencies is far from desirable for open-source projects, especially mad with unconventional already programming languages.

Is there any way to make runtime lib embeddable from compiler options with all required tools being already present in Boo distro ?

popcatalin81 commented 6 years ago

You can do this with a post-build invocation for ILMerge. You can invoke it manually or use a msbuild task like this one: https://www.nuget.org/packages/MSBuild.ILMerge.Task/ if you prefer.

I don't think adding an option to boo compiler is feasible, as the amount of work this feature requires is non-trivial and ILMerge is superseded for .Net core by CoreRT, see: https://github.com/dotnet/corert/tree/master/samples/WebApi

Guevara-chan commented 6 years ago

You can do this with a post-build invocation for ILMerge.

Unfortunately - yes, you can. It's called 'extra dependency' and makes project rebuilding harder for other users, so I advice you to refrain from such things when developing open-sourced code.

ILMerge is superseded for .Net core by CoreRT

I guess 4.0 will be our best target for, like, next 5 years.

masonwheeler commented 6 years ago

Sorry, but @popcatalin81 is right. This isn't something that belongs in the Boo compiler. Adding it would basically involve re-implementing most of ILMerge within Boo.Lang.Compiler.