swigged.llvm 4.0.11

A C# wrapper API of LLVM-C (v4.0) for Windows (x86, x64), Ubuntu (x64), Android (x64).

Install-Package swigged.llvm -Version 4.0.11
dotnet add package swigged.llvm --version 4.0.11

Release Notes

* Version 4.0.11
Fixing problem with NuGet spec--apparently, a dll is referenced only with either the dlls in netstandard1.1 or netstandard1.5. A
very bad rule because swigged.llvm.dll is strictly a netstandard1.1 file, but it will not add the reference any other way.
Otherwise, the functionality is identical to 4.0.10.

* Version 4.0.10
General availability. Worked out version and dependencies for Net Framework from 4.5 less than or equal to 'your app NF version' less than or equal to 4.7. Added ORC api's.
Added in all targets for LLVM. Example tests include PTX code generation and running using ManagedCUDA on a GPU.

* Version 4.0.9-alpha
Working out dependencies and versions. Instead of hardwiring everything to fixed version, allow user to update to suit build.
* Version 4.0.8-alpha
Use "Swigged.LLVM.Helper.Adjust.Path();" before 1st LLVM call to alter PATH variable within process so that it can find swigged-llvm-native.dll without having to copy the dll around. There is no equivalent fix for Ubuntu unfortunately. You must still "dotnet publish -r ubuntu.16.04-x64" and copy swigged-llvm-native.so to the build output directory.
* Version 4.0.7-alpha
Added in Android builds for x86 and armeabi targets; cleaned up package directory structure.

* Version 4.0.6-alpha
Added in fixes for VerifyModule, CreateMCJITCompilerForModule, MCJITCompilerOptions, InitializeMCJITCompilerOptions, MyString.
Object files provided in this package are a Release build in Net Standard 1.1 (swigged-llvm library) and 1.6 (Helper library).

When building with Swigged.llvm, select Platform = "AnyCPU", config = "Debug" or "Release".

On Windows, in the properties for the executable, un-check "Prefer 32-bit" in Build properties, and check "Enable native code debugging". If you are using Net Core or Standard, this option is unavailable--I'm not sure why it is.
If you are building an app with Net Framework 4.5 through 4.6.1, you must manually copy the file swigged-llvm-native.dll to your executable directory. With 4.6.2 and beyond, it will find the library in your packages/ directory.
If you are delivering your app, you will need to copy the dll to the directory containing your app.

On Ubuntu, use Net Core to build your C# program. You may need to copy the swigged-llvm-native.so file to the directory containing your app executable.

On Android, use Visual Studio and add a reference to the SO library files to your Xamarin Forms App. Make sure the directory structure is followed. See https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/ for details. Other information can be found at https://blogs.msdn.microsoft.com/vcblog/2015/02/23/developing-xamarin-android-native-applications/ https://developer.xamarin.com/guides/ios/advanced_topics/native_interop/ https://blog.xamarin.com/build-and-debug-c-libraries-in-xamarin-android-apps-with-visual-studio-2015/ .
Note, Android x86 is the only compatible target, as I haven't been able to get Android on ARM to build.

For further information, see https://github.com/kaby76/swigged-llvm.

Version History

Version Downloads Last updated
4.0.11 (current version) 76 6/18/2017
4.0.10 97 6/16/2017
4.0.9-alpha 43 5/26/2017
4.0.8-alpha 43 5/25/2017
4.0.7-alpha 41 5/24/2017
4.0.6-alpha 55 5/18/2017
4.0.5-alpha 44 5/11/2017
4.0.4-alpha 74 5/9/2017
4.0.3-alpha 42 5/8/2017 62 4/17/2017 62 4/6/2017