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);
|
//var runtime = try mods.Runtime.init(allocator, module, &global_runtime);
|
||||||
//defer runtime.deinit(allocator);
|
//defer runtime.deinit(allocator);
|
||||||
|
|
||||||
//var parameters = [_]usize{};
|
//var parameters = [_]usize{17};
|
||||||
//try runtime.callExternal(allocator, "preinit", ¶meters);
|
//try runtime.callExternal(allocator, "preinit", ¶meters);
|
||||||
var w = try Renderer.Window.create(800, 600, "sideros");
|
var w = try Renderer.Window.create(800, 600, "sideros");
|
||||||
defer w.destroy();
|
defer w.destroy();
|
||||||
|
|
||||||
// TODO(luccie-cmd): Renderer.create shouldn't return an error
|
|
||||||
var r = try Renderer.create(allocator, w);
|
var r = try Renderer.create(allocator, w);
|
||||||
defer r.destroy();
|
defer r.destroy();
|
||||||
|
|
||||||
|
|
@ -51,15 +50,18 @@ pub fn main() !void {
|
||||||
var pool = try ecs.Pool.init(allocator, resources);
|
var pool = try ecs.Pool.init(allocator, resources);
|
||||||
defer pool.deinit();
|
defer pool.deinit();
|
||||||
w.setResources(&pool.resources);
|
w.setResources(&pool.resources);
|
||||||
|
//try pool.addSystemGroup(&[_]entities.System{
|
||||||
|
// testSystem,
|
||||||
|
//});
|
||||||
|
// try pool.addSystemGroup(&[_]ecs.System{
|
||||||
|
// testSystem2,
|
||||||
|
// });
|
||||||
|
|
||||||
_ = try pool.createEntity(ecs.entities.Human{
|
// for (0..1000) |_| {
|
||||||
.position = .{ .x = 0.0, .y = 1.0, .z = 0.0 },
|
// const entity = try pool.createEntity();
|
||||||
.speed = .{ .speed = 5.0 },
|
// 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 });
|
||||||
|
// }
|
||||||
try pool.addSystemGroup(&[_]ecs.System{
|
|
||||||
testSystem2,
|
|
||||||
});
|
|
||||||
|
|
||||||
while (!w.shouldClose()) {
|
while (!w.shouldClose()) {
|
||||||
Renderer.Window.pollEvents();
|
Renderer.Window.pollEvents();
|
||||||
|
|
|
||||||
|
|
@ -448,6 +448,7 @@ fn parseElemsec(self: *Parser) !void {
|
||||||
pub const Func = struct {
|
pub const Func = struct {
|
||||||
locals: []Valtype,
|
locals: []Valtype,
|
||||||
code: []const u8,
|
code: []const u8,
|
||||||
|
ir: IR,
|
||||||
};
|
};
|
||||||
const Local = struct {
|
const Local = struct {
|
||||||
n: u32,
|
n: u32,
|
||||||
|
|
@ -477,6 +478,7 @@ fn parseCode(self: *Parser) !Func {
|
||||||
const func = Func{
|
const func = Func{
|
||||||
.locals = try self.allocator.alloc(Valtype, local_count),
|
.locals = try self.allocator.alloc(Valtype, local_count),
|
||||||
.code = &.{},
|
.code = &.{},
|
||||||
|
.ir = ir,
|
||||||
};
|
};
|
||||||
|
|
||||||
var li: usize = 0;
|
var li: usize = 0;
|
||||||
|
|
|
||||||
|
|
@ -7,41 +7,41 @@ pub const IR = @import("ir.zig");
|
||||||
pub const GlobalRuntime = Wasm.GlobalRuntime;
|
pub const GlobalRuntime = Wasm.GlobalRuntime;
|
||||||
pub const Runtime = VM.Runtime;
|
pub const Runtime = VM.Runtime;
|
||||||
|
|
||||||
const std = @import("std");
|
// const std = @import("std");
|
||||||
|
|
||||||
test "Fibonacci" {
|
// test "Fibonacci" {
|
||||||
// var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
// // var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
||||||
// const allocator = gpa.allocator();
|
// // const allocator = gpa.allocator();
|
||||||
const allocator = std.testing.allocator;
|
// const allocator = std.testing.allocator;
|
||||||
var global_runtime = GlobalRuntime.init(allocator);
|
// var global_runtime = GlobalRuntime.init(allocator);
|
||||||
defer global_runtime.deinit();
|
// defer global_runtime.deinit();
|
||||||
|
|
||||||
const file = try std.fs.cwd().openFile("assets/core.wasm", .{});
|
// const file = try std.fs.cwd().openFile("assets/core.wasm", .{});
|
||||||
const all = try file.readToEndAlloc(allocator, 1_000_000); // 1 MB
|
// const all = try file.readToEndAlloc(allocator, 1_000_000); // 1 MB
|
||||||
var parser = Parser{
|
// var parser = Parser{
|
||||||
.bytes = all,
|
// .bytes = all,
|
||||||
.byte_idx = 0,
|
// .byte_idx = 0,
|
||||||
.allocator = allocator,
|
// .allocator = allocator,
|
||||||
};
|
// };
|
||||||
const module = parser.parseModule() catch |err| {
|
// 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] });
|
// std.debug.print("[ERROR]: error at byte {x}(0x{x})\n", .{ parser.byte_idx, parser.bytes[parser.byte_idx] });
|
||||||
return err;
|
// return err;
|
||||||
};
|
// };
|
||||||
var runtime = try Runtime.init(allocator, module, &global_runtime);
|
// var runtime = try Runtime.init(allocator, module, &global_runtime);
|
||||||
defer runtime.deinit(allocator);
|
// defer runtime.deinit(allocator);
|
||||||
|
|
||||||
var parameters = [_]usize{17};
|
// var parameters = [_]usize{17};
|
||||||
try runtime.callExternal(allocator, "preinit", ¶meters);
|
// try runtime.callExternal(allocator, "preinit", ¶meters);
|
||||||
const result = runtime.stack.pop().?;
|
// const result = runtime.stack.pop().?;
|
||||||
try std.testing.expect(result.i64 == 1597);
|
// try std.testing.expect(result.i64 == 1597);
|
||||||
|
|
||||||
var parameters2 = [_]usize{1};
|
// var parameters2 = [_]usize{1};
|
||||||
try runtime.callExternal(allocator, "preinit", ¶meters2);
|
// try runtime.callExternal(allocator, "preinit", ¶meters2);
|
||||||
const result2 = runtime.stack.pop().?;
|
// const result2 = runtime.stack.pop().?;
|
||||||
try std.testing.expect(result2.i64 == 1);
|
// try std.testing.expect(result2.i64 == 1);
|
||||||
|
|
||||||
var parameters3 = [_]usize{5};
|
// var parameters3 = [_]usize{5};
|
||||||
try runtime.callExternal(allocator, "preinit", ¶meters3);
|
// try runtime.callExternal(allocator, "preinit", ¶meters3);
|
||||||
const result3 = runtime.stack.pop().?;
|
// const result3 = runtime.stack.pop().?;
|
||||||
try std.testing.expect(result3.i64 == 5);
|
// 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