Merge branch 'master' of ssh://git.sideros.org:/git/sideros
This commit is contained in:
commit
669b8e5fee
4 changed files with 540 additions and 548 deletions
22
src/main.zig
22
src/main.zig
|
|
@ -33,12 +33,11 @@ pub fn main() !void {
|
|||
//var runtime = try mods.Runtime.init(allocator, module, &global_runtime);
|
||||
//defer runtime.deinit(allocator);
|
||||
|
||||
//var parameters = [_]usize{};
|
||||
//var parameters = [_]usize{17};
|
||||
//try runtime.callExternal(allocator, "preinit", ¶meters);
|
||||
var w = try Renderer.Window.create(800, 600, "sideros");
|
||||
defer w.destroy();
|
||||
|
||||
// TODO(luccie-cmd): Renderer.create shouldn't return an error
|
||||
var r = try Renderer.create(allocator, w);
|
||||
defer r.destroy();
|
||||
|
||||
|
|
@ -51,15 +50,18 @@ pub fn main() !void {
|
|||
var pool = try ecs.Pool.init(allocator, resources);
|
||||
defer pool.deinit();
|
||||
w.setResources(&pool.resources);
|
||||
//try pool.addSystemGroup(&[_]entities.System{
|
||||
// testSystem,
|
||||
//});
|
||||
// try pool.addSystemGroup(&[_]ecs.System{
|
||||
// testSystem2,
|
||||
// });
|
||||
|
||||
_ = try pool.createEntity(ecs.entities.Human{
|
||||
.position = .{ .x = 0.0, .y = 1.0, .z = 0.0 },
|
||||
.speed = .{ .speed = 5.0 },
|
||||
});
|
||||
|
||||
try pool.addSystemGroup(&[_]ecs.System{
|
||||
testSystem2,
|
||||
});
|
||||
// for (0..1000) |_| {
|
||||
// const entity = try pool.createEntity();
|
||||
// try pool.addComponent(entity, ecs.components.Position{ .x = 1.0, .y = 0.5, .z = 3.0 });
|
||||
// try pool.addComponent(entity, ecs.components.Speed{ .speed = 5.0 });
|
||||
// }
|
||||
|
||||
while (!w.shouldClose()) {
|
||||
Renderer.Window.pollEvents();
|
||||
|
|
|
|||
|
|
@ -448,6 +448,7 @@ fn parseElemsec(self: *Parser) !void {
|
|||
pub const Func = struct {
|
||||
locals: []Valtype,
|
||||
code: []const u8,
|
||||
ir: IR,
|
||||
};
|
||||
const Local = struct {
|
||||
n: u32,
|
||||
|
|
@ -477,6 +478,7 @@ fn parseCode(self: *Parser) !Func {
|
|||
const func = Func{
|
||||
.locals = try self.allocator.alloc(Valtype, local_count),
|
||||
.code = &.{},
|
||||
.ir = ir,
|
||||
};
|
||||
|
||||
var li: usize = 0;
|
||||
|
|
|
|||
|
|
@ -7,41 +7,41 @@ pub const IR = @import("ir.zig");
|
|||
pub const GlobalRuntime = Wasm.GlobalRuntime;
|
||||
pub const Runtime = VM.Runtime;
|
||||
|
||||
const std = @import("std");
|
||||
// const std = @import("std");
|
||||
|
||||
test "Fibonacci" {
|
||||
// var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
// const allocator = gpa.allocator();
|
||||
const allocator = std.testing.allocator;
|
||||
var global_runtime = GlobalRuntime.init(allocator);
|
||||
defer global_runtime.deinit();
|
||||
// test "Fibonacci" {
|
||||
// // var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||
// // const allocator = gpa.allocator();
|
||||
// const allocator = std.testing.allocator;
|
||||
// var global_runtime = GlobalRuntime.init(allocator);
|
||||
// defer global_runtime.deinit();
|
||||
|
||||
const file = try std.fs.cwd().openFile("assets/core.wasm", .{});
|
||||
const all = try file.readToEndAlloc(allocator, 1_000_000); // 1 MB
|
||||
var parser = Parser{
|
||||
.bytes = all,
|
||||
.byte_idx = 0,
|
||||
.allocator = allocator,
|
||||
};
|
||||
const module = parser.parseModule() catch |err| {
|
||||
std.debug.print("[ERROR]: error at byte {x}(0x{x})\n", .{ parser.byte_idx, parser.bytes[parser.byte_idx] });
|
||||
return err;
|
||||
};
|
||||
var runtime = try Runtime.init(allocator, module, &global_runtime);
|
||||
defer runtime.deinit(allocator);
|
||||
// const file = try std.fs.cwd().openFile("assets/core.wasm", .{});
|
||||
// const all = try file.readToEndAlloc(allocator, 1_000_000); // 1 MB
|
||||
// var parser = Parser{
|
||||
// .bytes = all,
|
||||
// .byte_idx = 0,
|
||||
// .allocator = allocator,
|
||||
// };
|
||||
// const module = parser.parseModule() catch |err| {
|
||||
// std.debug.print("[ERROR]: error at byte {x}(0x{x})\n", .{ parser.byte_idx, parser.bytes[parser.byte_idx] });
|
||||
// return err;
|
||||
// };
|
||||
// var runtime = try Runtime.init(allocator, module, &global_runtime);
|
||||
// defer runtime.deinit(allocator);
|
||||
|
||||
var parameters = [_]usize{17};
|
||||
try runtime.callExternal(allocator, "preinit", ¶meters);
|
||||
const result = runtime.stack.pop().?;
|
||||
try std.testing.expect(result.i64 == 1597);
|
||||
// var parameters = [_]usize{17};
|
||||
// try runtime.callExternal(allocator, "preinit", ¶meters);
|
||||
// const result = runtime.stack.pop().?;
|
||||
// try std.testing.expect(result.i64 == 1597);
|
||||
|
||||
var parameters2 = [_]usize{1};
|
||||
try runtime.callExternal(allocator, "preinit", ¶meters2);
|
||||
const result2 = runtime.stack.pop().?;
|
||||
try std.testing.expect(result2.i64 == 1);
|
||||
// var parameters2 = [_]usize{1};
|
||||
// try runtime.callExternal(allocator, "preinit", ¶meters2);
|
||||
// const result2 = runtime.stack.pop().?;
|
||||
// try std.testing.expect(result2.i64 == 1);
|
||||
|
||||
var parameters3 = [_]usize{5};
|
||||
try runtime.callExternal(allocator, "preinit", ¶meters3);
|
||||
const result3 = runtime.stack.pop().?;
|
||||
try std.testing.expect(result3.i64 == 5);
|
||||
}
|
||||
// var parameters3 = [_]usize{5};
|
||||
// try runtime.callExternal(allocator, "preinit", ¶meters3);
|
||||
// const result3 = runtime.stack.pop().?;
|
||||
// try std.testing.expect(result3.i64 == 5);
|
||||
// }
|
||||
|
|
|
|||
998
src/mods/vm.zig
998
src/mods/vm.zig
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue