4 Commits

4 changed files with 18 additions and 12 deletions

View File

@ -231,6 +231,10 @@ def publishSettings(project, projectName, projectDescription) {
bintray {
if(!hasProperty("bintrayUser") || !hasProperty("bintrayKey")) {
return
}
user = bintrayUser
key = bintrayKey
publications = ['MyPublication']

View File

@ -184,7 +184,7 @@ sealed class Node {
interface Const<out T : Number> : Args { val value: T }
}
// Control instructions [https://www.w3.org/TR/2018/WD-wasm-core-1-20180215/#control-instructions]
// Control instructions [https://www.w3.org/TR/wasm-core-1/#control-instructions]
object Unreachable : Instr(), Args.None
object Nop : Instr(), Args.None
@ -209,12 +209,12 @@ sealed class Node {
override val reserved: Boolean
) : Instr(), Args.ReservedIndex
// Parametric instructions [https://www.w3.org/TR/2018/WD-wasm-core-1-20180215/#parametric-instructions]
// Parametric instructions [https://www.w3.org/TR/wasm-core-1/#parametric-instructions]
object Drop : Instr(), Args.None
object Select : Instr(), Args.None
// Variable instructions [https://www.w3.org/TR/2018/WD-wasm-core-1-20180215/#variable-instructions]
// Variable instructions [https://www.w3.org/TR/wasm-core-1/#variable-instructions]
data class GetLocal(override val index: Int) : Instr(), Args.Index
data class SetLocal(override val index: Int) : Instr(), Args.Index
@ -222,7 +222,7 @@ sealed class Node {
data class GetGlobal(override val index: Int) : Instr(), Args.Index
data class SetGlobal(override val index: Int) : Instr(), Args.Index
// Memory instructions [https://www.w3.org/TR/2018/WD-wasm-core-1-20180215/#memory-instructions]
// Memory instructions [https://www.w3.org/TR/wasm-core-1/#memory-instructions]
data class I32Load(override val align: Int, override val offset: Long) : Instr(), Args.AlignOffset
data class I64Load(override val align: Int, override val offset: Long) : Instr(), Args.AlignOffset
@ -250,7 +250,7 @@ sealed class Node {
data class MemorySize(override val reserved: Boolean) : Instr(), Args.Reserved
data class MemoryGrow(override val reserved: Boolean) : Instr(), Args.Reserved
// Numeric instructions [https://www.w3.org/TR/2018/WD-wasm-core-1-20180215/#numeric-instructions]
// Numeric instructions [https://www.w3.org/TR/wasm-core-1/#numeric-instructions]
// Constants operators
data class I32Const(override val value: Int) : Instr(), Args.Const<Int>

View File

@ -56,7 +56,7 @@ abstract class ScriptCommand<T> : Command<T>() {
// if input file is class file
"class" -> ctx.classLoader.addClass(File(inFile).readBytes()).let { ctx }
// if input file is wasm file
else -> Translate.inToAst(inFile, inFile.substringAfterLast('.')).let { inAst ->
else -> Translate.also { it.logger = logger }.inToAst(inFile, inFile.substringAfterLast('.')).let { inAst ->
val (mod, name) = (inAst.commands.singleOrNull() as? Script.Cmd.Module) ?:
error("Input file must only contain a single module")
val className = name?.javaIdent?.capitalize() ?:
@ -69,7 +69,9 @@ abstract class ScriptCommand<T> : Command<T>() {
}
}
}
} catch (e: Exception) { throw Exception("Failed loading $inFile - ${e.message}", e) }
} catch (e: Exception) {
throw Exception("Failed loading $inFile - ${e.message}", e)
}
}
// Do registrations
context = args.registrations.fold(context) { ctx, (moduleName, className) ->

View File

@ -4,13 +4,13 @@ import asmble.ast.Node
import asmble.util.Logger
/**
* Jvm context of execution a function.
* Jvm context of the function execution.
*
* @param cls Class execution context
* @param cls class execution context
* @param node Ast of this function
* @param insns A list of instructions
* @param memIsLocalVar If true then function use only local variables and don't load
* and store from memory.
* @param insns instructions list
* @param memIsLocalVar true if function uses only local variables and doesn't load
* or store to/from memory.
*/
data class FuncContext(
val cls: ClsContext,