Skip to content

Commit ec243ce

Browse files
committed
Update to Zig 0.15.1
1 parent 38b91e3 commit ec243ce

File tree

4 files changed

+33
-18
lines changed

4 files changed

+33
-18
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<img align="right" width="160" height="160" src="https://user-images.githubusercontent.com/34946442/152222895-9c8adb22-a22d-4bce-a513-3486ca28bdd5.png"> zig**fsm** is a [finite state machine](https://en.wikipedia.org/wiki/Finite-state_machine) library for Zig.
22

3-
This library supports Zig 0.12.x, 0.13, 0.14, as well as Zig master. Last test was on Zig version `0.15.0-dev.1018+1a998886c`
3+
This library supports Zig 0.12.x, 0.13, 0.14.x, and 0.15.1.
44

5-
Use the zigfsm main branch to compile with Zig master. Use the appropriate zig-*version* tag to target a Zig version not compatible with the main branch.
5+
Use the zigfsm main branch to compile with Zig master. Use the appropriate zig-*version* tag to target a specific Zig version.
66

77
Tested on Linux, macOS, FreeBSD and Windows.
88

build.zig

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,27 @@ pub fn build(b: *std.Build) void {
1717
.root_source_file = b.path("src/main.zig"),
1818
});
1919

20-
const lib = b.addStaticLibrary(.{
20+
const lib = b.addLibrary(.{
2121
.name = "zigfsm",
22-
.root_source_file = b.path("src/main.zig"),
23-
.target = target,
24-
.optimize = mode,
22+
.root_module = b.createModule(.{
23+
.root_source_file = b.path("src/main.zig"),
24+
.target = target,
25+
.optimize = mode,
26+
}),
2527
});
2628

2729
b.installArtifact(lib);
2830

29-
const main_tests = b.addTest(.{ .name = "tests", .root_source_file = b.path("src/tests.zig") });
31+
const main_tests = b.addTest(
32+
.{
33+
.name = "tests",
34+
.root_module = b.createModule(.{
35+
.root_source_file = b.path("src/tests.zig"),
36+
.target = target,
37+
.optimize = mode,
38+
}),
39+
},
40+
);
3041
main_tests.root_module.addImport("zigfsm", fsm_mod);
3142

3243
const run_main_tests = b.addRunArtifact(main_tests);
@@ -35,9 +46,11 @@ pub fn build(b: *std.Build) void {
3546

3647
const benchmark = b.addExecutable(.{
3748
.name = "benchmark",
38-
.root_source_file = b.path("src/benchmark.zig"),
39-
.optimize = std.builtin.Mode.ReleaseFast,
40-
.target = target,
49+
.root_module = b.createModule(.{
50+
.root_source_file = b.path("src/benchmark.zig"),
51+
.optimize = std.builtin.OptimizeMode.ReleaseFast,
52+
.target = target,
53+
}),
4154
});
4255
benchmark.root_module.addImport("zigfsm", fsm_mod);
4356

src/main.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -667,8 +667,8 @@ pub fn GenerateConsecutiveEnum(comptime prefix: []const u8, comptime element_cou
667667
var fields: []const EnumField = &[_]EnumField{};
668668

669669
for (0..element_count) |i| {
670-
comptime var tmp_buf: [128]u8 = undefined;
671-
const field_name = comptime try std.fmt.bufPrint(&tmp_buf, "{s}{d}", .{ prefix, i });
670+
var tmp_buf: [128]u8 = undefined;
671+
const field_name = try std.fmt.bufPrint(&tmp_buf, "{s}{d}", .{ prefix, i });
672672
fields = fields ++ &[_]EnumField{.{
673673
.name = field_name ++ "",
674674
.value = i,

src/tests.zig

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -603,9 +603,11 @@ test "export: graphviz export of finite automaton sample" {
603603
// This demonstrates that multiple events on the same transition are concatenated with ||
604604
try fsm.addEvent(.extra, .@"8", .@"5");
605605

606-
var outbuf = std.ArrayList(u8).init(std.testing.allocator);
607-
defer outbuf.deinit();
608-
try fsm.exportGraphviz("parser_example", outbuf.writer(), .{});
606+
var outbuf = std.ArrayList(u8).empty;
607+
defer outbuf.deinit(std.testing.allocator);
608+
const writer = outbuf.writer(std.testing.allocator);
609+
610+
try fsm.exportGraphviz("parser_example", writer, .{});
609611

610612
const target =
611613
\\digraph parser_example {
@@ -763,7 +765,7 @@ const GameState = struct {
763765
pub fn init() !GameState {
764766
var state = GameState{
765767
.fsm = FSM.init(),
766-
.stack = std.ArrayList(FSM.StateEnum).init(std.testing.allocator),
768+
.stack = std.ArrayList(FSM.StateEnum).empty,
767769
};
768770

769771
// Event-triggered transitions
@@ -779,12 +781,12 @@ const GameState = struct {
779781
}
780782

781783
pub fn deinit(self: *GameState) void {
782-
self.stack.deinit();
784+
self.stack.deinit(std.testing.allocator);
783785
}
784786

785787
// Trigger an undoable event
786788
pub fn do(self: *GameState, event: FSM.EventEnum) !zigfsm.Transition(FSM.StateEnum, FSM.EventEnum) {
787-
try self.stack.append(self.fsm.currentState());
789+
try self.stack.append(std.testing.allocator, self.fsm.currentState());
788790
return try self.fsm.do(event);
789791
}
790792

0 commit comments

Comments
 (0)