I've decided to try out binding llvm to felix, and I'm getting some
strange error messages:
Other exn = Flx_exceptions.Free_fixpoint(_)
Warning: typeclass Builder entry create_at_end is not virtual
Warning: typeclass Builder entry create_before is not virtual
Here's my code. "create_at_end" is definitely marked virtual. If I
swap to using "fun" instead of "gen" though it doesn't print this out.
I wonder what's going on. Oh and the commented out "dispose" doesn't
seem to work either.
include "std";
module llvm {
header basicblock_h = "#include <llvm/BasicBlock.h>";
header instructions_h = "#include <llvm/Instructions.h>";
header support_llvmbuilder_h = "#include <llvm/Support/LLVMBuilder.h";
module Instruction {
requires instructions_h;
type t = "llvm::Instruction*";
}
module BasicBlock {
requires basicblock_h;
type t = "llvm::BasicBlock*";
}
typeclass Builder[t] {
// Create a builder.
virtual gen create: unit -> t;
// Create a builder and set it before the instruction.
virtual gen create_before (bb:BasicBlock::t, i:Instruction::t) = {
val b = create ();
set_insert_point (b, bb, i);
return b;
}
// Create a builder at the end of a basic block.
virtual gen create_at_end (bb:BasicBlock::t) = {
val b = create ();
set_insert_point (b, bb);
return b;
}
// Destroy the builder.
proc dispose: t -> unit = "delete $1;";
// Set the insertion at the end of the basic block.
proc set_insert_point: t * BasicBlock::t = "$1->SetInsertPoint($2);";
// Set the insertion point before the instruction.
proc set_insert_point: t * BasicBlock::t * Instruction::t =
"$1->SetInsertPoint($2, $3);";
}
module LLVMBuilder {
requires support_llvmbuilder_h;
type t = "llvm::LLVMBuilder*";
instance Builder[t] {
gen create: unit -> t = "new llvm::LLVMBuilder();";
}
}
}
open llvm::Builder[llvm::LLVMBuilder::t];
val b = create ();
//dispose b;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language