{"action":"created","issue":{"url":"https://api.github.com/repos/NETMF/Llvm.NET/issues/12","repository_url":"https://api.github.com/repos/NETMF/Llvm.NET","labels_url":"https://api.github.com/repos/NETMF/Llvm.NET/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/NETMF/Llvm.NET/issues/12/comments","events_url":"https://api.github.com/repos/NETMF/Llvm.NET/issues/12/events","html_url":"https://github.com/NETMF/Llvm.NET/issues/12","id":196324405,"number":12,"title":"i have some questions ......","user":{"login":"snikeguo","id":20830435,"avatar_url":"https://avatars.githubusercontent.com/u/20830435?v=3","gravatar_id":"","url":"https://api.github.com/users/snikeguo","html_url":"https://github.com/snikeguo","followers_url":"https://api.github.com/users/snikeguo/followers","following_url":"https://api.github.com/users/snikeguo/following{/other_user}","gists_url":"https://api.github.com/users/snikeguo/gists{/gist_id}","starred_url":"https://api.github.com/users/snikeguo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snikeguo/subscriptions","organizations_url":"https://api.github.com/users/snikeguo/orgs","repos_url":"https://api.github.com/users/snikeguo/repos","events_url":"https://api.github.com/users/snikeguo/events{/privacy}","received_events_url":"https://api.github.com/users/snikeguo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-12-19T03:31:13Z","updated_at":"2016-12-19T17:33:59Z","closed_at":null,"body":"Hello! I come from Shenzhen, China. Glad to see this project. I have some questions to ask.\r\n1.Intermediate, Signed, Unsigned. I see there are LibLLVM.DLL, Llvm.NET.DLL. What is the difference between these folders?\r\n2 I am an embedded Engineer (ARM Cortex-M0+/M3/M4 Engineer). I want a LLVM based C# compiler. You can generate the HEX/ELF file by entering the source code files and the link script file. This function can be achieved? Because I don't understand LLVM, I need a EXE program. Achieve \"CS files ------->elf file\" function. Please help me. Thank you.\r\n3 to provide the necessary libraries, such as\" System.Convert class, string class, List<> class \" etc..\r\n4 if the microcontroller project without RTOS, then how to deal with GC? Because the microcontroller project with RTOS words, you can put GC into the IDLE thread.\r\nFinally, I hope you come to China to play.   ( ^_^ )"},"comment":{"url":"https://api.github.com/repos/NETMF/Llvm.NET/issues/comments/268026633","html_url":"https://github.com/NETMF/Llvm.NET/issues/12#issuecomment-268026633","issue_url":"https://api.github.com/repos/NETMF/Llvm.NET/issues/12","id":268026633,"user":{"login":"smaillet-ms","id":8934567,"avatar_url":"https://avatars.githubusercontent.com/u/8934567?v=3","gravatar_id":"","url":"https://api.github.com/users/smaillet-ms","html_url":"https://github.com/smaillet-ms","followers_url":"https://api.github.com/users/smaillet-ms/followers","following_url":"https://api.github.com/users/smaillet-ms/following{/other_user}","gists_url":"https://api.github.com/users/smaillet-ms/gists{/gist_id}","starred_url":"https://api.github.com/users/smaillet-ms/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smaillet-ms/subscriptions","organizations_url":"https://api.github.com/users/smaillet-ms/orgs","repos_url":"https://api.github.com/users/smaillet-ms/repos","events_url":"https://api.github.com/users/smaillet-ms/events{/privacy}","received_events_url":"https://api.github.com/users/smaillet-ms/received_events","type":"User","site_admin":false},"created_at":"2016-12-19T17:33:59Z","updated_at":"2016-12-19T17:33:59Z","body":"@snikeguo \r\n1.  LibLLVM is an unmanaged DLL that provides an extended C API for LLVM.  This includes all the official LLVM-C APIs and a significant set of extensions to support use of LLVM from other languages and runtimes such as .NET. Llvm.NET is a .NET library that uses LibLLVM to provide a .NET object model for accessing LLVM libraries from .NET applications. These are building blocks for using LLVM from .NET applications. \r\n2. Great, this is part of why Llvm.NET was created. The LLilum project uses LLVM.NET to convert .NET code for embedded targets. It is a complicated code base with a long history and, while functional, is slow to generate the target code and also has a large run-time footprint. Which, is why I have been working on a new set of tools and updating LLVM.NET. Once the holidays are over in the US I should have all the \"paperwork\" done with the .NET Foundation so I can publish the first stages of that project. There's a lot of work yet to be done but, so far things are looking good.\r\n3. Runtime-libraries will, of course, be required for any new run-time or tooling. Fortunately the idea of cross platform .NET applications has hit mainstream and projects like .NET Core and the .NET Standard Library help in establishing the patterns and techniques for dealing with OS or Runtime specific implementation variations. They also provide OSS implementations of those libraries that we can leverage.\r\n4. Multiple options exist for handling GC, including not having any at all. For the majority of embedded devices the conservative Boehm collector is likely more than adequate. If there is no idle thread for collection then a collector could be run sequentially as part of the heap allocation. (e.g. when allocating memory and the heap has reached some pre-determined limit, run  a collection to free up memory...) Lot's of options there and I don't think that a single \"one size fits all\" solution is plausible, let alone desirable."}}
{"actor":{"display_login":"smaillet-ms"}}