ftomassetti / kllvm Goto Github PK
View Code? Open in Web Editor NEWKotlin library to work with LLVM
License: Apache License 2.0
Kotlin library to work with LLVM
License: Apache License 2.0
I got this library working with printing String literals, but I can't seem to get it to print floating point numbers. Delimiting them with %f leads to 0.000000 no matter the contents of the actual constant, and %d just gives me jibberish nothing close to the actual value.
This is the code that I have
val EXIT_CODE_OK = 0
val STRING_TYPE = Pointer(I8Type)
val module = ModuleBuilder()
val mainFunction = module.createMainFunction()
module.addDeclaration(FunctionDeclaration("printf", I32Type, listOf(STRING_TYPE), varargs = true))
val okBlock = mainFunction.entryBlock()
val num = 2.0
val numConst = FloatConst(num, FloatType)
okBlock.addInstruction(Printf(mainFunction.stringConstForContent("%f\n").reference(), numConst))
okBlock.addInstruction(ReturnInt(EXIT_CODE_OK))
println(module.IRCode())
I found this library for your reddit thread, and decided to implement it into a toy language that I'm in the process of making. I was able to make it handle the printing of string literals, but when I tried to abstract it a bit more, I found that it was having trouble emitting code that printed the contents of variables.
My code can be found at https://github.com/Redrield/ChocoLang/blob/experimental/src/main/kotlin/com/redrield/chocolang/codegen/LLVMIRGenerator.kt#L70 (That line is more associated with defining the variables).
I'm not sure if this is user error of if it's a bug in the API, but I wasn't really able to find any documentation past glances in the source, and from what I found that should work.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.