From 88ee5d1a6de96cb45951eed936df9e7bf9c8022c Mon Sep 17 00:00:00 2001 From: oskarnp Date: Sun, 26 Mar 2023 16:10:27 +0200 Subject: [PATCH 01/50] text/table: Initial implementation --- core/text/table/doc.odin | 100 ++++++++++ core/text/table/table.odin | 399 +++++++++++++++++++++++++++++++++++++ 2 files changed, 499 insertions(+) create mode 100644 core/text/table/doc.odin create mode 100644 core/text/table/table.odin diff --git a/core/text/table/doc.odin b/core/text/table/doc.odin new file mode 100644 index 000000000..00bde5862 --- /dev/null +++ b/core/text/table/doc.odin @@ -0,0 +1,100 @@ +/* + package table implements ascii/markdown/html/custom rendering of tables. + + --- + + Custom rendering example: + + ```odin + tbl := init(&Table{}) + padding(tbl, 0, 1) + row(tbl, "A_LONG_ENUM", "= 54,", "// A comment about A_LONG_ENUM") + row(tbl, "AN_EVEN_LONGER_ENUM", "= 1,", "// A comment about AN_EVEN_LONGER_ENUM") + build(tbl) + for row in 0.. + Made available under Odin's BSD-3 license. + + List of contributors: + oskarnp: Initial implementation. +*/ + +package text_table + +import "core:io" +import "core:os" +import "core:fmt" +import "core:mem" +import "core:mem/virtual" +import "core:runtime" +import "core:strings" + +Cell :: struct { + text: string, + alignment: Cell_Alignment, +} + +Cell_Alignment :: enum { + Left = 1, + Center, + Right, +} + +Table :: struct { + lpad, rpad: int, // Cell padding (left/right) + cells: [dynamic]Cell, + caption: string, + nr_rows, nr_cols: int, + has_header_row: bool, + table_allocator: runtime.Allocator, // Used for allocating cells/colw + format_allocator: runtime.Allocator, // Used for allocating Cell.text when applicable + + dirty: bool, // True if build() needs to be called before rendering + + // The following are computed on build() + colw: [dynamic]int, // Width of each column (including padding, excluding borders) + tblw: int, // Width of entire table (including padding, excluding borders) +} + +init :: proc{_init, _init_with_virtual_arena, _init_with_mem_arena} + +_init :: proc(tbl: ^Table, format_allocator := context.temp_allocator, table_allocator := context.allocator) -> ^Table { + tbl.table_allocator = table_allocator + tbl.cells = make([dynamic]Cell, tbl.table_allocator) + tbl.colw = make([dynamic]int, tbl.table_allocator) + tbl.format_allocator = format_allocator + return tbl +} +_init_with_virtual_arena :: proc(tbl: ^Table, format_arena: ^virtual.Arena, table_allocator := context.allocator) -> ^Table { + return _init(tbl, virtual.arena_allocator(format_arena), table_allocator) +} +_init_with_mem_arena :: proc(tbl: ^Table, format_arena: ^mem.Arena, table_allocator := context.allocator) -> ^Table { + return _init(tbl, mem.arena_allocator(format_arena), table_allocator) +} + +destroy :: proc(tbl: ^Table) { + free_all(tbl.format_allocator) + delete(tbl.cells) + delete(tbl.colw) +} + +caption :: proc(tbl: ^Table, value: string) { + tbl.caption = value + tbl.dirty = true +} + +padding :: proc(tbl: ^Table, lpad, rpad: int) { + tbl.lpad = lpad + tbl.rpad = rpad + tbl.dirty = true +} + +get_cell :: proc(tbl: ^Table, row, col: int, loc := #caller_location) -> ^Cell { + assert(col >= 0 && col < tbl.nr_cols, "cell column out of range", loc) + assert(row >= 0 && row < tbl.nr_rows, "cell row out of range", loc) + resize(&tbl.cells, tbl.nr_cols * tbl.nr_rows) + return &tbl.cells[row*tbl.nr_cols + col] +} + +set_cell_value_and_alignment :: proc(tbl: ^Table, row, col: int, value: string, alignment: Cell_Alignment) { + cell := get_cell(tbl, row, col) + cell.text = format(tbl, "%v", value) + cell.alignment = alignment + tbl.dirty = true +} + +set_cell_value :: proc(tbl: ^Table, row, col: int, value: any, loc := #caller_location) { + cell := get_cell(tbl, row, col, loc) + if cell.alignment == nil { + cell.alignment = .Left + } + switch val in value { + case nil: + cell.text = "" + case string: + cell.text = string(val) + case cstring: + cell.text = string(val) + case: + cell.text = format(tbl, "%v", val) + if cell.text == "" { + fmt.eprintf("{} text/table: format() resulted in empty string (arena out of memory?)\n", loc) + } + } + tbl.dirty = true +} + +set_cell_alignment :: proc(tbl: ^Table, row, col: int, alignment: Cell_Alignment, loc := #caller_location) { + cell := get_cell(tbl, row, col, loc) + cell.alignment = alignment + tbl.dirty = true +} + +format :: proc(tbl: ^Table, _fmt: string, args: ..any, loc := #caller_location) -> string { + context.allocator = tbl.format_allocator + return fmt.aprintf(fmt = _fmt, args = args) +} + +header :: proc(tbl: ^Table, values: ..any, loc := #caller_location) { + if (tbl.has_header_row && tbl.nr_rows != 1) || (!tbl.has_header_row && tbl.nr_rows != 0) { + panic("Cannot add headers after rows have been added", loc) + } + + if tbl.nr_rows == 0 { + tbl.nr_rows += 1 + tbl.has_header_row = true + } + + col := tbl.nr_cols + tbl.nr_cols += len(values) + for val in values { + set_cell_value(tbl, header_row(tbl), col, val, loc) + col += 1 + } + + tbl.dirty = true +} + +row :: proc(tbl: ^Table, values: ..any, loc := #caller_location) { + if tbl.nr_cols == 0 { + if len(values) == 0 { + panic("Cannot create row without values unless knowing amount of columns in advance") + } else { + tbl.nr_cols = len(values) + } + } + tbl.nr_rows += 1 + for col := 0; col < tbl.nr_cols; col += 1 { + val := values[col] if col < len(values) else nil + set_cell_value(tbl, last_row(tbl), col, val) + } + tbl.dirty = true +} + +last_row :: proc(tbl: ^Table) -> int { + return tbl.nr_rows - 1 +} + +header_row :: proc(tbl: ^Table) -> int { + return 0 if tbl.has_header_row else -1 +} + +first_row :: proc(tbl: ^Table) -> int { + return header_row(tbl)+1 if tbl.has_header_row else 0 +} + +build :: proc(tbl: ^Table) { + tbl.dirty = false + + resize(&tbl.colw, tbl.nr_cols) + mem.zero_slice(tbl.colw[:]) + + for row in 0.. tbl.colw[col] { + tbl.colw[col] = w + } + } + } + + colw_sum := 0 + for v in tbl.colw { + colw_sum += v + } + + tbl.tblw = max(colw_sum, len(tbl.caption) + tbl.lpad + tbl.rpad) + + // Resize columns to match total width of table + remain := tbl.tblw-colw_sum + for col := 0; remain > 0; col = (col + 1) % tbl.nr_cols { + tbl.colw[col] += 1 + remain -= 1 + } + + return +} + +write_html_table :: proc(w: io.Writer, tbl: ^Table) { + if tbl.dirty { + build(tbl) + } + + io.write_string(w, "\n") + if tbl.caption != "" { + io.write_string(w, "\n") + } + + align_attribute :: proc(cell: ^Cell) -> string { + #partial switch cell.alignment { + case .Left: return ` align="left"` + case .Center: return ` align="center"` + case .Right: return ` align="right"` + } + return "" + } + + if tbl.has_header_row { + io.write_string(w, "\n") + io.write_string(w, " \n") + for col in 0..") + io.write_string(w, cell.text) + io.write_string(w, "\n") + } + io.write_string(w, " \n") + io.write_string(w, "\n") + } + + io.write_string(w, "\n") + for row in 0..\n") + for col in 0..") + io.write_string(w, cell.text) + io.write_string(w, "\n") + } + io.write_string(w, " \n") + } + io.write_string(w, " \n") + + io.write_string(w, "
") + io.write_string(w, tbl.caption) + io.write_string(w, "
\n") +} + +write_ascii_table :: proc(w: io.Writer, tbl: ^Table) { + if tbl.dirty { + build(tbl) + } + + write_caption_separator :: proc(w: io.Writer, tbl: ^Table) { + io.write_byte(w, '+') + write_byte_repeat(w, tbl.tblw + tbl.nr_cols - 1, '-') + io.write_byte(w, '+') + io.write_byte(w, '\n') + } + + write_table_separator :: proc(w: io.Writer, tbl: ^Table) { + for col in 0.. io.Writer { + return io.to_writer(os.stream_from_handle(os.stdout)) +} + +strings_builder_writer :: proc(b: ^strings.Builder) -> io.Writer { + return strings.to_writer(b) +} From 020b14722208c55d0cf1d3999166ae31f1f71df4 Mon Sep 17 00:00:00 2001 From: oskarnp Date: Sun, 26 Mar 2023 21:33:27 +0200 Subject: [PATCH 02/50] Move helper procs into utility.odin --- core/text/table/table.odin | 8 -------- core/text/table/utility.odin | 13 +++++++++++++ 2 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 core/text/table/utility.odin diff --git a/core/text/table/table.odin b/core/text/table/table.odin index c15a92bae..bd72455aa 100644 --- a/core/text/table/table.odin +++ b/core/text/table/table.odin @@ -389,11 +389,3 @@ write_text_align :: proc(w: io.Writer, colw, lpad, rpad: int, text: string, alig } write_byte_repeat(w, rpad, ' ') } - -stdio_writer :: proc() -> io.Writer { - return io.to_writer(os.stream_from_handle(os.stdout)) -} - -strings_builder_writer :: proc(b: ^strings.Builder) -> io.Writer { - return strings.to_writer(b) -} diff --git a/core/text/table/utility.odin b/core/text/table/utility.odin new file mode 100644 index 000000000..0e56fd968 --- /dev/null +++ b/core/text/table/utility.odin @@ -0,0 +1,13 @@ +package text_table + +import "core:io" +import "core:os" +import "core:strings" + +stdio_writer :: proc() -> io.Writer { + return io.to_writer(os.stream_from_handle(os.stdout)) +} + +strings_builder_writer :: proc(b: ^strings.Builder) -> io.Writer { + return strings.to_writer(b) +} From b6d4853a338b4b0058fd8e07fa085edf65c7545a Mon Sep 17 00:00:00 2001 From: oskarnp Date: Sun, 26 Mar 2023 21:41:16 +0200 Subject: [PATCH 03/50] Fix cell alignment to default to Left using ZII --- core/text/table/table.odin | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/core/text/table/table.odin b/core/text/table/table.odin index bd72455aa..3bb92f7f6 100644 --- a/core/text/table/table.odin +++ b/core/text/table/table.odin @@ -22,7 +22,7 @@ Cell :: struct { } Cell_Alignment :: enum { - Left = 1, + Left, Center, Right, } @@ -92,9 +92,6 @@ set_cell_value_and_alignment :: proc(tbl: ^Table, row, col: int, value: string, set_cell_value :: proc(tbl: ^Table, row, col: int, value: any, loc := #caller_location) { cell := get_cell(tbl, row, col, loc) - if cell.alignment == nil { - cell.alignment = .Left - } switch val in value { case nil: cell.text = "" @@ -345,8 +342,6 @@ write_markdown_table :: proc(w: io.Writer, tbl: ^Table) { case .Right: write_byte_repeat(w, max(1, tbl.colw[col]-1, tbl.lpad, tbl.rpad), '-') io.write_byte(w, ':') - case: - panic("unhandled cell alignment") } io.write_byte(w, '|') } @@ -384,8 +379,6 @@ write_text_align :: proc(w: io.Writer, colw, lpad, rpad: int, text: string, alig case .Right: write_byte_repeat(w, colw - len(text), ' ') io.write_string(w, text) - case: - panic("unhandled alignment") } write_byte_repeat(w, rpad, ' ') } From 2da81a4a26eac631eeb93bb220c4e7a6bbaac4d3 Mon Sep 17 00:00:00 2001 From: oskarnp Date: Sun, 26 Mar 2023 21:44:31 +0200 Subject: [PATCH 04/50] Remove unnecessary C style loop --- core/text/table/table.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/text/table/table.odin b/core/text/table/table.odin index 3bb92f7f6..a5203fcd0 100644 --- a/core/text/table/table.odin +++ b/core/text/table/table.odin @@ -148,7 +148,7 @@ row :: proc(tbl: ^Table, values: ..any, loc := #caller_location) { } } tbl.nr_rows += 1 - for col := 0; col < tbl.nr_cols; col += 1 { + for col in 0.. Date: Sun, 26 Mar 2023 21:45:37 +0200 Subject: [PATCH 05/50] Remove unnecessary #partial switch --- core/text/table/table.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/text/table/table.odin b/core/text/table/table.odin index a5203fcd0..65ce5e423 100644 --- a/core/text/table/table.odin +++ b/core/text/table/table.odin @@ -212,12 +212,12 @@ write_html_table :: proc(w: io.Writer, tbl: ^Table) { } align_attribute :: proc(cell: ^Cell) -> string { - #partial switch cell.alignment { + switch cell.alignment { case .Left: return ` align="left"` case .Center: return ` align="center"` case .Right: return ` align="right"` } - return "" + unreachable() } if tbl.has_header_row { From 51f295caccd2c963c61d8e9252b2c37f7727ba51 Mon Sep 17 00:00:00 2001 From: oskarnp Date: Sun, 26 Mar 2023 21:46:36 +0200 Subject: [PATCH 06/50] Rename init procs --- core/text/table/table.odin | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/text/table/table.odin b/core/text/table/table.odin index 65ce5e423..44042cbce 100644 --- a/core/text/table/table.odin +++ b/core/text/table/table.odin @@ -43,20 +43,20 @@ Table :: struct { tblw: int, // Width of entire table (including padding, excluding borders) } -init :: proc{_init, _init_with_virtual_arena, _init_with_mem_arena} +init :: proc{init_with_allocator, init_with_virtual_arena, init_with_mem_arena} -_init :: proc(tbl: ^Table, format_allocator := context.temp_allocator, table_allocator := context.allocator) -> ^Table { +init_with_allocator :: proc(tbl: ^Table, format_allocator := context.temp_allocator, table_allocator := context.allocator) -> ^Table { tbl.table_allocator = table_allocator tbl.cells = make([dynamic]Cell, tbl.table_allocator) tbl.colw = make([dynamic]int, tbl.table_allocator) tbl.format_allocator = format_allocator return tbl } -_init_with_virtual_arena :: proc(tbl: ^Table, format_arena: ^virtual.Arena, table_allocator := context.allocator) -> ^Table { - return _init(tbl, virtual.arena_allocator(format_arena), table_allocator) +init_with_virtual_arena :: proc(tbl: ^Table, format_arena: ^virtual.Arena, table_allocator := context.allocator) -> ^Table { + return init_with_allocator(tbl, virtual.arena_allocator(format_arena), table_allocator) } -_init_with_mem_arena :: proc(tbl: ^Table, format_arena: ^mem.Arena, table_allocator := context.allocator) -> ^Table { - return _init(tbl, mem.arena_allocator(format_arena), table_allocator) +init_with_mem_arena :: proc(tbl: ^Table, format_arena: ^mem.Arena, table_allocator := context.allocator) -> ^Table { + return init_with_allocator(tbl, mem.arena_allocator(format_arena), table_allocator) } destroy :: proc(tbl: ^Table) { From e2e98672bda84f64fc72f9602127e85097d0ffed Mon Sep 17 00:00:00 2001 From: oskarnp Date: Sun, 26 Mar 2023 21:51:57 +0200 Subject: [PATCH 07/50] Fix typo --- core/text/table/table.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/text/table/table.odin b/core/text/table/table.odin index 44042cbce..df93ee44e 100644 --- a/core/text/table/table.odin +++ b/core/text/table/table.odin @@ -334,13 +334,13 @@ write_markdown_table :: proc(w: io.Writer, tbl: ^Table) { switch cell.alignment { case .Left: io.write_byte(w, ':') - write_byte_repeat(w, max(1, tbl.colw[col]-1, tbl.lpad, tbl.rpad), '-') + write_byte_repeat(w, max(1, tbl.colw[col]-1), '-') case .Center: io.write_byte(w, ':') - write_byte_repeat(w, max(1, tbl.colw[col]-2, tbl.lpad, tbl.rpad), '-') + write_byte_repeat(w, max(1, tbl.colw[col]-2), '-') io.write_byte(w, ':') case .Right: - write_byte_repeat(w, max(1, tbl.colw[col]-1, tbl.lpad, tbl.rpad), '-') + write_byte_repeat(w, max(1, tbl.colw[col]-1), '-') io.write_byte(w, ':') } io.write_byte(w, '|') From 8862f9118b7efa79a09e3b397f517f16ed342016 Mon Sep 17 00:00:00 2001 From: oskarnp Date: Mon, 27 Mar 2023 09:31:24 +0200 Subject: [PATCH 08/50] Fix typos in doc --- core/text/table/doc.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/text/table/doc.odin b/core/text/table/doc.odin index 00bde5862..9b5c1f932 100644 --- a/core/text/table/doc.odin +++ b/core/text/table/doc.odin @@ -11,8 +11,8 @@ row(tbl, "A_LONG_ENUM", "= 54,", "// A comment about A_LONG_ENUM") row(tbl, "AN_EVEN_LONGER_ENUM", "= 1,", "// A comment about AN_EVEN_LONGER_ENUM") build(tbl) - for row in 0.. Date: Wed, 29 Mar 2023 12:18:51 +1100 Subject: [PATCH 09/50] Fix website formatting and incorrect examples --- core/strings/ascii_set.odin | 3 +- core/strings/builder.odin | 102 ++++++++----- core/strings/conversion.odin | 43 ++++-- core/strings/intern.odin | 9 +- core/strings/reader.odin | 21 ++- core/strings/strings.odin | 276 +++++++++++++++++++++++------------ 6 files changed, 301 insertions(+), 153 deletions(-) diff --git a/core/strings/ascii_set.odin b/core/strings/ascii_set.odin index 11ad8b947..c9cc6b212 100644 --- a/core/strings/ascii_set.odin +++ b/core/strings/ascii_set.odin @@ -37,7 +37,8 @@ Determines if a given char is contained within an Ascii_Set. - as: The Ascii_Set to search. - c: The char to check for in the Ascii_Set. -**Returns** A boolean indicating if the byte is contained in the Ascii_Set (true) or not (false). +**Returns** +A boolean indicating if the byte is contained in the Ascii_Set (true) or not (false). */ ascii_set_contains :: proc(as: Ascii_Set, c: byte) -> bool #no_bounds_check { return as[c>>5] & (1<<(c&31)) != 0 diff --git a/core/strings/builder.odin b/core/strings/builder.odin index 15bda1b2d..b4456e236 100644 --- a/core/strings/builder.odin +++ b/core/strings/builder.odin @@ -10,7 +10,8 @@ Type definition for a procedure that flushes a Builder **Inputs** - b: A pointer to the Builder -**Returns** A boolean indicating whether the Builder should be reset +**Returns** +A boolean indicating whether the Builder should be reset */ Builder_Flush_Proc :: #type proc(b: ^Builder) -> (do_reset: bool) /* @@ -29,7 +30,8 @@ Produces a Builder with a default length of 0 and cap of 16 **Inputs** - allocator: (default is context.allocator) -**Returns** A new Builder +**Returns** +A new Builder */ builder_make_none :: proc(allocator := context.allocator) -> Builder { return Builder{buf=make([dynamic]byte, allocator)} @@ -43,7 +45,8 @@ Produces a Builder with a specified length and cap of max(16,len) byte buffer - len: The desired length of the Builder's buffer - allocator: (default is context.allocator) -**Returns** A new Builder +**Returns** +A new Builder */ builder_make_len :: proc(len: int, allocator := context.allocator) -> Builder { return Builder{buf=make([dynamic]byte, len, allocator)} @@ -58,7 +61,8 @@ Produces a Builder with a specified length and cap - cap: The desired capacity of the Builder's buffer, cap is max(cap, len) - allocator: (default is context.allocator) -**Returns** A new Builder +**Returns** +A new Builder */ builder_make_len_cap :: proc(len, cap: int, allocator := context.allocator) -> Builder { return Builder{buf=make([dynamic]byte, len, cap, allocator)} @@ -79,7 +83,8 @@ It replaces the existing `buf` - b: A pointer to the Builder - allocator: (default is context.allocator) -**Returns** initialized ^Builder +**Returns** +initialized ^Builder */ builder_init_none :: proc(b: ^Builder, allocator := context.allocator) -> ^Builder { b.buf = make([dynamic]byte, allocator) @@ -96,7 +101,8 @@ It replaces the existing `buf` - len: The desired length of the Builder's buffer - allocator: (default is context.allocator) -**Returns** Initialized ^Builder +**Returns** +Initialized ^Builder */ builder_init_len :: proc(b: ^Builder, len: int, allocator := context.allocator) -> ^Builder { b.buf = make([dynamic]byte, len, allocator) @@ -112,7 +118,8 @@ It replaces the existing `buf` - cap: The desired capacity of the Builder's buffer, actual max(len,cap) - allocator: (default is context.allocator) -**Returns** A pointer to the initialized Builder +**Returns** +A pointer to the initialized Builder */ builder_init_len_cap :: proc(b: ^Builder, len, cap: int, allocator := context.allocator) -> ^Builder { b.buf = make([dynamic]byte, len, cap, allocator) @@ -161,7 +168,8 @@ Returns an io.Stream from a Builder **Inputs** - b: A pointer to the Builder -**Returns** An io.Stream +**Returns** +An io.Stream */ to_stream :: proc(b: ^Builder) -> io.Stream { return io.Stream{stream_vtable=_builder_stream_vtable, stream_data=b} @@ -172,7 +180,8 @@ Returns an io.Writer from a Builder **Inputs** - b: A pointer to the Builder -**Returns** An io.Writer +**Returns** +An io.Writer */ to_writer :: proc(b: ^Builder) -> io.Writer { return io.to_writer(to_stream(b)) @@ -221,8 +230,10 @@ Example: strings_builder_from_bytes_example :: proc() { bytes: [8]byte // <-- gets filled builder := strings.builder_from_bytes(bytes[:]) - fmt.println(strings.write_byte(&builder, 'a')) // -> "a" - fmt.println(strings.write_byte(&builder, 'b')) // -> "ab" + strings.write_byte(&builder, 'a') + fmt.println(strings.to_string(builder)) // -> "a" + strings.write_byte(&builder, 'b') + fmt.println(strings.to_string(builder)) // -> "ab" } Output: @@ -230,7 +241,8 @@ Output: a ab -**Returns** A new Builder +**Returns** +A new Builder */ builder_from_bytes :: proc(backing: []byte) -> Builder { s := transmute(runtime.Raw_Slice)backing @@ -252,7 +264,8 @@ Casts the Builder byte buffer to a string and returns it **Inputs** - b: A Builder -**Returns** The contents of the Builder's buffer, as a string +**Returns** +The contents of the Builder's buffer, as a string */ to_string :: proc(b: Builder) -> string { return string(b.buf[:]) @@ -263,7 +276,8 @@ Returns the length of the Builder's buffer, in bytes **Inputs** - b: A Builder -**Returns** The length of the Builder's buffer +**Returns** +The length of the Builder's buffer */ builder_len :: proc(b: Builder) -> int { return len(b.buf) @@ -274,7 +288,8 @@ Returns the capacity of the Builder's buffer, in bytes **Inputs** - b: A Builder -**Returns** The capacity of the Builder's buffer +**Returns** +The capacity of the Builder's buffer */ builder_cap :: proc(b: Builder) -> int { return cap(b.buf) @@ -285,7 +300,8 @@ The free space left in the Builder's buffer, in bytes **Inputs** - b: A Builder -**Returns** The available space left in the Builder's buffer +**Returns** +The available space left in the Builder's buffer */ builder_space :: proc(b: Builder) -> int { return cap(b.buf) - len(b.buf) @@ -315,7 +331,8 @@ Output: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes appended +**Returns** +The number of bytes appended */ write_byte :: proc(b: ^Builder, x: byte) -> (n: int) { n0 := len(b.buf) @@ -344,7 +361,8 @@ Example: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes appended +**Returns** +The number of bytes appended */ write_bytes :: proc(b: ^Builder, x: []byte) -> (n: int) { n0 := len(b.buf) @@ -377,7 +395,8 @@ Output: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes written and an io.Error (if any) +**Returns** +The number of bytes written and an io.Error (if any) */ write_rune :: proc(b: ^Builder, r: rune) -> (int, io.Error) { return io.write_rune(to_writer(b), r) @@ -408,7 +427,8 @@ Output: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes written +**Returns** +The number of bytes written */ write_quoted_rune :: proc(b: ^Builder, r: rune) -> (n: int) { return io.write_quoted_rune(to_writer(b), r) @@ -438,7 +458,8 @@ Output: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes written +**Returns** +The number of bytes written */ write_string :: proc(b: ^Builder, s: string) -> (n: int) { n0 := len(b.buf) @@ -452,7 +473,8 @@ Pops and returns the last byte in the Builder or 0 when the Builder is empty **Inputs** - b: A pointer to the Builder -**Returns** The last byte in the Builder or 0 if empty +**Returns** +The last byte in the Builder or 0 if empty */ pop_byte :: proc(b: ^Builder) -> (r: byte) { if len(b.buf) == 0 { @@ -470,7 +492,8 @@ Pops the last rune in the Builder and returns the popped rune and its rune width **Inputs** - b: A pointer to the Builder -**Returns** The popped rune and its rune width or (0, 0) if empty +**Returns** +The popped rune and its rune width or (0, 0) if empty */ pop_rune :: proc(b: ^Builder) -> (r: rune, width: int) { if len(b.buf) == 0 { @@ -509,7 +532,8 @@ Output: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes written +**Returns** +The number of bytes written */ write_quoted_string :: proc(b: ^Builder, str: string, quote: byte = '"') -> (n: int) { n, _ = io.write_quoted_string(to_writer(b), str, quote) @@ -542,7 +566,8 @@ Output: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes written +**Returns** +The number of bytes written */ write_encoded_rune :: proc(b: ^Builder, r: rune, write_quote := true) -> (n: int) { n, _ = io.write_encoded_rune(to_writer(b), r, write_quote) @@ -565,7 +590,8 @@ Appends an escaped rune to the Builder and returns the number of bytes written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of bytes written +**Returns** +The number of bytes written */ write_escaped_rune :: proc(b: ^Builder, r: rune, quote: byte, html_safe := false) -> (n: int) { n, _ = io.write_escaped_rune(to_writer(b), r, quote, html_safe) @@ -584,7 +610,8 @@ Writes a f64 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_float :: proc(b: ^Builder, f: f64, fmt: byte, prec, bit_size: int, always_signed := false) -> (n: int) { buf: [384]byte @@ -607,7 +634,8 @@ Writes a f16 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_f16 :: proc(b: ^Builder, f: f16, fmt: byte, always_signed := false) -> (n: int) { buf: [384]byte @@ -645,7 +673,8 @@ Output: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_f32 :: proc(b: ^Builder, f: f32, fmt: byte, always_signed := false) -> (n: int) { buf: [384]byte @@ -666,7 +695,8 @@ Writes a f32 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_f64 :: proc(b: ^Builder, f: f64, fmt: byte, always_signed := false) -> (n: int) { buf: [384]byte @@ -686,7 +716,8 @@ Writes a u64 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_u64 :: proc(b: ^Builder, i: u64, base: int = 10) -> (n: int) { buf: [32]byte @@ -703,7 +734,8 @@ Writes a i64 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_i64 :: proc(b: ^Builder, i: i64, base: int = 10) -> (n: int) { buf: [32]byte @@ -720,7 +752,8 @@ Writes a uint value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_uint :: proc(b: ^Builder, i: uint, base: int = 10) -> (n: int) { return write_u64(b, u64(i), base) @@ -735,7 +768,8 @@ Writes a int value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** The number of characters written +**Returns** +The number of characters written */ write_int :: proc(b: ^Builder, i: int, base: int = 10) -> (n: int) { return write_i64(b, i64(i), base) diff --git a/core/strings/conversion.odin b/core/strings/conversion.odin index d71dc4724..c3cf62340 100644 --- a/core/strings/conversion.odin +++ b/core/strings/conversion.odin @@ -16,7 +16,8 @@ Converts invalid UTF-8 sequences in the input string `s` to the `replacement` st WARNING: Allocation does not occur when len(s) == 0 -**Returns** A valid UTF-8 string with invalid sequences replaced by `replacement`. +**Returns** +A valid UTF-8 string with invalid sequences replaced by `replacement`. */ to_valid_utf8 :: proc(s, replacement: string, allocator := context.allocator) -> string { if len(s) == 0 { @@ -93,7 +94,8 @@ Output: test -**Returns** A new string with all characters converted to lowercase. +**Returns** +A new string with all characters converted to lowercase. */ to_lower :: proc(s: string, allocator := context.allocator) -> string { b: Builder @@ -125,7 +127,8 @@ Output: TEST -**Returns** A new string with all characters converted to uppercase. +**Returns** +A new string with all characters converted to uppercase. */ to_upper :: proc(s: string, allocator := context.allocator) -> string { b: Builder @@ -141,7 +144,8 @@ Checks if the rune `r` is a delimiter (' ', '-', or '_'). **Inputs** - r: Rune to check for delimiter status. -**Returns** True if `r` is a delimiter, false otherwise. +**Returns** +True if `r` is a delimiter, false otherwise. */ is_delimiter :: proc(r: rune) -> bool { return r == '-' || r == '_' || is_space(r) @@ -152,7 +156,8 @@ Checks if the rune `r` is a non-alphanumeric or space character. **Inputs** - r: Rune to check for separator status. -**Returns** True if `r` is a non-alpha or `unicode.is_space` rune. +**Returns** +True if `r` is a non-alpha or `unicode.is_space` rune. */ is_separator :: proc(r: rune) -> bool { if r <= 0x7f { @@ -245,7 +250,8 @@ Converts the input string `s` to "lowerCamelCase". - s: Input string to be converted. - allocator: (default: context.allocator). -**Returns** A "lowerCamelCase" formatted string. +**Returns** +A "lowerCamelCase" formatted string. */ to_camel_case :: proc(s: string, allocator := context.allocator) -> string { s := s @@ -279,7 +285,8 @@ Converts the input string `s` to "UpperCamelCase" (PascalCase). - s: Input string to be converted. - allocator: (default: context.allocator). -**Returns** A "PascalCase" formatted string. +**Returns** +A "PascalCase" formatted string. */ to_pascal_case :: proc(s: string, allocator := context.allocator) -> string { s := s @@ -328,9 +335,10 @@ Output: hello_world HELLO WORLD - a_b_c + a_bc -**Returns** The converted string +**Returns** +The converted string */ to_delimiter_case :: proc( s: string, @@ -400,7 +408,8 @@ Output: hello_world ``` -**Returns** The converted string +**Returns** +The converted string */ to_snake_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '_', false, allocator) @@ -429,7 +438,8 @@ Output: HELLO_WORLD -**Returns** The converted string +**Returns** +The converted string */ to_upper_snake_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '_', true, allocator) @@ -456,7 +466,8 @@ Output: hello-world -**Returns** The converted string +**Returns** +The converted string */ to_kebab_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '-', false, allocator) @@ -483,7 +494,8 @@ Output: HELLO-WORLD -**Returns** The converted string +**Returns** +The converted string */ to_upper_kebab_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '-', true, allocator) @@ -502,7 +514,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_upper_kebab_case_example :: proc() { + strings_to_ada_case_example :: proc() { fmt.println(strings.to_ada_case("HelloWorld")) } @@ -510,7 +522,8 @@ Output: Hello_World -**Returns** The converted string +**Returns** +The converted string */ to_ada_case :: proc(s: string, allocator := context.allocator) -> string { s := s diff --git a/core/strings/intern.odin b/core/strings/intern.odin index 59395824a..e73b33f07 100644 --- a/core/strings/intern.odin +++ b/core/strings/intern.odin @@ -57,7 +57,8 @@ Returns an interned copy of the given text, adding it to the map if not already NOTE: The returned string lives as long as the map entry lives. -**Returns** The interned string and an allocator error if any +**Returns** +The interned string and an allocator error if any */ intern_get :: proc(m: ^Intern, text: string) -> (str: string, err: runtime.Allocator_Error) { entry := _intern_get_entry(m, text) or_return @@ -74,7 +75,8 @@ Returns an interned copy of the given text as a cstring, adding it to the map if NOTE: The returned cstring lives as long as the map entry lives -**Returns** The interned cstring and an allocator error if any +**Returns** +The interned cstring and an allocator error if any */ intern_get_cstring :: proc(m: ^Intern, text: string) -> (str: cstring, err: runtime.Allocator_Error) { entry := _intern_get_entry(m, text) or_return @@ -90,7 +92,8 @@ Sets and allocates the entry if it wasn't set yet - m: A pointer to the Intern struct - text: The string to be looked up or interned -**Returns** The new or existing interned entry and an allocator error if any +**Returns** +The new or existing interned entry and an allocator error if any */ _intern_get_entry :: proc(m: ^Intern, text: string) -> (new_entry: ^Intern_Entry, err: runtime.Allocator_Error) #no_bounds_check { if prev, ok := m.entries[text]; ok { diff --git a/core/strings/reader.odin b/core/strings/reader.odin index 3e543cb9d..917092ad6 100644 --- a/core/strings/reader.odin +++ b/core/strings/reader.odin @@ -31,7 +31,8 @@ Converts a Reader into an `io.Stream` **Inputs** - r: A pointer to a Reader struct -**Returns** An io.Stream for the given Reader +**Returns** +An io.Stream for the given Reader */ reader_to_stream :: proc(r: ^Reader) -> (s: io.Stream) { s.stream_data = r @@ -45,7 +46,8 @@ Initializes a string Reader and returns an `io.Reader` for the given string - r: A pointer to a Reader struct - s: The input string to be read -**Returns** An io.Reader for the given string +**Returns** +An io.Reader for the given string */ to_reader :: proc(r: ^Reader, s: string) -> io.Reader { reader_init(r, s) @@ -59,7 +61,8 @@ Initializes a string Reader and returns an `io.Reader_At` for the given string - r: A pointer to a Reader struct - s: The input string to be read -**Returns** An `io.Reader_At` for the given string +**Returns** +An `io.Reader_At` for the given string */ to_reader_at :: proc(r: ^Reader, s: string) -> io.Reader_At { reader_init(r, s) @@ -72,7 +75,8 @@ Returns the remaining length of the Reader **Inputs** - r: A pointer to a Reader struct -**Returns** The remaining length of the Reader +**Returns** +The remaining length of the Reader */ reader_length :: proc(r: ^Reader) -> int { if r.i >= i64(len(r.s)) { @@ -86,7 +90,8 @@ Returns the length of the string stored in the Reader **Inputs** - r: A pointer to a Reader struct -**Returns** The length of the string stored in the Reader +**Returns** +The length of the string stored in the Reader */ reader_size :: proc(r: ^Reader) -> i64 { return i64(len(r.s)) @@ -161,7 +166,8 @@ Decrements the Reader's index (i) by 1 **Inputs** - r: A pointer to a Reader struct -**Returns** An `io.Error` if `r.i <= 0` (`.Invalid_Unread`), otherwise `nil` denotes success. +**Returns** +An `io.Error` if `r.i <= 0` (`.Invalid_Unread`), otherwise `nil` denotes success. */ reader_unread_byte :: proc(r: ^Reader) -> io.Error { if r.i <= 0 { @@ -204,7 +210,8 @@ Decrements the Reader's index (i) by the size of the last read rune WARNING: May only be used once and after a valid `read_rune` call -**Returns** An `io.Error` if an error occurs while unreading (`.Invalid_Unread`), else `nil` denotes success. +**Returns** +An `io.Error` if an error occurs while unreading (`.Invalid_Unread`), else `nil` denotes success. */ reader_unread_rune :: proc(r: ^Reader) -> io.Error { if r.i <= 0 { diff --git a/core/strings/strings.odin b/core/strings/strings.odin index 8193f4de1..64a063b7d 100644 --- a/core/strings/strings.odin +++ b/core/strings/strings.odin @@ -16,7 +16,8 @@ Clones a string - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: #caller_location) -**Returns** A cloned string +**Returns** +A cloned string */ clone :: proc(s: string, allocator := context.allocator, loc := #caller_location) -> string { c := make([]byte, len(s), allocator, loc) @@ -52,7 +53,8 @@ Clones a string and appends a null-byte to make it a cstring - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: #caller_location) -**Returns** A cloned cstring with an appended null-byte +**Returns** +A cloned cstring with an appended null-byte */ clone_to_cstring :: proc(s: string, allocator := context.allocator, loc := #caller_location) -> cstring { c := make([]byte, len(s)+1, allocator, loc) @@ -69,7 +71,8 @@ Transmutes a raw pointer into a string. Non-allocating. NOTE: The created string is only valid as long as the pointer and length are valid. -**Returns** A string created from the byte pointer and length +**Returns** +A string created from the byte pointer and length */ string_from_ptr :: proc(ptr: ^byte, len: int) -> string { return transmute(string)mem.Raw_String{ptr, len} @@ -78,13 +81,14 @@ string_from_ptr :: proc(ptr: ^byte, len: int) -> string { Transmutes a raw pointer (null-terminated) into a string. Non-allocating. Searches for a null-byte from `0.. string { s := transmute(string)mem.Raw_String{ptr, len} @@ -97,7 +101,8 @@ Gets the raw byte pointer for the start of a string `str` **Inputs** - str: The input string -**Returns** A pointer to the start of the string's bytes +**Returns** +A pointer to the start of the string's bytes */ ptr_from_string :: proc(str: string) -> ^byte { d := transmute(mem.Raw_String)str @@ -111,7 +116,8 @@ Converts a string `str` to a cstring WARNING: This is unsafe because the original string may not contain a null-byte. -**Returns** The converted cstring +**Returns** +The converted cstring */ unsafe_string_to_cstring :: proc(str: string) -> cstring { d := transmute(mem.Raw_String)str @@ -126,7 +132,8 @@ Truncates a string `str` at the first occurrence of char/byte `b` NOTE: Failure to find the byte results in returning the entire string. -**Returns** The truncated string +**Returns** +The truncated string */ truncate_to_byte :: proc(str: string, b: byte) -> string { n := index_byte(str, b) @@ -142,7 +149,8 @@ Truncates a string `str` at the first occurrence of rune `r` as a slice of the o - str: The input string - r: The rune to truncate the string at -**Returns** The truncated string +**Returns** +The truncated string */ truncate_to_rune :: proc(str: string, r: rune) -> string { n := index_rune(str, r) @@ -161,7 +169,8 @@ Clones a byte array `s` and appends a null-byte - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: `#caller_location`) -**Returns** A cloned string from the byte array with a null-byte +**Returns** +A cloned string from the byte array with a null-byte */ clone_from_bytes :: proc(s: []byte, allocator := context.allocator, loc := #caller_location) -> string { c := make([]byte, len(s)+1, allocator, loc) @@ -179,7 +188,8 @@ Clones a cstring `s` as a string - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: `#caller_location`) -**Returns** A cloned string from the cstring +**Returns** +A cloned string from the cstring */ clone_from_cstring :: proc(s: cstring, allocator := context.allocator, loc := #caller_location) -> string { return clone(string(s), allocator, loc) @@ -197,7 +207,8 @@ Clones a string from a byte pointer `ptr` and a byte length `len` NOTE: Same as `string_from_ptr`, but perform an additional `clone` operation -**Returns** A cloned string from the byte pointer and length +**Returns** +A cloned string from the byte pointer and length */ clone_from_ptr :: proc(ptr: ^byte, len: int, allocator := context.allocator, loc := #caller_location) -> string { s := string_from_ptr(ptr, len) @@ -223,7 +234,8 @@ Clones a string from a null-terminated cstring `ptr` and a byte length `len` NOTE: Truncates at the first null-byte encountered or the byte length. -**Returns** A cloned string from the null-terminated cstring and byte length +**Returns** +A cloned string from the null-terminated cstring and byte length */ clone_from_cstring_bounded :: proc(ptr: cstring, len: int, allocator := context.allocator, loc := #caller_location) -> string { s := string_from_ptr((^u8)(ptr), len) @@ -238,7 +250,8 @@ Compares two strings, returning a value representing which one comes first lexic - lhs: First string for comparison - rhs: Second string for comparison -**Returns** -1 if `lhs` comes first, 1 if `rhs` comes first, or 0 if they are equal +**Returns** +-1 if `lhs` comes first, 1 if `rhs` comes first, or 0 if they are equal */ compare :: proc(lhs, rhs: string) -> int { return mem.compare(transmute([]byte)lhs, transmute([]byte)rhs) @@ -250,7 +263,8 @@ Returns the byte offset of the rune `r` in the string `s`, -1 when not found - s: The input string - r: The rune to search for -**Returns** The byte offset of the rune `r` in the string `s`, or -1 if not found +**Returns** +The byte offset of the rune `r` in the string `s`, or -1 if not found */ contains_rune :: proc(s: string, r: rune) -> int { for c, offset in s { @@ -284,7 +298,8 @@ Output: true false -**Returns** `true` if `substr` is contained inside the string `s`, `false` otherwise +**Returns** +`true` if `substr` is contained inside the string `s`, `false` otherwise */ contains :: proc(s, substr: string) -> bool { return index(s, substr) >= 0 @@ -315,7 +330,8 @@ Output: true false -**Returns** `true` if the string `s` contains any of the characters in `chars`, `false` otherwise +**Returns** +`true` if the string `s` contains any of the characters in `chars`, `false` otherwise */ contains_any :: proc(s, chars: string) -> bool { return index_any(s, chars) >= 0 @@ -341,7 +357,8 @@ Output: 4 5 -**Returns** The UTF-8 rune count of the string `s` +**Returns** +The UTF-8 rune count of the string `s` */ rune_count :: proc(s: string) -> int { return utf8.rune_count_in_string(s) @@ -373,7 +390,8 @@ Output: true false -**Returns** `true` if the strings `u` and `v` are the same alpha characters (ignoring case) +**Returns** +`true` if the strings `u` and `v` are the same alpha characters (ignoring case) */ equal_fold :: proc(u, v: string) -> bool { s, t := u, v @@ -443,7 +461,8 @@ Output: 2 0 -**Returns** The prefix length common between strings `a` and `b` +**Returns** +The prefix length common between strings `a` and `b` */ prefix_length :: proc(a, b: string) -> (n: int) { _len := min(len(a), len(b)) @@ -494,7 +513,8 @@ Output: true false -**Returns** `true` if the string `s` starts with the `prefix`, otherwise `false` +**Returns** +`true` if the string `s` starts with the `prefix`, otherwise `false` */ has_prefix :: proc(s, prefix: string) -> bool { return len(s) >= len(prefix) && s[0:len(prefix)] == prefix @@ -523,7 +543,8 @@ Output: - s: The string to check for the `suffix` - suffix: The suffix to look for -**Returns** `true` if the string `s` ends with the `suffix`, otherwise `false` +**Returns** +`true` if the string `s` ends with the `suffix`, otherwise `false` */ has_suffix :: proc(s, suffix: string) -> bool { return len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix @@ -556,7 +577,8 @@ Output: - sep: The separator string - allocator: (default is context.allocator) -**Returns** A combined string from the slice of strings `a` separated with the `sep` string +**Returns** +A combined string from the slice of strings `a` separated with the `sep` string */ join :: proc(a: []string, sep: string, allocator := context.allocator) -> string { if len(a) == 0 { @@ -631,7 +653,8 @@ Output: abc -**Returns** The concatenated string +**Returns** +The concatenated string */ concatenate :: proc(a: []string, allocator := context.allocator) -> string { if len(a) == 0 { @@ -658,7 +681,8 @@ Returns a combined string from the slice of strings `a` without a separator, or - a: A slice of strings to concatenate - allocator: (default is context.allocator) -**Returns** The concatenated string, and an error if allocation fails +**Returns** +The concatenated string, and an error if allocation fails */ concatenate_safe :: proc(a: []string, allocator := context.allocator) -> (res: string, err: mem.Allocator_Error) { if len(a) == 0 { @@ -693,9 +717,9 @@ Example: import "core:strings" strings_cut_example :: proc() { - strings.cut("some example text", 0, 4) // -> "some" - strings.cut("some example text", 2, 2) // -> "me" - strings.cut("some example text", 5, 7) // -> "example" + fmt.println(strings.cut("some example text", 0, 4)) // -> "some" + fmt.println(strings.cut("some example text", 2, 2)) // -> "me" + fmt.println(strings.cut("some example text", 5, 7)) // -> "example" } Output: @@ -704,7 +728,8 @@ Output: me example -**Returns** The substring +**Returns** +The substring */ cut :: proc(s: string, rune_offset := int(0), rune_length := int(0), allocator := context.allocator) -> (res: string) { s := s; rune_length := rune_length @@ -773,7 +798,8 @@ Splits the input string `s` into a slice of substrings separated by the specifie NOTE: Allocation occurs for the array, the splits are all views of the original string. -**Returns** A slice of substrings +**Returns** +A slice of substrings */ @private _split :: proc(s_, sep: string, sep_save, n_: int, allocator := context.allocator) -> []string { @@ -913,7 +939,8 @@ Output: NOTE: Allocation occurs for the array, the splits are all views of the original string. -**Returns** A slice of strings, each representing a part of the split string after the separator. +**Returns** +A slice of strings, each representing a part of the split string after the separator. */ split_after :: proc(s, sep: string, allocator := context.allocator) -> []string { return _split(s, sep, len(sep), -1, allocator) @@ -946,7 +973,8 @@ Output: NOTE: Allocation occurs for the array, the splits are all views of the original string. -**Returns** A slice of strings with `n` parts or fewer if there weren't +**Returns** +A slice of strings with `n` parts or fewer if there weren't */ split_after_n :: proc(s, sep: string, n: int, allocator := context.allocator) -> []string { return _split(s, sep, len(sep), n, allocator) @@ -962,7 +990,8 @@ up to (but not including) the separator, as well as a boolean indicating success - sep: The separator string to search for. - sep_save: Number of characters from the separator to include in the result. -**Returns** A tuple containing the resulting substring and a boolean indicating success. +**Returns** +A tuple containing the resulting substring and a boolean indicating success. */ @private _split_iterator :: proc(s: ^string, sep: string, sep_save: int) -> (res: string, ok: bool) { @@ -1018,7 +1047,8 @@ Output: d e -**Returns** A tuple containing the resulting substring and a boolean indicating success. +**Returns** +A tuple containing the resulting substring and a boolean indicating success. */ split_by_byte_iterator :: proc(s: ^string, sep: u8) -> (res: string, ok: bool) { m := index_byte(s^, sep) @@ -1062,7 +1092,8 @@ Output: d e -**Returns** A tuple containing the resulting substring and a boolean indicating success. +**Returns** +A tuple containing the resulting substring and a boolean indicating success. */ split_iterator :: proc(s: ^string, sep: string) -> (string, bool) { return _split_iterator(s, sep, 0) @@ -1095,7 +1126,8 @@ Output: d. e -**Returns** A tuple containing the resulting substring and a boolean indicating success. +**Returns** +A tuple containing the resulting substring and a boolean indicating success. */ split_after_iterator :: proc(s: ^string, sep: string) -> (string, bool) { return _split_iterator(s, sep, len(sep)) @@ -1108,7 +1140,8 @@ Trims the carriage return character from the end of the input string. **Inputs** - s: The input string to trim. -**Returns** The trimmed string as a slice of the original. +**Returns** +The trimmed string as a slice of the original. */ @(private) _trim_cr :: proc(s: string) -> string { @@ -1144,7 +1177,8 @@ Output: ["a", "b", "c", "d", "e"] -**Returns** A slice (allocated) of the split string (slices into original string) +**Returns** +A slice (allocated) of the split string (slices into original string) */ split_lines :: proc(s: string, allocator := context.allocator) -> []string { sep :: "\n" @@ -1181,7 +1215,8 @@ Output: NOTE: Allocation occurs for the array, the splits are all views of the original string. -**Returns** A slice (allocated) of the split string (slices into original string) +**Returns** +A slice (allocated) of the split string (slices into original string) */ split_lines_n :: proc(s: string, n: int, allocator := context.allocator) -> []string { sep :: "\n" @@ -1217,7 +1252,8 @@ Output: NOTE: Allocation occurs for the array, the splits are all views of the original string. -**Returns** A slice (allocated) of the split string (slices into original string), with `\n` included. +**Returns** +A slice (allocated) of the split string (slices into original string), with `\n` included. */ split_lines_after :: proc(s: string, allocator := context.allocator) -> []string { sep :: "\n" @@ -1255,7 +1291,8 @@ Output: NOTE: Allocation occurs for the array, the splits are all views of the original string. -**Returns** A slice (allocated) of the split string (slices into original string), with `\n` included. +**Returns** +A slice (allocated) of the split string (slices into original string), with `\n` included. */ split_lines_after_n :: proc(s: string, n: int, allocator := context.allocator) -> []string { sep :: "\n" @@ -1282,13 +1319,15 @@ Example: for str in strings.split_lines_iterator(&text) { fmt.print(str) // every loop -> a b c d e } + fmt.print("\n") } Output: abcde -**Returns** A tuple containing the resulting substring and a boolean indicating success. +**Returns** +A tuple containing the resulting substring and a boolean indicating success. */ split_lines_iterator :: proc(s: ^string) -> (line: string, ok: bool) { sep :: "\n" @@ -1308,7 +1347,7 @@ Example: import "core:strings" strings_split_lines_after_iterator_example :: proc() { - text := "a\nb\nc\nd\ne" + text := "a\nb\nc\nd\ne\n" for str in strings.split_lines_after_iterator(&text) { fmt.print(str) // every loop -> a\n b\n c\n d\n e\n } @@ -1322,7 +1361,8 @@ Output: d e -**Returns** A tuple containing the resulting substring with line breaks included and a boolean indicating success. +**Returns** +A tuple containing the resulting substring with line breaks included and a boolean indicating success. */ split_lines_after_iterator :: proc(s: ^string) -> (line: string, ok: bool) { sep :: "\n" @@ -1356,7 +1396,8 @@ Output: -1 -1 -**Returns** The byte offset of the first occurrence of `c` in `s`, or -1 if not found. +**Returns** +The byte offset of the first occurrence of `c` in `s`, or -1 if not found. */ index_byte :: proc(s: string, c: byte) -> int { for i := 0; i < len(s); i += 1 { @@ -1389,7 +1430,8 @@ Output: -1 -1 -**Returns** The byte offset of the last occurrence of `c` in `s`, or -1 if not found. +**Returns** +The byte offset of the last occurrence of `c` in `s`, or -1 if not found. */ last_index_byte :: proc(s: string, c: byte) -> int { for i := len(s)-1; i >= 0; i -= 1 { @@ -1425,11 +1467,13 @@ Output: 0 1 2 + 3 5 6 7 -**Returns** The byte offset of the first occurrence of `r` in `s`, or -1 if not found. +**Returns** +The byte offset of the first occurrence of `r` in `s`, or -1 if not found. */ index_rune :: proc(s: string, r: rune) -> int { switch { @@ -1475,7 +1519,8 @@ Output: 2 -1 -**Returns** The byte offset of the first occurrence of `substr` in `s`, or -1 if not found. +**Returns** +The byte offset of the first occurrence of `substr` in `s`, or -1 if not found. */ index :: proc(s, substr: string) -> int { hash_str_rabin_karp :: proc(s: string) -> (hash: u32 = 0, pow: u32 = 1) { @@ -1548,7 +1593,8 @@ Output: 2 -1 -**Returns** The byte offset of the last occurrence of `substr` in `s`, or -1 if not found. +**Returns** +The byte offset of the last occurrence of `substr` in `s`, or -1 if not found. */ last_index :: proc(s, substr: string) -> int { hash_str_rabin_karp_reverse :: proc(s: string) -> (hash: u32 = 0, pow: u32 = 1) { @@ -1621,7 +1667,8 @@ Output: 0 -1 -**Returns** The index of the first character of `chars` found in `s`, or -1 if not found. +**Returns** +The index of the first character of `chars` found in `s`, or -1 if not found. */ index_any :: proc(s, chars: string) -> int { if chars == "" { @@ -1682,7 +1729,8 @@ Output: 3 -1 -**Returns** The index of the last matching character, or -1 if not found +**Returns** +The index of the last matching character, or -1 if not found */ last_index_any :: proc(s, chars: string) -> int { if chars == "" { @@ -1739,7 +1787,8 @@ Finds the first occurrence of any substring in `substrs` within `s` - s: The string to search in - substrs: The substrings to look for -**Returns** A tuple containing the index of the first matching substring, and its length (width) +**Returns** +A tuple containing the index of the first matching substring, and its length (width) */ index_multi :: proc(s: string, substrs: []string) -> (idx: int, width: int) { idx = -1 @@ -1798,7 +1847,8 @@ Output: 1 0 -**Returns** The number of occurrences of `substr` in `s`, returns the rune_count + 1 of the string `s` on empty `substr` +**Returns** +The number of occurrences of `substr` in `s`, returns the rune_count + 1 of the string `s` on empty `substr` */ count :: proc(s, substr: string) -> int { if len(substr) == 0 { // special case @@ -1859,7 +1909,8 @@ Output: abcabc -**Returns** The concatenated repeated string +**Returns** +The concatenated repeated string */ repeat :: proc(s: string, count: int, allocator := context.allocator) -> string { if count < 0 { @@ -1904,7 +1955,8 @@ Output: xyzxyz false zzzz true -**Returns** A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement +**Returns** +A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement */ replace_all :: proc(s, old, new: string, allocator := context.allocator) -> (output: string, was_allocation: bool) { return replace(s, old, new, -1, allocator) @@ -1940,7 +1992,8 @@ Output: xyzxyz false zzzz true -**Returns** A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement +**Returns** +A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement */ replace :: proc(s, old, new: string, n: int, allocator := context.allocator) -> (output: string, was_allocation: bool) { if old == new || n == 0 { @@ -2007,11 +2060,12 @@ Example: Output: abc true - true + true bcbc true abcabc false -**Returns** A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal +**Returns** +A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal */ remove :: proc(s, key: string, n: int, allocator := context.allocator) -> (output: string, was_allocation: bool) { return replace(s, key, "", n, allocator) @@ -2043,7 +2097,8 @@ Output: bcbc true abcabc false -**Returns** A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal +**Returns** +A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal */ remove_all :: proc(s, key: string, allocator := context.allocator) -> (output: string, was_allocation: bool) { return remove(s, key, -1, allocator) @@ -2112,7 +2167,8 @@ Output: 1 -1 -**Returns** The index of the first matching rune, or -1 if no match was found +**Returns** +The index of the first matching rune, or -1 if no match was found */ index_proc :: proc(s: string, p: proc(rune) -> bool, truth := true) -> int { for r, i in s { @@ -2169,16 +2225,17 @@ Example: strings_trim_left_proc_example :: proc() { find :: proc(r: rune) -> bool { - return r != 'i' + return r == 'x' } - strings.trim_left_proc("testing", find) + fmt.println(strings.trim_left_proc("xxxxxxtesting", find)) } Output: - ing + testing -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_left_proc :: proc(s: string, p: proc(rune) -> bool) -> string { i := index_proc(s, p, false) @@ -2195,7 +2252,8 @@ Trims the input string `s` from the left until the procedure `p` with state retu - p: A procedure that takes a raw pointer and a rune and returns a boolean - state: The raw pointer to be passed to the procedure `p` -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_left_proc_with_state :: proc(s: string, p: proc(rawptr, rune) -> bool, state: rawptr) -> string { i := index_proc_with_state(s, p, state, false) @@ -2227,7 +2285,8 @@ Output: test -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_right_proc :: proc(s: string, p: proc(rune) -> bool) -> string { i := last_index_proc(s, p, false) @@ -2247,7 +2306,8 @@ Trims the input string `s` from the right until the procedure `p` with state ret - p: A procedure that takes a raw pointer and a rune and returns a boolean - state: The raw pointer to be passed to the procedure `p` -**Returns** The trimmed string as a slice of the original, empty when no match +**Returns** +The trimmed string as a slice of the original, empty when no match */ trim_right_proc_with_state :: proc(s: string, p: proc(rawptr, rune) -> bool, state: rawptr) -> string { i := last_index_proc_with_state(s, p, state, false) @@ -2279,7 +2339,8 @@ Trims the cutset string from the `s` string - s: The input string - cutset: The set of characters to be trimmed from the left of the input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_left :: proc(s: string, cutset: string) -> string { if s == "" || cutset == "" { @@ -2295,7 +2356,8 @@ Trims the cutset string from the `s` string from the right - s: The input string - cutset: The set of characters to be trimmed from the right of the input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_right :: proc(s: string, cutset: string) -> string { if s == "" || cutset == "" { @@ -2311,7 +2373,8 @@ Trims the cutset string from the `s` string, both from left and right - s: The input string - cutset: The set of characters to be trimmed from both sides of the input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim :: proc(s: string, cutset: string) -> string { return trim_right(trim_left(s, cutset), cutset) @@ -2322,7 +2385,8 @@ Trims until a valid non-space rune from the left, "\t\txyz\t\t" -> "xyz\t\t" **Inputs** - s: The input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_left_space :: proc(s: string) -> string { return trim_left_proc(s, is_space) @@ -2333,7 +2397,8 @@ Trims from the right until a valid non-space rune, "\t\txyz\t\t" -> "\t\txyz" **Inputs** - s: The input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_right_space :: proc(s: string) -> string { return trim_right_proc(s, is_space) @@ -2344,7 +2409,8 @@ Trims from both sides until a valid non-space rune, "\t\txyz\t\t" -> "xyz" **Inputs** - s: The input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_space :: proc(s: string) -> string { return trim_right_space(trim_left_space(s)) @@ -2355,7 +2421,8 @@ Trims null runes from the left, "\x00\x00testing\x00\x00" -> "testing\x00\x00" **Inputs** - s: The input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_left_null :: proc(s: string) -> string { return trim_left_proc(s, is_null) @@ -2366,7 +2433,8 @@ Trims null runes from the right, "\x00\x00testing\x00\x00" -> "\x00\x00testing" **Inputs** - s: The input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_right_null :: proc(s: string) -> string { return trim_right_proc(s, is_null) @@ -2376,7 +2444,8 @@ Trims null runes from both sides, "\x00\x00testing\x00\x00" -> "testing" **Inputs** - s: The input string -**Returns** The trimmed string as a slice of the original +**Returns** +The trimmed string as a slice of the original */ trim_null :: proc(s: string) -> string { return trim_right_null(trim_left_null(s)) @@ -2403,7 +2472,8 @@ Output: ing testing -**Returns** The trimmed string as a slice of original, or the input string if no prefix was found +**Returns** +The trimmed string as a slice of original, or the input string if no prefix was found */ trim_prefix :: proc(s, prefix: string) -> string { if has_prefix(s, prefix) { @@ -2433,7 +2503,8 @@ Output: todo todo.doc -**Returns** The trimmed string as a slice of original, or the input string if no suffix was found +**Returns** +The trimmed string as a slice of original, or the input string if no suffix was found */ trim_suffix :: proc(s, suffix: string) -> string { if has_suffix(s, suffix) { @@ -2468,7 +2539,8 @@ Output: ["testing", "this", "out", "nice", "done", "last"] -**Returns** An array of strings, or nil on empty substring or no matches +**Returns** +An array of strings, or nil on empty substring or no matches */ split_multi :: proc(s: string, substrs: []string, allocator := context.allocator) -> []string #no_bounds_check { if s == "" || len(substrs) <= 0 { @@ -2539,7 +2611,8 @@ Output: done last -**Returns** A tuple containing the split string and a boolean indicating success or failure +**Returns** +A tuple containing the split string and a boolean indicating success or failure */ split_multi_iterate :: proc(it: ^string, substrs: []string) -> (res: string, ok: bool) #no_bounds_check { if it == nil || len(it) == 0 || len(substrs) <= 0 { @@ -2590,7 +2663,8 @@ Output: Hello? -**Returns** A new string with invalid UTF-8 characters replaced +**Returns** +A new string with invalid UTF-8 characters replaced */ scrub :: proc(s: string, replacement: string, allocator := context.allocator) -> string { str := s @@ -2647,7 +2721,8 @@ Output: abcxyz zyxcba -**Returns** A reversed version of the input string +**Returns** +A reversed version of the input string */ reverse :: proc(s: string, allocator := context.allocator) -> string { str := s @@ -2689,7 +2764,8 @@ Output: WARNING: Panics if tab_size <= 0 -**Returns** A new string with tab characters expanded to the specified tab size +**Returns** +A new string with tab characters expanded to the specified tab size */ expand_tabs :: proc(s: string, tab_size: int, allocator := context.allocator) -> string { if tab_size <= 0 { @@ -2746,9 +2822,14 @@ Example: strings_partition_example :: proc() { text := "testing this out" - strings.partition(text, " this ") // -> head: "testing", match: " this ", tail: "out" - strings.partition(text, "hi") // -> head: "testing t", match: "hi", tail: "s out" - strings.partition(text, "xyz") // -> head: "testing this out", match: "", tail: "" + head, match, tail := strings.partition(text, " this ") // -> head: "testing", match: " this ", tail: "out" + fmt.println(head, match, tail) + head, match, tail = strings.partition(text, "hi") // -> head: "testing t", match: "hi", tail: "s out" + fmt.println(head, match, tail) + head, match, tail = strings.partition(text, "xyz") // -> head: "testing this out", match: "", tail: "" + fmt.println(head) + fmt.println(match == "") + fmt.println(tail == "") } Output: @@ -2756,8 +2837,11 @@ Output: testing this out testing t hi s out testing this out + true + true -**Returns** A tuple with `head` (before the split), `match` (the separator), and `tail` (the end of the split) strings +**Returns** +A tuple with `head` (before the split), `match` (the separator), and `tail` (the end of the split) strings */ partition :: proc(str, sep: string) -> (head, match, tail: string) { i := index(str, sep) @@ -2784,7 +2868,8 @@ Centers the input string within a field of specified length by adding pad string - pad: The string used for padding on both sides - allocator: (default is context.allocator) -**Returns** A new string centered within a field of the specified length +**Returns** +A new string centered within a field of the specified length */ centre_justify :: proc(str: string, length: int, pad: string, allocator := context.allocator) -> string { n := rune_count(str) @@ -2818,7 +2903,8 @@ Left-justifies the input string within a field of specified length by adding pad - pad: The string used for padding on the right side - allocator: (default is context.allocator) -**Returns** A new string left-justified within a field of the specified length +**Returns** +A new string left-justified within a field of the specified length */ left_justify :: proc(str: string, length: int, pad: string, allocator := context.allocator) -> string { n := rune_count(str) @@ -2851,7 +2937,8 @@ Right-justifies the input string within a field of specified length by adding pa - pad: The string used for padding on the left side - allocator: (default is context.allocator) -**Returns** A new string right-justified within a field of the specified length +**Returns** +A new string right-justified within a field of the specified length */ right_justify :: proc(str: string, length: int, pad: string, allocator := context.allocator) -> string { n := rune_count(str) @@ -2908,7 +2995,8 @@ Splits a string into a slice of substrings at each instance of one or more conse - s: The input string - allocator: (default is context.allocator) -**Returns** A slice of substrings of the input string, or an empty slice if the input string only contains white space +**Returns** +A slice of substrings of the input string, or an empty slice if the input string only contains white space */ fields :: proc(s: string, allocator := context.allocator) -> []string #no_bounds_check { n := 0 @@ -2970,7 +3058,8 @@ Splits a string into a slice of substrings at each run of unicode code points `r NOTE: fields_proc makes no guarantee about the order in which it calls `f(r)`, it assumes that `f` always returns the same value for a given `r` -**Returns** A slice of substrings of the input string, or an empty slice if all code points in the input string satisfy the predicate or if the input string is empty +**Returns** +A slice of substrings of the input string, or an empty slice if all code points in the input string satisfy the predicate or if the input string is empty */ fields_proc :: proc(s: string, f: proc(rune) -> bool, allocator := context.allocator) -> []string #no_bounds_check { substrings := make([dynamic]string, 0, 32, allocator) @@ -3047,7 +3136,8 @@ NOTE: Does not perform internal allocation if length of string `b`, in runes, is - a, b: The two strings to compare - allocator: (default is context.allocator) -**Returns** The Levenshtein edit distance between the two strings +**Returns** +The Levenshtein edit distance between the two strings NOTE: This implementation is a single-row-version of the Wagner–Fischer algorithm, based on C code by Martin Ettl. */ From 24493e89ad581e6e095179bf89b0c01fdd3e415c Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 28 Mar 2023 22:17:39 -0700 Subject: [PATCH 10/50] WSAPoll --- core/sys/windows/ws2_32.odin | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index 30515d430..4b70e880a 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -3,11 +3,22 @@ package sys_windows foreign import ws2_32 "system:Ws2_32.lib" +POLLRDNORM :: 0x0100 +POLLRDBAND :: 0x0200 +POLLIN :: (POLLRDNORM | POLLRDBAND) +POLLPRI :: 0x0400 +WSA_POLLFD::struct{ + fd:SOCKET, + events:c_short, + revents:c_short, +} + @(default_calling_convention="stdcall") foreign ws2_32 { WSAStartup :: proc(wVersionRequested: WORD, lpWSAData: LPWSADATA) -> c_int --- WSACleanup :: proc() -> c_int --- WSAGetLastError :: proc() -> c_int --- + WSAPoll :: proc(fdArray: ^WSA_POLLFD, fds: c_ulong, timeout: c_int) -> c_int --- WSADuplicateSocketW :: proc( s: SOCKET, dwProcessId: DWORD, From bd7ffcc0484018a99d13cfb26c9a8862e8aee9e3 Mon Sep 17 00:00:00 2001 From: Mark Naughton Date: Wed, 29 Mar 2023 16:28:52 +0100 Subject: [PATCH 11/50] Change help text to output to stdout --- src/main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index bbb28cdf8..5ab6ed66c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -594,13 +594,13 @@ gb_internal Array setup_args(int argc, char const **argv) { gb_internal void print_usage_line(i32 indent, char const *fmt, ...) { while (indent --> 0) { - gb_printf_err("\t"); + gb_printf("\t"); } va_list va; va_start(va, fmt); - gb_printf_err_va(fmt, va); + gb_printf_va(fmt, va); va_end(va); - gb_printf_err("\n"); + gb_printf("\n"); } gb_internal void usage(String argv0) { From 4a54676f31b464c24bb1f687a3aefe0ebb73cb34 Mon Sep 17 00:00:00 2001 From: Elusive Porpoise <95202750+elusivePorpoise@users.noreply.github.com> Date: Wed, 29 Mar 2023 12:09:55 -0700 Subject: [PATCH 12/50] Add TIMECAPS stuff Summary: Test Plan: --- core/sys/windows/winmm.odin | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/sys/windows/winmm.odin b/core/sys/windows/winmm.odin index 64ace19fc..380a5e9ed 100644 --- a/core/sys/windows/winmm.odin +++ b/core/sys/windows/winmm.odin @@ -5,7 +5,14 @@ foreign import winmm "system:Winmm.lib" @(default_calling_convention="stdcall") foreign winmm { + timeGetDevCaps :: proc(ptc: LPTIMECAPS, cbtc: UINT) -> MMRESULT --- timeBeginPeriod :: proc(uPeriod: UINT) -> MMRESULT --- timeEndPeriod :: proc(uPeriod: UINT) -> MMRESULT --- timeGetTime :: proc() -> DWORD --- } + +LPTIMECAPS :: ^TIMECAPS +TIMECAPS :: struct { + wPeriodMin: UINT, + wPeriodMax: UINT, +} \ No newline at end of file From 57594153a17069c0e3751a361aad218a4f0e75d3 Mon Sep 17 00:00:00 2001 From: Elusive Porpoise <95202750+elusivePorpoise@users.noreply.github.com> Date: Wed, 29 Mar 2023 13:06:42 -0700 Subject: [PATCH 13/50] relocations and add some error consts to winmm Summary: Test Plan: --- core/sys/windows/types.odin | 22 ----- core/sys/windows/winmm.odin | 156 +++++++++++++++++++++++++++++++++++- 2 files changed, 155 insertions(+), 23 deletions(-) diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index 514998a43..fa92d0aca 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -145,8 +145,6 @@ PCONDITION_VARIABLE :: ^CONDITION_VARIABLE PLARGE_INTEGER :: ^LARGE_INTEGER PSRWLOCK :: ^SRWLOCK -MMRESULT :: UINT - CREATE_WAITABLE_TIMER_MANUAL_RESET :: 0x00000001 CREATE_WAITABLE_TIMER_HIGH_RESOLUTION :: 0x00000002 @@ -261,26 +259,6 @@ GET_FILEEX_INFO_LEVELS :: distinct i32 GetFileExInfoStandard: GET_FILEEX_INFO_LEVELS : 0 GetFileExMaxInfoLevel: GET_FILEEX_INFO_LEVELS : 1 -// String resource number bases (internal use) - -MMSYSERR_BASE :: 0 -WAVERR_BASE :: 32 -MIDIERR_BASE :: 64 -TIMERR_BASE :: 96 -JOYERR_BASE :: 160 -MCIERR_BASE :: 256 -MIXERR_BASE :: 1024 - -MCI_STRING_OFFSET :: 512 -MCI_VD_OFFSET :: 1024 -MCI_CD_OFFSET :: 1088 -MCI_WAVE_OFFSET :: 1152 -MCI_SEQ_OFFSET :: 1216 - -// timer error return values -TIMERR_NOERROR :: 0 // no error -TIMERR_NOCANDO :: TIMERR_BASE + 1 // request not completed -TIMERR_STRUCT :: TIMERR_BASE + 33 // time struct size DIAGNOSTIC_REASON_VERSION :: 0 diff --git a/core/sys/windows/winmm.odin b/core/sys/windows/winmm.odin index 380a5e9ed..445470f6e 100644 --- a/core/sys/windows/winmm.odin +++ b/core/sys/windows/winmm.odin @@ -3,6 +3,8 @@ package sys_windows foreign import winmm "system:Winmm.lib" +MMRESULT :: UINT + @(default_calling_convention="stdcall") foreign winmm { timeGetDevCaps :: proc(ptc: LPTIMECAPS, cbtc: UINT) -> MMRESULT --- @@ -15,4 +17,156 @@ LPTIMECAPS :: ^TIMECAPS TIMECAPS :: struct { wPeriodMin: UINT, wPeriodMax: UINT, -} \ No newline at end of file +} + +// String resource number bases (internal use) +MMSYSERR_BASE :: 0 +WAVERR_BASE :: 32 +MIDIERR_BASE :: 64 +TIMERR_BASE :: 96 +JOYERR_BASE :: 160 +MCIERR_BASE :: 256 +MIXERR_BASE :: 1024 + +MCI_STRING_OFFSET :: 512 +MCI_VD_OFFSET :: 1024 +MCI_CD_OFFSET :: 1088 +MCI_WAVE_OFFSET :: 1152 +MCI_SEQ_OFFSET :: 1216 + +/* general error return values */ +MMSYSERR_NOERROR :: 0 /* no error */ +MMSYSERR_ERROR :: MMSYSERR_BASE + 1 /* unspecified error */ +MMSYSERR_BADDEVICEID :: MMSYSERR_BASE + 2 /* device ID out of range */ +MMSYSERR_NOTENABLED :: MMSYSERR_BASE + 3 /* driver failed enable */ +MMSYSERR_ALLOCATED :: MMSYSERR_BASE + 4 /* device already allocated */ +MMSYSERR_INVALHANDLE :: MMSYSERR_BASE + 5 /* device handle is invalid */ +MMSYSERR_NODRIVER :: MMSYSERR_BASE + 6 /* no device driver present */ +MMSYSERR_NOMEM :: MMSYSERR_BASE + 7 /* memory allocation error */ +MMSYSERR_NOTSUPPORTED :: MMSYSERR_BASE + 8 /* function isn't supported */ +MMSYSERR_BADERRNUM :: MMSYSERR_BASE + 9 /* error value out of range */ +MMSYSERR_INVALFLAG :: MMSYSERR_BASE + 10 /* invalid flag passed */ +MMSYSERR_INVALPARAM :: MMSYSERR_BASE + 11 /* invalid parameter passed */ +MMSYSERR_HANDLEBUSY :: MMSYSERR_BASE + 12 /* handle being used simultaneously on another thread (eg callback) */ +MMSYSERR_INVALIDALIAS :: MMSYSERR_BASE + 13 /* specified alias not found */ +MMSYSERR_BADDB :: MMSYSERR_BASE + 14 /* bad registry database */ +MMSYSERR_KEYNOTFOUND :: MMSYSERR_BASE + 15 /* registry key not found */ +MMSYSERR_READERROR :: MMSYSERR_BASE + 16 /* registry read error */ +MMSYSERR_WRITEERROR :: MMSYSERR_BASE + 17 /* registry write error */ +MMSYSERR_DELETEERROR :: MMSYSERR_BASE + 18 /* registry delete error */ +MMSYSERR_VALNOTFOUND :: MMSYSERR_BASE + 19 /* registry value not found */ +MMSYSERR_NODRIVERCB :: MMSYSERR_BASE + 20 /* driver does not call DriverCallback */ +MMSYSERR_MOREDATA :: MMSYSERR_BASE + 21 /* more data to be returned */ +MMSYSERR_LASTERROR :: MMSYSERR_BASE + 21 /* last error in range */ + +/* waveform audio error return values */ +WAVERR_BADFORMAT :: WAVERR_BASE + 0 /* unsupported wave format */ +WAVERR_STILLPLAYING :: WAVERR_BASE + 1 /* still something playing */ +WAVERR_UNPREPARED :: WAVERR_BASE + 2 /* header not prepared */ +WAVERR_SYNC :: WAVERR_BASE + 3 /* device is synchronous */ +WAVERR_LASTERROR :: WAVERR_BASE + 3 /* last error in range */ + +/* MIDI error return values */ +MIDIERR_UNPREPARED :: MIDIERR_BASE + 0 /* header not prepared */ +MIDIERR_STILLPLAYING :: MIDIERR_BASE + 1 /* still something playing */ +MIDIERR_NOMAP :: MIDIERR_BASE + 2 /* no configured instruments */ +MIDIERR_NOTREADY :: MIDIERR_BASE + 3 /* hardware is still busy */ +MIDIERR_NODEVICE :: MIDIERR_BASE + 4 /* port no longer connected */ +MIDIERR_INVALIDSETUP :: MIDIERR_BASE + 5 /* invalid MIF */ +MIDIERR_BADOPENMODE :: MIDIERR_BASE + 6 /* operation unsupported w/ open mode */ +MIDIERR_DONT_CONTINUE :: MIDIERR_BASE + 7 /* thru device 'eating' a message */ +MIDIERR_LASTERROR :: MIDIERR_BASE + 7 /* last error in range */ + +/* timer error return values */ +TIMERR_NOERROR :: 0 /* no error */ +TIMERR_NOCANDO :: TIMERR_BASE + 1 /* request not completed */ +TIMERR_STRUCT :: TIMERR_BASE + 33 /* time struct size */ + +/* joystick error return values */ +JOYERR_NOERROR :: 0 /* no error */ +JOYERR_PARMS :: JOYERR_BASE + 5 /* bad parameters */ +JOYERR_NOCANDO :: JOYERR_BASE + 6 /* request not completed */ +JOYERR_UNPLUGGED :: JOYERR_BASE + 7 /* joystick is unplugged */ + +/* MCI error return values */ +MCIERR_INVALID_DEVICE_ID :: MCIERR_BASE + 1 +MCIERR_UNRECOGNIZED_KEYWORD :: MCIERR_BASE + 3 +MCIERR_UNRECOGNIZED_COMMAND :: MCIERR_BASE + 5 +MCIERR_HARDWARE :: MCIERR_BASE + 6 +MCIERR_INVALID_DEVICE_NAME :: MCIERR_BASE + 7 +MCIERR_OUT_OF_MEMORY :: MCIERR_BASE + 8 +MCIERR_DEVICE_OPEN :: MCIERR_BASE + 9 +MCIERR_CANNOT_LOAD_DRIVER :: MCIERR_BASE + 10 +MCIERR_MISSING_COMMAND_STRING :: MCIERR_BASE + 11 +MCIERR_PARAM_OVERFLOW :: MCIERR_BASE + 12 +MCIERR_MISSING_STRING_ARGUMENT :: MCIERR_BASE + 13 +MCIERR_BAD_INTEGER :: MCIERR_BASE + 14 +MCIERR_PARSER_INTERNAL :: MCIERR_BASE + 15 +MCIERR_DRIVER_INTERNAL :: MCIERR_BASE + 16 +MCIERR_MISSING_PARAMETER :: MCIERR_BASE + 17 +MCIERR_UNSUPPORTED_FUNCTION :: MCIERR_BASE + 18 +MCIERR_FILE_NOT_FOUND :: MCIERR_BASE + 19 +MCIERR_DEVICE_NOT_READY :: MCIERR_BASE + 20 +MCIERR_INTERNAL :: MCIERR_BASE + 21 +MCIERR_DRIVER :: MCIERR_BASE + 22 +MCIERR_CANNOT_USE_ALL :: MCIERR_BASE + 23 +MCIERR_MULTIPLE :: MCIERR_BASE + 24 +MCIERR_EXTENSION_NOT_FOUND :: MCIERR_BASE + 25 +MCIERR_OUTOFRANGE :: MCIERR_BASE + 26 +MCIERR_FLAGS_NOT_COMPATIBLE :: MCIERR_BASE + 28 +MCIERR_FILE_NOT_SAVED :: MCIERR_BASE + 30 +MCIERR_DEVICE_TYPE_REQUIRED :: MCIERR_BASE + 31 +MCIERR_DEVICE_LOCKED :: MCIERR_BASE + 32 +MCIERR_DUPLICATE_ALIAS :: MCIERR_BASE + 33 +MCIERR_BAD_CONSTANT :: MCIERR_BASE + 34 +MCIERR_MUST_USE_SHAREABLE :: MCIERR_BASE + 35 +MCIERR_MISSING_DEVICE_NAME :: MCIERR_BASE + 36 +MCIERR_BAD_TIME_FORMAT :: MCIERR_BASE + 37 +MCIERR_NO_CLOSING_QUOTE :: MCIERR_BASE + 38 +MCIERR_DUPLICATE_FLAGS :: MCIERR_BASE + 39 +MCIERR_INVALID_FILE :: MCIERR_BASE + 40 +MCIERR_NULL_PARAMETER_BLOCK :: MCIERR_BASE + 41 +MCIERR_UNNAMED_RESOURCE :: MCIERR_BASE + 42 +MCIERR_NEW_REQUIRES_ALIAS :: MCIERR_BASE + 43 +MCIERR_NOTIFY_ON_AUTO_OPEN :: MCIERR_BASE + 44 +MCIERR_NO_ELEMENT_ALLOWED :: MCIERR_BASE + 45 +MCIERR_NONAPPLICABLE_FUNCTION :: MCIERR_BASE + 46 +MCIERR_ILLEGAL_FOR_AUTO_OPEN :: MCIERR_BASE + 47 +MCIERR_FILENAME_REQUIRED :: MCIERR_BASE + 48 +MCIERR_EXTRA_CHARACTERS :: MCIERR_BASE + 49 +MCIERR_DEVICE_NOT_INSTALLED :: MCIERR_BASE + 50 +MCIERR_GET_CD :: MCIERR_BASE + 51 +MCIERR_SET_CD :: MCIERR_BASE + 52 +MCIERR_SET_DRIVE :: MCIERR_BASE + 53 +MCIERR_DEVICE_LENGTH :: MCIERR_BASE + 54 +MCIERR_DEVICE_ORD_LENGTH :: MCIERR_BASE + 55 +MCIERR_NO_INTEGER :: MCIERR_BASE + 56 +MCIERR_WAVE_OUTPUTSINUSE :: MCIERR_BASE + 64 +MCIERR_WAVE_SETOUTPUTINUSE :: MCIERR_BASE + 65 +MCIERR_WAVE_INPUTSINUSE :: MCIERR_BASE + 66 +MCIERR_WAVE_SETINPUTINUSE :: MCIERR_BASE + 67 +MCIERR_WAVE_OUTPUTUNSPECIFIED :: MCIERR_BASE + 68 +MCIERR_WAVE_INPUTUNSPECIFIED :: MCIERR_BASE + 69 +MCIERR_WAVE_OUTPUTSUNSUITABLE :: MCIERR_BASE + 70 +MCIERR_WAVE_SETOUTPUTUNSUITABLE :: MCIERR_BASE + 71 +MCIERR_WAVE_INPUTSUNSUITABLE :: MCIERR_BASE + 72 +MCIERR_WAVE_SETINPUTUNSUITABLE :: MCIERR_BASE + 73 +MCIERR_SEQ_DIV_INCOMPATIBLE :: MCIERR_BASE + 80 +MCIERR_SEQ_PORT_INUSE :: MCIERR_BASE + 81 +MCIERR_SEQ_PORT_NONEXISTENT :: MCIERR_BASE + 82 +MCIERR_SEQ_PORT_MAPNODEVICE :: MCIERR_BASE + 83 +MCIERR_SEQ_PORT_MISCERROR :: MCIERR_BASE + 84 +MCIERR_SEQ_TIMER :: MCIERR_BASE + 85 +MCIERR_SEQ_PORTUNSPECIFIED :: MCIERR_BASE + 86 +MCIERR_SEQ_NOMIDIPRESENT :: MCIERR_BASE + 87 +MCIERR_NO_WINDOW :: MCIERR_BASE + 90 +MCIERR_CREATEWINDOW :: MCIERR_BASE + 91 +MCIERR_FILE_READ :: MCIERR_BASE + 92 +MCIERR_FILE_WRITE :: MCIERR_BASE + 93 +MCIERR_NO_IDENTITY :: MCIERR_BASE + 94 + +/* MMRESULT error return values specific to the mixer API */ +MIXERR_INVALLINE :: (MIXERR_BASE + 0) +MIXERR_INVALCONTROL :: (MIXERR_BASE + 1) +MIXERR_INVALVALUE :: (MIXERR_BASE + 2) +MIXERR_LASTERROR :: (MIXERR_BASE + 2) \ No newline at end of file From 22e0f5ecd03fbf06428ae002a31ce7851d0356f6 Mon Sep 17 00:00:00 2001 From: Lucas Perlind Date: Thu, 30 Mar 2023 18:03:28 +1100 Subject: [PATCH 14/50] Add documentation tester and make it apart of CI workflow --- .github/workflows/ci.yml | 7 + tests/documentation/build.bat | 12 + tests/documentation/documentation_tester.odin | 394 ++++++++++++++++++ 3 files changed, 413 insertions(+) create mode 100644 tests/documentation/build.bat create mode 100644 tests/documentation/documentation_tester.odin diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc2691d80..5fb98fca4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -163,6 +163,13 @@ jobs: cd tests\internal call build.bat timeout-minutes: 10 + - name: Odin documentation tests + shell: cmd + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat + cd tests\documentation + call build.bat + timeout-minutes: 10 - name: core:math/big tests shell: cmd run: | diff --git a/tests/documentation/build.bat b/tests/documentation/build.bat new file mode 100644 index 000000000..1e92e3ba5 --- /dev/null +++ b/tests/documentation/build.bat @@ -0,0 +1,12 @@ +@echo off +set PATH_TO_ODIN==..\..\odin + +echo --- +echo Building Documentation File +echo --- +%PATH_TO_ODIN% doc ..\..\examples\all -all-packages -doc-format + +echo --- +echo Running Documentation Tester +echo --- +%PATH_TO_ODIN% run documentation_tester.odin -file -vet -strict-style -- %PATH_TO_ODIN% diff --git a/tests/documentation/documentation_tester.odin b/tests/documentation/documentation_tester.odin new file mode 100644 index 000000000..5d2b07b28 --- /dev/null +++ b/tests/documentation/documentation_tester.odin @@ -0,0 +1,394 @@ +package documentation_tester + +import "core:os" +import "core:fmt" +import "core:strings" +import "core:odin/ast" +import "core:odin/parser" +import "core:c/libc" +import doc "core:odin/doc-format" + +Example_Test :: struct { + name: string, + example_code: []string, + expected_output: []string, +} + +g_header: ^doc.Header +g_bad_doc: bool +g_examples_to_verify: [dynamic]Example_Test +g_path_to_odin: string + +array :: proc(a: $A/doc.Array($T)) -> []T { + return doc.from_array(g_header, a) +} + +str :: proc(s: $A/doc.String) -> string { + return doc.from_string(g_header, s) +} + +common_prefix :: proc(strs: []string) -> string { + if len(strs) == 0 { + return "" + } + n := max(int) + for str in strs { + n = min(n, len(str)) + } + + prefix := strs[0][:n] + for str in strs[1:] { + for len(prefix) != 0 && str[:len(prefix)] != prefix { + prefix = prefix[:len(prefix)-1] + } + if len(prefix) == 0 { + break + } + } + return prefix +} + +errorf :: proc(format: string, args: ..any) -> ! { + fmt.eprintf("%s ", os.args[0]) + fmt.eprintf(format, ..args) + fmt.eprintln() + os.exit(1) +} + +main :: proc() { + if len(os.args) != 2 { + errorf("expected path to odin executable") + } + g_path_to_odin = os.args[1] + data, ok := os.read_entire_file("all.odin-doc") + if !ok { + errorf("unable to read file: all.odin-doc") + } + err: doc.Reader_Error + g_header, err = doc.read_from_bytes(data) + switch err { + case .None: + case .Header_Too_Small: + errorf("file is too small for the file format") + case .Invalid_Magic: + errorf("invalid magic for the file format") + case .Data_Too_Small: + errorf("data is too small for the file format") + case .Invalid_Version: + errorf("invalid file format version") + } + pkgs := array(g_header.pkgs) + entities := array(g_header.entities) + + path_prefix: string + { + fullpaths: [dynamic]string + defer delete(fullpaths) + + for pkg in pkgs[1:] { + append(&fullpaths, str(pkg.fullpath)) + } + path_prefix = common_prefix(fullpaths[:]) + } + + for pkg in pkgs[1:] { + entries_array := array(pkg.entries) + fullpath := str(pkg.fullpath) + path := strings.trim_prefix(fullpath, path_prefix) + if ! strings.has_prefix(path, "core/") { + continue + } + trimmed_path := strings.trim_prefix(path, "core/") + if strings.has_prefix(trimmed_path, "sys") { + continue + } + if strings.contains(trimmed_path, "/_") { + continue + } + for entry in entries_array { + entity := entities[entry.entity] + find_and_add_examples(str(entity.docs), fmt.aprintf("%v.%v", str(pkg.name), str(entity.name))) + } + } + write_test_suite(g_examples_to_verify[:]) + if g_bad_doc { + errorf("We created bad documentation!") + } + + if ! run_test_suite() { + errorf("Test suite failed!") + } + fmt.println("Examples verified") +} + +// NOTE: this is a pretty close copy paste from the website pkg documentation on parsing the docs +find_and_add_examples :: proc(docs: string, name: string = "") { + if docs == "" { + return + } + Block_Kind :: enum { + Other, + Example, + Output, + } + Block :: struct { + kind: Block_Kind, + lines: []string, + } + lines := strings.split_lines(docs) + curr_block_kind := Block_Kind.Other + start := 0 + + example_block: Block // when set the kind should be Example + output_block: Block // when set the kind should be Output + // rely on zii that the kinds have not been set + assert(example_block.kind != .Example) + assert(output_block.kind != .Output) + + insert_block :: proc(block: Block, example: ^Block, output: ^Block, name: string) { + switch block.kind { + case .Other: + case .Example: + if example.kind == .Example { + fmt.eprintf("The documentation for %q has multiple examples which is not allowed\n", name) + g_bad_doc = true + } + example^ = block + case .Output: output^ = block + if example.kind == .Output { + fmt.eprintf("The documentation for %q has multiple output which is not allowed\n", name) + g_bad_doc = true + } + output^ = block + } + } + + for line, i in lines { + text := strings.trim_space(line) + next_block_kind := curr_block_kind + + switch curr_block_kind { + case .Other: + switch { + case strings.has_prefix(line, "Example:"): next_block_kind = .Example + case strings.has_prefix(line, "Output:"): next_block_kind = .Output + } + case .Example: + switch { + case strings.has_prefix(line, "Output:"): next_block_kind = .Output + case ! (text == "" || strings.has_prefix(line, "\t")): next_block_kind = .Other + } + case .Output: + switch { + case strings.has_prefix(line, "Example:"): next_block_kind = .Example + case ! (text == "" || strings.has_prefix(line, "\t")): next_block_kind = .Other + } + } + + if i-start > 0 && (curr_block_kind != next_block_kind) { + insert_block(Block{curr_block_kind, lines[start:i]}, &example_block, &output_block, name) + curr_block_kind, start = next_block_kind, i + } + } + + if start < len(lines) { + insert_block(Block{curr_block_kind, lines[start:]}, &example_block, &output_block, name) + } + + if output_block.kind == .Output && example_block.kind != .Example { + fmt.eprintf("The documentation for %q has an output block but no example\n", name) + g_bad_doc = true + } + + // Write example and output block if they're both present + if example_block.kind == .Example && output_block.kind == .Output { + { + // Example block starts with + // `Example:` and a number of white spaces, + lines := &example_block.lines + for len(lines) > 0 && (strings.trim_space(lines[0]) == "" || strings.has_prefix(lines[0], "Example:")) { + lines^ = lines[1:] + } + } + { + // Output block starts with + // `Output:` and a number of white spaces, + lines := &output_block.lines + for len(lines) > 0 && (strings.trim_space(lines[0]) == "" || strings.has_prefix(lines[0], "Output:")) { + lines^ = lines[1:] + } + // Additionally we need to strip all empty lines at the end of output to not include those in the expected output + for len(lines) > 0 && (strings.trim_space(lines[len(lines) - 1]) == "") { + lines^ = lines[:len(lines) - 1] + } + } + // Remove first layer of tabs which are always present + for line in &example_block.lines { + line = strings.trim_prefix(line, "\t") + } + for line in &output_block.lines { + line = strings.trim_prefix(line, "\t") + } + append(&g_examples_to_verify, Example_Test { name = name, example_code = example_block.lines, expected_output = output_block.lines }) + } +} + + +write_test_suite :: proc(example_tests: []Example_Test) { + TEST_SUITE_DIRECTORY :: "verify" + os.remove_directory(TEST_SUITE_DIRECTORY) + os.make_directory(TEST_SUITE_DIRECTORY) + + example_build := strings.builder_make() + test_runner := strings.builder_make() + + strings.write_string(&test_runner, +`//+private +package documentation_verification + +import "core:os" +import "core:mem" +import "core:io" +import "core:fmt" +import "core:thread" +import "core:sync" +import "core:intrinsics" + +@(private="file") +_read_pipe: os.Handle +@(private="file") +_write_pipe: os.Handle +@(private="file") +_pipe_reader_semaphore: sync.Sema +@(private="file") +_out_data: string +@(private="file") +_out_buffer: [mem.Megabyte]byte +@(private="file") +_bad_test_found: bool + +@(private="file") +_spawn_pipe_reader :: proc() { + thread.create_and_start(proc(^thread.Thread) { + stream := os.stream_from_handle(_read_pipe) + reader := io.to_reader(stream) + sync.post(&_pipe_reader_semaphore) // notify thread is ready + for { + n_read := 0 + read_to_null_byte := 0 + finished_reading := false + for ! finished_reading { + just_read, err := io.read(reader, _out_buffer[n_read:], &n_read); if err != .None { + panic("We got an IO error!") + } + for b in _out_buffer[n_read - just_read: n_read] { + if b == 0 { + finished_reading = true + break + } + read_to_null_byte += 1 + } + } + intrinsics.volatile_store(&_out_data, transmute(string)_out_buffer[:read_to_null_byte]) + sync.post(&_pipe_reader_semaphore) // notify we read the null byte + } + }) + + sync.wait(&_pipe_reader_semaphore) // wait for thread to be ready +} + +@(private="file") +_check :: proc(test_name: string, expected: string) { + null_byte: [1]byte + os.write(_write_pipe, null_byte[:]) + os.flush(_write_pipe) + sync.wait(&_pipe_reader_semaphore) + output := intrinsics.volatile_load(&_out_data) // wait for thread to read null byte + if expected != output { + fmt.eprintf("Test %q got unexpected output:\n%q\n", test_name, output) + fmt.eprintf("Expected:\n%q\n", expected) + _bad_test_found = true + } +} + +main :: proc() { + _read_pipe, _write_pipe, _ = os.pipe() + os.stdout = _write_pipe + _spawn_pipe_reader() +`) + for test in example_tests { + strings.builder_reset(&example_build) + strings.write_string(&example_build, "package documentation_verification\n\n") + for line in test.example_code { + strings.write_string(&example_build, line) + strings.write_byte(&example_build, '\n') + } + + code_string := strings.to_string(example_build) + code_test_name: string + + example_ast := ast.File { src = code_string } + odin_parser := parser.default_parser() + + if ! parser.parse_file(&odin_parser, &example_ast) { + g_bad_doc = true + continue + } + if odin_parser.error_count > 0 { + fmt.eprintf("Errors on the following code generated for %q:\n%v\n", test.name, code_string) + g_bad_doc = true + continue + } + + for d in example_ast.decls { + value_decl, is_value := d.derived.(^ast.Value_Decl); if ! is_value { + continue + } + if len(value_decl.values) != 1 { + continue + } + proc_lit, is_proc_lit := value_decl.values[0].derived_expr.(^ast.Proc_Lit); if ! is_proc_lit { + continue + } + if len(proc_lit.type.params.list) > 0 { + continue + } + code_test_name = code_string[value_decl.names[0].pos.offset:value_decl.names[0].end.offset] + break + } + + if code_test_name == "" { + fmt.eprintf("We could not any find procedure literals with no arguments in the example for %q\n", test.name) + g_bad_doc = true + continue + } + + strings.write_string(&test_runner, "\t") + strings.write_string(&test_runner, code_test_name) + strings.write_string(&test_runner, "()\n") + fmt.sbprintf(&test_runner, "\t_check(%q, `", code_test_name) + for line in test.expected_output { + strings.write_string(&test_runner, line) + strings.write_string(&test_runner, "\n") + } + strings.write_string(&test_runner, "`)\n") + save_path := fmt.tprintf("verify/test_%s.odin", code_test_name) + if ! os.write_entire_file(save_path, transmute([]byte)code_string) { + fmt.eprintf("We could not save the file to the path %q\n", save_path) + g_bad_doc = true + } + } + + strings.write_string(&test_runner, +` if _bad_test_found { + fmt.eprintln("One or more tests failed") + os.exit(1) + } +}`) + os.write_entire_file("verify/main.odin", transmute([]byte)strings.to_string(test_runner)) +} + +run_test_suite :: proc() -> bool { + cmd := fmt.tprintf("%v run verify", g_path_to_odin) + return libc.system(strings.clone_to_cstring(cmd)) == 0 +} \ No newline at end of file From 6ff0cc0b400524232cdce44f5b2a68b399ba4adc Mon Sep 17 00:00:00 2001 From: Lucas Perlind Date: Sat, 1 Apr 2023 09:06:45 +1100 Subject: [PATCH 15/50] Enforce example names in documentation --- core/strings/builder.odin | 16 +- core/strings/conversion.odin | 18 +- core/strings/strings.odin | 94 +++++----- tests/documentation/documentation_tester.odin | 163 ++++++++++-------- 4 files changed, 159 insertions(+), 132 deletions(-) diff --git a/core/strings/builder.odin b/core/strings/builder.odin index b4456e236..4994230a9 100644 --- a/core/strings/builder.odin +++ b/core/strings/builder.odin @@ -227,7 +227,7 @@ Example: import "core:fmt" import "core:strings" - strings_builder_from_bytes_example :: proc() { + builder_from_bytes_example :: proc() { bytes: [8]byte // <-- gets filled builder := strings.builder_from_bytes(bytes[:]) strings.write_byte(&builder, 'a') @@ -318,7 +318,7 @@ Example: import "core:fmt" import "core:strings" - strings_write_byte_example :: proc() { + write_byte_example :: proc() { builder := strings.builder_make() strings.write_byte(&builder, 'a') // 1 strings.write_byte(&builder, 'b') // 1 @@ -352,7 +352,7 @@ Example: import "core:fmt" import "core:strings" - strings_write_bytes_example :: proc() { + write_bytes_example :: proc() { builder := strings.builder_make() bytes := [?]byte { 'a', 'b', 'c' } strings.write_bytes(&builder, bytes[:]) // 3 @@ -382,7 +382,7 @@ Example: import "core:fmt" import "core:strings" - strings_write_rune_example :: proc() { + write_rune_example :: proc() { builder := strings.builder_make() strings.write_rune(&builder, 'ä') // 2 None strings.write_rune(&builder, 'b') // 1 None @@ -413,7 +413,7 @@ Example: import "core:fmt" import "core:strings" - strings_write_quoted_rune_example :: proc() { + write_quoted_rune_example :: proc() { builder := strings.builder_make() strings.write_string(&builder, "abc") // 3 strings.write_quoted_rune(&builder, 'ä') // 4 @@ -445,7 +445,7 @@ Example: import "core:fmt" import "core:strings" - strings_write_string_example :: proc() { + write_string_example :: proc() { builder := strings.builder_make() strings.write_string(&builder, "a") // 1 strings.write_string(&builder, "bc") // 2 @@ -518,7 +518,7 @@ Example: import "core:fmt" import "core:strings" - strings_write_quoted_string_example :: proc() { + write_quoted_string_example :: proc() { builder := strings.builder_make() strings.write_quoted_string(&builder, "a") // 3 strings.write_quoted_string(&builder, "bc", '\'') // 4 @@ -659,7 +659,7 @@ Example: import "core:fmt" import "core:strings" - strings_write_f32_example :: proc() { + write_f32_example :: proc() { builder := strings.builder_make() strings.write_f32(&builder, 3.14159, 'f') // 6 strings.write_string(&builder, " - ") // 3 diff --git a/core/strings/conversion.odin b/core/strings/conversion.odin index c3cf62340..dc41a02dc 100644 --- a/core/strings/conversion.odin +++ b/core/strings/conversion.odin @@ -86,7 +86,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_lower_example :: proc() { + to_lower_example :: proc() { fmt.println(strings.to_lower("TeST")) } @@ -119,7 +119,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_upper_example :: proc() { + to_upper_example :: proc() { fmt.println(strings.to_upper("Test")) } @@ -196,7 +196,7 @@ Example: import "core:strings" import "core:io" - strings_string_case_iterator_example :: proc() { + string_case_iterator_example :: proc() { my_callback :: proc(w: io.Writer, prev, curr, next: rune) { fmt.println("my_callback", curr) // <-- Custom logic here } @@ -325,7 +325,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_delimiter_case_example :: proc() { + to_delimiter_case_example :: proc() { fmt.println(strings.to_delimiter_case("Hello World", '_', false)) fmt.println(strings.to_delimiter_case("Hello World", ' ', true)) fmt.println(strings.to_delimiter_case("aBC", '_', false)) @@ -397,7 +397,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_snake_case_example :: proc() { + to_snake_case_example :: proc() { fmt.println(strings.to_snake_case("HelloWorld")) fmt.println(strings.to_snake_case("Hello World")) } @@ -430,7 +430,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_upper_snake_case_example :: proc() { + to_upper_snake_case_example :: proc() { fmt.println(strings.to_upper_snake_case("HelloWorld")) } @@ -458,7 +458,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_kebab_case_example :: proc() { + to_kebab_case_example :: proc() { fmt.println(strings.to_kebab_case("HelloWorld")) } @@ -486,7 +486,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_upper_kebab_case_example :: proc() { + to_upper_kebab_case_example :: proc() { fmt.println(strings.to_upper_kebab_case("HelloWorld")) } @@ -514,7 +514,7 @@ Example: import "core:fmt" import "core:strings" - strings_to_ada_case_example :: proc() { + to_ada_case_example :: proc() { fmt.println(strings.to_ada_case("HelloWorld")) } diff --git a/core/strings/strings.odin b/core/strings/strings.odin index 64a063b7d..8cb046bd6 100644 --- a/core/strings/strings.odin +++ b/core/strings/strings.odin @@ -286,7 +286,7 @@ Example: import "core:fmt" import "core:strings" - strings_contains_example :: proc() { + contains_example :: proc() { fmt.println(strings.contains("testing", "test")) fmt.println(strings.contains("testing", "ing")) fmt.println(strings.contains("testing", "text")) @@ -316,7 +316,7 @@ Example: import "core:fmt" import "core:strings" - strings_contains_any_example :: proc() { + contains_any_example :: proc() { fmt.println(strings.contains_any("test", "test")) fmt.println(strings.contains_any("test", "ts")) fmt.println(strings.contains_any("test", "et")) @@ -347,7 +347,7 @@ Example: import "core:fmt" import "core:strings" - strings_rune_count_example :: proc() { + rune_count_example :: proc() { fmt.println(strings.rune_count("test")) fmt.println(strings.rune_count("testö")) // where len("testö") == 6 } @@ -376,7 +376,7 @@ Example: import "core:fmt" import "core:strings" - strings_equal_fold_example :: proc() { + equal_fold_example :: proc() { fmt.println(strings.equal_fold("test", "test")) fmt.println(strings.equal_fold("Test", "test")) fmt.println(strings.equal_fold("Test", "tEsT")) @@ -447,7 +447,7 @@ Example: import "core:fmt" import "core:strings" - strings_prefix_length_example :: proc() { + prefix_length_example :: proc() { fmt.println(strings.prefix_length("testing", "test")) fmt.println(strings.prefix_length("testing", "te")) fmt.println(strings.prefix_length("telephone", "te")) @@ -499,7 +499,7 @@ Example: import "core:fmt" import "core:strings" - strings_has_prefix_example :: proc() { + has_prefix_example :: proc() { fmt.println(strings.has_prefix("testing", "test")) fmt.println(strings.has_prefix("testing", "te")) fmt.println(strings.has_prefix("telephone", "te")) @@ -527,7 +527,7 @@ Example: import "core:fmt" import "core:strings" - strings_has_suffix_example :: proc() { + has_suffix_example :: proc() { fmt.println(strings.has_suffix("todo.txt", ".txt")) fmt.println(strings.has_suffix("todo.doc", ".txt")) fmt.println(strings.has_suffix("todo.doc.txt", ".txt")) @@ -559,7 +559,7 @@ Example: import "core:fmt" import "core:strings" - strings_join_example :: proc() { + join_example :: proc() { a := [?]string { "a", "b", "c" } fmt.println(strings.join(a[:], " ")) fmt.println(strings.join(a[:], "-")) @@ -644,7 +644,7 @@ Example: import "core:fmt" import "core:strings" - strings_concatenate_example :: proc() { + concatenate_example :: proc() { a := [?]string { "a", "b", "c" } fmt.println(strings.concatenate(a[:])) } @@ -716,7 +716,7 @@ Example: import "core:fmt" import "core:strings" - strings_cut_example :: proc() { + cut_example :: proc() { fmt.println(strings.cut("some example text", 0, 4)) // -> "some" fmt.println(strings.cut("some example text", 2, 2)) // -> "me" fmt.println(strings.cut("some example text", 5, 7)) // -> "example" @@ -863,7 +863,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_example :: proc() { + split_example :: proc() { s := "aaa.bbb.ccc.ddd.eee" // 5 parts ss := strings.split(s, ".") fmt.println(ss) @@ -895,7 +895,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_n_example :: proc() { + split_n_example :: proc() { s := "aaa.bbb.ccc.ddd.eee" // 5 parts present ss := strings.split_n(s, ".",3) // total of 3 wanted fmt.println(ss) @@ -927,7 +927,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_after_example :: proc() { + split_after_example :: proc() { a := "aaa.bbb.ccc.ddd.eee" // 5 parts aa := strings.split_after(a, ".") fmt.println(aa) @@ -961,7 +961,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_after_n_example :: proc() { + split_after_n_example :: proc() { a := "aaa.bbb.ccc.ddd.eee" aa := strings.split_after_n(a, ".", 3) fmt.println(aa) @@ -1032,7 +1032,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_by_byte_iterator_example :: proc() { + split_by_byte_iterator_example :: proc() { text := "a.b.c.d.e" for str in strings.split_by_byte_iterator(&text, '.') { fmt.println(str) // every loop -> a b c d e @@ -1077,7 +1077,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_iterator_example :: proc() { + split_iterator_example :: proc() { text := "a.b.c.d.e" for str in strings.split_iterator(&text, ".") { fmt.println(str) @@ -1111,7 +1111,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_after_iterator_example :: proc() { + split_after_iterator_example :: proc() { text := "a.b.c.d.e" for str in strings.split_after_iterator(&text, ".") { fmt.println(str) @@ -1167,7 +1167,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_lines_example :: proc() { + split_lines_example :: proc() { a := "a\nb\nc\nd\ne" b := strings.split_lines(a) fmt.println(b) @@ -1203,7 +1203,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_lines_n_example :: proc() { + split_lines_n_example :: proc() { a := "a\nb\nc\nd\ne" b := strings.split_lines_n(a, 3) fmt.println(b) @@ -1240,7 +1240,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_lines_after_example :: proc() { + split_lines_after_example :: proc() { a := "a\nb\nc\nd\ne" b := strings.split_lines_after(a) fmt.println(b) @@ -1279,7 +1279,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_lines_after_n_example :: proc() { + split_lines_after_n_example :: proc() { a := "a\nb\nc\nd\ne" b := strings.split_lines_after_n(a, 3) fmt.println(b) @@ -1314,7 +1314,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_lines_iterator_example :: proc() { + split_lines_iterator_example :: proc() { text := "a\nb\nc\nd\ne" for str in strings.split_lines_iterator(&text) { fmt.print(str) // every loop -> a b c d e @@ -1346,7 +1346,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_lines_after_iterator_example :: proc() { + split_lines_after_iterator_example :: proc() { text := "a\nb\nc\nd\ne\n" for str in strings.split_lines_after_iterator(&text) { fmt.print(str) // every loop -> a\n b\n c\n d\n e\n @@ -1382,7 +1382,7 @@ Example: import "core:fmt" import "core:strings" - strings_index_byte_example :: proc() { + index_byte_example :: proc() { fmt.println(strings.index_byte("test", 't')) fmt.println(strings.index_byte("test", 'e')) fmt.println(strings.index_byte("test", 'x')) @@ -1416,7 +1416,7 @@ Example: import "core:fmt" import "core:strings" - strings_last_index_byte_example :: proc() { + last_index_byte_example :: proc() { fmt.println(strings.last_index_byte("test", 't')) fmt.println(strings.last_index_byte("test", 'e')) fmt.println(strings.last_index_byte("test", 'x')) @@ -1450,7 +1450,7 @@ Example: import "core:fmt" import "core:strings" - strings_index_rune_example :: proc() { + index_rune_example :: proc() { fmt.println(strings.index_rune("abcädef", 'x')) fmt.println(strings.index_rune("abcädef", 'a')) fmt.println(strings.index_rune("abcädef", 'b')) @@ -1505,7 +1505,7 @@ Example: import "core:fmt" import "core:strings" - strings_index_example :: proc() { + index_example :: proc() { fmt.println(strings.index("test", "t")) fmt.println(strings.index("test", "te")) fmt.println(strings.index("test", "st")) @@ -1579,7 +1579,7 @@ Example: import "core:fmt" import "core:strings" - strings_last_index_example :: proc() { + last_index_example :: proc() { fmt.println(strings.last_index("test", "t")) fmt.println(strings.last_index("test", "te")) fmt.println(strings.last_index("test", "st")) @@ -1651,7 +1651,7 @@ Example: import "core:fmt" import "core:strings" - strings_index_any_example :: proc() { + index_any_example :: proc() { fmt.println(strings.index_any("test", "s")) fmt.println(strings.index_any("test", "se")) fmt.println(strings.index_any("test", "et")) @@ -1713,7 +1713,7 @@ Example: import "core:fmt" import "core:strings" - strings_last_index_any_example :: proc() { + last_index_any_example :: proc() { fmt.println(strings.last_index_any("test", "s")) fmt.println(strings.last_index_any("test", "se")) fmt.println(strings.last_index_any("test", "et")) @@ -1831,7 +1831,7 @@ Example: import "core:fmt" import "core:strings" - strings_count_example :: proc() { + count_example :: proc() { fmt.println(strings.count("abbccc", "a")) fmt.println(strings.count("abbccc", "b")) fmt.println(strings.count("abbccc", "c")) @@ -1901,7 +1901,7 @@ Example: import "core:fmt" import "core:strings" - strings_repeat_example :: proc() { + repeat_example :: proc() { fmt.println(strings.repeat("abc", 2)) } @@ -1943,7 +1943,7 @@ Example: import "core:fmt" import "core:strings" - strings_replace_all_example :: proc() { + replace_all_example :: proc() { fmt.println(strings.replace_all("xyzxyz", "xyz", "abc")) fmt.println(strings.replace_all("xyzxyz", "abc", "xyz")) fmt.println(strings.replace_all("xyzxyz", "xy", "z")) @@ -1978,7 +1978,7 @@ Example: import "core:fmt" import "core:strings" - strings_replace_example :: proc() { + replace_example :: proc() { fmt.println(strings.replace("xyzxyz", "xyz", "abc", 2)) fmt.println(strings.replace("xyzxyz", "xyz", "abc", 1)) fmt.println(strings.replace("xyzxyz", "abc", "xyz", -1)) @@ -2050,7 +2050,7 @@ Example: import "core:fmt" import "core:strings" - strings_remove_example :: proc() { + remove_example :: proc() { fmt.println(strings.remove("abcabc", "abc", 1)) fmt.println(strings.remove("abcabc", "abc", -1)) fmt.println(strings.remove("abcabc", "a", -1)) @@ -2085,7 +2085,7 @@ Example: import "core:fmt" import "core:strings" - strings_remove_all_example :: proc() { + remove_all_example :: proc() { fmt.println(strings.remove_all("abcabc", "abc")) fmt.println(strings.remove_all("abcabc", "a")) fmt.println(strings.remove_all("abcabc", "x")) @@ -2148,7 +2148,7 @@ Example: import "core:fmt" import "core:strings" - strings_index_proc_example :: proc() { + index_proc_example :: proc() { call :: proc(r: rune) -> bool { return r == 'a' } @@ -2223,7 +2223,7 @@ Example: import "core:fmt" import "core:strings" - strings_trim_left_proc_example :: proc() { + trim_left_proc_example :: proc() { find :: proc(r: rune) -> bool { return r == 'x' } @@ -2274,7 +2274,7 @@ Example: import "core:fmt" import "core:strings" - strings_trim_right_proc_example :: proc() { + trim_right_proc_example :: proc() { find :: proc(r: rune) -> bool { return r != 't' } @@ -2462,7 +2462,7 @@ Example: import "core:fmt" import "core:strings" - strings_trim_prefix_example :: proc() { + trim_prefix_example :: proc() { fmt.println(strings.trim_prefix("testing", "test")) fmt.println(strings.trim_prefix("testing", "abc")) } @@ -2493,7 +2493,7 @@ Example: import "core:fmt" import "core:strings" - strings_trim_suffix_example :: proc() { + trim_suffix_example :: proc() { fmt.println(strings.trim_suffix("todo.txt", ".txt")) fmt.println(strings.trim_suffix("todo.doc", ".txt")) } @@ -2529,7 +2529,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_multi_example :: proc() { + split_multi_example :: proc() { splits := [?]string { "---", "~~~", ".", "_", "," } res := strings.split_multi("testing,this.out_nice---done~~~last", splits[:]) fmt.println(res) // -> [testing, this, out, nice, done, last] @@ -2594,7 +2594,7 @@ Example: import "core:fmt" import "core:strings" - strings_split_multi_iterate_example :: proc() { + split_multi_iterate_example :: proc() { it := "testing,this.out_nice---done~~~last" splits := [?]string { "---", "~~~", ".", "_", "," } for str in strings.split_multi_iterate(&it, splits[:]) { @@ -2654,7 +2654,7 @@ Example: import "core:fmt" import "core:strings" - strings_scrub_example :: proc() { + scrub_example :: proc() { text := "Hello\xC0\x80World" fmt.println(strings.scrub(text, "?")) // -> "Hello?World" } @@ -2711,7 +2711,7 @@ Example: import "core:fmt" import "core:strings" - strings_reverse_example :: proc() { + reverse_example :: proc() { a := "abcxyz" b := strings.reverse(a) fmt.println(a, b) @@ -2753,7 +2753,7 @@ Example: import "core:fmt" import "core:strings" - strings_expand_tabs_example :: proc() { + expand_tabs_example :: proc() { text := "abc1\tabc2\tabc3" fmt.println(strings.expand_tabs(text, 4)) } @@ -2820,7 +2820,7 @@ Example: import "core:fmt" import "core:strings" - strings_partition_example :: proc() { + partition_example :: proc() { text := "testing this out" head, match, tail := strings.partition(text, " this ") // -> head: "testing", match: " this ", tail: "out" fmt.println(head, match, tail) diff --git a/tests/documentation/documentation_tester.odin b/tests/documentation/documentation_tester.odin index 5d2b07b28..09c565a51 100644 --- a/tests/documentation/documentation_tester.odin +++ b/tests/documentation/documentation_tester.odin @@ -1,6 +1,7 @@ package documentation_tester import "core:os" +import "core:io" import "core:fmt" import "core:strings" import "core:odin/ast" @@ -9,7 +10,8 @@ import "core:c/libc" import doc "core:odin/doc-format" Example_Test :: struct { - name: string, + entity_name: string, + package_name: string, example_code: []string, expected_output: []string, } @@ -59,7 +61,7 @@ main :: proc() { if len(os.args) != 2 { errorf("expected path to odin executable") } - g_path_to_odin = os.args[1] + g_path_to_odin = os.args[1] data, ok := os.read_entire_file("all.odin-doc") if !ok { errorf("unable to read file: all.odin-doc") @@ -80,37 +82,41 @@ main :: proc() { pkgs := array(g_header.pkgs) entities := array(g_header.entities) - path_prefix: string - { - fullpaths: [dynamic]string - defer delete(fullpaths) + path_prefix: string + { + fullpaths: [dynamic]string + defer delete(fullpaths) - for pkg in pkgs[1:] { - append(&fullpaths, str(pkg.fullpath)) - } - path_prefix = common_prefix(fullpaths[:]) - } + for pkg in pkgs[1:] { + append(&fullpaths, str(pkg.fullpath)) + } + path_prefix = common_prefix(fullpaths[:]) + } - for pkg in pkgs[1:] { - entries_array := array(pkg.entries) - fullpath := str(pkg.fullpath) - path := strings.trim_prefix(fullpath, path_prefix) - if ! strings.has_prefix(path, "core/") { - continue - } - trimmed_path := strings.trim_prefix(path, "core/") - if strings.has_prefix(trimmed_path, "sys") { - continue - } - if strings.contains(trimmed_path, "/_") { - continue - } - for entry in entries_array { - entity := entities[entry.entity] - find_and_add_examples(str(entity.docs), fmt.aprintf("%v.%v", str(pkg.name), str(entity.name))) - } - } - write_test_suite(g_examples_to_verify[:]) + for pkg in pkgs[1:] { + entries_array := array(pkg.entries) + fullpath := str(pkg.fullpath) + path := strings.trim_prefix(fullpath, path_prefix) + if ! strings.has_prefix(path, "core/") { + continue + } + trimmed_path := strings.trim_prefix(path, "core/") + if strings.has_prefix(trimmed_path, "sys") { + continue + } + if strings.contains(trimmed_path, "/_") { + continue + } + for entry in entries_array { + entity := entities[entry.entity] + find_and_add_examples( + docs = str(entity.docs), + package_name = str(pkg.name), + entity_name = str(entity.name), + ) + } + } + write_test_suite(g_examples_to_verify[:]) if g_bad_doc { errorf("We created bad documentation!") } @@ -118,11 +124,11 @@ main :: proc() { if ! run_test_suite() { errorf("Test suite failed!") } - fmt.println("Examples verified") + fmt.println("Examples verified") } // NOTE: this is a pretty close copy paste from the website pkg documentation on parsing the docs -find_and_add_examples :: proc(docs: string, name: string = "") { +find_and_add_examples :: proc(docs: string, package_name: string, entity_name: string) { if docs == "" { return } @@ -186,31 +192,31 @@ find_and_add_examples :: proc(docs: string, name: string = "") { } if i-start > 0 && (curr_block_kind != next_block_kind) { - insert_block(Block{curr_block_kind, lines[start:i]}, &example_block, &output_block, name) + insert_block(Block{curr_block_kind, lines[start:i]}, &example_block, &output_block, entity_name) curr_block_kind, start = next_block_kind, i } } if start < len(lines) { - insert_block(Block{curr_block_kind, lines[start:]}, &example_block, &output_block, name) + insert_block(Block{curr_block_kind, lines[start:]}, &example_block, &output_block, entity_name) } if output_block.kind == .Output && example_block.kind != .Example { - fmt.eprintf("The documentation for %q has an output block but no example\n", name) + fmt.eprintf("The documentation for %q has an output block but no example\n", entity_name) g_bad_doc = true } // Write example and output block if they're both present if example_block.kind == .Example && output_block.kind == .Output { - { - // Example block starts with - // `Example:` and a number of white spaces, - lines := &example_block.lines - for len(lines) > 0 && (strings.trim_space(lines[0]) == "" || strings.has_prefix(lines[0], "Example:")) { - lines^ = lines[1:] - } - } - { + { + // Example block starts with + // `Example:` and a number of white spaces, + lines := &example_block.lines + for len(lines) > 0 && (strings.trim_space(lines[0]) == "" || strings.has_prefix(lines[0], "Example:")) { + lines^ = lines[1:] + } + } + { // Output block starts with // `Output:` and a number of white spaces, lines := &output_block.lines @@ -221,21 +227,26 @@ find_and_add_examples :: proc(docs: string, name: string = "") { for len(lines) > 0 && (strings.trim_space(lines[len(lines) - 1]) == "") { lines^ = lines[:len(lines) - 1] } - } - // Remove first layer of tabs which are always present - for line in &example_block.lines { - line = strings.trim_prefix(line, "\t") - } - for line in &output_block.lines { - line = strings.trim_prefix(line, "\t") - } - append(&g_examples_to_verify, Example_Test { name = name, example_code = example_block.lines, expected_output = output_block.lines }) + } + // Remove first layer of tabs which are always present + for line in &example_block.lines { + line = strings.trim_prefix(line, "\t") + } + for line in &output_block.lines { + line = strings.trim_prefix(line, "\t") + } + append(&g_examples_to_verify, Example_Test { + entity_name = entity_name, + package_name = package_name, + example_code = example_block.lines, + expected_output = output_block.lines, + }) } } write_test_suite :: proc(example_tests: []Example_Test) { - TEST_SUITE_DIRECTORY :: "verify" + TEST_SUITE_DIRECTORY :: "verify" os.remove_directory(TEST_SUITE_DIRECTORY) os.make_directory(TEST_SUITE_DIRECTORY) @@ -325,7 +336,6 @@ main :: proc() { } code_string := strings.to_string(example_build) - code_test_name: string example_ast := ast.File { src = code_string } odin_parser := parser.default_parser() @@ -335,11 +345,15 @@ main :: proc() { continue } if odin_parser.error_count > 0 { - fmt.eprintf("Errors on the following code generated for %q:\n%v\n", test.name, code_string) + fmt.eprintf("Errors on the following code generated for %q:\n%v\n", test.entity_name, code_string) g_bad_doc = true continue } + enforced_name := fmt.tprintf("%v_example", test.entity_name) + index_of_proc_name: int + code_test_name: string + for d in example_ast.decls { value_decl, is_value := d.derived.(^ast.Value_Decl); if ! is_value { continue @@ -353,34 +367,48 @@ main :: proc() { if len(proc_lit.type.params.list) > 0 { continue } - code_test_name = code_string[value_decl.names[0].pos.offset:value_decl.names[0].end.offset] + this_procedure_name := code_string[value_decl.names[0].pos.offset:value_decl.names[0].end.offset] + if this_procedure_name != enforced_name { + continue + } + index_of_proc_name = value_decl.names[0].pos.offset + code_test_name = this_procedure_name break } if code_test_name == "" { - fmt.eprintf("We could not any find procedure literals with no arguments in the example for %q\n", test.name) + fmt.eprintf("We could not any find procedure literals with no arguments with the identifier %q for the example for %q\n", enforced_name, test.entity_name) g_bad_doc = true continue } - strings.write_string(&test_runner, "\t") - strings.write_string(&test_runner, code_test_name) - strings.write_string(&test_runner, "()\n") + fmt.sbprintf(&test_runner, "\t%v_%v()\n", test.package_name, code_test_name) fmt.sbprintf(&test_runner, "\t_check(%q, `", code_test_name) for line in test.expected_output { strings.write_string(&test_runner, line) strings.write_string(&test_runner, "\n") } strings.write_string(&test_runner, "`)\n") - save_path := fmt.tprintf("verify/test_%s.odin", code_test_name) - if ! os.write_entire_file(save_path, transmute([]byte)code_string) { - fmt.eprintf("We could not save the file to the path %q\n", save_path) + save_path := fmt.tprintf("verify/test_%v_%v.odin", test.package_name, code_test_name) + + test_file_handle, err := os.open(save_path, os.O_WRONLY | os.O_CREATE); if err != 0 { + fmt.eprintf("We could not open the file to the path %q for writing\n", save_path) g_bad_doc = true + continue } + defer os.close(test_file_handle) + stream := os.stream_from_handle(test_file_handle) + writer, ok := io.to_writer(stream); if ! ok { + fmt.eprintf("We could not make the writer for the path %q\n", save_path) + g_bad_doc = true + continue + } + fmt.wprintf(writer, "%v%v_%v", code_string[:index_of_proc_name], test.package_name, code_string[index_of_proc_name:]) } strings.write_string(&test_runner, -` if _bad_test_found { +` + if _bad_test_found { fmt.eprintln("One or more tests failed") os.exit(1) } @@ -389,6 +417,5 @@ main :: proc() { } run_test_suite :: proc() -> bool { - cmd := fmt.tprintf("%v run verify", g_path_to_odin) - return libc.system(strings.clone_to_cstring(cmd)) == 0 + return libc.system(fmt.caprintf("%v run verify", g_path_to_odin)) == 0 } \ No newline at end of file From 67e6f571925a07d25b5b3bef2ecb22a30afb6508 Mon Sep 17 00:00:00 2001 From: Lucas Perlind Date: Mon, 3 Apr 2023 08:33:24 +1000 Subject: [PATCH 16/50] Small improvements strings documentation * Use new 'Returns:' and 'Inputs:' keywords used by the website generator * Make order item order resemble website, i.e. 'Returns:' comes before 'Example:' * Add a few missing input items * Add a few missing return items --- core/strings/ascii_set.odin | 8 +- core/strings/builder.odin | 186 ++++++------ core/strings/conversion.odin | 79 ++--- core/strings/intern.odin | 16 +- core/strings/reader.odin | 54 ++-- core/strings/strings.odin | 542 ++++++++++++++++++++--------------- 6 files changed, 484 insertions(+), 401 deletions(-) diff --git a/core/strings/ascii_set.odin b/core/strings/ascii_set.odin index c9cc6b212..c65ef1c61 100644 --- a/core/strings/ascii_set.odin +++ b/core/strings/ascii_set.odin @@ -12,10 +12,10 @@ Ascii_Set :: distinct [8]u32 /* Creates an Ascii_Set with unique characters from the input string. -**Inputs** +Inputs: - chars: A string containing characters to include in the Ascii_Set. -**Returns** +Returns: - as: An Ascii_Set with unique characters from the input string. - ok: false if any character in the input string is not a valid ASCII character. */ @@ -33,11 +33,11 @@ ascii_set_make :: proc(chars: string) -> (as: Ascii_Set, ok: bool) #no_bounds_ch /* Determines if a given char is contained within an Ascii_Set. -**Inputs** +Inputs: - as: The Ascii_Set to search. - c: The char to check for in the Ascii_Set. -**Returns** +Returns: A boolean indicating if the byte is contained in the Ascii_Set (true) or not (false). */ ascii_set_contains :: proc(as: Ascii_Set, c: byte) -> bool #no_bounds_check { diff --git a/core/strings/builder.odin b/core/strings/builder.odin index 4994230a9..32442c21a 100644 --- a/core/strings/builder.odin +++ b/core/strings/builder.odin @@ -7,10 +7,10 @@ import "core:io" /* Type definition for a procedure that flushes a Builder -**Inputs** +Inputs: - b: A pointer to the Builder -**Returns** +Returns: A boolean indicating whether the Builder should be reset */ Builder_Flush_Proc :: #type proc(b: ^Builder) -> (do_reset: bool) @@ -27,10 +27,10 @@ Produces a Builder with a default length of 0 and cap of 16 *Allocates Using Provided Allocator* -**Inputs** +Inputs: - allocator: (default is context.allocator) -**Returns** +Returns: A new Builder */ builder_make_none :: proc(allocator := context.allocator) -> Builder { @@ -41,11 +41,11 @@ Produces a Builder with a specified length and cap of max(16,len) byte buffer *Allocates Using Provided Allocator* -**Inputs** +Inputs: - len: The desired length of the Builder's buffer - allocator: (default is context.allocator) -**Returns** +Returns: A new Builder */ builder_make_len :: proc(len: int, allocator := context.allocator) -> Builder { @@ -56,12 +56,12 @@ Produces a Builder with a specified length and cap *Allocates Using Provided Allocator* -**Inputs** +Inputs: - len: The desired length of the Builder's buffer - cap: The desired capacity of the Builder's buffer, cap is max(cap, len) - allocator: (default is context.allocator) -**Returns** +Returns: A new Builder */ builder_make_len_cap :: proc(len, cap: int, allocator := context.allocator) -> Builder { @@ -79,11 +79,11 @@ It replaces the existing `buf` *Allocates Using Provided Allocator* -**Inputs** +Inputs: - b: A pointer to the Builder - allocator: (default is context.allocator) -**Returns** +Returns: initialized ^Builder */ builder_init_none :: proc(b: ^Builder, allocator := context.allocator) -> ^Builder { @@ -96,12 +96,12 @@ It replaces the existing `buf` *Allocates Using Provided Allocator* -**Inputs** +Inputs: - b: A pointer to the Builder - len: The desired length of the Builder's buffer - allocator: (default is context.allocator) -**Returns** +Returns: Initialized ^Builder */ builder_init_len :: proc(b: ^Builder, len: int, allocator := context.allocator) -> ^Builder { @@ -112,13 +112,13 @@ builder_init_len :: proc(b: ^Builder, len: int, allocator := context.allocator) Initializes a Builder with a specified length and cap It replaces the existing `buf` -**Inputs** +Inputs: - b: A pointer to the Builder - len: The desired length of the Builder's buffer - cap: The desired capacity of the Builder's buffer, actual max(len,cap) - allocator: (default is context.allocator) -**Returns** +Returns: A pointer to the initialized Builder */ builder_init_len_cap :: proc(b: ^Builder, len, cap: int, allocator := context.allocator) -> ^Builder { @@ -165,10 +165,10 @@ _builder_stream_vtable := &_builder_stream_vtable_obj /* Returns an io.Stream from a Builder -**Inputs** +Inputs: - b: A pointer to the Builder -**Returns** +Returns: An io.Stream */ to_stream :: proc(b: ^Builder) -> io.Stream { @@ -177,10 +177,10 @@ to_stream :: proc(b: ^Builder) -> io.Stream { /* Returns an io.Writer from a Builder -**Inputs** +Inputs: - b: A pointer to the Builder -**Returns** +Returns: An io.Writer */ to_writer :: proc(b: ^Builder) -> io.Writer { @@ -189,7 +189,7 @@ to_writer :: proc(b: ^Builder) -> io.Writer { /* Deletes the Builder byte buffer content -**Inputs** +Inputs: - b: A pointer to the Builder */ builder_destroy :: proc(b: ^Builder) { @@ -199,7 +199,7 @@ builder_destroy :: proc(b: ^Builder) { /* Reserves the Builder byte buffer to a specific capacity, when it's higher than before -**Inputs** +Inputs: - b: A pointer to the Builder - cap: The desired capacity for the Builder's buffer */ @@ -209,7 +209,7 @@ builder_grow :: proc(b: ^Builder, cap: int) { /* Clears the Builder byte buffer content (sets len to zero) -**Inputs** +Inputs: - b: A pointer to the Builder */ builder_reset :: proc(b: ^Builder) { @@ -220,9 +220,12 @@ Creates a Builder from a slice of bytes with the same slice length as its capaci *Uses Nil Allocator - Does NOT allocate* -**Inputs** +Inputs: - backing: A slice of bytes to be used as the backing buffer +Returns: +A new Builder + Example: import "core:fmt" @@ -241,8 +244,6 @@ Output: a ab -**Returns** -A new Builder */ builder_from_bytes :: proc(backing: []byte) -> Builder { s := transmute(runtime.Raw_Slice)backing @@ -261,10 +262,10 @@ builder_from_slice :: builder_from_bytes /* Casts the Builder byte buffer to a string and returns it -**Inputs** +Inputs: - b: A Builder -**Returns** +Returns: The contents of the Builder's buffer, as a string */ to_string :: proc(b: Builder) -> string { @@ -273,10 +274,10 @@ to_string :: proc(b: Builder) -> string { /* Returns the length of the Builder's buffer, in bytes -**Inputs** +Inputs: - b: A Builder -**Returns** +Returns: The length of the Builder's buffer */ builder_len :: proc(b: Builder) -> int { @@ -285,10 +286,10 @@ builder_len :: proc(b: Builder) -> int { /* Returns the capacity of the Builder's buffer, in bytes -**Inputs** +Inputs: - b: A Builder -**Returns** +Returns: The capacity of the Builder's buffer */ builder_cap :: proc(b: Builder) -> int { @@ -297,10 +298,10 @@ builder_cap :: proc(b: Builder) -> int { /* The free space left in the Builder's buffer, in bytes -**Inputs** +Inputs: - b: A Builder -**Returns** +Returns: The available space left in the Builder's buffer */ builder_space :: proc(b: Builder) -> int { @@ -309,10 +310,15 @@ builder_space :: proc(b: Builder) -> int { /* Appends a byte to the Builder and returns the number of bytes appended -**Inputs** +Inputs: - b: A pointer to the Builder - x: The byte to be appended +Returns: +The number of bytes appended + +NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. + Example: import "core:fmt" @@ -329,10 +335,6 @@ Output: ab -NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. - -**Returns** -The number of bytes appended */ write_byte :: proc(b: ^Builder, x: byte) -> (n: int) { n0 := len(b.buf) @@ -343,7 +345,7 @@ write_byte :: proc(b: ^Builder, x: byte) -> (n: int) { /* Appends a slice of bytes to the Builder and returns the number of bytes appended -**Inputs** +Inputs: - b: A pointer to the Builder - x: The slice of bytes to be appended @@ -361,7 +363,7 @@ Example: NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of bytes appended */ write_bytes :: proc(b: ^Builder, x: []byte) -> (n: int) { @@ -373,10 +375,15 @@ write_bytes :: proc(b: ^Builder, x: []byte) -> (n: int) { /* Appends a single rune to the Builder and returns the number of bytes written and an `io.Error` -**Inputs** +Inputs: - b: A pointer to the Builder - r: The rune to be appended +Returns: +The number of bytes written and an io.Error (if any) + +NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. + Example: import "core:fmt" @@ -393,10 +400,6 @@ Output: äb -NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. - -**Returns** -The number of bytes written and an io.Error (if any) */ write_rune :: proc(b: ^Builder, r: rune) -> (int, io.Error) { return io.write_rune(to_writer(b), r) @@ -404,10 +407,15 @@ write_rune :: proc(b: ^Builder, r: rune) -> (int, io.Error) { /* Appends a quoted rune to the Builder and returns the number of bytes written -**Inputs** +Inputs: - b: A pointer to the Builder - r: The rune to be appended +Returns: +The number of bytes written + +NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. + Example: import "core:fmt" @@ -425,10 +433,6 @@ Output: abc'ä'abc -NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. - -**Returns** -The number of bytes written */ write_quoted_rune :: proc(b: ^Builder, r: rune) -> (n: int) { return io.write_quoted_rune(to_writer(b), r) @@ -436,10 +440,15 @@ write_quoted_rune :: proc(b: ^Builder, r: rune) -> (n: int) { /* Appends a string to the Builder and returns the number of bytes written -**Inputs** +Inputs: - b: A pointer to the Builder - s: The string to be appended +Returns: +The number of bytes written + +NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. + Example: import "core:fmt" @@ -456,10 +465,6 @@ Output: abc -NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. - -**Returns** -The number of bytes written */ write_string :: proc(b: ^Builder, s: string) -> (n: int) { n0 := len(b.buf) @@ -470,10 +475,10 @@ write_string :: proc(b: ^Builder, s: string) -> (n: int) { /* Pops and returns the last byte in the Builder or 0 when the Builder is empty -**Inputs** +Inputs: - b: A pointer to the Builder -**Returns** +Returns: The last byte in the Builder or 0 if empty */ pop_byte :: proc(b: ^Builder) -> (r: byte) { @@ -489,10 +494,10 @@ pop_byte :: proc(b: ^Builder) -> (r: byte) { /* Pops the last rune in the Builder and returns the popped rune and its rune width or (0, 0) if empty -**Inputs** +Inputs: - b: A pointer to the Builder -**Returns** +Returns: The popped rune and its rune width or (0, 0) if empty */ pop_rune :: proc(b: ^Builder) -> (r: rune, width: int) { @@ -508,11 +513,16 @@ pop_rune :: proc(b: ^Builder) -> (r: rune, width: int) { @(private) DIGITS_LOWER := "0123456789abcdefx" /* -**Inputs** +Inputs: - b: A pointer to the Builder - str: The string to be quoted and appended - quote: The optional quote character (default is double quotes) +Returns: +The number of bytes written + +NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. + Example: import "core:fmt" @@ -530,10 +540,6 @@ Output: "a"'bc'"xyz" -NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. - -**Returns** -The number of bytes written */ write_quoted_string :: proc(b: ^Builder, str: string, quote: byte = '"') -> (n: int) { n, _ = io.write_quoted_string(to_writer(b), str, quote) @@ -542,11 +548,16 @@ write_quoted_string :: proc(b: ^Builder, str: string, quote: byte = '"') -> (n: /* Appends a rune to the Builder and returns the number of bytes written -**Inputs** +Inputs: - b: A pointer to the Builder - r: The rune to be appended - write_quote: Optional boolean flag to wrap in single-quotes (') (default is true) +Returns: +The number of bytes written + +NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. + Example: import "core:fmt" @@ -564,10 +575,6 @@ Output: a'"'x -NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. - -**Returns** -The number of bytes written */ write_encoded_rune :: proc(b: ^Builder, r: rune, write_quote := true) -> (n: int) { n, _ = io.write_encoded_rune(to_writer(b), r, write_quote) @@ -577,7 +584,7 @@ write_encoded_rune :: proc(b: ^Builder, r: rune, write_quote := true) -> (n: int /* Appends an escaped rune to the Builder and returns the number of bytes written -**Inputs** +Inputs: - b: A pointer to the Builder - r: The rune to be appended - quote: The quote character @@ -590,7 +597,7 @@ Appends an escaped rune to the Builder and returns the number of bytes written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of bytes written */ write_escaped_rune :: proc(b: ^Builder, r: rune, quote: byte, html_safe := false) -> (n: int) { @@ -600,7 +607,7 @@ write_escaped_rune :: proc(b: ^Builder, r: rune, quote: byte, html_safe := false /* Writes a f64 value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - f: The f64 value to be appended - fmt: The format byte @@ -610,7 +617,7 @@ Writes a f64 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of characters written */ write_float :: proc(b: ^Builder, f: f64, fmt: byte, prec, bit_size: int, always_signed := false) -> (n: int) { @@ -626,7 +633,7 @@ write_float :: proc(b: ^Builder, f: f64, fmt: byte, prec, bit_size: int, always_ /* Writes a f16 value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - f: The f16 value to be appended - fmt: The format byte @@ -634,7 +641,7 @@ Writes a f16 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of characters written */ write_f16 :: proc(b: ^Builder, f: f16, fmt: byte, always_signed := false) -> (n: int) { @@ -648,12 +655,17 @@ write_f16 :: proc(b: ^Builder, f: f16, fmt: byte, always_signed := false) -> (n: /* Writes a f32 value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - f: The f32 value to be appended - fmt: The format byte - always_signed: Optional boolean flag to always include the sign +Returns: +The number of characters written + +NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. + Example: import "core:fmt" @@ -671,10 +683,6 @@ Output: 3.14159012 - -1.23000003e-01 -NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. - -**Returns** -The number of characters written */ write_f32 :: proc(b: ^Builder, f: f32, fmt: byte, always_signed := false) -> (n: int) { buf: [384]byte @@ -687,7 +695,7 @@ write_f32 :: proc(b: ^Builder, f: f32, fmt: byte, always_signed := false) -> (n: /* Writes a f32 value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - f: The f32 value to be appended - fmt: The format byte @@ -695,7 +703,7 @@ Writes a f32 value to the Builder and returns the number of characters written NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of characters written */ write_f64 :: proc(b: ^Builder, f: f64, fmt: byte, always_signed := false) -> (n: int) { @@ -709,14 +717,14 @@ write_f64 :: proc(b: ^Builder, f: f64, fmt: byte, always_signed := false) -> (n: /* Writes a u64 value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - i: The u64 value to be appended - base: The optional base for the numeric representation NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of characters written */ write_u64 :: proc(b: ^Builder, i: u64, base: int = 10) -> (n: int) { @@ -727,14 +735,14 @@ write_u64 :: proc(b: ^Builder, i: u64, base: int = 10) -> (n: int) { /* Writes a i64 value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - i: The i64 value to be appended - base: The optional base for the numeric representation NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of characters written */ write_i64 :: proc(b: ^Builder, i: i64, base: int = 10) -> (n: int) { @@ -745,14 +753,14 @@ write_i64 :: proc(b: ^Builder, i: i64, base: int = 10) -> (n: int) { /* Writes a uint value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - i: The uint value to be appended - base: The optional base for the numeric representation NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of characters written */ write_uint :: proc(b: ^Builder, i: uint, base: int = 10) -> (n: int) { @@ -761,14 +769,14 @@ write_uint :: proc(b: ^Builder, i: uint, base: int = 10) -> (n: int) { /* Writes a int value to the Builder and returns the number of characters written -**Inputs** +Inputs: - b: A pointer to the Builder - i: The int value to be appended - base: The optional base for the numeric representation NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written. -**Returns** +Returns: The number of characters written */ write_int :: proc(b: ^Builder, i: int, base: int = 10) -> (n: int) { diff --git a/core/strings/conversion.odin b/core/strings/conversion.odin index dc41a02dc..0160c8a60 100644 --- a/core/strings/conversion.odin +++ b/core/strings/conversion.odin @@ -9,14 +9,14 @@ Converts invalid UTF-8 sequences in the input string `s` to the `replacement` st *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: Input string that may contain invalid UTF-8 sequences. - replacement: String to replace invalid UTF-8 sequences with. - allocator: (default: context.allocator). WARNING: Allocation does not occur when len(s) == 0 -**Returns** +Returns: A valid UTF-8 string with invalid sequences replaced by `replacement`. */ to_valid_utf8 :: proc(s, replacement: string, allocator := context.allocator) -> string { @@ -77,10 +77,13 @@ Converts the input string `s` to all lowercase characters. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: Input string to be converted. - allocator: (default: context.allocator). +Returns: +A new string with all characters converted to lowercase. + Example: import "core:fmt" @@ -94,8 +97,6 @@ Output: test -**Returns** -A new string with all characters converted to lowercase. */ to_lower :: proc(s: string, allocator := context.allocator) -> string { b: Builder @@ -110,10 +111,13 @@ Converts the input string `s` to all uppercase characters. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: Input string to be converted. - allocator: (default: context.allocator). +Returns: +A new string with all characters converted to uppercase. + Example: import "core:fmt" @@ -127,8 +131,6 @@ Output: TEST -**Returns** -A new string with all characters converted to uppercase. */ to_upper :: proc(s: string, allocator := context.allocator) -> string { b: Builder @@ -141,10 +143,10 @@ to_upper :: proc(s: string, allocator := context.allocator) -> string { /* Checks if the rune `r` is a delimiter (' ', '-', or '_'). -**Inputs** +Inputs: - r: Rune to check for delimiter status. -**Returns** +Returns: True if `r` is a delimiter, false otherwise. */ is_delimiter :: proc(r: rune) -> bool { @@ -153,10 +155,10 @@ is_delimiter :: proc(r: rune) -> bool { /* Checks if the rune `r` is a non-alphanumeric or space character. -**Inputs** +Inputs: - r: Rune to check for separator status. -**Returns** +Returns: True if `r` is a non-alpha or `unicode.is_space` rune. */ is_separator :: proc(r: rune) -> bool { @@ -184,7 +186,7 @@ is_separator :: proc(r: rune) -> bool { /* Iterates over a string, calling a callback for each rune with the previous, current, and next runes as arguments. -**Inputs** +Inputs: - w: An io.Writer to be used by the callback for writing output. - s: The input string to be iterated over. - callback: A procedure to be called for each rune in the string, with arguments (w: io.Writer, prev, curr, next: rune). @@ -246,11 +248,11 @@ Converts the input string `s` to "lowerCamelCase". *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: Input string to be converted. - allocator: (default: context.allocator). -**Returns** +Returns: A "lowerCamelCase" formatted string. */ to_camel_case :: proc(s: string, allocator := context.allocator) -> string { @@ -281,11 +283,11 @@ Converts the input string `s` to "UpperCamelCase" (PascalCase). *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: Input string to be converted. - allocator: (default: context.allocator). -**Returns** +Returns: A "PascalCase" formatted string. */ to_pascal_case :: proc(s: string, allocator := context.allocator) -> string { @@ -314,12 +316,15 @@ Returns a string converted to a delimiter-separated case with configurable casin *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to be converted - delimiter: The rune to be used as the delimiter between words - all_upper_case: A boolean indicating if the output should be all uppercased (true) or lowercased (false) - allocator: (default: context.allocator). +Returns: +The converted string + Example: import "core:fmt" @@ -337,8 +342,6 @@ Output: HELLO WORLD a_bc -**Returns** -The converted string */ to_delimiter_case :: proc( s: string, @@ -388,10 +391,13 @@ Converts a string to "snake_case" with all runes lowercased *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to be converted - allocator: (default: context.allocator). +Returns: +The converted string + Example: import "core:fmt" @@ -407,9 +413,6 @@ Output: hello_world hello_world -``` -**Returns** -The converted string */ to_snake_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '_', false, allocator) @@ -421,10 +424,13 @@ Converts a string to "SNAKE_CASE" with all runes uppercased *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to be converted - allocator: (default: context.allocator). +Returns: +The converted string + Example: import "core:fmt" @@ -438,8 +444,6 @@ Output: HELLO_WORLD -**Returns** -The converted string */ to_upper_snake_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '_', true, allocator) @@ -449,10 +453,13 @@ Converts a string to "kebab-case" with all runes lowercased *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to be converted - allocator: (default: context.allocator). +Returns: +The converted string + Example: import "core:fmt" @@ -466,8 +473,6 @@ Output: hello-world -**Returns** -The converted string */ to_kebab_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '-', false, allocator) @@ -477,10 +482,13 @@ Converts a string to "KEBAB-CASE" with all runes uppercased *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to be converted - allocator: (default: context.allocator). +Returns: +The converted string + Example: import "core:fmt" @@ -494,8 +502,6 @@ Output: HELLO-WORLD -**Returns** -The converted string */ to_upper_kebab_case :: proc(s: string, allocator := context.allocator) -> string { return to_delimiter_case(s, '-', true, allocator) @@ -505,10 +511,13 @@ Converts a string to "Ada_Case" *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to be converted - allocator: (default: context.allocator). +Returns: +The converted string + Example: import "core:fmt" @@ -522,8 +531,6 @@ Output: Hello_World -**Returns** -The converted string */ to_ada_case :: proc(s: string, allocator := context.allocator) -> string { s := s diff --git a/core/strings/intern.odin b/core/strings/intern.odin index e73b33f07..463abeb1e 100644 --- a/core/strings/intern.odin +++ b/core/strings/intern.odin @@ -25,7 +25,7 @@ Initializes the entries map and sets the allocator for the string entries *Allocates Using Provided Allocators* -**Inputs** +Inputs: - m: A pointer to the Intern struct to be initialized - allocator: The allocator for the Intern_Entry strings (Default: context.allocator) - map_allocator: The allocator for the map of entries (Default: context.allocator) @@ -37,7 +37,7 @@ intern_init :: proc(m: ^Intern, allocator := context.allocator, map_allocator := /* Frees the map and all its content allocated using the `.allocator`. -**Inputs** +Inputs: - m: A pointer to the Intern struct to be destroyed */ intern_destroy :: proc(m: ^Intern) { @@ -51,13 +51,13 @@ Returns an interned copy of the given text, adding it to the map if not already *Allocate using the Intern's Allocator (First time string is seen only)* -**Inputs** +Inputs: - m: A pointer to the Intern struct - text: The string to be interned NOTE: The returned string lives as long as the map entry lives. -**Returns** +Returns: The interned string and an allocator error if any */ intern_get :: proc(m: ^Intern, text: string) -> (str: string, err: runtime.Allocator_Error) { @@ -69,13 +69,13 @@ Returns an interned copy of the given text as a cstring, adding it to the map if *Allocate using the Intern's Allocator (First time string is seen only)* -**Inputs** +Inputs: - m: A pointer to the Intern struct - text: The string to be interned NOTE: The returned cstring lives as long as the map entry lives -**Returns** +Returns: The interned cstring and an allocator error if any */ intern_get_cstring :: proc(m: ^Intern, text: string) -> (str: cstring, err: runtime.Allocator_Error) { @@ -88,11 +88,11 @@ Sets and allocates the entry if it wasn't set yet *Allocate using the Intern's Allocator (First time string is seen only)* -**Inputs** +Inputs: - m: A pointer to the Intern struct - text: The string to be looked up or interned -**Returns** +Returns: The new or existing interned entry and an allocator error if any */ _intern_get_entry :: proc(m: ^Intern, text: string) -> (new_entry: ^Intern_Entry, err: runtime.Allocator_Error) #no_bounds_check { diff --git a/core/strings/reader.odin b/core/strings/reader.odin index 917092ad6..715e57ada 100644 --- a/core/strings/reader.odin +++ b/core/strings/reader.odin @@ -16,7 +16,7 @@ Reader :: struct { /* Initializes a string Reader with the provided string -**Inputs** +Inputs: - r: A pointer to a Reader struct - s: The input string to be read */ @@ -28,10 +28,10 @@ reader_init :: proc(r: ^Reader, s: string) { /* Converts a Reader into an `io.Stream` -**Inputs** +Inputs: - r: A pointer to a Reader struct -**Returns** +Returns: An io.Stream for the given Reader */ reader_to_stream :: proc(r: ^Reader) -> (s: io.Stream) { @@ -42,11 +42,11 @@ reader_to_stream :: proc(r: ^Reader) -> (s: io.Stream) { /* Initializes a string Reader and returns an `io.Reader` for the given string -**Inputs** +Inputs: - r: A pointer to a Reader struct - s: The input string to be read -**Returns** +Returns: An io.Reader for the given string */ to_reader :: proc(r: ^Reader, s: string) -> io.Reader { @@ -57,11 +57,11 @@ to_reader :: proc(r: ^Reader, s: string) -> io.Reader { /* Initializes a string Reader and returns an `io.Reader_At` for the given string -**Inputs** +Inputs: - r: A pointer to a Reader struct - s: The input string to be read -**Returns** +Returns: An `io.Reader_At` for the given string */ to_reader_at :: proc(r: ^Reader, s: string) -> io.Reader_At { @@ -72,10 +72,10 @@ to_reader_at :: proc(r: ^Reader, s: string) -> io.Reader_At { /* Returns the remaining length of the Reader -**Inputs** +Inputs: - r: A pointer to a Reader struct -**Returns** +Returns: The remaining length of the Reader */ reader_length :: proc(r: ^Reader) -> int { @@ -87,10 +87,10 @@ reader_length :: proc(r: ^Reader) -> int { /* Returns the length of the string stored in the Reader -**Inputs** +Inputs: - r: A pointer to a Reader struct -**Returns** +Returns: The length of the string stored in the Reader */ reader_size :: proc(r: ^Reader) -> i64 { @@ -99,11 +99,11 @@ reader_size :: proc(r: ^Reader) -> i64 { /* Reads len(p) bytes from the Reader's string and copies into the provided slice. -**Inputs** +Inputs: - r: A pointer to a Reader struct - p: A byte slice to copy data into -**Returns** +Returns: - n: The number of bytes read - err: An `io.Error` if an error occurs while reading, including `.EOF`, otherwise `nil` denotes success. */ @@ -119,12 +119,12 @@ reader_read :: proc(r: ^Reader, p: []byte) -> (n: int, err: io.Error) { /* Reads len(p) bytes from the Reader's string and copies into the provided slice, at the specified offset from the current index. -**Inputs** +Inputs: - r: A pointer to a Reader struct - p: A byte slice to copy data into - off: The offset from which to read -**Returns** +Returns: - n: The number of bytes read - err: An `io.Error` if an error occurs while reading, including `.EOF`, otherwise `nil` denotes success. */ @@ -144,10 +144,10 @@ reader_read_at :: proc(r: ^Reader, p: []byte, off: i64) -> (n: int, err: io.Erro /* Reads and returns a single byte from the Reader's string -**Inputs** +Inputs: - r: A pointer to a Reader struct -**Returns** +Returns: - The byte read from the Reader - err: An `io.Error` if an error occurs while reading, including `.EOF`, otherwise `nil` denotes success. */ @@ -163,10 +163,10 @@ reader_read_byte :: proc(r: ^Reader) -> (byte, io.Error) { /* Decrements the Reader's index (i) by 1 -**Inputs** +Inputs: - r: A pointer to a Reader struct -**Returns** +Returns: An `io.Error` if `r.i <= 0` (`.Invalid_Unread`), otherwise `nil` denotes success. */ reader_unread_byte :: proc(r: ^Reader) -> io.Error { @@ -180,10 +180,10 @@ reader_unread_byte :: proc(r: ^Reader) -> io.Error { /* Reads and returns a single rune and its `size` from the Reader's string -**Inputs** +Inputs: - r: A pointer to a Reader struct -**Returns** +Returns: - rr: The rune read from the Reader - size: The size of the rune in bytes - err: An `io.Error` if an error occurs while reading @@ -205,12 +205,12 @@ reader_read_rune :: proc(r: ^Reader) -> (rr: rune, size: int, err: io.Error) { /* Decrements the Reader's index (i) by the size of the last read rune -**Inputs** +Inputs: - r: A pointer to a Reader struct WARNING: May only be used once and after a valid `read_rune` call -**Returns** +Returns: An `io.Error` if an error occurs while unreading (`.Invalid_Unread`), else `nil` denotes success. */ reader_unread_rune :: proc(r: ^Reader) -> io.Error { @@ -227,12 +227,12 @@ reader_unread_rune :: proc(r: ^Reader) -> io.Error { /* Seeks the Reader's index to a new position -**Inputs** +Inputs: - r: A pointer to a Reader struct - offset: The new offset position - whence: The reference point for the new position (`.Start`, `.Current`, or `.End`) -**Returns** +Returns: - The absolute offset after seeking - err: An `io.Error` if an error occurs while seeking (`.Invalid_Whence`, `.Invalid_Offset`) */ @@ -259,13 +259,13 @@ reader_seek :: proc(r: ^Reader, offset: i64, whence: io.Seek_From) -> (i64, io.E /* Writes the remaining content of the Reader's string into the provided `io.Writer` -**Inputs** +Inputs: - r: A pointer to a Reader struct - w: The io.Writer to write the remaining content into WARNING: Panics if writer writes more bytes than remainig length of string. -**Returns** +Returns: - n: The number of bytes written - err: An io.Error if an error occurs while writing (`.Short_Write`) */ diff --git a/core/strings/strings.odin b/core/strings/strings.odin index 8cb046bd6..3c55374b7 100644 --- a/core/strings/strings.odin +++ b/core/strings/strings.odin @@ -11,12 +11,12 @@ Clones a string *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to be cloned - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: #caller_location) -**Returns** +Returns: A cloned string */ clone :: proc(s: string, allocator := context.allocator, loc := #caller_location) -> string { @@ -29,12 +29,12 @@ Clones a string safely (returns early with an allocation error on failure) *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to be cloned - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: #caller_location) -**Returns** +Returns: - str: A cloned string - err: A mem.Allocator_Error if an error occurs during allocation */ @@ -48,12 +48,12 @@ Clones a string and appends a null-byte to make it a cstring *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to be cloned - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: #caller_location) -**Returns** +Returns: A cloned cstring with an appended null-byte */ clone_to_cstring :: proc(s: string, allocator := context.allocator, loc := #caller_location) -> cstring { @@ -65,29 +65,29 @@ clone_to_cstring :: proc(s: string, allocator := context.allocator, loc := #call /* Transmutes a raw pointer into a string. Non-allocating. -**Inputs** +Inputs: - ptr: A pointer to the start of the byte sequence - len: The length of the byte sequence NOTE: The created string is only valid as long as the pointer and length are valid. -**Returns** +Returns: A string created from the byte pointer and length */ string_from_ptr :: proc(ptr: ^byte, len: int) -> string { return transmute(string)mem.Raw_String{ptr, len} } /* -Transmutes a raw pointer (null-terminated) into a string. Non-allocating. Searches for a null-byte from `0.. string { @@ -98,10 +98,10 @@ string_from_null_terminated_ptr :: proc(ptr: ^byte, len: int) -> string { /* Gets the raw byte pointer for the start of a string `str` -**Inputs** +Inputs: - str: The input string -**Returns** +Returns: A pointer to the start of the string's bytes */ ptr_from_string :: proc(str: string) -> ^byte { @@ -111,12 +111,12 @@ ptr_from_string :: proc(str: string) -> ^byte { /* Converts a string `str` to a cstring -**Inputs** +Inputs: - str: The input string WARNING: This is unsafe because the original string may not contain a null-byte. -**Returns** +Returns: The converted cstring */ unsafe_string_to_cstring :: proc(str: string) -> cstring { @@ -126,13 +126,13 @@ unsafe_string_to_cstring :: proc(str: string) -> cstring { /* Truncates a string `str` at the first occurrence of char/byte `b` -**Inputs** +Inputs: - str: The input string - b: The byte to truncate the string at NOTE: Failure to find the byte results in returning the entire string. -**Returns** +Returns: The truncated string */ truncate_to_byte :: proc(str: string, b: byte) -> string { @@ -145,11 +145,11 @@ truncate_to_byte :: proc(str: string, b: byte) -> string { /* Truncates a string `str` at the first occurrence of rune `r` as a slice of the original, entire string if not found -**Inputs** +Inputs: - str: The input string - r: The rune to truncate the string at -**Returns** +Returns: The truncated string */ truncate_to_rune :: proc(str: string, r: rune) -> string { @@ -164,12 +164,12 @@ Clones a byte array `s` and appends a null-byte *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The byte array to be cloned - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: `#caller_location`) -**Returns** +Returns: A cloned string from the byte array with a null-byte */ clone_from_bytes :: proc(s: []byte, allocator := context.allocator, loc := #caller_location) -> string { @@ -183,12 +183,12 @@ Clones a cstring `s` as a string *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The cstring to be cloned - allocator: (default: context.allocator) - loc: The caller location for debugging purposes (default: `#caller_location`) -**Returns** +Returns: A cloned string from the cstring */ clone_from_cstring :: proc(s: cstring, allocator := context.allocator, loc := #caller_location) -> string { @@ -199,7 +199,7 @@ Clones a string from a byte pointer `ptr` and a byte length `len` *Allocates Using Provided Allocator* -**Inputs** +Inputs: - ptr: A pointer to the start of the byte sequence - len: The length of the byte sequence - allocator: (default: context.allocator) @@ -207,7 +207,7 @@ Clones a string from a byte pointer `ptr` and a byte length `len` NOTE: Same as `string_from_ptr`, but perform an additional `clone` operation -**Returns** +Returns: A cloned string from the byte pointer and length */ clone_from_ptr :: proc(ptr: ^byte, len: int, allocator := context.allocator, loc := #caller_location) -> string { @@ -226,7 +226,7 @@ Clones a string from a null-terminated cstring `ptr` and a byte length `len` *Allocates Using Provided Allocator* -**Inputs** +Inputs: - ptr: A pointer to the start of the null-terminated cstring - len: The byte length of the cstring - allocator: (default: context.allocator) @@ -234,7 +234,7 @@ Clones a string from a null-terminated cstring `ptr` and a byte length `len` NOTE: Truncates at the first null-byte encountered or the byte length. -**Returns** +Returns: A cloned string from the null-terminated cstring and byte length */ clone_from_cstring_bounded :: proc(ptr: cstring, len: int, allocator := context.allocator, loc := #caller_location) -> string { @@ -246,11 +246,11 @@ clone_from_cstring_bounded :: proc(ptr: cstring, len: int, allocator := context. Compares two strings, returning a value representing which one comes first lexicographically. -1 for `lhs`; 1 for `rhs`, or 0 if they are equal. -**Inputs** +Inputs: - lhs: First string for comparison - rhs: Second string for comparison -**Returns** +Returns: -1 if `lhs` comes first, 1 if `rhs` comes first, or 0 if they are equal */ compare :: proc(lhs, rhs: string) -> int { @@ -259,11 +259,11 @@ compare :: proc(lhs, rhs: string) -> int { /* Returns the byte offset of the rune `r` in the string `s`, -1 when not found -**Inputs** +Inputs: - s: The input string - r: The rune to search for -**Returns** +Returns: The byte offset of the rune `r` in the string `s`, or -1 if not found */ contains_rune :: proc(s: string, r: rune) -> int { @@ -277,10 +277,13 @@ contains_rune :: proc(s: string, r: rune) -> int { /* Returns true when the string `substr` is contained inside the string `s` -**Inputs** +Inputs: - s: The input string - substr: The substring to search for +Returns: +`true` if `substr` is contained inside the string `s`, `false` otherwise + Example: import "core:fmt" @@ -298,8 +301,6 @@ Output: true false -**Returns** -`true` if `substr` is contained inside the string `s`, `false` otherwise */ contains :: proc(s, substr: string) -> bool { return index(s, substr) >= 0 @@ -307,10 +308,13 @@ contains :: proc(s, substr: string) -> bool { /* Returns `true` when the string `s` contains any of the characters inside the string `chars` -**Inputs** +Inputs: - s: The input string - chars: The characters to search for +Returns: +`true` if the string `s` contains any of the characters in `chars`, `false` otherwise + Example: import "core:fmt" @@ -330,8 +334,6 @@ Output: true false -**Returns** -`true` if the string `s` contains any of the characters in `chars`, `false` otherwise */ contains_any :: proc(s, chars: string) -> bool { return index_any(s, chars) >= 0 @@ -339,9 +341,12 @@ contains_any :: proc(s, chars: string) -> bool { /* Returns the UTF-8 rune count of the string `s` -**Inputs** +Inputs: - s: The input string +Returns: +The UTF-8 rune count of the string `s` + Example: import "core:fmt" @@ -357,8 +362,6 @@ Output: 4 5 -**Returns** -The UTF-8 rune count of the string `s` */ rune_count :: proc(s: string) -> int { return utf8.rune_count_in_string(s) @@ -367,10 +370,13 @@ rune_count :: proc(s: string) -> int { Returns whether the strings `u` and `v` are the same alpha characters, ignoring different casings Works with UTF-8 string content -**Inputs** +Inputs: - u: The first string for comparison - v: The second string for comparison +Returns: +`true` if the strings `u` and `v` are the same alpha characters (ignoring case) + Example: import "core:fmt" @@ -390,8 +396,6 @@ Output: true false -**Returns** -`true` if the strings `u` and `v` are the same alpha characters (ignoring case) */ equal_fold :: proc(u, v: string) -> bool { s, t := u, v @@ -438,10 +442,13 @@ equal_fold :: proc(u, v: string) -> bool { /* Returns the prefix length common between strings `a` and `b` -**Inputs** +Inputs: - a: The first input string - b: The second input string +Returns: +The prefix length common between strings `a` and `b` + Example: import "core:fmt" @@ -461,8 +468,6 @@ Output: 2 0 -**Returns** -The prefix length common between strings `a` and `b` */ prefix_length :: proc(a, b: string) -> (n: int) { _len := min(len(a), len(b)) @@ -490,10 +495,13 @@ prefix_length :: proc(a, b: string) -> (n: int) { /* Determines if a string `s` starts with a given `prefix` -**Inputs** +Inputs: - s: The string to check for the `prefix` - prefix: The prefix to look for +Returns: +`true` if the string `s` starts with the `prefix`, otherwise `false` + Example: import "core:fmt" @@ -513,8 +521,6 @@ Output: true false -**Returns** -`true` if the string `s` starts with the `prefix`, otherwise `false` */ has_prefix :: proc(s, prefix: string) -> bool { return len(s) >= len(prefix) && s[0:len(prefix)] == prefix @@ -522,6 +528,13 @@ has_prefix :: proc(s, prefix: string) -> bool { /* Determines if a string `s` ends with a given `suffix` +Inputs: +- s: The string to check for the `suffix` +- suffix: The suffix to look for + +Returns: +`true` if the string `s` ends with the `suffix`, otherwise `false` + Example: import "core:fmt" @@ -539,12 +552,6 @@ Output: false true -**Inputs** -- s: The string to check for the `suffix` -- suffix: The suffix to look for - -**Returns** -`true` if the string `s` ends with the `suffix`, otherwise `false` */ has_suffix :: proc(s, suffix: string) -> bool { return len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix @@ -554,6 +561,14 @@ Joins a slice of strings `a` with a `sep` string *Allocates Using Provided Allocator* +Inputs: +- a: A slice of strings to join +- sep: The separator string +- allocator: (default is context.allocator) + +Returns: +A combined string from the slice of strings `a` separated with the `sep` string + Example: import "core:fmt" @@ -572,13 +587,6 @@ Output: a-b-c a...b...c -**Inputs** -- a: A slice of strings to join -- sep: The separator string -- allocator: (default is context.allocator) - -**Returns** -A combined string from the slice of strings `a` separated with the `sep` string */ join :: proc(a: []string, sep: string, allocator := context.allocator) -> string { if len(a) == 0 { @@ -603,12 +611,12 @@ Joins a slice of strings `a` with a `sep` string, returns an error on allocation *Allocates Using Provided Allocator* -**Inputs** +Inputs: - a: A slice of strings to join - sep: The separator string - allocator: (default is context.allocator) -**Returns** +Returns: - str: A combined string from the slice of strings `a` separated with the `sep` string - err: An error if allocation failed, otherwise `nil` */ @@ -635,10 +643,13 @@ Returns a combined string from the slice of strings `a` without a separator *Allocates Using Provided Allocator* -**Inputs** +Inputs: - a: A slice of strings to concatenate - allocator: (default is context.allocator) +Returns: +The concatenated string + Example: import "core:fmt" @@ -653,8 +664,6 @@ Output: abc -**Returns** -The concatenated string */ concatenate :: proc(a: []string, allocator := context.allocator) -> string { if len(a) == 0 { @@ -677,11 +686,11 @@ Returns a combined string from the slice of strings `a` without a separator, or *Allocates Using Provided Allocator* -**Inputs** +Inputs: - a: A slice of strings to concatenate - allocator: (default is context.allocator) -**Returns** +Returns: The concatenated string, and an error if allocation fails */ concatenate_safe :: proc(a: []string, allocator := context.allocator) -> (res: string, err: mem.Allocator_Error) { @@ -705,12 +714,15 @@ Returns a substring of the input string `s` with the specified rune offset and l *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to cut - rune_offset: The starting rune index (default is 0). In runes, not bytes. - rune_length: The number of runes to include in the substring (default is 0, which returns the remainder of the string). In runes, not bytes. - allocator: (default is context.allocator) +Returns: +The substring + Example: import "core:fmt" @@ -728,8 +740,6 @@ Output: me example -**Returns** -The substring */ cut :: proc(s: string, rune_offset := int(0), rune_length := int(0), allocator := context.allocator) -> (res: string) { s := s; rune_length := rune_length @@ -789,7 +799,7 @@ Splits the input string `s` into a slice of substrings separated by the specifie *Used Internally - Private Function* -**Inputs** +Inputs: - s: The input string to split - sep: The separator string - sep_save: A flag determining if the separator should be saved in the resulting substrings @@ -798,7 +808,7 @@ Splits the input string `s` into a slice of substrings separated by the specifie NOTE: Allocation occurs for the array, the splits are all views of the original string. -**Returns** +Returns: A slice of substrings */ @private @@ -853,11 +863,15 @@ Splits a string into parts based on a separator. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to split. - sep: The separator string used to split the input string. - allocator: (default is context.allocator). +Returns: A slice of strings, each representing a part of the split string. + +NOTE: Allocation occurs for the array, the splits are all views of the original string. + Example: import "core:fmt" @@ -873,9 +887,6 @@ Output: ["aaa", "bbb", "ccc", "ddd", "eee"] -NOTE: Allocation occurs for the array, the splits are all views of the original string. - -**Returns** A slice of strings, each representing a part of the split string. */ split :: proc(s, sep: string, allocator := context.allocator) -> []string { return _split(s, sep, 0, -1, allocator) @@ -885,11 +896,15 @@ Splits a string into parts based on a separator. If n < count of seperators, the *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to split. - sep: The separator string used to split the input string. - allocator: (default is context.allocator) +Returns: A slice of strings, each representing a part of the split string. + +NOTE: Allocation occurs for the array, the splits are all views of the original string. + Example: import "core:fmt" @@ -905,9 +920,6 @@ Output: ["aaa", "bbb", "ccc.ddd.eee"] -NOTE: Allocation occurs for the array, the splits are all views of the original string. - -**Returns** A slice of strings, each representing a part of the split string. */ split_n :: proc(s, sep: string, n: int, allocator := context.allocator) -> []string { return _split(s, sep, 0, n, allocator) @@ -917,11 +929,16 @@ Splits a string into parts after the separator, retaining it in the substrings. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to split. - sep: The separator string used to split the input string. - allocator: (default is context.allocator). +Returns: +A slice of strings, each representing a part of the split string after the separator. + +NOTE: Allocation occurs for the array, the splits are all views of the original string. + Example: import "core:fmt" @@ -937,10 +954,6 @@ Output: ["aaa.", "bbb.", "ccc.", "ddd.", "eee"] -NOTE: Allocation occurs for the array, the splits are all views of the original string. - -**Returns** -A slice of strings, each representing a part of the split string after the separator. */ split_after :: proc(s, sep: string, allocator := context.allocator) -> []string { return _split(s, sep, len(sep), -1, allocator) @@ -950,12 +963,17 @@ Splits a string into a total of `n` parts after the separator. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to split. - sep: The separator string used to split the input string. - n: The maximum number of parts to split the string into. - allocator: (default is context.allocator) +Returns: +A slice of strings with `n` parts or fewer if there weren't + +NOTE: Allocation occurs for the array, the splits are all views of the original string. + Example: import "core:fmt" @@ -971,10 +989,6 @@ Output: ["aaa.", "bbb.", "ccc.ddd.eee"] -NOTE: Allocation occurs for the array, the splits are all views of the original string. - -**Returns** -A slice of strings with `n` parts or fewer if there weren't */ split_after_n :: proc(s, sep: string, n: int, allocator := context.allocator) -> []string { return _split(s, sep, len(sep), n, allocator) @@ -985,12 +999,12 @@ up to (but not including) the separator, as well as a boolean indicating success *Used Internally - Private Function* -**Inputs** +Inputs: - s: Pointer to the input string, which is modified during the search. - sep: The separator string to search for. - sep_save: Number of characters from the separator to include in the result. -**Returns** +Returns: A tuple containing the resulting substring and a boolean indicating success. */ @private @@ -1023,10 +1037,13 @@ _split_iterator :: proc(s: ^string, sep: string, sep_save: int) -> (res: string, /* Splits the input string by the byte separator in an iterator fashion. -**Inputs** +Inputs: - s: Pointer to the input string, which is modified during the search. - sep: The byte separator to search for. +Returns: +A tuple containing the resulting substring and a boolean indicating success. + Example: import "core:fmt" @@ -1047,8 +1064,6 @@ Output: d e -**Returns** -A tuple containing the resulting substring and a boolean indicating success. */ split_by_byte_iterator :: proc(s: ^string, sep: u8) -> (res: string, ok: bool) { m := index_byte(s^, sep) @@ -1068,10 +1083,13 @@ split_by_byte_iterator :: proc(s: ^string, sep: u8) -> (res: string, ok: bool) { Splits the input string by the separator string in an iterator fashion. Destructively consumes the original string until the end. -**Inputs** +Inputs: - s: Pointer to the input string, which is modified during the search. - sep: The separator string to search for. +Returns: +A tuple containing the resulting substring and a boolean indicating success. + Example: import "core:fmt" @@ -1092,8 +1110,6 @@ Output: d e -**Returns** -A tuple containing the resulting substring and a boolean indicating success. */ split_iterator :: proc(s: ^string, sep: string) -> (string, bool) { return _split_iterator(s, sep, 0) @@ -1102,10 +1118,13 @@ split_iterator :: proc(s: ^string, sep: string) -> (string, bool) { Splits the input string after every separator string in an iterator fashion. Destructively consumes the original string until the end. -**Inputs** +Inputs: - s: Pointer to the input string, which is modified during the search. - sep: The separator string to search for. +Returns: +A tuple containing the resulting substring and a boolean indicating success. + Example: import "core:fmt" @@ -1126,8 +1145,6 @@ Output: d. e -**Returns** -A tuple containing the resulting substring and a boolean indicating success. */ split_after_iterator :: proc(s: ^string, sep: string) -> (string, bool) { return _split_iterator(s, sep, len(sep)) @@ -1137,10 +1154,10 @@ Trims the carriage return character from the end of the input string. *Used Internally - Private Function* -**Inputs** +Inputs: - s: The input string to trim. -**Returns** +Returns: The trimmed string as a slice of the original. */ @(private) @@ -1158,10 +1175,13 @@ Splits the input string at every line break `\n`. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to split. - allocator: (default is context.allocator) +Returns: +A slice (allocated) of the split string (slices into original string) + Example: import "core:fmt" @@ -1177,8 +1197,6 @@ Output: ["a", "b", "c", "d", "e"] -**Returns** -A slice (allocated) of the split string (slices into original string) */ split_lines :: proc(s: string, allocator := context.allocator) -> []string { sep :: "\n" @@ -1193,11 +1211,16 @@ Splits the input string at every line break `\n` for `n` parts. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to split. - n: The number of parts to split into. - allocator: (default is context.allocator) +Returns: +A slice (allocated) of the split string (slices into original string) + +NOTE: Allocation occurs for the array, the splits are all views of the original string. + Example: import "core:fmt" @@ -1213,10 +1236,6 @@ Output: ["a", "b", "c\nd\ne"] -NOTE: Allocation occurs for the array, the splits are all views of the original string. - -**Returns** -A slice (allocated) of the split string (slices into original string) */ split_lines_n :: proc(s: string, n: int, allocator := context.allocator) -> []string { sep :: "\n" @@ -1231,10 +1250,15 @@ Splits the input string at every line break `\n` leaving the `\n` in the resulti *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to split. - allocator: (default is context.allocator) +Returns: +A slice (allocated) of the split string (slices into original string), with `\n` included. + +NOTE: Allocation occurs for the array, the splits are all views of the original string. + Example: import "core:fmt" @@ -1250,10 +1274,6 @@ Output: ["a\n", "b\n", "c\n", "d\n", "e"] -NOTE: Allocation occurs for the array, the splits are all views of the original string. - -**Returns** -A slice (allocated) of the split string (slices into original string), with `\n` included. */ split_lines_after :: proc(s: string, allocator := context.allocator) -> []string { sep :: "\n" @@ -1269,11 +1289,16 @@ Only runs for n parts. *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string to split. - n: The number of parts to split into. - allocator: (default is context.allocator) +Returns: +A slice (allocated) of the split string (slices into original string), with `\n` included. + +NOTE: Allocation occurs for the array, the splits are all views of the original string. + Example: import "core:fmt" @@ -1289,10 +1314,6 @@ Output: ["a\n", "b\n", "c\nd\ne"] -NOTE: Allocation occurs for the array, the splits are all views of the original string. - -**Returns** -A slice (allocated) of the split string (slices into original string), with `\n` included. */ split_lines_after_n :: proc(s: string, n: int, allocator := context.allocator) -> []string { sep :: "\n" @@ -1306,9 +1327,12 @@ split_lines_after_n :: proc(s: string, n: int, allocator := context.allocator) - Splits the input string at every line break `\n`. Returns the current split string every iteration until the string is consumed. -**Inputs** +Inputs: - s: Pointer to the input string, which is modified during the search. +Returns: +A tuple containing the resulting substring and a boolean indicating success. + Example: import "core:fmt" @@ -1326,8 +1350,6 @@ Output: abcde -**Returns** -A tuple containing the resulting substring and a boolean indicating success. */ split_lines_iterator :: proc(s: ^string) -> (line: string, ok: bool) { sep :: "\n" @@ -1338,9 +1360,12 @@ split_lines_iterator :: proc(s: ^string) -> (line: string, ok: bool) { Splits the input string at every line break `\n`. Returns the current split string with line breaks included every iteration until the string is consumed. -**Inputs** +Inputs: - s: Pointer to the input string, which is modified during the search. +Returns: +A tuple containing the resulting substring with line breaks included and a boolean indicating success. + Example: import "core:fmt" @@ -1361,8 +1386,6 @@ Output: d e -**Returns** -A tuple containing the resulting substring with line breaks included and a boolean indicating success. */ split_lines_after_iterator :: proc(s: ^string) -> (line: string, ok: bool) { sep :: "\n" @@ -1373,10 +1396,13 @@ split_lines_after_iterator :: proc(s: ^string) -> (line: string, ok: bool) { Returns the byte offset of the first byte `c` in the string s it finds, -1 when not found. NOTE: Can't find UTF-8 based runes. -**Inputs** +Inputs: - s: The input string to search in. - c: The byte to search for. +Returns: +The byte offset of the first occurrence of `c` in `s`, or -1 if not found. + Example: import "core:fmt" @@ -1396,8 +1422,6 @@ Output: -1 -1 -**Returns** -The byte offset of the first occurrence of `c` in `s`, or -1 if not found. */ index_byte :: proc(s: string, c: byte) -> int { for i := 0; i < len(s); i += 1 { @@ -1409,6 +1433,14 @@ index_byte :: proc(s: string, c: byte) -> int { } /* Returns the byte offset of the last byte `c` in the string `s`, -1 when not found. + +Inputs: +- s: The input string to search in. +- c: The byte to search for. + +Returns: +The byte offset of the last occurrence of `c` in `s`, or -1 if not found. + NOTE: Can't find UTF-8 based runes. Example: @@ -1430,8 +1462,6 @@ Output: -1 -1 -**Returns** -The byte offset of the last occurrence of `c` in `s`, or -1 if not found. */ last_index_byte :: proc(s: string, c: byte) -> int { for i := len(s)-1; i >= 0; i -= 1 { @@ -1445,6 +1475,13 @@ last_index_byte :: proc(s: string, c: byte) -> int { Returns the byte offset of the first rune `r` in the string `s` it finds, -1 when not found. Invalid runes return -1 +Inputs: +- s: The input string to search in. +- r: The rune to search for. + +Returns: +The byte offset of the first occurrence of `r` in `s`, or -1 if not found. + Example: import "core:fmt" @@ -1472,8 +1509,6 @@ Output: 6 7 -**Returns** -The byte offset of the first occurrence of `r` in `s`, or -1 if not found. */ index_rune :: proc(s: string, r: rune) -> int { switch { @@ -1500,6 +1535,13 @@ index_rune :: proc(s: string, r: rune) -> int { /* Returns the byte offset of the string `substr` in the string `s`, -1 when not found. +Inputs: +- s: The input string to search in. +- substr: The substring to search for. + +Returns: +The byte offset of the first occurrence of `substr` in `s`, or -1 if not found. + Example: import "core:fmt" @@ -1519,8 +1561,6 @@ Output: 2 -1 -**Returns** -The byte offset of the first occurrence of `substr` in `s`, or -1 if not found. */ index :: proc(s, substr: string) -> int { hash_str_rabin_karp :: proc(s: string) -> (hash: u32 = 0, pow: u32 = 1) { @@ -1574,6 +1614,13 @@ index :: proc(s, substr: string) -> int { /* Returns the last byte offset of the string `substr` in the string `s`, -1 when not found. +Inputs: +- s: The input string to search in. +- substr: The substring to search for. + +Returns: +The byte offset of the last occurrence of `substr` in `s`, or -1 if not found. + Example: import "core:fmt" @@ -1593,8 +1640,6 @@ Output: 2 -1 -**Returns** -The byte offset of the last occurrence of `substr` in `s`, or -1 if not found. */ last_index :: proc(s, substr: string) -> int { hash_str_rabin_karp_reverse :: proc(s: string) -> (hash: u32 = 0, pow: u32 = 1) { @@ -1646,6 +1691,13 @@ last_index :: proc(s, substr: string) -> int { /* Returns the index of any first char of `chars` found in `s`, -1 if not found. +Inputs: +- s: The input string to search in. +- chars: The characters to look for + +Returns: +The index of the first character of `chars` found in `s`, or -1 if not found. + Example: import "core:fmt" @@ -1667,8 +1719,6 @@ Output: 0 -1 -**Returns** -The index of the first character of `chars` found in `s`, or -1 if not found. */ index_any :: proc(s, chars: string) -> int { if chars == "" { @@ -1704,10 +1754,13 @@ index_any :: proc(s, chars: string) -> int { /* Finds the last occurrence of any character in `chars` within `s`. Iterates in reverse. -**Inputs** +Inputs: - s: The string to search in - chars: The characters to look for +Returns: +The index of the last matching character, or -1 if not found + Example: import "core:fmt" @@ -1729,8 +1782,6 @@ Output: 3 -1 -**Returns** -The index of the last matching character, or -1 if not found */ last_index_any :: proc(s, chars: string) -> int { if chars == "" { @@ -1783,11 +1834,11 @@ last_index_any :: proc(s, chars: string) -> int { /* Finds the first occurrence of any substring in `substrs` within `s` -**Inputs** +Inputs: - s: The string to search in - substrs: The substrings to look for -**Returns** +Returns: A tuple containing the index of the first matching substring, and its length (width) */ index_multi :: proc(s: string, substrs: []string) -> (idx: int, width: int) { @@ -1822,10 +1873,13 @@ index_multi :: proc(s: string, substrs: []string) -> (idx: int, width: int) { /* Counts the number of non-overlapping occurrences of `substr` in `s` -**Inputs** +Inputs: - s: The string to search in - substr: The substring to count +Returns: +The number of occurrences of `substr` in `s`, returns the rune_count + 1 of the string `s` on empty `substr` + Example: import "core:fmt" @@ -1847,8 +1901,6 @@ Output: 1 0 -**Returns** -The number of occurrences of `substr` in `s`, returns the rune_count + 1 of the string `s` on empty `substr` */ count :: proc(s, substr: string) -> int { if len(substr) == 0 { // special case @@ -1889,11 +1941,14 @@ Repeats the string `s` `count` times, concatenating the result *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to repeat - count: The number of times to repeat `s` - allocator: (default is context.allocator) +Returns: +The concatenated repeated string + WARNING: Panics if count < 0 Example: @@ -1909,8 +1964,6 @@ Output: abcabc -**Returns** -The concatenated repeated string */ repeat :: proc(s: string, count: int, allocator := context.allocator) -> string { if count < 0 { @@ -1932,12 +1985,15 @@ Replaces all occurrences of `old` in `s` with `new` *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The string to modify - old: The substring to replace - new: The substring to replace `old` with - allocator: The allocator to use for the new string (default is context.allocator) +Returns: +A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement + Example: import "core:fmt" @@ -1955,8 +2011,6 @@ Output: xyzxyz false zzzz true -**Returns** -A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement */ replace_all :: proc(s, old, new: string, allocator := context.allocator) -> (output: string, was_allocation: bool) { return replace(s, old, new, -1, allocator) @@ -1966,13 +2020,16 @@ Replaces n instances of old in the string s with the new string *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - old: The substring to be replaced - new: The replacement string - n: The number of instances to replace (if `n < 0`, no limit on the number of replacements) - allocator: (default: context.allocator) +Returns: +A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement + Example: import "core:fmt" @@ -1992,8 +2049,6 @@ Output: xyzxyz false zzzz true -**Returns** -A tuple containing the modified string and a boolean indicating if an allocation occurred during the replacement */ replace :: proc(s, old, new: string, n: int, allocator := context.allocator) -> (output: string, was_allocation: bool) { if old == new || n == 0 { @@ -2039,12 +2094,15 @@ Removes the key string `n` times from the `s` string *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - key: The substring to be removed - n: The number of instances to remove (if `n < 0`, no limit on the number of removes) - allocator: (default: context.allocator) +Returns: +A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal + Example: import "core:fmt" @@ -2064,8 +2122,6 @@ Output: bcbc true abcabc false -**Returns** -A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal */ remove :: proc(s, key: string, n: int, allocator := context.allocator) -> (output: string, was_allocation: bool) { return replace(s, key, "", n, allocator) @@ -2075,11 +2131,14 @@ Removes all the `key` string instances from the `s` string *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - key: The substring to be removed - allocator: (default: context.allocator) +Returns: +A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal + Example: import "core:fmt" @@ -2097,8 +2156,6 @@ Output: bcbc true abcabc false -**Returns** -A tuple containing the modified string and a boolean indicating if an allocation occurred during the removal */ remove_all :: proc(s, key: string, allocator := context.allocator) -> (output: string, was_allocation: bool) { return remove(s, key, -1, allocator) @@ -2138,11 +2195,14 @@ is_null :: proc(r: rune) -> bool { /* Find the index of the first rune `r` in string `s` for which procedure `p` returns the same as truth, or -1 if no such rune appears. -**Inputs** +Inputs: - s: The input string - p: A procedure that takes a rune and returns a boolean - truth: The boolean value to be matched (default: `true`) +Returns: +The index of the first matching rune, or -1 if no match was found + Example: import "core:fmt" @@ -2167,8 +2227,6 @@ Output: 1 -1 -**Returns** -The index of the first matching rune, or -1 if no match was found */ index_proc :: proc(s: string, p: proc(rune) -> bool, truth := true) -> int { for r, i in s { @@ -2214,10 +2272,13 @@ last_index_proc_with_state :: proc(s: string, p: proc(rawptr, rune) -> bool, sta /* Trims the input string `s` from the left until the procedure `p` returns false -**Inputs** +Inputs: - s: The input string - p: A procedure that takes a rune and returns a boolean +Returns: +The trimmed string as a slice of the original + Example: import "core:fmt" @@ -2234,8 +2295,6 @@ Output: testing -**Returns** -The trimmed string as a slice of the original */ trim_left_proc :: proc(s: string, p: proc(rune) -> bool) -> string { i := index_proc(s, p, false) @@ -2247,12 +2306,12 @@ trim_left_proc :: proc(s: string, p: proc(rune) -> bool) -> string { /* Trims the input string `s` from the left until the procedure `p` with state returns false -**Inputs** +Inputs: - s: The input string - p: A procedure that takes a raw pointer and a rune and returns a boolean - state: The raw pointer to be passed to the procedure `p` -**Returns** +Returns: The trimmed string as a slice of the original */ trim_left_proc_with_state :: proc(s: string, p: proc(rawptr, rune) -> bool, state: rawptr) -> string { @@ -2265,10 +2324,13 @@ trim_left_proc_with_state :: proc(s: string, p: proc(rawptr, rune) -> bool, stat /* Trims the input string `s` from the right until the procedure `p` returns `false` -**Inputs** +Inputs: - s: The input string - p: A procedure that takes a rune and returns a boolean +Returns: +The trimmed string as a slice of the original + Example: import "core:fmt" @@ -2285,8 +2347,6 @@ Output: test -**Returns** -The trimmed string as a slice of the original */ trim_right_proc :: proc(s: string, p: proc(rune) -> bool) -> string { i := last_index_proc(s, p, false) @@ -2301,12 +2361,12 @@ trim_right_proc :: proc(s: string, p: proc(rune) -> bool) -> string { /* Trims the input string `s` from the right until the procedure `p` with state returns `false` -**Inputs** +Inputs: - s: The input string - p: A procedure that takes a raw pointer and a rune and returns a boolean - state: The raw pointer to be passed to the procedure `p` -**Returns** +Returns: The trimmed string as a slice of the original, empty when no match */ trim_right_proc_with_state :: proc(s: string, p: proc(rawptr, rune) -> bool, state: rawptr) -> string { @@ -2335,11 +2395,11 @@ is_in_cutset :: proc(state: rawptr, r: rune) -> bool { /* Trims the cutset string from the `s` string -**Inputs** +Inputs: - s: The input string - cutset: The set of characters to be trimmed from the left of the input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_left :: proc(s: string, cutset: string) -> string { @@ -2352,11 +2412,11 @@ trim_left :: proc(s: string, cutset: string) -> string { /* Trims the cutset string from the `s` string from the right -**Inputs** +Inputs: - s: The input string - cutset: The set of characters to be trimmed from the right of the input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_right :: proc(s: string, cutset: string) -> string { @@ -2369,11 +2429,11 @@ trim_right :: proc(s: string, cutset: string) -> string { /* Trims the cutset string from the `s` string, both from left and right -**Inputs** +Inputs: - s: The input string - cutset: The set of characters to be trimmed from both sides of the input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim :: proc(s: string, cutset: string) -> string { @@ -2382,10 +2442,10 @@ trim :: proc(s: string, cutset: string) -> string { /* Trims until a valid non-space rune from the left, "\t\txyz\t\t" -> "xyz\t\t" -**Inputs** +Inputs: - s: The input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_left_space :: proc(s: string) -> string { @@ -2394,10 +2454,10 @@ trim_left_space :: proc(s: string) -> string { /* Trims from the right until a valid non-space rune, "\t\txyz\t\t" -> "\t\txyz" -**Inputs** +Inputs: - s: The input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_right_space :: proc(s: string) -> string { @@ -2406,10 +2466,10 @@ trim_right_space :: proc(s: string) -> string { /* Trims from both sides until a valid non-space rune, "\t\txyz\t\t" -> "xyz" -**Inputs** +Inputs: - s: The input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_space :: proc(s: string) -> string { @@ -2418,10 +2478,10 @@ trim_space :: proc(s: string) -> string { /* Trims null runes from the left, "\x00\x00testing\x00\x00" -> "testing\x00\x00" -**Inputs** +Inputs: - s: The input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_left_null :: proc(s: string) -> string { @@ -2430,10 +2490,10 @@ trim_left_null :: proc(s: string) -> string { /* Trims null runes from the right, "\x00\x00testing\x00\x00" -> "\x00\x00testing" -**Inputs** +Inputs: - s: The input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_right_null :: proc(s: string) -> string { @@ -2442,9 +2502,9 @@ trim_right_null :: proc(s: string) -> string { /* Trims null runes from both sides, "\x00\x00testing\x00\x00" -> "testing" -**Inputs** +Inputs: - s: The input string -**Returns** +Returns: The trimmed string as a slice of the original */ trim_null :: proc(s: string) -> string { @@ -2453,10 +2513,13 @@ trim_null :: proc(s: string) -> string { /* Trims a `prefix` string from the start of the `s` string and returns the trimmed string -**Inputs** +Inputs: - s: The input string - prefix: The prefix string to be removed +Returns: +The trimmed string as a slice of original, or the input string if no prefix was found + Example: import "core:fmt" @@ -2472,8 +2535,6 @@ Output: ing testing -**Returns** -The trimmed string as a slice of original, or the input string if no prefix was found */ trim_prefix :: proc(s, prefix: string) -> string { if has_prefix(s, prefix) { @@ -2484,10 +2545,13 @@ trim_prefix :: proc(s, prefix: string) -> string { /* Trims a `suffix` string from the end of the `s` string and returns the trimmed string -**Inputs** +Inputs: - s: The input string - suffix: The suffix string to be removed +Returns: +The trimmed string as a slice of original, or the input string if no suffix was found + Example: import "core:fmt" @@ -2503,8 +2567,6 @@ Output: todo todo.doc -**Returns** -The trimmed string as a slice of original, or the input string if no suffix was found */ trim_suffix :: proc(s, suffix: string) -> string { if has_suffix(s, suffix) { @@ -2517,11 +2579,14 @@ Splits the input string `s` by all possible `substrs` and returns an allocated a *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - substrs: An array of substrings used for splitting - allocator: (default is context.allocator) +Returns: +An array of strings, or nil on empty substring or no matches + NOTE: Allocation occurs for the array, the splits are all views of the original string. Example: @@ -2539,8 +2604,6 @@ Output: ["testing", "this", "out", "nice", "done", "last"] -**Returns** -An array of strings, or nil on empty substring or no matches */ split_multi :: proc(s: string, substrs: []string, allocator := context.allocator) -> []string #no_bounds_check { if s == "" || len(substrs) <= 0 { @@ -2585,10 +2648,13 @@ split_multi :: proc(s: string, substrs: []string, allocator := context.allocator /* Splits the input string `s` by all possible `substrs` in an iterator fashion. The full string is returned if no match. -**Inputs** +Inputs: - it: A pointer to the input string - substrs: An array of substrings used for splitting +Returns: +A tuple containing the split string and a boolean indicating success or failure + Example: import "core:fmt" @@ -2611,8 +2677,6 @@ Output: done last -**Returns** -A tuple containing the split string and a boolean indicating success or failure */ split_multi_iterate :: proc(it: ^string, substrs: []string) -> (res: string, ok: bool) #no_bounds_check { if it == nil || len(it) == 0 || len(substrs) <= 0 { @@ -2644,11 +2708,14 @@ Replaces invalid UTF-8 characters in the input string with a specified replaceme *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - replacement: The string used to replace invalid UTF-8 characters - allocator: (default is context.allocator) +Returns: +A new string with invalid UTF-8 characters replaced + Example: import "core:fmt" @@ -2663,8 +2730,6 @@ Output: Hello? -**Returns** -A new string with invalid UTF-8 characters replaced */ scrub :: proc(s: string, replacement: string, allocator := context.allocator) -> string { str := s @@ -2702,10 +2767,13 @@ Reverses the input string `s` *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - allocator: (default is context.allocator) +Returns: +A reversed version of the input string + Example: import "core:fmt" @@ -2721,8 +2789,6 @@ Output: abcxyz zyxcba -**Returns** -A reversed version of the input string */ reverse :: proc(s: string, allocator := context.allocator) -> string { str := s @@ -2743,11 +2809,16 @@ Expands the input string by replacing tab characters with spaces to align to a s *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - tab_size: The number of spaces to use for each tab character - allocator: (default is context.allocator) +Returns: +A new string with tab characters expanded to the specified tab size + +WARNING: Panics if tab_size <= 0 + Example: import "core:fmt" @@ -2762,10 +2833,6 @@ Output: abc1 abc2 abc3 -WARNING: Panics if tab_size <= 0 - -**Returns** -A new string with tab characters expanded to the specified tab size */ expand_tabs :: proc(s: string, tab_size: int, allocator := context.allocator) -> string { if tab_size <= 0 { @@ -2811,10 +2878,13 @@ expand_tabs :: proc(s: string, tab_size: int, allocator := context.allocator) -> /* Splits the input string `str` by the separator `sep` string and returns 3 parts. The values are slices of the original string. -**Inputs** +Inputs: - str: The input string - sep: The separator string +Returns: +A tuple with `head` (before the split), `match` (the separator), and `tail` (the end of the split) strings + Example: import "core:fmt" @@ -2840,8 +2910,6 @@ Output: true true -**Returns** -A tuple with `head` (before the split), `match` (the separator), and `tail` (the end of the split) strings */ partition :: proc(str, sep: string) -> (head, match, tail: string) { i := index(str, sep) @@ -2862,13 +2930,13 @@ Centers the input string within a field of specified length by adding pad string *Allocates Using Provided Allocator* -**Inputs** +Inputs: - str: The input string - length: The desired length of the centered string, in runes - pad: The string used for padding on both sides - allocator: (default is context.allocator) -**Returns** +Returns: A new string centered within a field of the specified length */ centre_justify :: proc(str: string, length: int, pad: string, allocator := context.allocator) -> string { @@ -2897,13 +2965,13 @@ Left-justifies the input string within a field of specified length by adding pad *Allocates Using Provided Allocator* -**Inputs** +Inputs: - str: The input string - length: The desired length of the left-justified string - pad: The string used for padding on the right side - allocator: (default is context.allocator) -**Returns** +Returns: A new string left-justified within a field of the specified length */ left_justify :: proc(str: string, length: int, pad: string, allocator := context.allocator) -> string { @@ -2931,13 +2999,13 @@ Right-justifies the input string within a field of specified length by adding pa *Allocates Using Provided Allocator* -**Inputs** +Inputs: - str: The input string - length: The desired length of the right-justified string - pad: The string used for padding on the left side - allocator: (default is context.allocator) -**Returns** +Returns: A new string right-justified within a field of the specified length */ right_justify :: proc(str: string, length: int, pad: string, allocator := context.allocator) -> string { @@ -2963,7 +3031,7 @@ right_justify :: proc(str: string, length: int, pad: string, allocator := contex /* Writes a given pad string a specified number of times to an `io.Writer` -**Inputs** +Inputs: - w: The io.Writer to write the pad string to - pad: The pad string to be written - pad_len: The length of the pad string, in runes @@ -2991,11 +3059,11 @@ Splits a string into a slice of substrings at each instance of one or more conse *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - allocator: (default is context.allocator) -**Returns** +Returns: A slice of substrings of the input string, or an empty slice if the input string only contains white space */ fields :: proc(s: string, allocator := context.allocator) -> []string #no_bounds_check { @@ -3051,14 +3119,14 @@ Splits a string into a slice of substrings at each run of unicode code points `r *Allocates Using Provided Allocator* -**Inputs** +Inputs: - s: The input string - f: A predicate function to determine the split points - allocator: (default is context.allocator) NOTE: fields_proc makes no guarantee about the order in which it calls `f(r)`, it assumes that `f` always returns the same value for a given `r` -**Returns** +Returns: A slice of substrings of the input string, or an empty slice if all code points in the input string satisfy the predicate or if the input string is empty */ fields_proc :: proc(s: string, f: proc(rune) -> bool, allocator := context.allocator) -> []string #no_bounds_check { @@ -3090,10 +3158,10 @@ fields_proc :: proc(s: string, f: proc(rune) -> bool, allocator := context.alloc /* Retrieves the first non-space substring from a mutable string reference and advances the reference. `s` is advanced from any space after the substring, or be an empty string if the substring was the remaining characters -**Inputs** +Inputs: - s: A mutable string reference to be iterated -**Returns** +Returns: - field: The first non-space substring found - ok: A boolean indicating if a non-space substring was found */ @@ -3132,11 +3200,11 @@ Computes the Levenshtein edit distance between two strings NOTE: Does not perform internal allocation if length of string `b`, in runes, is smaller than 64 -**Inputs** +Inputs: - a, b: The two strings to compare - allocator: (default is context.allocator) -**Returns** +Returns: The Levenshtein edit distance between the two strings NOTE: This implementation is a single-row-version of the Wagner–Fischer algorithm, based on C code by Martin Ettl. From c59ad24856303c253fbc09f9e4e4f22fa9129f80 Mon Sep 17 00:00:00 2001 From: Lucas Perlind Date: Mon, 3 Apr 2023 13:38:36 +1000 Subject: [PATCH 17/50] Make tests scripts error if a test fails Additionally fixes tests that were found broken because of this. --- core/crypto/util/util.odin | 2 + tests/core/build.bat | 43 +++++++++------------ tests/core/compress/test_core_compress.odin | 7 ++++ tests/documentation/build.bat | 5 ++- tests/internal/build.bat | 2 +- tests/issues/run.bat | 13 ++----- tests/vendor/build.bat | 4 +- 7 files changed, 38 insertions(+), 38 deletions(-) diff --git a/core/crypto/util/util.odin b/core/crypto/util/util.odin index 6273a232e..b9b80124a 100644 --- a/core/crypto/util/util.odin +++ b/core/crypto/util/util.odin @@ -11,6 +11,8 @@ package util */ import "core:mem" +// Keep vet happy +_ :: mem // @note(bp): this can replace the other two cast_slice :: #force_inline proc "contextless" ($D: typeid/[]$DE, src: $S/[]$SE) -> D { diff --git a/tests/core/build.bat b/tests/core/build.bat index 5a86e5b41..1d146c8a4 100644 --- a/tests/core/build.bat +++ b/tests/core/build.bat @@ -6,87 +6,82 @@ python3 download_assets.py echo --- echo Running core:image tests echo --- -%PATH_TO_ODIN% run image %COMMON% -out:test_core_image.exe +%PATH_TO_ODIN% run image %COMMON% -out:test_core_image.exe || exit /b echo --- echo Running core:compress tests echo --- -%PATH_TO_ODIN% run compress %COMMON% -out:test_core_compress.exe +%PATH_TO_ODIN% run compress %COMMON% -out:test_core_compress.exe || exit /b echo --- echo Running core:strings tests echo --- -%PATH_TO_ODIN% run strings %COMMON% -out:test_core_strings.exe +%PATH_TO_ODIN% run strings %COMMON% -out:test_core_strings.exe || exit /b echo --- echo Running core:hash tests echo --- -%PATH_TO_ODIN% run hash %COMMON% -o:size -out:test_core_hash.exe +%PATH_TO_ODIN% run hash %COMMON% -o:size -out:test_core_hash.exe || exit /b echo --- echo Running core:odin tests echo --- -%PATH_TO_ODIN% run odin %COMMON% -o:size -out:test_core_odin.exe +%PATH_TO_ODIN% run odin %COMMON% -o:size -out:test_core_odin.exe || exit /b echo --- echo Running core:crypto hash tests echo --- -%PATH_TO_ODIN% run crypto %COMMON% -out:test_crypto_hash.exe +%PATH_TO_ODIN% run crypto %COMMON% -out:test_crypto_hash.exe || exit /b echo --- echo Running core:encoding tests echo --- -%PATH_TO_ODIN% run encoding/hxa %COMMON% %COLLECTION% -out:test_hxa.exe -%PATH_TO_ODIN% run encoding/json %COMMON% -out:test_json.exe -%PATH_TO_ODIN% run encoding/varint %COMMON% -out:test_varint.exe -%PATH_TO_ODIN% run encoding/xml %COMMON% -out:test_xml.exe +%PATH_TO_ODIN% run encoding/hxa %COMMON% %COLLECTION% -out:test_hxa.exe || exit /b +%PATH_TO_ODIN% run encoding/json %COMMON% -out:test_json.exe || exit /b +%PATH_TO_ODIN% run encoding/varint %COMMON% -out:test_varint.exe || exit /b +%PATH_TO_ODIN% run encoding/xml %COMMON% -out:test_xml.exe || exit /b echo --- echo Running core:math/noise tests echo --- -%PATH_TO_ODIN% run math/noise %COMMON% -out:test_noise.exe +%PATH_TO_ODIN% run math/noise %COMMON% -out:test_noise.exe || exit /b echo --- echo Running core:math tests echo --- -%PATH_TO_ODIN% run math %COMMON% %COLLECTION% -out:test_core_math.exe +%PATH_TO_ODIN% run math %COMMON% %COLLECTION% -out:test_core_math.exe || exit /b echo --- echo Running core:math/linalg/glsl tests echo --- -%PATH_TO_ODIN% run math/linalg/glsl %COMMON% %COLLECTION% -out:test_linalg_glsl.exe +%PATH_TO_ODIN% run math/linalg/glsl %COMMON% %COLLECTION% -out:test_linalg_glsl.exe || exit /b echo --- echo Running core:path/filepath tests echo --- -%PATH_TO_ODIN% run path/filepath %COMMON% %COLLECTION% -out:test_core_filepath.exe +%PATH_TO_ODIN% run path/filepath %COMMON% %COLLECTION% -out:test_core_filepath.exe || exit /b echo --- echo Running core:reflect tests echo --- -%PATH_TO_ODIN% run reflect %COMMON% %COLLECTION% -out:test_core_reflect.exe +%PATH_TO_ODIN% run reflect %COMMON% %COLLECTION% -out:test_core_reflect.exe || exit /b echo --- echo Running core:text/i18n tests echo --- -%PATH_TO_ODIN% run text\i18n %COMMON% -out:test_core_i18n.exe +%PATH_TO_ODIN% run text\i18n %COMMON% -out:test_core_i18n.exe || exit /b echo --- echo Running core:net echo --- -%PATH_TO_ODIN% run net %COMMON% -out:test_core_net.exe - -echo --- -echo Running core:text/lua tests -echo --- -%PATH_TO_ODIN% run text\lua %COMMON% -out:test_core_lua_strlib.exe +%PATH_TO_ODIN% run net %COMMON% -out:test_core_net.exe || exit /b echo --- echo Running core:slice tests echo --- -%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe +%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b echo --- echo Running core:container tests echo --- -%PATH_TO_ODIN% run container %COMMON% %COLLECTION% -out:test_core_container.exe +%PATH_TO_ODIN% run container %COMMON% %COLLECTION% -out:test_core_container.exe || exit /b diff --git a/tests/core/compress/test_core_compress.odin b/tests/core/compress/test_core_compress.odin index ee7233e52..ac7555e9a 100644 --- a/tests/core/compress/test_core_compress.odin +++ b/tests/core/compress/test_core_compress.odin @@ -151,6 +151,13 @@ shoco_test :: proc(t: ^testing.T) { } for v in Shoco_Tests { + when ODIN_OS == .Windows { + v := v + // Compressed source files are not encoded with carriage returns but git replaces raw files lf with crlf on commit (on windows only) + // So replace crlf with lf on windows + v.raw, _ = bytes.replace_all(v.raw, { 0xD, 0xA }, { 0xA }) + } + expected_raw := len(v.raw) expected_compressed := len(v.compressed) diff --git a/tests/documentation/build.bat b/tests/documentation/build.bat index 1e92e3ba5..6ca90fbad 100644 --- a/tests/documentation/build.bat +++ b/tests/documentation/build.bat @@ -4,9 +4,10 @@ set PATH_TO_ODIN==..\..\odin echo --- echo Building Documentation File echo --- -%PATH_TO_ODIN% doc ..\..\examples\all -all-packages -doc-format +%PATH_TO_ODIN% doc ..\..\examples\all -all-packages -doc-format || exit /b + echo --- echo Running Documentation Tester echo --- -%PATH_TO_ODIN% run documentation_tester.odin -file -vet -strict-style -- %PATH_TO_ODIN% +%PATH_TO_ODIN% run documentation_tester.odin -file -vet -strict-style -- %PATH_TO_ODIN% || exit /b diff --git a/tests/internal/build.bat b/tests/internal/build.bat index 313e1dbb5..995086523 100644 --- a/tests/internal/build.bat +++ b/tests/internal/build.bat @@ -1,4 +1,4 @@ @echo off set PATH_TO_ODIN==..\..\odin -%PATH_TO_ODIN% run test_map.odin -file -vet -strict-style -o:minimal +%PATH_TO_ODIN% run test_map.odin -file -vet -strict-style -o:minimal || exit /b rem -define:SEED=42 \ No newline at end of file diff --git a/tests/issues/run.bat b/tests/issues/run.bat index c526fd472..ea5feddaa 100644 --- a/tests/issues/run.bat +++ b/tests/issues/run.bat @@ -5,19 +5,14 @@ pushd build set COMMON=-collection:tests=..\.. -set ERROR_DID_OCCUR=0 - @echo on -..\..\..\odin test ..\test_issue_829.odin %COMMON% -file -..\..\..\odin test ..\test_issue_1592.odin %COMMON% -file -..\..\..\odin test ..\test_issue_2087.odin %COMMON% -file -..\..\..\odin build ..\test_issue_2113.odin %COMMON% -file -debug +..\..\..\odin test ..\test_issue_829.odin %COMMON% -file || exit /b +..\..\..\odin test ..\test_issue_1592.odin %COMMON% -file || exit /b +..\..\..\odin test ..\test_issue_2087.odin %COMMON% -file || exit /b +..\..\..\odin build ..\test_issue_2113.odin %COMMON% -file -debug || exit /b @echo off -if %ERRORLEVEL% NEQ 0 set ERROR_DID_OCCUR=1 - popd rmdir /S /Q build -if %ERROR_DID_OCCUR% NEQ 0 EXIT /B 1 diff --git a/tests/vendor/build.bat b/tests/vendor/build.bat index d92a5eaea..09754fc40 100644 --- a/tests/vendor/build.bat +++ b/tests/vendor/build.bat @@ -5,9 +5,9 @@ set PATH_TO_ODIN==..\..\odin echo --- echo Running vendor:botan tests echo --- -%PATH_TO_ODIN% run botan %COMMON% -out:vendor_botan.exe +%PATH_TO_ODIN% run botan %COMMON% -out:vendor_botan.exe || exit /b echo --- echo Running vendor:glfw tests echo --- -%PATH_TO_ODIN% run glfw %COMMON% -out:vendor_glfw.exe \ No newline at end of file +%PATH_TO_ODIN% run glfw %COMMON% -out:vendor_glfw.exe || exit /b \ No newline at end of file From adcaace03cc03cc4ba9c2a9e3ffa585369f6a20e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 3 Apr 2023 21:09:26 +0100 Subject: [PATCH 18/50] Fix `allow_field_separator` for `foreign import` --- src/parser.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/parser.cpp b/src/parser.cpp index 86f955254..50a9ba766 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -3693,9 +3693,11 @@ gb_internal bool allow_field_separator(AstFile *f) { if (allow_token(f, Token_Comma)) { return true; } - if (ALLOW_NEWLINE && token.kind == Token_Semicolon && !token_is_newline(token)) { - String p = token_to_string(token); - syntax_error(token_end_of_line(f, f->prev_token), "Expected a comma, got a %.*s", LIT(p)); + if (ALLOW_NEWLINE && token.kind == Token_Semicolon) { + if (!token_is_newline(token)) { + String p = token_to_string(token); + syntax_error(token_end_of_line(f, f->prev_token), "Expected a comma, got a %.*s", LIT(p)); + } advance_token(f); return true; } From 2795f09fa8e257421fcf1e44423445e98a520542 Mon Sep 17 00:00:00 2001 From: Elusive Porpoise <95202750+elusivePorpoise@users.noreply.github.com> Date: Mon, 3 Apr 2023 22:27:19 -0700 Subject: [PATCH 19/50] Add GetStartupInfoW. Rename StartupInfo to StartupInfoW. --- core/sys/windows/advapi32.odin | 4 ++-- core/sys/windows/kernel32.odin | 3 ++- core/sys/windows/types.odin | 5 ++--- core/sys/windows/util.odin | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/sys/windows/advapi32.odin b/core/sys/windows/advapi32.odin index e98aa6c43..dc7ec1e08 100644 --- a/core/sys/windows/advapi32.odin +++ b/core/sys/windows/advapi32.odin @@ -52,7 +52,7 @@ foreign advapi32 { dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: wstring, - lpStartupInfo: LPSTARTUPINFO, + lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION, ) -> BOOL --- @@ -67,7 +67,7 @@ foreign advapi32 { dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: wstring, - lpStartupInfo: LPSTARTUPINFO, + lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION, ) -> BOOL --- diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 1bbf910bb..ff2607b62 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -193,9 +193,10 @@ foreign kernel32 { dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, - lpStartupInfo: LPSTARTUPINFO, + lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION, ) -> BOOL --- + GetStartupInfoW :: proc(lpStartupInfo: LPSTARTUPINFOW) --- GetEnvironmentVariableW :: proc(n: LPCWSTR, v: LPWSTR, nsize: DWORD) -> DWORD --- SetEnvironmentVariableW :: proc(n: LPCWSTR, v: LPCWSTR) -> BOOL --- GetEnvironmentStringsW :: proc() -> LPWCH --- diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index cd8bb4060..bf2a28e14 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -111,7 +111,7 @@ LPOVERLAPPED :: ^OVERLAPPED LPPROCESS_INFORMATION :: ^PROCESS_INFORMATION PSECURITY_ATTRIBUTES :: ^SECURITY_ATTRIBUTES LPSECURITY_ATTRIBUTES :: ^SECURITY_ATTRIBUTES -LPSTARTUPINFO :: ^STARTUPINFO +LPSTARTUPINFOW :: ^STARTUPINFOW LPTRACKMOUSEEVENT :: ^TRACKMOUSEEVENT VOID :: rawptr PVOID :: rawptr @@ -2418,8 +2418,7 @@ PROCESS_INFORMATION :: struct { dwThreadId: DWORD, } -// FYI: This is STARTUPINFOW, not STARTUPINFOA -STARTUPINFO :: struct { +STARTUPINFOW :: struct { cb: DWORD, lpReserved: LPWSTR, lpDesktop: LPWSTR, diff --git a/core/sys/windows/util.odin b/core/sys/windows/util.odin index 7f8e51d38..9c9d8f7b4 100644 --- a/core/sys/windows/util.odin +++ b/core/sys/windows/util.odin @@ -457,8 +457,8 @@ run_as_user :: proc(username, password, application, commandline: string, pi: ^P // err := GetLastError(); // fmt.printf("GetLastError: %v\n", err); } - si := STARTUPINFO{} - si.cb = size_of(STARTUPINFO) + si := STARTUPINFOW{} + si.cb = size_of(STARTUPINFOW) pi := pi ok = bool(CreateProcessAsUserW( From aa5a222c6d3f10d9a9b19085e8cfa4af767b3512 Mon Sep 17 00:00:00 2001 From: Elusive Porpoise <95202750+elusivePorpoise@users.noreply.github.com> Date: Mon, 3 Apr 2023 22:32:21 -0700 Subject: [PATCH 20/50] Add creation, thread priority, and copy file flags. --- core/sys/windows/kernel32.odin | 66 ++++++++++++++++++++++++++++++++++ core/sys/windows/types.odin | 8 ++--- 2 files changed, 68 insertions(+), 6 deletions(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index ff2607b62..c7542be43 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -407,6 +407,72 @@ foreign kernel32 { GetLogicalProcessorInformation :: proc(buffer: ^SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedLength: PDWORD) -> BOOL --- } +DEBUG_PROCESS :: 0x00000001 +DEBUG_ONLY_THIS_PROCESS :: 0x00000002 +CREATE_SUSPENDED :: 0x00000004 +DETACHED_PROCESS :: 0x00000008 +CREATE_NEW_CONSOLE :: 0x00000010 +NORMAL_PRIORITY_CLASS :: 0x00000020 +IDLE_PRIORITY_CLASS :: 0x00000040 +HIGH_PRIORITY_CLASS :: 0x00000080 +REALTIME_PRIORITY_CLASS :: 0x00000100 +CREATE_NEW_PROCESS_GROUP :: 0x00000200 +CREATE_UNICODE_ENVIRONMENT :: 0x00000400 +CREATE_SEPARATE_WOW_VDM :: 0x00000800 +CREATE_SHARED_WOW_VDM :: 0x00001000 +CREATE_FORCEDOS :: 0x00002000 +BELOW_NORMAL_PRIORITY_CLASS :: 0x00004000 +ABOVE_NORMAL_PRIORITY_CLASS :: 0x00008000 +INHERIT_PARENT_AFFINITY :: 0x00010000 +INHERIT_CALLER_PRIORITY :: 0x00020000 // Deprecated +CREATE_PROTECTED_PROCESS :: 0x00040000 +EXTENDED_STARTUPINFO_PRESENT :: 0x00080000 +PROCESS_MODE_BACKGROUND_BEGIN :: 0x00100000 +PROCESS_MODE_BACKGROUND_END :: 0x00200000 +CREATE_SECURE_PROCESS :: 0x00400000 +CREATE_BREAKAWAY_FROM_JOB :: 0x01000000 +CREATE_PRESERVE_CODE_AUTHZ_LEVEL :: 0x02000000 +CREATE_DEFAULT_ERROR_MODE :: 0x04000000 +CREATE_NO_WINDOW :: 0x08000000 +PROFILE_USER :: 0x10000000 +PROFILE_KERNEL :: 0x20000000 +PROFILE_SERVER :: 0x40000000 +CREATE_IGNORE_SYSTEM_DEFAULT :: 0x80000000 + +THREAD_BASE_PRIORITY_LOWRT :: 15 // value that gets a thread to LowRealtime-1 +THREAD_BASE_PRIORITY_MAX :: 2 // maximum thread base priority boost +THREAD_BASE_PRIORITY_MIN :: (-2) // minimum thread base priority boost +THREAD_BASE_PRIORITY_IDLE :: (-15) // value that gets a thread to idle + +THREAD_PRIORITY_LOWEST :: THREAD_BASE_PRIORITY_MIN +THREAD_PRIORITY_BELOW_NORMAL :: (THREAD_PRIORITY_LOWEST+1) +THREAD_PRIORITY_NORMAL :: 0 +THREAD_PRIORITY_HIGHEST :: THREAD_BASE_PRIORITY_MAX +THREAD_PRIORITY_ABOVE_NORMAL :: (THREAD_PRIORITY_HIGHEST-1) +THREAD_PRIORITY_ERROR_RETURN :: (MAXLONG) +THREAD_PRIORITY_TIME_CRITICAL :: THREAD_BASE_PRIORITY_LOWRT +THREAD_PRIORITY_IDLE :: THREAD_BASE_PRIORITY_IDLE +THREAD_MODE_BACKGROUND_BEGIN :: 0x00010000 +THREAD_MODE_BACKGROUND_END :: 0x00020000 + +COPY_FILE_FAIL_IF_EXISTS :: 0x00000001 +COPY_FILE_RESTARTABLE :: 0x00000002 +COPY_FILE_OPEN_SOURCE_FOR_WRITE :: 0x00000004 +COPY_FILE_ALLOW_DECRYPTED_DESTINATION :: 0x00000008 +COPY_FILE_COPY_SYMLINK :: 0x00000800 +COPY_FILE_NO_BUFFERING :: 0x00001000 +COPY_FILE_REQUEST_SECURITY_PRIVILEGES :: 0x00002000 +COPY_FILE_RESUME_FROM_PAUSE :: 0x00004000 +COPY_FILE_NO_OFFLOAD :: 0x00040000 +COPY_FILE_IGNORE_EDP_BLOCK :: 0x00400000 +COPY_FILE_IGNORE_SOURCE_ENCRYPTION :: 0x00800000 +COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC :: 0x02000000 +COPY_FILE_REQUEST_COMPRESSED_TRAFFIC :: 0x10000000 +COPY_FILE_OPEN_AND_COPY_REPARSE_POINT :: 0x00200000 +COPY_FILE_DIRECTORY :: 0x00000080 +COPY_FILE_SKIP_ALTERNATE_STREAMS :: 0x00008000 +COPY_FILE_DISABLE_PRE_ALLOCATION :: 0x04000000 +COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE :: 0x08000000 SECTION_QUERY :: DWORD(0x0001) SECTION_MAP_WRITE :: DWORD(0x0002) diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index bf2a28e14..81e545039 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -162,6 +162,8 @@ SIZE :: struct { PSIZE :: ^SIZE LPSIZE :: ^SIZE +MAXLONG :: 0x7fffffff + FILE_ATTRIBUTE_READONLY: DWORD : 0x00000001 FILE_ATTRIBUTE_HIDDEN: DWORD : 0x00000002 FILE_ATTRIBUTE_SYSTEM: DWORD : 0x00000004 @@ -2042,7 +2044,6 @@ TLS_OUT_OF_INDEXES: DWORD : 0xFFFFFFFF DLL_THREAD_DETACH: DWORD : 3 DLL_PROCESS_DETACH: DWORD : 0 -CREATE_SUSPENDED :: DWORD(0x00000004) INFINITE :: ~DWORD(0) @@ -2051,11 +2052,6 @@ DUPLICATE_SAME_ACCESS: DWORD : 0x00000002 CONDITION_VARIABLE_INIT :: CONDITION_VARIABLE{} SRWLOCK_INIT :: SRWLOCK{} -DETACHED_PROCESS: DWORD : 0x00000008 -CREATE_NEW_CONSOLE: DWORD : 0x00000010 -CREATE_NO_WINDOW: DWORD : 0x08000000 -CREATE_NEW_PROCESS_GROUP: DWORD : 0x00000200 -CREATE_UNICODE_ENVIRONMENT: DWORD : 0x00000400 STARTF_USESTDHANDLES: DWORD : 0x00000100 VOLUME_NAME_DOS: DWORD : 0x0 From 738cf837def804b06e3869b02d5d8055301294ac Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 00:32:34 -0700 Subject: [PATCH 21/50] additional winsock apis, doc links --- core/sys/windows/ws2_32.odin | 111 ++++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 3 deletions(-) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index 4b70e880a..cfb09e1fc 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -1,29 +1,103 @@ // +build windows package sys_windows -foreign import ws2_32 "system:Ws2_32.lib" +// Define flags to be used with the WSAAsyncSelect() call. +FD_READ :: 0x01 +FD_WRITE :: 0x02 +FD_OOB :: 0x04 +FD_ACCEPT :: 0x08 +FD_CONNECT :: 0x10 +FD_CLOSE :: 0x20 +FD_MAX_EVENTS :: 10 +INADDR_LOOPBACK :: 0x7f000001 + +// Event flag definitions for WSAPoll(). POLLRDNORM :: 0x0100 POLLRDBAND :: 0x0200 POLLIN :: (POLLRDNORM | POLLRDBAND) POLLPRI :: 0x0400 +POLLWRNORM :: 0x0010 +POLLOUT :: (POLLWRNORM) +POLLWRBAND :: 0x0020 +POLLERR :: 0x0001 +POLLHUP :: 0x0002 +POLLNVAL :: 0x0004 + WSA_POLLFD::struct{ fd:SOCKET, events:c_short, revents:c_short, } +WSANETWORKEVENTS :: struct { + lNetworkEvents: c_long, + iErrorCode: [FD_MAX_EVENTS]c_int, +} + +WSAEVENT :: HANDLE +WSAOVERLAPPED_COMPLETION_ROUTINE :: proc(dwError: DWORD, cbTransferred: DWORD, lpOverlapped: ^OVERLAPPED, dwFlags: DWORD) + +WSAID_ACCEPTEX :: GUID{0xb5367df1, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} +WSAID_GETACCEPTEXSOCKADDRS :: GUID{0xb5367df2, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} +SIO_GET_EXTENSION_FUNCTION_POINTER :: IOC_INOUT | IOC_WS2 | 6 +IOC_OUT :: 0x40000000 +IOC_IN :: 0x80000000 +IOC_INOUT :: (IOC_IN | IOC_OUT) +IOC_WS2 :: 0x08000000 +/* +Example Load: + load_accept_ex :: proc(listener: SOCKET, fn_acceptex: rawptr) { + bytes: u32 + guid_accept_ex := WSAID_ACCEPTEX + rc := WSAIoctl(listener, SIO_GET_EXTENSION_FUNCTION_POINTER, &guid_accept_ex, size_of(guid_accept_ex), + fn_acceptex, size_of(fn_acceptex), &bytes, nil, nil,) + assert(rc != windows.SOCKET_ERROR) + } +*/ +// NOTE: AcceptEx should be loaded at runtime per MS-Docs +//[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex) +AcceptEx :: proc( + sListenSocket: SOCKET, + sAcceptSocket: SOCKET, + lpOutputBuffer: rawptr, + dwReceiveDataLength: u32, + dwLocalAddressLength: u32, + dwRemoteAddressLength: u32, + lpdwBytesReceived: ^u32, + lpOverlapped: ^OVERLAPPED, +) -> b32 +// NOTE: GetAcceptExSockaddrs should be loaded at runtime per MS-Docs +//[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-getacceptexsockaddrs) +GetAcceptExSockaddrs :: proc( + lpOutputBuffer: rawptr, + dwReceiveDataLength: u32, + dwLocalAddressLength: u32, + dwRemoteAddressLength: u32, + LocalSockaddr: ^^sockaddr, + LocalSockaddrLength: ^i32, + RemoteSockaddr: ^^sockaddr, + RemoteSockaddrLength: ^i32, +) + +foreign import ws2_32 "system:Ws2_32.lib" @(default_calling_convention="stdcall") foreign ws2_32 { + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsastartup) WSAStartup :: proc(wVersionRequested: WORD, lpWSAData: LPWSADATA) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsacleanup) WSACleanup :: proc() -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsagetlasterror) WSAGetLastError :: proc() -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsapoll) WSAPoll :: proc(fdArray: ^WSA_POLLFD, fds: c_ulong, timeout: c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaduplicatesocketw) WSADuplicateSocketW :: proc( s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFO, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsasend) WSASend :: proc( s: SOCKET, lpBuffers: LPWSABUF, @@ -33,6 +107,7 @@ foreign ws2_32 { lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsarecv) WSARecv :: proc( s: SOCKET, lpBuffers: LPWSABUF, @@ -42,6 +117,7 @@ foreign ws2_32 { lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsasocketw) WSASocketW :: proc( af: c_int, kind: c_int, @@ -50,16 +126,32 @@ foreign ws2_32 { g: GROUP, dwFlags: DWORD, ) -> SOCKET --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaioctl) + WSAIoctl :: proc(s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: rawptr, cbInBuffer: DWORD, lpvOutBuffer: rawptr, cbOutBuffer: DWORD, lpcbBytesReturned: ^DWORD, lpOverlapped: ^OVERLAPPED, lpCompletionRoutine: ^WSAOVERLAPPED_COMPLETION_ROUTINE) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaeventselect) + WSAEventSelect :: proc(s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: i32) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsawaitformultipleevents) + WSAWaitForMultipleEvents :: proc(cEvents: DWORD, lphEvents: ^WSAEVENT, fWaitAll: BOOL, dwTimeout: DWORD, fAlertable: BOOL) -> DWORD --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaenumnetworkevents) + WSAEnumNetworkEvents :: proc(s: SOCKET, hEventObject: WSAEVENT, lpNetworkEvents: ^WSANETWORKEVENTS) -> c_int --- + //[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsagetoverlappedresult) + WSAGetOverlappedResult :: proc(s: SOCKET, lpOverlapped: ^OVERLAPPED, lpcbTransfer: ^DWORD, fWait: BOOL, lpdwFlags: ^DWORD) -> BOOL --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket) socket :: proc( af: c_int, type: c_int, protocol: c_int, ) -> SOCKET --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ioctlsocket) ioctlsocket :: proc(s: SOCKET, cmd: c_long, argp: ^c_ulong) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-closesocket) closesocket :: proc(socket: SOCKET) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-recv) recv :: proc(socket: SOCKET, buf: rawptr, len: c_int, flags: c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-send) send :: proc(socket: SOCKET, buf: rawptr, len: c_int, flags: c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-recvfrom) recvfrom :: proc( socket: SOCKET, buf: rawptr, @@ -68,6 +160,7 @@ foreign ws2_32 { addr: ^SOCKADDR_STORAGE_LH, addrlen: ^c_int, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-sendto) sendto :: proc( socket: SOCKET, buf: rawptr, @@ -76,9 +169,12 @@ foreign ws2_32 { addr: ^SOCKADDR_STORAGE_LH, addrlen: c_int, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-shutdown) shutdown :: proc(socket: SOCKET, how: c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-accept) accept :: proc(socket: SOCKET, address: ^SOCKADDR_STORAGE_LH, address_len: ^c_int) -> SOCKET --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt) setsockopt :: proc( s: SOCKET, level: c_int, @@ -86,19 +182,28 @@ foreign ws2_32 { optval: rawptr, optlen: c_int, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockname) getsockname :: proc(socket: SOCKET, address: ^SOCKADDR_STORAGE_LH, address_len: ^c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getpeername) getpeername :: proc(socket: SOCKET, address: ^SOCKADDR_STORAGE_LH, address_len: ^c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-bind) bind :: proc(socket: SOCKET, address: ^SOCKADDR_STORAGE_LH, address_len: socklen_t) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-listen) listen :: proc(socket: SOCKET, backlog: c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect) connect :: proc(socket: SOCKET, address: ^SOCKADDR_STORAGE_LH, len: c_int) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfo) getaddrinfo :: proc( node: cstring, service: cstring, hints: ^ADDRINFOA, res: ^^ADDRINFOA, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-freeaddrinfo) freeaddrinfo :: proc(res: ^ADDRINFOA) --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-freeaddrinfoexw) FreeAddrInfoExW :: proc(pAddrInfoEx: PADDRINFOEXW) --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfoexw) GetAddrInfoExW :: proc( pName: PCWSTR, pServiceName: PCWSTR, @@ -110,7 +215,7 @@ foreign ws2_32 { lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpHandle: LPHANDLE) -> INT --- - + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-select) select :: proc( nfds: c_int, readfds: ^fd_set, @@ -118,6 +223,7 @@ foreign ws2_32 { exceptfds: ^fd_set, timeout: ^timeval, ) -> c_int --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt) getsockopt :: proc( s: SOCKET, level: c_int, @@ -125,5 +231,4 @@ foreign ws2_32 { optval: ^c_char, optlen: ^c_int, ) -> c_int --- - } From 6cba4d348383f66655f088ad1dc65e1eb3b3335d Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 00:42:38 -0700 Subject: [PATCH 22/50] iocp support --- core/sys/windows/kernel32.odin | 17 +++++++++++++++++ core/sys/windows/types.odin | 21 +++++++++++++++++++++ core/sys/windows/ws2_32.odin | 3 +-- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 1bbf910bb..c0f09ef2a 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -404,6 +404,23 @@ foreign kernel32 { ) -> BOOL --- GetLogicalProcessorInformation :: proc(buffer: ^SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedLength: PDWORD) -> BOOL --- + + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setfilecompletionnotificationmodes) + SetFileCompletionNotificationModes :: proc(FileHandle: HANDLE, Flags: u8) -> BOOL --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-createiocompletionport) + CreateIoCompletionPort :: proc(FileHandle: HANDLE, ExistingCompletionPort: HANDLE, CompletionKey: uintptr, NumberOfConcurrentThreads: DWORD) -> HANDLE --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatusex) + GetQueuedCompletionStatusEx :: proc(CompletionPort: HANDLE, lpCompletionPortEntries: ^OVERLAPPED_ENTRY, ulCount: c_ulong, ulNumEntriesRemoved: ^c_ulong, dwMilliseconds: DWORD, fAlertable: BOOL) -> BOOL --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-postqueuedcompletionstatus) + PostQueuedCompletionStatus :: proc(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: c_ulong, lpOverlapped: ^OVERLAPPED) -> BOOL --- + // [MS-Docs] (https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-gettickcount64) + GetTickCount64 :: proc() -> u64 --- + // [MS-Docs](https://github.com/mic101/windows/blob/master/WRK-v1.2/base/ntos/ex/keyedevent.c) + NtCreateKeyedEvent :: proc(KeyedEventHandle: ^HANDLE, DesiredAccess: ACCESS_MASK, ObjectAttributes: OBJECT_ATTRIBUTES, Flags: u32) -> NTSTATUS --- + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation) + GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL --- + //[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus) + GetQueuedCompletionStatus :: proc(CompletionPort: HANDLE, lpNumberOfBytesTransferred: ^DWORD, lpCompletionKey: uintptr, lpOverlapped: ^^OVERLAPPED, dwMilliseconds: DWORD) -> BOOL --- } diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin index cd8bb4060..dd2b0e49b 100644 --- a/core/sys/windows/types.odin +++ b/core/sys/windows/types.odin @@ -2450,6 +2450,20 @@ FILETIME_as_unix_nanoseconds :: proc "contextless" (ft: FILETIME) -> i64 { return (t - 116444736000000000) * 100 } +OBJECT_ATTRIBUTES :: struct { + Length: c_ulong, + RootDirectory: HANDLE, + ObjectName: ^UNICODE_STRING, + Attributes: c_ulong, + SecurityDescriptor: rawptr, + SecurityQualityOfService: rawptr, +} + +UNICODE_STRING :: struct { + Length: u16, + MaximumLength: u16, + Buffer: ^u16, +} OVERLAPPED :: struct { Internal: ^c_ulong, @@ -2459,6 +2473,13 @@ OVERLAPPED :: struct { hEvent: HANDLE, } +OVERLAPPED_ENTRY :: struct { + lpCompletionKey: c_ulong, + lpOverlapped: ^OVERLAPPED, + Internal: c_ulong, + dwNumberOfBytesTransferred: DWORD, +} + LPOVERLAPPED_COMPLETION_ROUTINE :: #type proc "stdcall" ( dwErrorCode: DWORD, dwNumberOfBytesTransfered: DWORD, diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index cfb09e1fc..ef4a9465b 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -36,7 +36,6 @@ WSANETWORKEVENTS :: struct { } WSAEVENT :: HANDLE -WSAOVERLAPPED_COMPLETION_ROUTINE :: proc(dwError: DWORD, cbTransferred: DWORD, lpOverlapped: ^OVERLAPPED, dwFlags: DWORD) WSAID_ACCEPTEX :: GUID{0xb5367df1, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} WSAID_GETACCEPTEXSOCKADDRS :: GUID{0xb5367df2, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} @@ -127,7 +126,7 @@ foreign ws2_32 { dwFlags: DWORD, ) -> SOCKET --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaioctl) - WSAIoctl :: proc(s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: rawptr, cbInBuffer: DWORD, lpvOutBuffer: rawptr, cbOutBuffer: DWORD, lpcbBytesReturned: ^DWORD, lpOverlapped: ^OVERLAPPED, lpCompletionRoutine: ^WSAOVERLAPPED_COMPLETION_ROUTINE) -> c_int --- + WSAIoctl :: proc(s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: rawptr, cbInBuffer: DWORD, lpvOutBuffer: rawptr, cbOutBuffer: DWORD, lpcbBytesReturned: ^DWORD, lpOverlapped: ^OVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> c_int --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaeventselect) WSAEventSelect :: proc(s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: i32) -> c_int --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsawaitformultipleevents) From 70ce878dfb1b6068d5ceb9c14a08a32f0394db78 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 4 Apr 2023 12:11:12 +0100 Subject: [PATCH 23/50] Add `-max-error-count:` --- src/build_settings.cpp | 16 ++++++++++++++++ src/error.cpp | 10 +++++----- src/main.cpp | 30 ++++++++++++++++++++++++++++-- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/src/build_settings.cpp b/src/build_settings.cpp index 0aa9977a5..ac033df71 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -7,6 +7,8 @@ // #define DEFAULT_TO_THREADED_CHECKER // #endif +#define DEFAULT_MAX_ERROR_COLLECTOR_COUNT (36) + enum TargetOsKind : u16 { TargetOs_Invalid, @@ -313,6 +315,8 @@ struct BuildContext { RelocMode reloc_mode; bool disable_red_zone; + isize max_error_count; + u32 cmd_doc_flags; Array extra_packages; @@ -344,6 +348,14 @@ gb_internal bool global_ignore_warnings(void) { return build_context.ignore_warnings; } +gb_internal isize MAX_ERROR_COLLECTOR_COUNT(void) { + if (build_context.max_error_count <= 0) { + return DEFAULT_MAX_ERROR_COLLECTOR_COUNT; + } + return build_context.max_error_count; +} + + gb_global TargetMetrics target_windows_i386 = { TargetOs_windows, @@ -1081,6 +1093,10 @@ gb_internal void init_build_context(TargetMetrics *cross_target) { bc->ODIN_VERSION = ODIN_VERSION; bc->ODIN_ROOT = odin_root_dir(); + if (bc->max_error_count <= 0) { + bc->max_error_count = DEFAULT_MAX_ERROR_COLLECTOR_COUNT; + } + { char const *found = gb_get_env("ODIN_ERROR_POS_STYLE", permanent_allocator()); if (found) { diff --git a/src/error.cpp b/src/error.cpp index 2974dc039..e3e1381f4 100644 --- a/src/error.cpp +++ b/src/error.cpp @@ -14,8 +14,6 @@ struct ErrorCollector { gb_global ErrorCollector global_error_collector; -#define MAX_ERROR_COLLECTOR_COUNT (36) - gb_internal bool any_errors(void) { return global_error_collector.count.load() != 0; @@ -28,6 +26,8 @@ gb_internal void init_global_error_collector(void) { array_init(&global_files, heap_allocator(), 1, 4096); } +gb_internal isize MAX_ERROR_COLLECTOR_COUNT(void); + // temporary // defined in build_settings.cpp @@ -356,7 +356,7 @@ gb_internal void error_va(TokenPos const &pos, TokenPos end, char const *fmt, va show_error_on_line(pos, end); } mutex_unlock(&global_error_collector.mutex); - if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT) { + if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) { gb_exit(1); } } @@ -407,7 +407,7 @@ gb_internal void error_no_newline_va(TokenPos const &pos, char const *fmt, va_li error_out_va(fmt, va); } mutex_unlock(&global_error_collector.mutex); - if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT) { + if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) { gb_exit(1); } } @@ -431,7 +431,7 @@ gb_internal void syntax_error_va(TokenPos const &pos, TokenPos end, char const * } mutex_unlock(&global_error_collector.mutex); - if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT) { + if (global_error_collector.count > MAX_ERROR_COLLECTOR_COUNT()) { gb_exit(1); } } diff --git a/src/main.cpp b/src/main.cpp index 5ab6ed66c..33ee65c6b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -691,6 +691,7 @@ enum BuildFlagKind { BuildFlag_TerseErrors, BuildFlag_VerboseErrors, BuildFlag_ErrorPosStyle, + BuildFlag_MaxErrorCount, // internal use only BuildFlag_InternalIgnoreLazy, @@ -866,6 +867,7 @@ gb_internal bool parse_build_flags(Array args) { add_flag(&build_flags, BuildFlag_TerseErrors, str_lit("terse-errors"), BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_VerboseErrors, str_lit("verbose-errors"), BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_ErrorPosStyle, str_lit("error-pos-style"), BuildFlagParam_String, Command_all); + add_flag(&build_flags, BuildFlag_MaxErrorCount, str_lit("max-error-count"), BuildFlagParam_Integer, Command_all); add_flag(&build_flags, BuildFlag_InternalIgnoreLazy, str_lit("internal-ignore-lazy"), BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_InternalIgnoreLLVMBuild, str_lit("internal-ignore-llvm-build"),BuildFlagParam_None, Command_all); @@ -1522,6 +1524,17 @@ gb_internal bool parse_build_flags(Array args) { } break; + case BuildFlag_MaxErrorCount: { + i64 count = big_int_to_i64(&value.value_integer); + if (count <= 0) { + gb_printf_err("-%.*s must be greater than 0", LIT(bf.name)); + bad_flags = true; + } else { + build_context.max_error_count = cast(isize)count; + } + break; + } + case BuildFlag_InternalIgnoreLazy: build_context.ignore_lazy = true; break; @@ -2212,8 +2225,21 @@ gb_internal void print_show_help(String const arg0, String const &command) { print_usage_line(2, "Treats warning messages as error messages"); print_usage_line(0, ""); - print_usage_line(1, "-verbose-errors"); - print_usage_line(2, "Prints verbose error messages showing the code on that line and the location in that line"); + print_usage_line(1, "-terse-errors"); + print_usage_line(2, "Prints a terse error message without showing the code on that line and the location in that line"); + print_usage_line(0, ""); + + print_usage_line(1, "-error-pos-style:"); + print_usage_line(2, "Options are 'unix', 'odin' and 'default' (odin)"); + print_usage_line(2, "'odin' file/path(45:3)"); + print_usage_line(2, "'unix' file/path:45:3:"); + print_usage_line(0, ""); + + + print_usage_line(1, "-max-error-count:"); + print_usage_line(2, "Set the maximum number of errors that can be displayed before the compiler terminates"); + print_usage_line(2, "Must be an integer >0"); + print_usage_line(2, "If not set, the default max error count is %d", DEFAULT_MAX_ERROR_COLLECTOR_COUNT); print_usage_line(0, ""); print_usage_line(1, "-foreign-error-procedures"); From 219343f3c0e1bdf6130af5d07baa6c929379dfe1 Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 11:47:26 -0700 Subject: [PATCH 24/50] remove keyedevent --- core/sys/windows/kernel32.odin | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index c0f09ef2a..c06d49ff3 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -415,8 +415,6 @@ foreign kernel32 { PostQueuedCompletionStatus :: proc(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: c_ulong, lpOverlapped: ^OVERLAPPED) -> BOOL --- // [MS-Docs] (https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-gettickcount64) GetTickCount64 :: proc() -> u64 --- - // [MS-Docs](https://github.com/mic101/windows/blob/master/WRK-v1.2/base/ntos/ex/keyedevent.c) - NtCreateKeyedEvent :: proc(KeyedEventHandle: ^HANDLE, DesiredAccess: ACCESS_MASK, ObjectAttributes: OBJECT_ATTRIBUTES, Flags: u32) -> NTSTATUS --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation) GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL --- //[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus) From 6c943722f3033e27ffaf078a2a5024a16c805337 Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 22:00:22 -0700 Subject: [PATCH 25/50] add non Ex variant --- core/sys/windows/kernel32.odin | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index c06d49ff3..d7e67acc5 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -409,6 +409,8 @@ foreign kernel32 { SetFileCompletionNotificationModes :: proc(FileHandle: HANDLE, Flags: u8) -> BOOL --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-createiocompletionport) CreateIoCompletionPort :: proc(FileHandle: HANDLE, ExistingCompletionPort: HANDLE, CompletionKey: uintptr, NumberOfConcurrentThreads: DWORD) -> HANDLE --- + //[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus) + GetQueuedCompletionStatus :: proc(CompletionPort: HANDLE, lpNumberOfBytesTransferred: ^DWORD, lpCompletionKey: uintptr, lpOverlapped: ^^OVERLAPPED, dwMilliseconds: DWORD) -> BOOL --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatusex) GetQueuedCompletionStatusEx :: proc(CompletionPort: HANDLE, lpCompletionPortEntries: ^OVERLAPPED_ENTRY, ulCount: c_ulong, ulNumEntriesRemoved: ^c_ulong, dwMilliseconds: DWORD, fAlertable: BOOL) -> BOOL --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-postqueuedcompletionstatus) From 9a8c69d1c060f1aa72e058e325efbe18022f0ab6 Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 22:01:44 -0700 Subject: [PATCH 26/50] remove duplicate --- core/sys/windows/kernel32.odin | 901 +++++++++------------------------ 1 file changed, 239 insertions(+), 662 deletions(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index d7e67acc5..7bd795ac2 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -3,75 +3,53 @@ package sys_windows foreign import kernel32 "system:Kernel32.lib" -FOREGROUND_BLUE :: WORD(0x0001) -FOREGROUND_GREEN :: WORD(0x0002) -FOREGROUND_RED :: WORD(0x0004) -FOREGROUND_INTENSITY :: WORD(0x0008) -BACKGROUND_BLUE :: WORD(0x0010) -BACKGROUND_GREEN :: WORD(0x0020) -BACKGROUND_RED :: WORD(0x0040) -BACKGROUND_INTENSITY :: WORD(0x0080) -COMMON_LVB_LEADING_BYTE :: WORD(0x0100) -COMMON_LVB_TRAILING_BYTE :: WORD(0x0200) +FOREGROUND_BLUE :: WORD(0x0001) +FOREGROUND_GREEN :: WORD(0x0002) +FOREGROUND_RED :: WORD(0x0004) +FOREGROUND_INTENSITY :: WORD(0x0008) +BACKGROUND_BLUE :: WORD(0x0010) +BACKGROUND_GREEN :: WORD(0x0020) +BACKGROUND_RED :: WORD(0x0040) +BACKGROUND_INTENSITY :: WORD(0x0080) +COMMON_LVB_LEADING_BYTE :: WORD(0x0100) +COMMON_LVB_TRAILING_BYTE :: WORD(0x0200) COMMON_LVB_GRID_HORIZONTAL :: WORD(0x0400) -COMMON_LVB_GRID_LVERTICAL :: WORD(0x0800) -COMMON_LVB_GRID_RVERTICAL :: WORD(0x1000) -COMMON_LVB_REVERSE_VIDEO :: WORD(0x4000) -COMMON_LVB_UNDERSCORE :: WORD(0x8000) -COMMON_LVB_SBCSDBCS :: WORD(0x0300) +COMMON_LVB_GRID_LVERTICAL :: WORD(0x0800) +COMMON_LVB_GRID_RVERTICAL :: WORD(0x1000) +COMMON_LVB_REVERSE_VIDEO :: WORD(0x4000) +COMMON_LVB_UNDERSCORE :: WORD(0x8000) +COMMON_LVB_SBCSDBCS :: WORD(0x0300) -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { OutputDebugStringA :: proc(lpOutputString: LPCSTR) --- // The only A thing that is allowed OutputDebugStringW :: proc(lpOutputString: LPCWSTR) --- - ReadConsoleW :: proc(hConsoleInput: HANDLE, - lpBuffer: LPVOID, - nNumberOfCharsToRead: DWORD, - lpNumberOfCharsRead: LPDWORD, - pInputControl: PCONSOLE_READCONSOLE_CONTROL) -> BOOL --- + ReadConsoleW :: proc(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL) -> BOOL --- - WriteConsoleW :: proc(hConsoleOutput: HANDLE, - lpBuffer: LPCVOID, - nNumberOfCharsToWrite: DWORD, - lpNumberOfCharsWritten: LPDWORD, - lpReserved: LPVOID) -> BOOL --- + WriteConsoleW :: proc(hConsoleOutput: HANDLE, lpBuffer: LPCVOID, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID) -> BOOL --- - GetConsoleMode :: proc(hConsoleHandle: HANDLE, - lpMode: LPDWORD) -> BOOL --- - SetConsoleMode :: proc(hConsoleHandle: HANDLE, - dwMode: DWORD) -> BOOL --- - SetConsoleCursorPosition :: proc(hConsoleHandle: HANDLE, - dwCursorPosition: COORD) -> BOOL --- - SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE, - wAttributes: WORD) -> BOOL --- + GetConsoleMode :: proc(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> BOOL --- + SetConsoleMode :: proc(hConsoleHandle: HANDLE, dwMode: DWORD) -> BOOL --- + SetConsoleCursorPosition :: proc(hConsoleHandle: HANDLE, dwCursorPosition: COORD) -> BOOL --- + SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL --- SetConsoleOutputCP :: proc(wCodePageID: UINT) -> BOOL --- - + GetFileInformationByHandle :: proc(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION) -> BOOL --- - SetHandleInformation :: proc(hObject: HANDLE, - dwMask: DWORD, - dwFlags: DWORD) -> BOOL --- - SetFileInformationByHandle :: proc(hFile: HANDLE, - FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, - lpFileInformation: LPVOID, - dwBufferSize: DWORD) -> BOOL --- + SetHandleInformation :: proc(hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD) -> BOOL --- + SetFileInformationByHandle :: proc(hFile: HANDLE, FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD) -> BOOL --- AddVectoredExceptionHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID --- - AddVectoredContinueHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID --- - RemoveVectoredExceptionHandler :: proc(Handle: LPVOID) -> DWORD --- - RemoveVectoredContinueHandler :: proc(Handle: LPVOID) -> DWORD --- + AddVectoredContinueHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID --- + RemoveVectoredExceptionHandler :: proc(Handle: LPVOID) -> DWORD --- + RemoveVectoredContinueHandler :: proc(Handle: LPVOID) -> DWORD --- RaiseException :: proc(dwExceptionCode, dwExceptionFlags, nNumberOfArguments: DWORD, lpArguments: ^ULONG_PTR) -> ! --- - CreateHardLinkW :: proc(lpSymlinkFileName: LPCWSTR, - lpTargetFileName: LPCWSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL --- + CreateHardLinkW :: proc(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL --- - GetFileInformationByHandleEx :: proc(hFile: HANDLE, - fileInfoClass: FILE_INFO_BY_HANDLE_CLASS, - lpFileInformation: LPVOID, - dwBufferSize: DWORD) -> BOOL --- + GetFileInformationByHandleEx :: proc(hFile: HANDLE, fileInfoClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD) -> BOOL --- InitializeCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) --- InitializeCriticalSectionAndSpinCount :: proc(CriticalSection: ^CRITICAL_SECTION, dwSpinCount: DWORD) -> BOOL --- @@ -89,42 +67,12 @@ foreign kernel32 { GetCurrentProcessId :: proc() -> DWORD --- GetCurrentThread :: proc() -> HANDLE --- GetCurrentThreadId :: proc() -> DWORD --- - GetProcessTimes :: proc( - hProcess: HANDLE, - lpCreationTime: LPFILETIME, - lpExitTime: LPFILETIME, - lpKernelTime: LPFILETIME, - lpUserTime: LPFILETIME, - ) -> BOOL --- + GetProcessTimes :: proc(hProcess: HANDLE, lpCreationTime: LPFILETIME, lpExitTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME) -> BOOL --- GetStdHandle :: proc(which: DWORD) -> HANDLE --- ExitProcess :: proc(uExitCode: c_uint) -> ! --- - DeviceIoControl :: proc( - hDevice: HANDLE, - dwIoControlCode: DWORD, - lpInBuffer: LPVOID, - nInBufferSize: DWORD, - lpOutBuffer: LPVOID, - nOutBufferSize: DWORD, - lpBytesReturned: LPDWORD, - lpOverlapped: LPOVERLAPPED, - ) -> BOOL --- - CreateThread :: proc( - lpThreadAttributes: LPSECURITY_ATTRIBUTES, - dwStackSize: SIZE_T, - lpStartAddress: proc "stdcall" (rawptr) -> DWORD, - lpParameter: LPVOID, - dwCreationFlags: DWORD, - lpThreadId: LPDWORD, - ) -> HANDLE --- - CreateRemoteThread :: proc( - hProcess: HANDLE, - lpThreadAttributes: LPSECURITY_ATTRIBUTES, - dwStackSize: SIZE_T, - lpStartAddress: proc "stdcall" (rawptr) -> DWORD, - lpParameter: LPVOID, - dwCreationFlags: DWORD, - lpThreadId: LPDWORD, - ) -> HANDLE --- + DeviceIoControl :: proc(hDevice: HANDLE, dwIoControlCode: DWORD, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- + CreateThread :: proc(lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: proc "stdcall" (_: rawptr) -> DWORD, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD) -> HANDLE --- + CreateRemoteThread :: proc(hProcess: HANDLE, lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: proc "stdcall" (_: rawptr) -> DWORD, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD) -> HANDLE --- SwitchToThread :: proc() -> BOOL --- ResumeThread :: proc(thread: HANDLE) -> DWORD --- GetThreadPriority :: proc(thread: HANDLE) -> c_int --- @@ -135,46 +83,14 @@ foreign kernel32 { CreateSemaphoreW :: proc(attributes: LPSECURITY_ATTRIBUTES, initial_count, maximum_count: LONG, name: LPCWSTR) -> HANDLE --- ReleaseSemaphore :: proc(semaphore: HANDLE, release_count: LONG, previous_count: ^LONG) -> BOOL --- - CreateWaitableTimerW :: proc( - lpTimerAttributes: LPSECURITY_ATTRIBUTES, - bManualReset: BOOL, - lpTimerName: LPCWSTR, - ) -> HANDLE --- - CreateWaitableTimerExW :: proc( - lpTimerAttributes: LPSECURITY_ATTRIBUTES, - lpTimerName: LPCWSTR, - dwFlags: DWORD, - dwDesiredAccess: DWORD, - ) -> HANDLE --- - SetWaitableTimerEx :: proc( - hTimer: HANDLE, - lpDueTime: ^LARGE_INTEGER, - lPeriod: LONG, - pfnCompletionRoutine: PTIMERAPCROUTINE, - lpArgToCompletionRoutine: LPVOID, - WakeContext: PREASON_CONTEXT, - TolerableDelay: ULONG, - ) -> BOOL --- + CreateWaitableTimerW :: proc(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, lpTimerName: LPCWSTR) -> HANDLE --- + CreateWaitableTimerExW :: proc(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE --- + SetWaitableTimerEx :: proc(hTimer: HANDLE, lpDueTime: ^LARGE_INTEGER, lPeriod: LONG, pfnCompletionRoutine: PTIMERAPCROUTINE, lpArgToCompletionRoutine: LPVOID, WakeContext: PREASON_CONTEXT, TolerableDelay: ULONG) -> BOOL --- WaitForSingleObject :: proc(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD --- Sleep :: proc(dwMilliseconds: DWORD) --- GetProcessId :: proc(handle: HANDLE) -> DWORD --- - CopyFileExW :: proc( - lpExistingFileName: LPCWSTR, - lpNewFileName: LPCWSTR, - lpProgressRoutine: LPPROGRESS_ROUTINE, - lpData: LPVOID, - pbCancel: LPBOOL, - dwCopyFlags: DWORD, - ) -> BOOL --- - FormatMessageW :: proc( - flags: DWORD, - lpSrc: LPVOID, - msgId: DWORD, - langId: DWORD, - buf: LPWSTR, - nsize: DWORD, - args: rawptr, - ) -> DWORD --- + CopyFileExW :: proc(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD) -> BOOL --- + FormatMessageW :: proc(flags: DWORD, lpSrc: LPVOID, msgId: DWORD, langId: DWORD, buf: LPWSTR, nsize: DWORD, args: rawptr) -> DWORD --- TlsAlloc :: proc() -> DWORD --- TlsFree :: proc(dwTlsIndex: DWORD) -> BOOL --- TlsGetValue :: proc(dwTlsIndex: DWORD) -> LPVOID --- @@ -184,89 +100,26 @@ foreign kernel32 { QueryPerformanceCounter :: proc(lpPerformanceCount: ^LARGE_INTEGER) -> BOOL --- GetExitCodeProcess :: proc(hProcess: HANDLE, lpExitCode: LPDWORD) -> BOOL --- TerminateProcess :: proc(hProcess: HANDLE, uExitCode: UINT) -> BOOL --- - CreateProcessW :: proc( - lpApplicationName: LPCWSTR, - lpCommandLine: LPWSTR, - lpProcessAttributes: LPSECURITY_ATTRIBUTES, - lpThreadAttributes: LPSECURITY_ATTRIBUTES, - bInheritHandles: BOOL, - dwCreationFlags: DWORD, - lpEnvironment: LPVOID, - lpCurrentDirectory: LPCWSTR, - lpStartupInfo: LPSTARTUPINFO, - lpProcessInformation: LPPROCESS_INFORMATION, - ) -> BOOL --- + CreateProcessW :: proc(lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFO, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL --- GetEnvironmentVariableW :: proc(n: LPCWSTR, v: LPWSTR, nsize: DWORD) -> DWORD --- SetEnvironmentVariableW :: proc(n: LPCWSTR, v: LPCWSTR) -> BOOL --- GetEnvironmentStringsW :: proc() -> LPWCH --- FreeEnvironmentStringsW :: proc(env_ptr: LPWCH) -> BOOL --- GetModuleFileNameW :: proc(hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD) -> DWORD --- - CreateDirectoryW :: proc( - lpPathName: LPCWSTR, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - ) -> BOOL --- + CreateDirectoryW :: proc(lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL --- DeleteFileW :: proc(lpPathName: LPCWSTR) -> BOOL --- GetCurrentDirectoryW :: proc(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD --- SetCurrentDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL --- - WideCharToMultiByte :: proc( - CodePage: UINT, - dwFlags: DWORD, - lpWideCharStr: LPCWSTR, - cchWideChar: c_int, - lpMultiByteStr: LPSTR, - cbMultiByte: c_int, - lpDefaultChar: LPCSTR, - lpUsedDefaultChar: LPBOOL, - ) -> c_int --- - MultiByteToWideChar :: proc( - CodePage: UINT, - dwFlags: DWORD, - lpMultiByteStr: LPSTR, - cbMultiByte: c_int, - lpWideCharStr: LPWSTR, - cchWideChar: c_int, - ) -> c_int --- - DuplicateHandle :: proc( - hSourceProcessHandle: HANDLE, - hSourceHandle: HANDLE, - hTargetProcessHandle: HANDLE, - lpTargetHandle: LPHANDLE, - dwDesiredAccess: DWORD, - bInheritHandle: BOOL, - dwOptions: DWORD, - ) -> BOOL --- - ReadFile :: proc( - hFile: HANDLE, - lpBuffer: LPVOID, - nNumberOfBytesToRead: DWORD, - lpNumberOfBytesRead: LPDWORD, - lpOverlapped: LPOVERLAPPED, - ) -> BOOL --- - WriteFile :: proc( - hFile: HANDLE, - lpBuffer: LPVOID, - nNumberOfBytesToWrite: DWORD, - lpNumberOfBytesWritten: LPDWORD, - lpOverlapped: LPOVERLAPPED, - ) -> BOOL --- + WideCharToMultiByte :: proc(CodePage: UINT, dwFlags: DWORD, lpWideCharStr: LPCWSTR, cchWideChar: c_int, lpMultiByteStr: LPSTR, cbMultiByte: c_int, lpDefaultChar: LPCSTR, lpUsedDefaultChar: LPBOOL) -> c_int --- + MultiByteToWideChar :: proc(CodePage: UINT, dwFlags: DWORD, lpMultiByteStr: LPSTR, cbMultiByte: c_int, lpWideCharStr: LPWSTR, cchWideChar: c_int) -> c_int --- + DuplicateHandle :: proc(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: LPHANDLE, dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwOptions: DWORD) -> BOOL --- + ReadFile :: proc(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- + WriteFile :: proc(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToWrite: DWORD, lpNumberOfBytesWritten: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- CloseHandle :: proc(hObject: HANDLE) -> BOOL --- MoveFileExW :: proc(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD) -> BOOL --- - SetFilePointerEx :: proc( - hFile: HANDLE, - liDistanceToMove: LARGE_INTEGER, - lpNewFilePointer: PLARGE_INTEGER, - dwMoveMethod: DWORD, - ) -> BOOL --- + SetFilePointerEx :: proc(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER, lpNewFilePointer: PLARGE_INTEGER, dwMoveMethod: DWORD) -> BOOL --- FlushFileBuffers :: proc(hFile: HANDLE) -> BOOL --- - CreateFileW :: proc( - lpFileName: LPCWSTR, - dwDesiredAccess: DWORD, - dwShareMode: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - dwCreationDisposition: DWORD, - dwFlagsAndAttributes: DWORD, - hTemplateFile: HANDLE, - ) -> HANDLE --- + CreateFileW :: proc(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE) -> HANDLE --- FindFirstFileW :: proc(fileName: LPCWSTR, findFileData: LPWIN32_FIND_DATAW) -> HANDLE --- FindNextFileW :: proc(findFile: HANDLE, findFileData: LPWIN32_FIND_DATAW) -> BOOL --- @@ -276,45 +129,14 @@ foreign kernel32 { GetSystemTimeAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) --- GetSystemTimePreciseAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) --- FileTimeToSystemTime :: proc(lpFileTime: ^FILETIME, lpSystemTime: ^SYSTEMTIME) -> BOOL --- - SystemTimeToTzSpecificLocalTime :: proc( - lpTimeZoneInformation: ^TIME_ZONE_INFORMATION, - lpUniversalTime: ^SYSTEMTIME, - lpLocalTime: ^SYSTEMTIME, - ) -> BOOL --- - SystemTimeToFileTime :: proc( - lpSystemTime: ^SYSTEMTIME, - lpFileTime: LPFILETIME, - ) -> BOOL --- - CreateEventW :: proc( - lpEventAttributes: LPSECURITY_ATTRIBUTES, - bManualReset: BOOL, - bInitialState: BOOL, - lpName: LPCWSTR, - ) -> HANDLE --- + SystemTimeToTzSpecificLocalTime :: proc(lpTimeZoneInformation: ^TIME_ZONE_INFORMATION, lpUniversalTime: ^SYSTEMTIME, lpLocalTime: ^SYSTEMTIME) -> BOOL --- + SystemTimeToFileTime :: proc(lpSystemTime: ^SYSTEMTIME, lpFileTime: LPFILETIME) -> BOOL --- + CreateEventW :: proc(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE --- ResetEvent :: proc(hEvent: HANDLE) -> BOOL --- - WaitForMultipleObjects :: proc( - nCount: DWORD, - lpHandles: ^HANDLE, - bWaitAll: BOOL, - dwMilliseconds: DWORD, - ) -> DWORD --- - CreateNamedPipeW :: proc( - lpName: LPCWSTR, - dwOpenMode: DWORD, - dwPipeMode: DWORD, - nMaxInstances: DWORD, - nOutBufferSize: DWORD, - nInBufferSize: DWORD, - nDefaultTimeOut: DWORD, - lpSecurityAttributes: LPSECURITY_ATTRIBUTES, - ) -> HANDLE --- + WaitForMultipleObjects :: proc(nCount: DWORD, lpHandles: ^HANDLE, bWaitAll: BOOL, dwMilliseconds: DWORD) -> DWORD --- + CreateNamedPipeW :: proc(lpName: LPCWSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> HANDLE --- CancelIo :: proc(handle: HANDLE) -> BOOL --- - GetOverlappedResult :: proc( - hFile: HANDLE, - lpOverlapped: LPOVERLAPPED, - lpNumberOfBytesTransferred: LPDWORD, - bWait: BOOL, - ) -> BOOL --- + GetOverlappedResult :: proc(hFile: HANDLE, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, bWait: BOOL) -> BOOL --- GetProcessHeap :: proc() -> HANDLE --- HeapAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID --- HeapReAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID --- @@ -325,43 +147,30 @@ foreign kernel32 { LocalFree :: proc(mem: LPVOID) -> LPVOID --- - ReadDirectoryChangesW :: proc( - hDirectory: HANDLE, - lpBuffer: LPVOID, - nBufferLength: DWORD, - bWatchSubtree: BOOL, - dwNotifyFilter: DWORD, - lpBytesReturned: LPDWORD, - lpOverlapped: LPOVERLAPPED, - lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE, - ) -> BOOL --- - FindFirstChangeNotificationW :: proc( - lpPathName: LPWSTR, - bWatchSubtree: BOOL, - dwNotifyFilter: DWORD, - ) -> HANDLE --- + ReadDirectoryChangesW :: proc(hDirectory: HANDLE, lpBuffer: LPVOID, nBufferLength: DWORD, bWatchSubtree: BOOL, dwNotifyFilter: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL --- + FindFirstChangeNotificationW :: proc(lpPathName: LPWSTR, bWatchSubtree: BOOL, dwNotifyFilter: DWORD) -> HANDLE --- FindNextChangeNotification :: proc(hChangeHandle: HANDLE) -> BOOL --- FindCloseChangeNotification :: proc(hChangeHandle: HANDLE) -> BOOL --- - InitializeSRWLock :: proc(SRWLock: ^SRWLOCK) --- - AcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- + InitializeSRWLock :: proc(SRWLock: ^SRWLOCK) --- + AcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- TryAcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) -> BOOLEAN --- - ReleaseSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- - AcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- + ReleaseSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- + AcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- TryAcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) -> BOOLEAN --- - ReleaseSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- + ReleaseSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- InitializeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- - WakeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- - WakeAllConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- - SleepConditionVariableCS :: proc(ConditionVariable: ^CONDITION_VARIABLE, CriticalSection: ^CRITICAL_SECTION, dwMilliseconds: DWORD) -> BOOL --- - SleepConditionVariableSRW :: proc(ConditionVariable: ^CONDITION_VARIABLE, SRWLock: ^SRWLOCK, dwMilliseconds: DWORD, Flags: LONG) -> BOOL --- + WakeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- + WakeAllConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- + SleepConditionVariableCS :: proc(ConditionVariable: ^CONDITION_VARIABLE, CriticalSection: ^CRITICAL_SECTION, dwMilliseconds: DWORD) -> BOOL --- + SleepConditionVariableSRW :: proc(ConditionVariable: ^CONDITION_VARIABLE, SRWLock: ^SRWLOCK, dwMilliseconds: DWORD, Flags: LONG) -> BOOL --- GetFileType :: proc(file_handle: HANDLE) -> DWORD --- SetFilePointer :: proc(file_handle: HANDLE, distance_to_move: LONG, distance_to_move_high: ^LONG, move_method: DWORD) -> DWORD --- GetFileSizeEx :: proc(file_handle: HANDLE, file_size: ^LARGE_INTEGER) -> BOOL --- - GetFileAttributesW :: proc(lpFileName: LPCWSTR) -> DWORD --- + GetFileAttributesW :: proc(lpFileName: LPCWSTR) -> DWORD --- GetFileAttributesExW :: proc(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID) -> BOOL --- GetSystemInfo :: proc(system_info: ^SYSTEM_INFO) --- GetVersionExW :: proc(osvi: ^OSVERSIONINFOEXW) --- @@ -371,8 +180,8 @@ foreign kernel32 { GetProcAddress :: proc(h: HMODULE, c_str: LPCSTR) -> rawptr --- - GetFullPathNameW :: proc(filename: LPCWSTR, buffer_length: DWORD, buffer: LPCWSTR, file_part: ^LPCWSTR) -> DWORD --- - GetLongPathNameW :: proc(short, long: LPCWSTR, len: DWORD) -> DWORD --- + GetFullPathNameW :: proc(filename: LPCWSTR, buffer_length: DWORD, buffer: LPCWSTR, file_part: ^LPCWSTR) -> DWORD --- + GetLongPathNameW :: proc(short, long: LPCWSTR, len: DWORD) -> DWORD --- GetShortPathNameW :: proc(long, short: LPCWSTR, len: DWORD) -> DWORD --- GetFinalPathNameByHandleW :: proc(hFile: HANDLE, lpszFilePath: LPCWSTR, cchFilePath: DWORD, dwFlags: DWORD) -> DWORD --- @@ -382,9 +191,9 @@ foreign kernel32 { CreatePipe :: proc(hReadPipe, hWritePipe: ^HANDLE, lpPipeAttributes: LPSECURITY_ATTRIBUTES, nSize: DWORD) -> BOOL --- - ConnectNamedPipe :: proc(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED,) -> BOOL --- - DisconnectNamedPipe :: proc(hNamedPipe: HANDLE,) -> BOOL --- - WaitNamedPipeW :: proc(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD,) -> BOOL --- + ConnectNamedPipe :: proc(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL --- + DisconnectNamedPipe :: proc(hNamedPipe: HANDLE) -> BOOL --- + WaitNamedPipeW :: proc(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD) -> BOOL --- SetConsoleCtrlHandler :: proc(HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL) -> BOOL --- GenerateConsoleCtrlEvent :: proc(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> BOOL --- @@ -392,16 +201,11 @@ foreign kernel32 { GetConsoleWindow :: proc() -> HWND --- GetConsoleScreenBufferInfo :: proc(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO) -> BOOL --- SetConsoleScreenBufferSize :: proc(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL --- - SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute : BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL --- + SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL --- GetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL --- SetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL --- - GetDiskFreeSpaceExW :: proc( - lpDirectoryName: LPCWSTR, - lpFreeBytesAvailableToCaller: PULARGE_INTEGER, - lpTotalNumberOfBytes: PULARGE_INTEGER, - lpTotalNumberOfFreeBytes: PULARGE_INTEGER, - ) -> BOOL --- + GetDiskFreeSpaceExW :: proc(lpDirectoryName: LPCWSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER, lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER) -> BOOL --- GetLogicalProcessorInformation :: proc(buffer: ^SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedLength: PDWORD) -> BOOL --- @@ -419,197 +223,94 @@ foreign kernel32 { GetTickCount64 :: proc() -> u64 --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation) GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL --- - //[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus) - GetQueuedCompletionStatus :: proc(CompletionPort: HANDLE, lpNumberOfBytesTransferred: ^DWORD, lpCompletionKey: uintptr, lpOverlapped: ^^OVERLAPPED, dwMilliseconds: DWORD) -> BOOL --- } -SECTION_QUERY :: DWORD(0x0001) -SECTION_MAP_WRITE :: DWORD(0x0002) -SECTION_MAP_READ :: DWORD(0x0004) -SECTION_MAP_EXECUTE :: DWORD(0x0008) -SECTION_EXTEND_SIZE :: DWORD(0x0010) -SECTION_ALL_ACCESS :: STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE +SECTION_QUERY :: DWORD(0x0001) +SECTION_MAP_WRITE :: DWORD(0x0002) +SECTION_MAP_READ :: DWORD(0x0004) +SECTION_MAP_EXECUTE :: DWORD(0x0008) +SECTION_EXTEND_SIZE :: DWORD(0x0010) +SECTION_ALL_ACCESS :: + STANDARD_RIGHTS_REQUIRED | + SECTION_QUERY | + SECTION_MAP_WRITE | + SECTION_MAP_READ | + SECTION_MAP_EXECUTE | + SECTION_EXTEND_SIZE SECTION_MAP_EXECUTE_EXPLICIT :: DWORD(0x0020) -FILE_MAP_WRITE :: SECTION_MAP_WRITE -FILE_MAP_READ :: SECTION_MAP_READ -FILE_MAP_ALL_ACCESS :: SECTION_ALL_ACCESS -FILE_MAP_EXECUTE :: SECTION_MAP_EXECUTE_EXPLICIT -FILE_MAP_COPY :: DWORD(0x00000001) -FILE_MAP_RESERVE :: DWORD(0x80000000) +FILE_MAP_WRITE :: SECTION_MAP_WRITE +FILE_MAP_READ :: SECTION_MAP_READ +FILE_MAP_ALL_ACCESS :: SECTION_ALL_ACCESS +FILE_MAP_EXECUTE :: SECTION_MAP_EXECUTE_EXPLICIT +FILE_MAP_COPY :: DWORD(0x00000001) +FILE_MAP_RESERVE :: DWORD(0x80000000) FILE_MAP_TARGETS_INVALID :: DWORD(0x40000000) -FILE_MAP_LARGE_PAGES :: DWORD(0x20000000) +FILE_MAP_LARGE_PAGES :: DWORD(0x20000000) -PAGE_NOACCESS :: 0x01 -PAGE_READONLY :: 0x02 -PAGE_READWRITE :: 0x04 -PAGE_WRITECOPY :: 0x08 -PAGE_EXECUTE :: 0x10 -PAGE_EXECUTE_READ :: 0x20 +PAGE_NOACCESS :: 0x01 +PAGE_READONLY :: 0x02 +PAGE_READWRITE :: 0x04 +PAGE_WRITECOPY :: 0x08 +PAGE_EXECUTE :: 0x10 +PAGE_EXECUTE_READ :: 0x20 PAGE_EXECUTE_READWRITE :: 0x40 PAGE_EXECUTE_WRITECOPY :: 0x80 -PAGE_GUARD :: 0x100 -PAGE_NOCACHE :: 0x200 -PAGE_WRITECOMBINE :: 0x400 +PAGE_GUARD :: 0x100 +PAGE_NOCACHE :: 0x200 +PAGE_WRITECOMBINE :: 0x400 MEMORY_BASIC_INFORMATION :: struct { - BaseAddress: PVOID, - AllocationBase: PVOID, + BaseAddress: PVOID, + AllocationBase: PVOID, AllocationProtect: DWORD, - PartitionId: WORD, - RegionSize: SIZE_T, - State: DWORD, - Protect: DWORD, - Type: DWORD, + PartitionId: WORD, + RegionSize: SIZE_T, + State: DWORD, + Protect: DWORD, + Type: DWORD, } PMEMORY_BASIC_INFORMATION :: ^MEMORY_BASIC_INFORMATION LPMEMORY_BASIC_INFORMATION :: ^MEMORY_BASIC_INFORMATION -MEM_COMMIT :: 0x1000 -MEM_RESERVE :: 0x2000 -MEM_DECOMMIT :: 0x4000 -MEM_RELEASE :: 0x8000 -MEM_FREE :: 0x10000 -MEM_PRIVATE :: 0x20000 -MEM_MAPPED :: 0x40000 -MEM_RESET :: 0x80000 -MEM_TOP_DOWN :: 0x100000 +MEM_COMMIT :: 0x1000 +MEM_RESERVE :: 0x2000 +MEM_DECOMMIT :: 0x4000 +MEM_RELEASE :: 0x8000 +MEM_FREE :: 0x10000 +MEM_PRIVATE :: 0x20000 +MEM_MAPPED :: 0x40000 +MEM_RESET :: 0x80000 +MEM_TOP_DOWN :: 0x100000 MEM_LARGE_PAGES :: 0x20000000 -MEM_4MB_PAGES :: 0x80000000 +MEM_4MB_PAGES :: 0x80000000 -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - VirtualAlloc :: proc( - lpAddress: LPVOID, - dwSize: SIZE_T, - flAllocationType: DWORD, - flProtect: DWORD, - ) -> LPVOID --- - VirtualProtect :: proc( - lpAddress: LPVOID, - dwSize: SIZE_T, - flNewProtect: DWORD, - lpflOldProtect: PDWORD, - ) -> BOOL --- - VirtualFree :: proc( - lpAddress: LPVOID, - dwSize: SIZE_T, - dwFreeType: DWORD, - ) -> BOOL --- - VirtualQuery :: proc( - lpAddress: LPCVOID, - lpBuffer: PMEMORY_BASIC_INFORMATION, - dwLength: SIZE_T, - ) -> SIZE_T --- - VirtualAllocEx :: proc( - hProcess: HANDLE, - lpAddress: LPVOID, - dwSize: SIZE_T, - flAllocationType: DWORD, - flProtect: DWORD, - ) -> LPVOID --- - VirtualFreeEx :: proc( - hProcess: HANDLE, - lpAddress: LPVOID, - dwSize: SIZE_T, - dwFreeType: DWORD, - ) -> BOOL --- - VirtualProtectEx :: proc( - hProcess: HANDLE, - lpAddress: LPVOID, - dwSize: SIZE_T, - flNewProtect: DWORD, - lpflOldProtect: PDWORD, - ) -> BOOL --- - VirtualQueryEx :: proc( - hProcess: HANDLE, - lpAddress: LPCVOID, - lpBuffer: PMEMORY_BASIC_INFORMATION, - dwLength: SIZE_T, - ) -> SIZE_T --- - ReadProcessMemory :: proc( - hProcess: HANDLE, - lpBaseAddress: LPCVOID, - lpBuffer: LPVOID, - nSize: SIZE_T, - lpNumberOfBytesRead: ^SIZE_T, - ) -> BOOL --- - WriteProcessMemory :: proc( - hProcess: HANDLE, - lpBaseAddress: LPVOID, - lpBuffer: LPCVOID, - nSize: SIZE_T, - lpNumberOfBytesWritten: ^SIZE_T, - ) -> BOOL --- - CreateFileMappingW :: proc( - hFile: HANDLE, - lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, - flProtect: DWORD, - dwMaximumSizeHigh: DWORD, - dwMaximumSizeLow: DWORD, - lpName: LPCWSTR, - ) -> HANDLE --- - OpenFileMappingW :: proc( - dwDesiredAccess: DWORD, - bInheritHandle: BOOL, - lpName: LPCWSTR, - ) -> HANDLE --- - MapViewOfFile :: proc( - hFileMappingObject: HANDLE, - dwDesiredAccess: DWORD, - dwFileOffsetHigh: DWORD, - dwFileOffsetLow: DWORD, - dwNumberOfBytesToMap: SIZE_T, - ) -> LPVOID --- - MapViewOfFileEx :: proc( - hFileMappingObject: HANDLE, - dwDesiredAccess: DWORD, - dwFileOffsetHigh: DWORD, - dwFileOffsetLow: DWORD, - dwNumberOfBytesToMap: SIZE_T, - lpBaseAddress: LPVOID, - ) -> LPVOID --- - FlushViewOfFile :: proc( - lpBaseAddress: LPCVOID, - dwNumberOfBytesToFlush: SIZE_T, - ) -> BOOL --- - UnmapViewOfFile :: proc( - lpBaseAddress: LPCVOID, - ) -> BOOL --- + VirtualAlloc :: proc(lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) -> LPVOID --- + VirtualProtect :: proc(lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD) -> BOOL --- + VirtualFree :: proc(lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> BOOL --- + VirtualQuery :: proc(lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T) -> SIZE_T --- + VirtualAllocEx :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) -> LPVOID --- + VirtualFreeEx :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> BOOL --- + VirtualProtectEx :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD) -> BOOL --- + VirtualQueryEx :: proc(hProcess: HANDLE, lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T) -> SIZE_T --- + ReadProcessMemory :: proc(hProcess: HANDLE, lpBaseAddress: LPCVOID, lpBuffer: LPVOID, nSize: SIZE_T, lpNumberOfBytesRead: ^SIZE_T) -> BOOL --- + WriteProcessMemory :: proc(hProcess: HANDLE, lpBaseAddress: LPVOID, lpBuffer: LPCVOID, nSize: SIZE_T, lpNumberOfBytesWritten: ^SIZE_T) -> BOOL --- + CreateFileMappingW :: proc(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR) -> HANDLE --- + OpenFileMappingW :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE --- + MapViewOfFile :: proc(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T) -> LPVOID --- + MapViewOfFileEx :: proc(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T, lpBaseAddress: LPVOID) -> LPVOID --- + FlushViewOfFile :: proc(lpBaseAddress: LPCVOID, dwNumberOfBytesToFlush: SIZE_T) -> BOOL --- + UnmapViewOfFile :: proc(lpBaseAddress: LPCVOID) -> BOOL --- GetLargePageMinimum :: proc() -> SIZE_T --- - GetProcessWorkingSetSizeEx :: proc( - hProcess: HANDLE, - lpMinimumWorkingSetSize: PSIZE_T, - lpMaximumWorkingSetSize: PSIZE_T, - Flags: PDWORD, - ) -> BOOL --- - SetProcessWorkingSetSizeEx :: proc( - hProcess: HANDLE, - dwMinimumWorkingSetSize: SIZE_T, - dwMaximumWorkingSetSize: SIZE_T, - Flags: DWORD, - ) -> BOOL --- - VirtualLock :: proc( - lpAddress: LPVOID, - dwSize: SIZE_T, - ) -> BOOL --- - VirtualUnlock :: proc( - lpAddress: LPVOID, - dwSize: SIZE_T, - ) -> BOOL --- - GetWriteWatch :: proc( - dwFlags: DWORD, - lpBaseAddress: PVOID, - dwRegionSize: SIZE_T, - lpAddresses: ^PVOID, - lpdwCount: ^ULONG_PTR, - lpdwGranularity: LPDWORD, - ) -> UINT --- - ResetWriteWatch :: proc( - lpBaseAddress: LPVOID, - dwRegionSize: SIZE_T, - ) -> UINT --- + GetProcessWorkingSetSizeEx :: proc(hProcess: HANDLE, lpMinimumWorkingSetSize: PSIZE_T, lpMaximumWorkingSetSize: PSIZE_T, Flags: PDWORD) -> BOOL --- + SetProcessWorkingSetSizeEx :: proc(hProcess: HANDLE, dwMinimumWorkingSetSize: SIZE_T, dwMaximumWorkingSetSize: SIZE_T, Flags: DWORD) -> BOOL --- + VirtualLock :: proc(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL --- + VirtualUnlock :: proc(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL --- + GetWriteWatch :: proc(dwFlags: DWORD, lpBaseAddress: PVOID, dwRegionSize: SIZE_T, lpAddresses: ^PVOID, lpdwCount: ^ULONG_PTR, lpdwGranularity: LPDWORD) -> UINT --- + ResetWriteWatch :: proc(lpBaseAddress: LPVOID, dwRegionSize: SIZE_T) -> UINT --- } @@ -617,138 +318,66 @@ MEMORY_RESOURCE_NOTIFICATION_TYPE :: enum c_int { LowMemoryResourceNotification, HighMemoryResourceNotification, } -LowMemoryResourceNotification :: MEMORY_RESOURCE_NOTIFICATION_TYPE.LowMemoryResourceNotification +LowMemoryResourceNotification :: MEMORY_RESOURCE_NOTIFICATION_TYPE.LowMemoryResourceNotification HighMemoryResourceNotification :: MEMORY_RESOURCE_NOTIFICATION_TYPE.HighMemoryResourceNotification -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - CreateMemoryResourceNotification :: proc( - NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE, - ) -> HANDLE --- - QueryMemoryResourceNotification :: proc( - ResourceNotificationHandle: HANDLE, - ResourceState: PBOOL, - ) -> BOOL --- + CreateMemoryResourceNotification :: proc(NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE) -> HANDLE --- + QueryMemoryResourceNotification :: proc(ResourceNotificationHandle: HANDLE, ResourceState: PBOOL) -> BOOL --- } -FILE_CACHE_MAX_HARD_ENABLE :: DWORD(0x00000001) +FILE_CACHE_MAX_HARD_ENABLE :: DWORD(0x00000001) FILE_CACHE_MAX_HARD_DISABLE :: DWORD(0x00000002) -FILE_CACHE_MIN_HARD_ENABLE :: DWORD(0x00000004) +FILE_CACHE_MIN_HARD_ENABLE :: DWORD(0x00000004) FILE_CACHE_MIN_HARD_DISABLE :: DWORD(0x00000008) -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - GetSystemFileCacheSize :: proc( - lpMinimumFileCacheSize: PSIZE_T, - lpMaximumFileCacheSize: PSIZE_T, - lpFlags: PDWORD, - ) -> BOOL --- - SetSystemFileCacheSize :: proc( - MinimumFileCacheSize: SIZE_T, - MaximumFileCacheSize: SIZE_T, - Flags: DWORD, - ) -> BOOL --- - CreateFileMappingNumaW :: proc( - hFile: HANDLE, - lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, - flProtect: DWORD, - dwMaximumSizeHigh: DWORD, - dwMaximumSizeLow: DWORD, - lpName: LPCWSTR, - nndPreferred: DWORD, - ) -> HANDLE --- + GetSystemFileCacheSize :: proc(lpMinimumFileCacheSize: PSIZE_T, lpMaximumFileCacheSize: PSIZE_T, lpFlags: PDWORD) -> BOOL --- + SetSystemFileCacheSize :: proc(MinimumFileCacheSize: SIZE_T, MaximumFileCacheSize: SIZE_T, Flags: DWORD) -> BOOL --- + CreateFileMappingNumaW :: proc(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR, nndPreferred: DWORD) -> HANDLE --- } WIN32_MEMORY_RANGE_ENTRY :: struct { VirtualAddress: PVOID, - NumberOfBytes: SIZE_T, + NumberOfBytes: SIZE_T, } PWIN32_MEMORY_RANGE_ENTRY :: ^WIN32_MEMORY_RANGE_ENTRY -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - PrefetchVirtualMemory :: proc( - hProcess: HANDLE, - NumberOfEntries: ULONG_PTR, - VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY, - Flags: ULONG, - ) -> BOOL --- - CreateFileMappingFromApp :: proc( - hFile: HANDLE, - SecurityAttributes: PSECURITY_ATTRIBUTES, - PageProtection: ULONG, - MaximumSize: ULONG64, - Name: PCWSTR, - ) -> HANDLE --- - MapViewOfFileFromApp :: proc( - hFileMappingObject: HANDLE, - DesiredAccess: ULONG, - FileOffset: ULONG64, - NumberOfBytesToMap: SIZE_T, - ) -> PVOID --- - UnmapViewOfFileEx :: proc( - BaseAddress: PVOID, - UnmapFlags: ULONG, - ) -> BOOL --- - AllocateUserPhysicalPages :: proc( - hProcess: HANDLE, - NumberOfPages: PULONG_PTR, - PageArray: PULONG_PTR, - ) -> BOOL --- - FreeUserPhysicalPages :: proc( - hProcess: HANDLE, - NumberOfPages: PULONG_PTR, - PageArray: PULONG_PTR, - ) -> BOOL --- - MapUserPhysicalPages :: proc( - VirtualAddress: PVOID, - NumberOfPages: ULONG_PTR, - PageArray: PULONG_PTR, - ) -> BOOL --- - AllocateUserPhysicalPagesNuma :: proc( - hProcess: HANDLE, - NumberOfPages: PULONG_PTR, - PageArray: PULONG_PTR, - nndPreferred: DWORD, - ) -> BOOL --- - VirtualAllocExNuma :: proc( - hProcess: HANDLE, - lpAddress: LPVOID, - dwSize: SIZE_T, - flAllocationType: DWORD, - flProtect: DWORD, - nndPreferred: DWORD, - ) -> LPVOID --- + PrefetchVirtualMemory :: proc(hProcess: HANDLE, NumberOfEntries: ULONG_PTR, VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY, Flags: ULONG) -> BOOL --- + CreateFileMappingFromApp :: proc(hFile: HANDLE, SecurityAttributes: PSECURITY_ATTRIBUTES, PageProtection: ULONG, MaximumSize: ULONG64, Name: PCWSTR) -> HANDLE --- + MapViewOfFileFromApp :: proc(hFileMappingObject: HANDLE, DesiredAccess: ULONG, FileOffset: ULONG64, NumberOfBytesToMap: SIZE_T) -> PVOID --- + UnmapViewOfFileEx :: proc(BaseAddress: PVOID, UnmapFlags: ULONG) -> BOOL --- + AllocateUserPhysicalPages :: proc(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR) -> BOOL --- + FreeUserPhysicalPages :: proc(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR) -> BOOL --- + MapUserPhysicalPages :: proc(VirtualAddress: PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR) -> BOOL --- + AllocateUserPhysicalPagesNuma :: proc(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR, nndPreferred: DWORD) -> BOOL --- + VirtualAllocExNuma :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD, nndPreferred: DWORD) -> LPVOID --- } MEHC_PATROL_SCRUBBER_PRESENT :: ULONG(0x1) -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - GetMemoryErrorHandlingCapabilities :: proc( - Capabilities: PULONG, - ) -> BOOL --- + GetMemoryErrorHandlingCapabilities :: proc(Capabilities: PULONG) -> BOOL --- } -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - GlobalMemoryStatusEx :: proc( - lpBuffer: ^MEMORYSTATUSEX, - ) -> BOOL --- + GlobalMemoryStatusEx :: proc(lpBuffer: ^MEMORYSTATUSEX) -> BOOL --- } PBAD_MEMORY_CALLBACK_ROUTINE :: #type proc "stdcall" () -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - RegisterBadMemoryNotification :: proc( - Callback: PBAD_MEMORY_CALLBACK_ROUTINE, - ) -> PVOID --- - UnregisterBadMemoryNotification :: proc( - RegistrationHandle: PVOID, - ) -> BOOL --- + RegisterBadMemoryNotification :: proc(Callback: PBAD_MEMORY_CALLBACK_ROUTINE) -> PVOID --- + UnregisterBadMemoryNotification :: proc(RegistrationHandle: PVOID) -> BOOL --- } OFFER_PRIORITY :: enum c_int { @@ -757,43 +386,19 @@ OFFER_PRIORITY :: enum c_int { VmOfferPriorityBelowNormal, VmOfferPriorityNormal, } -VmOfferPriorityVeryLow :: OFFER_PRIORITY.VmOfferPriorityVeryLow -VmOfferPriorityLow :: OFFER_PRIORITY.VmOfferPriorityLow +VmOfferPriorityVeryLow :: OFFER_PRIORITY.VmOfferPriorityVeryLow +VmOfferPriorityLow :: OFFER_PRIORITY.VmOfferPriorityLow VmOfferPriorityBelowNormal :: OFFER_PRIORITY.VmOfferPriorityBelowNormal -VmOfferPriorityNormal :: OFFER_PRIORITY.VmOfferPriorityNormal +VmOfferPriorityNormal :: OFFER_PRIORITY.VmOfferPriorityNormal -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - OfferVirtualMemory :: proc( - VirtualAddress: PVOID, - Size: SIZE_T, - Priority: OFFER_PRIORITY, - ) -> DWORD --- - ReclaimVirtualMemory :: proc( - VirtualAddress: PVOID, - Size: SIZE_T, - ) -> DWORD --- - DiscardVirtualMemory :: proc( - VirtualAddress: PVOID, - Size: SIZE_T, - ) -> DWORD --- - VirtualAllocFromApp :: proc( - BaseAddress: PVOID, - Size: SIZE_T, - AllocationType: ULONG, - Protection: ULONG, - ) -> PVOID --- - VirtualProtectFromApp :: proc( - Address: PVOID, - Size: SIZE_T, - NewProtection: ULONG, - OldProtection: PULONG, - ) -> BOOL --- - OpenFileMappingFromApp :: proc( - DesiredAccess: ULONG, - InheritHandle: BOOL, - Name: PCWSTR, - ) -> HANDLE --- + OfferVirtualMemory :: proc(VirtualAddress: PVOID, Size: SIZE_T, Priority: OFFER_PRIORITY) -> DWORD --- + ReclaimVirtualMemory :: proc(VirtualAddress: PVOID, Size: SIZE_T) -> DWORD --- + DiscardVirtualMemory :: proc(VirtualAddress: PVOID, Size: SIZE_T) -> DWORD --- + VirtualAllocFromApp :: proc(BaseAddress: PVOID, Size: SIZE_T, AllocationType: ULONG, Protection: ULONG) -> PVOID --- + VirtualProtectFromApp :: proc(Address: PVOID, Size: SIZE_T, NewProtection: ULONG, OldProtection: PULONG) -> BOOL --- + OpenFileMappingFromApp :: proc(DesiredAccess: ULONG, InheritHandle: BOOL, Name: PCWSTR) -> HANDLE --- } WIN32_MEMORY_INFORMATION_CLASS :: enum c_int { @@ -802,16 +407,16 @@ WIN32_MEMORY_INFORMATION_CLASS :: enum c_int { MemoryRegionInfo :: WIN32_MEMORY_INFORMATION_CLASS.MemoryRegionInfo WIN32_MEMORY_REGION_INFORMATION :: struct { - AllocationBase: PVOID, + AllocationBase: PVOID, AllocationProtect: ULONG, - u: WIN32_MEMORY_REGION_INFORMATION_u, - RegionSize: SIZE_T, - CommitSize: SIZE_T, + u: WIN32_MEMORY_REGION_INFORMATION_u, + RegionSize: SIZE_T, + CommitSize: SIZE_T, } WIN32_MEMORY_REGION_INFORMATION_u :: struct #raw_union { - u: [1]u32, + u: [1]u32, Flags: ULONG, - s: WIN32_MEMORY_REGION_INFORMATION_u_s, + s: WIN32_MEMORY_REGION_INFORMATION_u_s, } WIN32_MEMORY_REGION_INFORMATION_u_s :: struct { Bitfield: ULONG, @@ -827,26 +432,10 @@ WIN32_MEMORY_REGION_INFORMATION_u_s_Bitfield :: distinct ULONG Reserved : 32-6, }*/ -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - QueryVirtualMemoryInformation :: proc( - Process: HANDLE, - VirtualAddress: PVOID, - MemoryInformationClass: WIN32_MEMORY_INFORMATION_CLASS, - MemoryInformation: PVOID, - MemoryInformationSize: SIZE_T, - ReturnSize: PSIZE_T, - ) -> BOOL --- - MapViewOfFileNuma2 :: proc( - FileMappingHandle: HANDLE, - ProcessHandle: HANDLE, - Offset: ULONG64, - BaseAddress: PVOID, - ViewSize: SIZE_T, - AllocationType: ULONG, - PageProtection: ULONG, - PreferredNode: ULONG, - ) -> PVOID --- + QueryVirtualMemoryInformation :: proc(Process: HANDLE, VirtualAddress: PVOID, MemoryInformationClass: WIN32_MEMORY_INFORMATION_CLASS, MemoryInformation: PVOID, MemoryInformationSize: SIZE_T, ReturnSize: PSIZE_T) -> BOOL --- + MapViewOfFileNuma2 :: proc(FileMappingHandle: HANDLE, ProcessHandle: HANDLE, Offset: ULONG64, BaseAddress: PVOID, ViewSize: SIZE_T, AllocationType: ULONG, PageProtection: ULONG, PreferredNode: ULONG) -> PVOID --- } @@ -873,57 +462,45 @@ MapViewOfFile2 :: #force_inline proc "stdcall" ( ) } -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - UnmapViewOfFile2 :: proc( - ProcessHandle: HANDLE, - BaseAddress: PVOID, - UnmapFlags: ULONG, - ) -> BOOL --- + UnmapViewOfFile2 :: proc(ProcessHandle: HANDLE, BaseAddress: PVOID, UnmapFlags: ULONG) -> BOOL --- } -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { - GetProductInfo :: proc( - OSMajorVersion: DWORD, - OSMinorVersion: DWORD, - SpMajorVersion: DWORD, - SpMinorVersion: DWORD, - product_type: ^Windows_Product_Type, - ) -> BOOL --- + GetProductInfo :: proc(OSMajorVersion: DWORD, OSMinorVersion: DWORD, SpMajorVersion: DWORD, SpMinorVersion: DWORD, product_type: ^Windows_Product_Type) -> BOOL --- } HandlerRoutine :: proc "stdcall" (dwCtrlType: DWORD) -> BOOL PHANDLER_ROUTINE :: HandlerRoutine - - DCB_Config :: struct { - fParity: bool, - fOutxCtsFlow: bool, - fOutxDsrFlow: bool, - fDtrControl: DTR_Control, - fDsrSensitivity: bool, + fParity: bool, + fOutxCtsFlow: bool, + fOutxDsrFlow: bool, + fDtrControl: DTR_Control, + fDsrSensitivity: bool, fTXContinueOnXoff: bool, - fOutX: bool, - fInX: bool, - fErrorChar: bool, - fNull: bool, - fRtsControl: RTS_Control, - fAbortOnError: bool, - BaudRate: DWORD, - ByteSize: BYTE, - Parity: Parity, - StopBits: Stop_Bits, - XonChar: byte, - XoffChar: byte, - ErrorChar: byte, - EvtChar: byte, + fOutX: bool, + fInX: bool, + fErrorChar: bool, + fNull: bool, + fRtsControl: RTS_Control, + fAbortOnError: bool, + BaudRate: DWORD, + ByteSize: BYTE, + Parity: Parity, + StopBits: Stop_Bits, + XonChar: byte, + XoffChar: byte, + ErrorChar: byte, + EvtChar: byte, } DTR_Control :: enum byte { - Disable = 0, - Enable = 1, + Disable = 0, + Enable = 1, Handshake = 2, } RTS_Control :: enum byte { @@ -940,9 +517,9 @@ Parity :: enum byte { Space = 4, } Stop_Bits :: enum byte { - One = 0, + One = 0, One_And_A_Half = 1, - Two = 2, + Two = 2, } // A helper procedure to set the values of a DCB structure. @@ -1017,24 +594,24 @@ get_dcb_config :: proc "contextless" (dcb: DCB) -> (config: DCB_Config) { // NOTE(tetra): See get_dcb_config() and init_dcb_with_config() for help with initializing this. DCB :: struct { - DCBlength: DWORD, // NOTE(tetra): Must be set to size_of(DCB). - BaudRate: DWORD, - settings: u32, // NOTE(tetra): These are bitfields in the C struct. - wReserved: WORD, - XOnLim: WORD, - XOffLim: WORD, - ByteSize: BYTE, - Parity: Parity, - StopBits: Stop_Bits, - XonChar: byte, - XoffChar: byte, - ErrorChar: byte, - EofChar: byte, - EvtChar: byte, + DCBlength: DWORD, // NOTE(tetra): Must be set to size_of(DCB). + BaudRate: DWORD, + settings: u32, // NOTE(tetra): These are bitfields in the C struct. + wReserved: WORD, + XOnLim: WORD, + XOffLim: WORD, + ByteSize: BYTE, + Parity: Parity, + StopBits: Stop_Bits, + XonChar: byte, + XoffChar: byte, + ErrorChar: byte, + EofChar: byte, + EvtChar: byte, wReserved1: WORD, } -@(default_calling_convention="stdcall") +@(default_calling_convention = "stdcall") foreign kernel32 { GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- @@ -1071,11 +648,11 @@ PROCESSOR_CACHE_TYPE :: enum c_int { } CACHE_DESCRIPTOR :: struct { - Level: BYTE, + Level: BYTE, Associativity: BYTE, - LineSize: WORD, - Size: DWORD, - Type: PROCESSOR_CACHE_TYPE, + LineSize: WORD, + Size: DWORD, + Type: PROCESSOR_CACHE_TYPE, } ProcessorCore :: struct { @@ -1085,14 +662,14 @@ NumaNode :: struct { NodeNumber: DWORD, } DUMMYUNIONNAME_u :: struct #raw_union { - Core: ProcessorCore, - Node: NumaNode, - Cache: CACHE_DESCRIPTOR, + Core: ProcessorCore, + Node: NumaNode, + Cache: CACHE_DESCRIPTOR, Reserved: [2]ULONGLONG, } SYSTEM_LOGICAL_PROCESSOR_INFORMATION :: struct { ProcessorMask: ULONG_PTR, - Relationship: LOGICAL_PROCESSOR_RELATIONSHIP, - DummyUnion: DUMMYUNIONNAME_u, + Relationship: LOGICAL_PROCESSOR_RELATIONSHIP, + DummyUnion: DUMMYUNIONNAME_u, } From bf75fd9d3494c451f564b2b55032e4b8df2776b4 Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 22:02:37 -0700 Subject: [PATCH 27/50] Revert "remove keyedevent" This reverts commit 219343f3c0e1bdf6130af5d07baa6c929379dfe1. --- core/sys/windows/kernel32.odin | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 7bd795ac2..37cb25d3b 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -221,6 +221,8 @@ foreign kernel32 { PostQueuedCompletionStatus :: proc(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: c_ulong, lpOverlapped: ^OVERLAPPED) -> BOOL --- // [MS-Docs] (https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-gettickcount64) GetTickCount64 :: proc() -> u64 --- + // [MS-Docs](https://github.com/mic101/windows/blob/master/WRK-v1.2/base/ntos/ex/keyedevent.c) + NtCreateKeyedEvent :: proc(KeyedEventHandle: ^HANDLE, DesiredAccess: ACCESS_MASK, ObjectAttributes: OBJECT_ATTRIBUTES, Flags: u32) -> NTSTATUS --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation) GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL --- } From c5d2b019235f04b5d7b3d4dde415acf645d7d07f Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 23:03:19 -0700 Subject: [PATCH 28/50] remove runtime signatures to prevent ffi collisions --- core/sys/windows/ws2_32.odin | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index ef4a9465b..bc3816e3d 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -44,40 +44,7 @@ IOC_OUT :: 0x40000000 IOC_IN :: 0x80000000 IOC_INOUT :: (IOC_IN | IOC_OUT) IOC_WS2 :: 0x08000000 -/* -Example Load: - load_accept_ex :: proc(listener: SOCKET, fn_acceptex: rawptr) { - bytes: u32 - guid_accept_ex := WSAID_ACCEPTEX - rc := WSAIoctl(listener, SIO_GET_EXTENSION_FUNCTION_POINTER, &guid_accept_ex, size_of(guid_accept_ex), - fn_acceptex, size_of(fn_acceptex), &bytes, nil, nil,) - assert(rc != windows.SOCKET_ERROR) - } -*/ -// NOTE: AcceptEx should be loaded at runtime per MS-Docs -//[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex) -AcceptEx :: proc( - sListenSocket: SOCKET, - sAcceptSocket: SOCKET, - lpOutputBuffer: rawptr, - dwReceiveDataLength: u32, - dwLocalAddressLength: u32, - dwRemoteAddressLength: u32, - lpdwBytesReceived: ^u32, - lpOverlapped: ^OVERLAPPED, -) -> b32 -// NOTE: GetAcceptExSockaddrs should be loaded at runtime per MS-Docs -//[MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-getacceptexsockaddrs) -GetAcceptExSockaddrs :: proc( - lpOutputBuffer: rawptr, - dwReceiveDataLength: u32, - dwLocalAddressLength: u32, - dwRemoteAddressLength: u32, - LocalSockaddr: ^^sockaddr, - LocalSockaddrLength: ^i32, - RemoteSockaddr: ^^sockaddr, - RemoteSockaddrLength: ^i32, -) + foreign import ws2_32 "system:Ws2_32.lib" @(default_calling_convention="stdcall") From 236347b5bc105f41ef2fee82dc4aa396c5e02271 Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 23:11:01 -0700 Subject: [PATCH 29/50] retain runtime load sample --- core/sys/windows/ws2_32.odin | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index bc3816e3d..631ef4241 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -44,7 +44,16 @@ IOC_OUT :: 0x40000000 IOC_IN :: 0x80000000 IOC_INOUT :: (IOC_IN | IOC_OUT) IOC_WS2 :: 0x08000000 - +/* +Example Load: + load_accept_ex :: proc(listener: SOCKET, fn_acceptex: rawptr) { + bytes: u32 + guid_accept_ex := WSAID_ACCEPTEX + rc := WSAIoctl(listener, SIO_GET_EXTENSION_FUNCTION_POINTER, &guid_accept_ex, size_of(guid_accept_ex), + fn_acceptex, size_of(fn_acceptex), &bytes, nil, nil,) + assert(rc != windows.SOCKET_ERROR) + } +*/ foreign import ws2_32 "system:Ws2_32.lib" @(default_calling_convention="stdcall") From 2c9156e2c18c9789c79e34bae296914e6aeca66e Mon Sep 17 00:00:00 2001 From: Jon Lipstate Date: Tue, 4 Apr 2023 23:57:52 -0700 Subject: [PATCH 30/50] repaired autoformatter --- core/sys/windows/kernel32.odin | 903 ++++++++++++++++++++++++--------- 1 file changed, 660 insertions(+), 243 deletions(-) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index 37cb25d3b..ae21654b4 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -3,53 +3,75 @@ package sys_windows foreign import kernel32 "system:Kernel32.lib" -FOREGROUND_BLUE :: WORD(0x0001) -FOREGROUND_GREEN :: WORD(0x0002) -FOREGROUND_RED :: WORD(0x0004) -FOREGROUND_INTENSITY :: WORD(0x0008) -BACKGROUND_BLUE :: WORD(0x0010) -BACKGROUND_GREEN :: WORD(0x0020) -BACKGROUND_RED :: WORD(0x0040) -BACKGROUND_INTENSITY :: WORD(0x0080) -COMMON_LVB_LEADING_BYTE :: WORD(0x0100) -COMMON_LVB_TRAILING_BYTE :: WORD(0x0200) +FOREGROUND_BLUE :: WORD(0x0001) +FOREGROUND_GREEN :: WORD(0x0002) +FOREGROUND_RED :: WORD(0x0004) +FOREGROUND_INTENSITY :: WORD(0x0008) +BACKGROUND_BLUE :: WORD(0x0010) +BACKGROUND_GREEN :: WORD(0x0020) +BACKGROUND_RED :: WORD(0x0040) +BACKGROUND_INTENSITY :: WORD(0x0080) +COMMON_LVB_LEADING_BYTE :: WORD(0x0100) +COMMON_LVB_TRAILING_BYTE :: WORD(0x0200) COMMON_LVB_GRID_HORIZONTAL :: WORD(0x0400) -COMMON_LVB_GRID_LVERTICAL :: WORD(0x0800) -COMMON_LVB_GRID_RVERTICAL :: WORD(0x1000) -COMMON_LVB_REVERSE_VIDEO :: WORD(0x4000) -COMMON_LVB_UNDERSCORE :: WORD(0x8000) -COMMON_LVB_SBCSDBCS :: WORD(0x0300) +COMMON_LVB_GRID_LVERTICAL :: WORD(0x0800) +COMMON_LVB_GRID_RVERTICAL :: WORD(0x1000) +COMMON_LVB_REVERSE_VIDEO :: WORD(0x4000) +COMMON_LVB_UNDERSCORE :: WORD(0x8000) +COMMON_LVB_SBCSDBCS :: WORD(0x0300) -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { OutputDebugStringA :: proc(lpOutputString: LPCSTR) --- // The only A thing that is allowed OutputDebugStringW :: proc(lpOutputString: LPCWSTR) --- - ReadConsoleW :: proc(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL) -> BOOL --- + ReadConsoleW :: proc(hConsoleInput: HANDLE, + lpBuffer: LPVOID, + nNumberOfCharsToRead: DWORD, + lpNumberOfCharsRead: LPDWORD, + pInputControl: PCONSOLE_READCONSOLE_CONTROL) -> BOOL --- - WriteConsoleW :: proc(hConsoleOutput: HANDLE, lpBuffer: LPCVOID, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID) -> BOOL --- + WriteConsoleW :: proc(hConsoleOutput: HANDLE, + lpBuffer: LPCVOID, + nNumberOfCharsToWrite: DWORD, + lpNumberOfCharsWritten: LPDWORD, + lpReserved: LPVOID) -> BOOL --- - GetConsoleMode :: proc(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> BOOL --- - SetConsoleMode :: proc(hConsoleHandle: HANDLE, dwMode: DWORD) -> BOOL --- - SetConsoleCursorPosition :: proc(hConsoleHandle: HANDLE, dwCursorPosition: COORD) -> BOOL --- - SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL --- + GetConsoleMode :: proc(hConsoleHandle: HANDLE, + lpMode: LPDWORD) -> BOOL --- + SetConsoleMode :: proc(hConsoleHandle: HANDLE, + dwMode: DWORD) -> BOOL --- + SetConsoleCursorPosition :: proc(hConsoleHandle: HANDLE, + dwCursorPosition: COORD) -> BOOL --- + SetConsoleTextAttribute :: proc(hConsoleOutput: HANDLE, + wAttributes: WORD) -> BOOL --- SetConsoleOutputCP :: proc(wCodePageID: UINT) -> BOOL --- - + GetFileInformationByHandle :: proc(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION) -> BOOL --- - SetHandleInformation :: proc(hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD) -> BOOL --- - SetFileInformationByHandle :: proc(hFile: HANDLE, FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD) -> BOOL --- + SetHandleInformation :: proc(hObject: HANDLE, + dwMask: DWORD, + dwFlags: DWORD) -> BOOL --- + SetFileInformationByHandle :: proc(hFile: HANDLE, + FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, + lpFileInformation: LPVOID, + dwBufferSize: DWORD) -> BOOL --- AddVectoredExceptionHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID --- - AddVectoredContinueHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID --- - RemoveVectoredExceptionHandler :: proc(Handle: LPVOID) -> DWORD --- - RemoveVectoredContinueHandler :: proc(Handle: LPVOID) -> DWORD --- + AddVectoredContinueHandler :: proc(FirstHandler: ULONG, VectoredHandler: PVECTORED_EXCEPTION_HANDLER) -> LPVOID --- + RemoveVectoredExceptionHandler :: proc(Handle: LPVOID) -> DWORD --- + RemoveVectoredContinueHandler :: proc(Handle: LPVOID) -> DWORD --- RaiseException :: proc(dwExceptionCode, dwExceptionFlags, nNumberOfArguments: DWORD, lpArguments: ^ULONG_PTR) -> ! --- - CreateHardLinkW :: proc(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL --- + CreateHardLinkW :: proc(lpSymlinkFileName: LPCWSTR, + lpTargetFileName: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL --- - GetFileInformationByHandleEx :: proc(hFile: HANDLE, fileInfoClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD) -> BOOL --- + GetFileInformationByHandleEx :: proc(hFile: HANDLE, + fileInfoClass: FILE_INFO_BY_HANDLE_CLASS, + lpFileInformation: LPVOID, + dwBufferSize: DWORD) -> BOOL --- InitializeCriticalSection :: proc(CriticalSection: ^CRITICAL_SECTION) --- InitializeCriticalSectionAndSpinCount :: proc(CriticalSection: ^CRITICAL_SECTION, dwSpinCount: DWORD) -> BOOL --- @@ -67,12 +89,42 @@ foreign kernel32 { GetCurrentProcessId :: proc() -> DWORD --- GetCurrentThread :: proc() -> HANDLE --- GetCurrentThreadId :: proc() -> DWORD --- - GetProcessTimes :: proc(hProcess: HANDLE, lpCreationTime: LPFILETIME, lpExitTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME) -> BOOL --- + GetProcessTimes :: proc( + hProcess: HANDLE, + lpCreationTime: LPFILETIME, + lpExitTime: LPFILETIME, + lpKernelTime: LPFILETIME, + lpUserTime: LPFILETIME, + ) -> BOOL --- GetStdHandle :: proc(which: DWORD) -> HANDLE --- ExitProcess :: proc(uExitCode: c_uint) -> ! --- - DeviceIoControl :: proc(hDevice: HANDLE, dwIoControlCode: DWORD, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- - CreateThread :: proc(lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: proc "stdcall" (_: rawptr) -> DWORD, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD) -> HANDLE --- - CreateRemoteThread :: proc(hProcess: HANDLE, lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: proc "stdcall" (_: rawptr) -> DWORD, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD) -> HANDLE --- + DeviceIoControl :: proc( + hDevice: HANDLE, + dwIoControlCode: DWORD, + lpInBuffer: LPVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesReturned: LPDWORD, + lpOverlapped: LPOVERLAPPED, + ) -> BOOL --- + CreateThread :: proc( + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + dwStackSize: SIZE_T, + lpStartAddress: proc "stdcall" (rawptr) -> DWORD, + lpParameter: LPVOID, + dwCreationFlags: DWORD, + lpThreadId: LPDWORD, + ) -> HANDLE --- + CreateRemoteThread :: proc( + hProcess: HANDLE, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + dwStackSize: SIZE_T, + lpStartAddress: proc "stdcall" (rawptr) -> DWORD, + lpParameter: LPVOID, + dwCreationFlags: DWORD, + lpThreadId: LPDWORD, + ) -> HANDLE --- SwitchToThread :: proc() -> BOOL --- ResumeThread :: proc(thread: HANDLE) -> DWORD --- GetThreadPriority :: proc(thread: HANDLE) -> c_int --- @@ -83,14 +135,46 @@ foreign kernel32 { CreateSemaphoreW :: proc(attributes: LPSECURITY_ATTRIBUTES, initial_count, maximum_count: LONG, name: LPCWSTR) -> HANDLE --- ReleaseSemaphore :: proc(semaphore: HANDLE, release_count: LONG, previous_count: ^LONG) -> BOOL --- - CreateWaitableTimerW :: proc(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, lpTimerName: LPCWSTR) -> HANDLE --- - CreateWaitableTimerExW :: proc(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE --- - SetWaitableTimerEx :: proc(hTimer: HANDLE, lpDueTime: ^LARGE_INTEGER, lPeriod: LONG, pfnCompletionRoutine: PTIMERAPCROUTINE, lpArgToCompletionRoutine: LPVOID, WakeContext: PREASON_CONTEXT, TolerableDelay: ULONG) -> BOOL --- + CreateWaitableTimerW :: proc( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, + bManualReset: BOOL, + lpTimerName: LPCWSTR, + ) -> HANDLE --- + CreateWaitableTimerExW :: proc( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, + lpTimerName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ) -> HANDLE --- + SetWaitableTimerEx :: proc( + hTimer: HANDLE, + lpDueTime: ^LARGE_INTEGER, + lPeriod: LONG, + pfnCompletionRoutine: PTIMERAPCROUTINE, + lpArgToCompletionRoutine: LPVOID, + WakeContext: PREASON_CONTEXT, + TolerableDelay: ULONG, + ) -> BOOL --- WaitForSingleObject :: proc(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD --- Sleep :: proc(dwMilliseconds: DWORD) --- GetProcessId :: proc(handle: HANDLE) -> DWORD --- - CopyFileExW :: proc(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD) -> BOOL --- - FormatMessageW :: proc(flags: DWORD, lpSrc: LPVOID, msgId: DWORD, langId: DWORD, buf: LPWSTR, nsize: DWORD, args: rawptr) -> DWORD --- + CopyFileExW :: proc( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, + ) -> BOOL --- + FormatMessageW :: proc( + flags: DWORD, + lpSrc: LPVOID, + msgId: DWORD, + langId: DWORD, + buf: LPWSTR, + nsize: DWORD, + args: rawptr, + ) -> DWORD --- TlsAlloc :: proc() -> DWORD --- TlsFree :: proc(dwTlsIndex: DWORD) -> BOOL --- TlsGetValue :: proc(dwTlsIndex: DWORD) -> LPVOID --- @@ -100,26 +184,89 @@ foreign kernel32 { QueryPerformanceCounter :: proc(lpPerformanceCount: ^LARGE_INTEGER) -> BOOL --- GetExitCodeProcess :: proc(hProcess: HANDLE, lpExitCode: LPDWORD) -> BOOL --- TerminateProcess :: proc(hProcess: HANDLE, uExitCode: UINT) -> BOOL --- - CreateProcessW :: proc(lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFO, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL --- + CreateProcessW :: proc( + lpApplicationName: LPCWSTR, + lpCommandLine: LPWSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: BOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCWSTR, + lpStartupInfo: LPSTARTUPINFO, + lpProcessInformation: LPPROCESS_INFORMATION, + ) -> BOOL --- GetEnvironmentVariableW :: proc(n: LPCWSTR, v: LPWSTR, nsize: DWORD) -> DWORD --- SetEnvironmentVariableW :: proc(n: LPCWSTR, v: LPCWSTR) -> BOOL --- GetEnvironmentStringsW :: proc() -> LPWCH --- FreeEnvironmentStringsW :: proc(env_ptr: LPWCH) -> BOOL --- GetModuleFileNameW :: proc(hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD) -> DWORD --- - CreateDirectoryW :: proc(lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL --- + CreateDirectoryW :: proc( + lpPathName: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ) -> BOOL --- DeleteFileW :: proc(lpPathName: LPCWSTR) -> BOOL --- GetCurrentDirectoryW :: proc(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD --- SetCurrentDirectoryW :: proc(lpPathName: LPCWSTR) -> BOOL --- - WideCharToMultiByte :: proc(CodePage: UINT, dwFlags: DWORD, lpWideCharStr: LPCWSTR, cchWideChar: c_int, lpMultiByteStr: LPSTR, cbMultiByte: c_int, lpDefaultChar: LPCSTR, lpUsedDefaultChar: LPBOOL) -> c_int --- - MultiByteToWideChar :: proc(CodePage: UINT, dwFlags: DWORD, lpMultiByteStr: LPSTR, cbMultiByte: c_int, lpWideCharStr: LPWSTR, cchWideChar: c_int) -> c_int --- - DuplicateHandle :: proc(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: LPHANDLE, dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwOptions: DWORD) -> BOOL --- - ReadFile :: proc(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- - WriteFile :: proc(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToWrite: DWORD, lpNumberOfBytesWritten: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL --- + WideCharToMultiByte :: proc( + CodePage: UINT, + dwFlags: DWORD, + lpWideCharStr: LPCWSTR, + cchWideChar: c_int, + lpMultiByteStr: LPSTR, + cbMultiByte: c_int, + lpDefaultChar: LPCSTR, + lpUsedDefaultChar: LPBOOL, + ) -> c_int --- + MultiByteToWideChar :: proc( + CodePage: UINT, + dwFlags: DWORD, + lpMultiByteStr: LPSTR, + cbMultiByte: c_int, + lpWideCharStr: LPWSTR, + cchWideChar: c_int, + ) -> c_int --- + DuplicateHandle :: proc( + hSourceProcessHandle: HANDLE, + hSourceHandle: HANDLE, + hTargetProcessHandle: HANDLE, + lpTargetHandle: LPHANDLE, + dwDesiredAccess: DWORD, + bInheritHandle: BOOL, + dwOptions: DWORD, + ) -> BOOL --- + ReadFile :: proc( + hFile: HANDLE, + lpBuffer: LPVOID, + nNumberOfBytesToRead: DWORD, + lpNumberOfBytesRead: LPDWORD, + lpOverlapped: LPOVERLAPPED, + ) -> BOOL --- + WriteFile :: proc( + hFile: HANDLE, + lpBuffer: LPVOID, + nNumberOfBytesToWrite: DWORD, + lpNumberOfBytesWritten: LPDWORD, + lpOverlapped: LPOVERLAPPED, + ) -> BOOL --- CloseHandle :: proc(hObject: HANDLE) -> BOOL --- MoveFileExW :: proc(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD) -> BOOL --- - SetFilePointerEx :: proc(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER, lpNewFilePointer: PLARGE_INTEGER, dwMoveMethod: DWORD) -> BOOL --- + SetFilePointerEx :: proc( + hFile: HANDLE, + liDistanceToMove: LARGE_INTEGER, + lpNewFilePointer: PLARGE_INTEGER, + dwMoveMethod: DWORD, + ) -> BOOL --- FlushFileBuffers :: proc(hFile: HANDLE) -> BOOL --- - CreateFileW :: proc(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE) -> HANDLE --- + CreateFileW :: proc( + lpFileName: LPCWSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, + ) -> HANDLE --- FindFirstFileW :: proc(fileName: LPCWSTR, findFileData: LPWIN32_FIND_DATAW) -> HANDLE --- FindNextFileW :: proc(findFile: HANDLE, findFileData: LPWIN32_FIND_DATAW) -> BOOL --- @@ -129,14 +276,45 @@ foreign kernel32 { GetSystemTimeAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) --- GetSystemTimePreciseAsFileTime :: proc(lpSystemTimeAsFileTime: LPFILETIME) --- FileTimeToSystemTime :: proc(lpFileTime: ^FILETIME, lpSystemTime: ^SYSTEMTIME) -> BOOL --- - SystemTimeToTzSpecificLocalTime :: proc(lpTimeZoneInformation: ^TIME_ZONE_INFORMATION, lpUniversalTime: ^SYSTEMTIME, lpLocalTime: ^SYSTEMTIME) -> BOOL --- - SystemTimeToFileTime :: proc(lpSystemTime: ^SYSTEMTIME, lpFileTime: LPFILETIME) -> BOOL --- - CreateEventW :: proc(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE --- + SystemTimeToTzSpecificLocalTime :: proc( + lpTimeZoneInformation: ^TIME_ZONE_INFORMATION, + lpUniversalTime: ^SYSTEMTIME, + lpLocalTime: ^SYSTEMTIME, + ) -> BOOL --- + SystemTimeToFileTime :: proc( + lpSystemTime: ^SYSTEMTIME, + lpFileTime: LPFILETIME, + ) -> BOOL --- + CreateEventW :: proc( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + bManualReset: BOOL, + bInitialState: BOOL, + lpName: LPCWSTR, + ) -> HANDLE --- ResetEvent :: proc(hEvent: HANDLE) -> BOOL --- - WaitForMultipleObjects :: proc(nCount: DWORD, lpHandles: ^HANDLE, bWaitAll: BOOL, dwMilliseconds: DWORD) -> DWORD --- - CreateNamedPipeW :: proc(lpName: LPCWSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> HANDLE --- + WaitForMultipleObjects :: proc( + nCount: DWORD, + lpHandles: ^HANDLE, + bWaitAll: BOOL, + dwMilliseconds: DWORD, + ) -> DWORD --- + CreateNamedPipeW :: proc( + lpName: LPCWSTR, + dwOpenMode: DWORD, + dwPipeMode: DWORD, + nMaxInstances: DWORD, + nOutBufferSize: DWORD, + nInBufferSize: DWORD, + nDefaultTimeOut: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ) -> HANDLE --- CancelIo :: proc(handle: HANDLE) -> BOOL --- - GetOverlappedResult :: proc(hFile: HANDLE, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, bWait: BOOL) -> BOOL --- + GetOverlappedResult :: proc( + hFile: HANDLE, + lpOverlapped: LPOVERLAPPED, + lpNumberOfBytesTransferred: LPDWORD, + bWait: BOOL, + ) -> BOOL --- GetProcessHeap :: proc() -> HANDLE --- HeapAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID --- HeapReAlloc :: proc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID --- @@ -147,30 +325,43 @@ foreign kernel32 { LocalFree :: proc(mem: LPVOID) -> LPVOID --- - ReadDirectoryChangesW :: proc(hDirectory: HANDLE, lpBuffer: LPVOID, nBufferLength: DWORD, bWatchSubtree: BOOL, dwNotifyFilter: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL --- - FindFirstChangeNotificationW :: proc(lpPathName: LPWSTR, bWatchSubtree: BOOL, dwNotifyFilter: DWORD) -> HANDLE --- + ReadDirectoryChangesW :: proc( + hDirectory: HANDLE, + lpBuffer: LPVOID, + nBufferLength: DWORD, + bWatchSubtree: BOOL, + dwNotifyFilter: DWORD, + lpBytesReturned: LPDWORD, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE, + ) -> BOOL --- + FindFirstChangeNotificationW :: proc( + lpPathName: LPWSTR, + bWatchSubtree: BOOL, + dwNotifyFilter: DWORD, + ) -> HANDLE --- FindNextChangeNotification :: proc(hChangeHandle: HANDLE) -> BOOL --- FindCloseChangeNotification :: proc(hChangeHandle: HANDLE) -> BOOL --- - InitializeSRWLock :: proc(SRWLock: ^SRWLOCK) --- - AcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- + InitializeSRWLock :: proc(SRWLock: ^SRWLOCK) --- + AcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- TryAcquireSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) -> BOOLEAN --- - ReleaseSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- - AcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- + ReleaseSRWLockExclusive :: proc(SRWLock: ^SRWLOCK) --- + AcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- TryAcquireSRWLockShared :: proc(SRWLock: ^SRWLOCK) -> BOOLEAN --- - ReleaseSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- + ReleaseSRWLockShared :: proc(SRWLock: ^SRWLOCK) --- InitializeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- - WakeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- - WakeAllConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- - SleepConditionVariableCS :: proc(ConditionVariable: ^CONDITION_VARIABLE, CriticalSection: ^CRITICAL_SECTION, dwMilliseconds: DWORD) -> BOOL --- - SleepConditionVariableSRW :: proc(ConditionVariable: ^CONDITION_VARIABLE, SRWLock: ^SRWLOCK, dwMilliseconds: DWORD, Flags: LONG) -> BOOL --- + WakeConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- + WakeAllConditionVariable :: proc(ConditionVariable: ^CONDITION_VARIABLE) --- + SleepConditionVariableCS :: proc(ConditionVariable: ^CONDITION_VARIABLE, CriticalSection: ^CRITICAL_SECTION, dwMilliseconds: DWORD) -> BOOL --- + SleepConditionVariableSRW :: proc(ConditionVariable: ^CONDITION_VARIABLE, SRWLock: ^SRWLOCK, dwMilliseconds: DWORD, Flags: LONG) -> BOOL --- GetFileType :: proc(file_handle: HANDLE) -> DWORD --- SetFilePointer :: proc(file_handle: HANDLE, distance_to_move: LONG, distance_to_move_high: ^LONG, move_method: DWORD) -> DWORD --- GetFileSizeEx :: proc(file_handle: HANDLE, file_size: ^LARGE_INTEGER) -> BOOL --- - GetFileAttributesW :: proc(lpFileName: LPCWSTR) -> DWORD --- + GetFileAttributesW :: proc(lpFileName: LPCWSTR) -> DWORD --- GetFileAttributesExW :: proc(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID) -> BOOL --- GetSystemInfo :: proc(system_info: ^SYSTEM_INFO) --- GetVersionExW :: proc(osvi: ^OSVERSIONINFOEXW) --- @@ -180,8 +371,8 @@ foreign kernel32 { GetProcAddress :: proc(h: HMODULE, c_str: LPCSTR) -> rawptr --- - GetFullPathNameW :: proc(filename: LPCWSTR, buffer_length: DWORD, buffer: LPCWSTR, file_part: ^LPCWSTR) -> DWORD --- - GetLongPathNameW :: proc(short, long: LPCWSTR, len: DWORD) -> DWORD --- + GetFullPathNameW :: proc(filename: LPCWSTR, buffer_length: DWORD, buffer: LPCWSTR, file_part: ^LPCWSTR) -> DWORD --- + GetLongPathNameW :: proc(short, long: LPCWSTR, len: DWORD) -> DWORD --- GetShortPathNameW :: proc(long, short: LPCWSTR, len: DWORD) -> DWORD --- GetFinalPathNameByHandleW :: proc(hFile: HANDLE, lpszFilePath: LPCWSTR, cchFilePath: DWORD, dwFlags: DWORD) -> DWORD --- @@ -191,9 +382,9 @@ foreign kernel32 { CreatePipe :: proc(hReadPipe, hWritePipe: ^HANDLE, lpPipeAttributes: LPSECURITY_ATTRIBUTES, nSize: DWORD) -> BOOL --- - ConnectNamedPipe :: proc(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL --- - DisconnectNamedPipe :: proc(hNamedPipe: HANDLE) -> BOOL --- - WaitNamedPipeW :: proc(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD) -> BOOL --- + ConnectNamedPipe :: proc(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED,) -> BOOL --- + DisconnectNamedPipe :: proc(hNamedPipe: HANDLE,) -> BOOL --- + WaitNamedPipeW :: proc(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD,) -> BOOL --- SetConsoleCtrlHandler :: proc(HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL) -> BOOL --- GenerateConsoleCtrlEvent :: proc(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> BOOL --- @@ -201,11 +392,16 @@ foreign kernel32 { GetConsoleWindow :: proc() -> HWND --- GetConsoleScreenBufferInfo :: proc(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO) -> BOOL --- SetConsoleScreenBufferSize :: proc(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL --- - SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL --- + SetConsoleWindowInfo :: proc(hConsoleOutput: HANDLE, bAbsolute : BOOL, lpConsoleWindow: ^SMALL_RECT) -> BOOL --- GetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL --- SetConsoleCursorInfo :: proc(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL --- - GetDiskFreeSpaceExW :: proc(lpDirectoryName: LPCWSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER, lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER) -> BOOL --- + GetDiskFreeSpaceExW :: proc( + lpDirectoryName: LPCWSTR, + lpFreeBytesAvailableToCaller: PULARGE_INTEGER, + lpTotalNumberOfBytes: PULARGE_INTEGER, + lpTotalNumberOfFreeBytes: PULARGE_INTEGER, + ) -> BOOL --- GetLogicalProcessorInformation :: proc(buffer: ^SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedLength: PDWORD) -> BOOL --- @@ -219,100 +415,197 @@ foreign kernel32 { GetQueuedCompletionStatusEx :: proc(CompletionPort: HANDLE, lpCompletionPortEntries: ^OVERLAPPED_ENTRY, ulCount: c_ulong, ulNumEntriesRemoved: ^c_ulong, dwMilliseconds: DWORD, fAlertable: BOOL) -> BOOL --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-postqueuedcompletionstatus) PostQueuedCompletionStatus :: proc(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: c_ulong, lpOverlapped: ^OVERLAPPED) -> BOOL --- - // [MS-Docs] (https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-gettickcount64) - GetTickCount64 :: proc() -> u64 --- - // [MS-Docs](https://github.com/mic101/windows/blob/master/WRK-v1.2/base/ntos/ex/keyedevent.c) - NtCreateKeyedEvent :: proc(KeyedEventHandle: ^HANDLE, DesiredAccess: ACCESS_MASK, ObjectAttributes: OBJECT_ATTRIBUTES, Flags: u32) -> NTSTATUS --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-gethandleinformation) GetHandleInformation :: proc(hObject: HANDLE, lpdwFlags: ^DWORD) -> BOOL --- } -SECTION_QUERY :: DWORD(0x0001) -SECTION_MAP_WRITE :: DWORD(0x0002) -SECTION_MAP_READ :: DWORD(0x0004) -SECTION_MAP_EXECUTE :: DWORD(0x0008) -SECTION_EXTEND_SIZE :: DWORD(0x0010) -SECTION_ALL_ACCESS :: - STANDARD_RIGHTS_REQUIRED | - SECTION_QUERY | - SECTION_MAP_WRITE | - SECTION_MAP_READ | - SECTION_MAP_EXECUTE | - SECTION_EXTEND_SIZE +SECTION_QUERY :: DWORD(0x0001) +SECTION_MAP_WRITE :: DWORD(0x0002) +SECTION_MAP_READ :: DWORD(0x0004) +SECTION_MAP_EXECUTE :: DWORD(0x0008) +SECTION_EXTEND_SIZE :: DWORD(0x0010) +SECTION_ALL_ACCESS :: STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE SECTION_MAP_EXECUTE_EXPLICIT :: DWORD(0x0020) -FILE_MAP_WRITE :: SECTION_MAP_WRITE -FILE_MAP_READ :: SECTION_MAP_READ -FILE_MAP_ALL_ACCESS :: SECTION_ALL_ACCESS -FILE_MAP_EXECUTE :: SECTION_MAP_EXECUTE_EXPLICIT -FILE_MAP_COPY :: DWORD(0x00000001) -FILE_MAP_RESERVE :: DWORD(0x80000000) +FILE_MAP_WRITE :: SECTION_MAP_WRITE +FILE_MAP_READ :: SECTION_MAP_READ +FILE_MAP_ALL_ACCESS :: SECTION_ALL_ACCESS +FILE_MAP_EXECUTE :: SECTION_MAP_EXECUTE_EXPLICIT +FILE_MAP_COPY :: DWORD(0x00000001) +FILE_MAP_RESERVE :: DWORD(0x80000000) FILE_MAP_TARGETS_INVALID :: DWORD(0x40000000) -FILE_MAP_LARGE_PAGES :: DWORD(0x20000000) +FILE_MAP_LARGE_PAGES :: DWORD(0x20000000) -PAGE_NOACCESS :: 0x01 -PAGE_READONLY :: 0x02 -PAGE_READWRITE :: 0x04 -PAGE_WRITECOPY :: 0x08 -PAGE_EXECUTE :: 0x10 -PAGE_EXECUTE_READ :: 0x20 +PAGE_NOACCESS :: 0x01 +PAGE_READONLY :: 0x02 +PAGE_READWRITE :: 0x04 +PAGE_WRITECOPY :: 0x08 +PAGE_EXECUTE :: 0x10 +PAGE_EXECUTE_READ :: 0x20 PAGE_EXECUTE_READWRITE :: 0x40 PAGE_EXECUTE_WRITECOPY :: 0x80 -PAGE_GUARD :: 0x100 -PAGE_NOCACHE :: 0x200 -PAGE_WRITECOMBINE :: 0x400 +PAGE_GUARD :: 0x100 +PAGE_NOCACHE :: 0x200 +PAGE_WRITECOMBINE :: 0x400 MEMORY_BASIC_INFORMATION :: struct { - BaseAddress: PVOID, - AllocationBase: PVOID, + BaseAddress: PVOID, + AllocationBase: PVOID, AllocationProtect: DWORD, - PartitionId: WORD, - RegionSize: SIZE_T, - State: DWORD, - Protect: DWORD, - Type: DWORD, + PartitionId: WORD, + RegionSize: SIZE_T, + State: DWORD, + Protect: DWORD, + Type: DWORD, } PMEMORY_BASIC_INFORMATION :: ^MEMORY_BASIC_INFORMATION LPMEMORY_BASIC_INFORMATION :: ^MEMORY_BASIC_INFORMATION -MEM_COMMIT :: 0x1000 -MEM_RESERVE :: 0x2000 -MEM_DECOMMIT :: 0x4000 -MEM_RELEASE :: 0x8000 -MEM_FREE :: 0x10000 -MEM_PRIVATE :: 0x20000 -MEM_MAPPED :: 0x40000 -MEM_RESET :: 0x80000 -MEM_TOP_DOWN :: 0x100000 +MEM_COMMIT :: 0x1000 +MEM_RESERVE :: 0x2000 +MEM_DECOMMIT :: 0x4000 +MEM_RELEASE :: 0x8000 +MEM_FREE :: 0x10000 +MEM_PRIVATE :: 0x20000 +MEM_MAPPED :: 0x40000 +MEM_RESET :: 0x80000 +MEM_TOP_DOWN :: 0x100000 MEM_LARGE_PAGES :: 0x20000000 -MEM_4MB_PAGES :: 0x80000000 +MEM_4MB_PAGES :: 0x80000000 -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - VirtualAlloc :: proc(lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) -> LPVOID --- - VirtualProtect :: proc(lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD) -> BOOL --- - VirtualFree :: proc(lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> BOOL --- - VirtualQuery :: proc(lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T) -> SIZE_T --- - VirtualAllocEx :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) -> LPVOID --- - VirtualFreeEx :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> BOOL --- - VirtualProtectEx :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD) -> BOOL --- - VirtualQueryEx :: proc(hProcess: HANDLE, lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T) -> SIZE_T --- - ReadProcessMemory :: proc(hProcess: HANDLE, lpBaseAddress: LPCVOID, lpBuffer: LPVOID, nSize: SIZE_T, lpNumberOfBytesRead: ^SIZE_T) -> BOOL --- - WriteProcessMemory :: proc(hProcess: HANDLE, lpBaseAddress: LPVOID, lpBuffer: LPCVOID, nSize: SIZE_T, lpNumberOfBytesWritten: ^SIZE_T) -> BOOL --- - CreateFileMappingW :: proc(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR) -> HANDLE --- - OpenFileMappingW :: proc(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE --- - MapViewOfFile :: proc(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T) -> LPVOID --- - MapViewOfFileEx :: proc(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T, lpBaseAddress: LPVOID) -> LPVOID --- - FlushViewOfFile :: proc(lpBaseAddress: LPCVOID, dwNumberOfBytesToFlush: SIZE_T) -> BOOL --- - UnmapViewOfFile :: proc(lpBaseAddress: LPCVOID) -> BOOL --- + VirtualAlloc :: proc( + lpAddress: LPVOID, + dwSize: SIZE_T, + flAllocationType: DWORD, + flProtect: DWORD, + ) -> LPVOID --- + VirtualProtect :: proc( + lpAddress: LPVOID, + dwSize: SIZE_T, + flNewProtect: DWORD, + lpflOldProtect: PDWORD, + ) -> BOOL --- + VirtualFree :: proc( + lpAddress: LPVOID, + dwSize: SIZE_T, + dwFreeType: DWORD, + ) -> BOOL --- + VirtualQuery :: proc( + lpAddress: LPCVOID, + lpBuffer: PMEMORY_BASIC_INFORMATION, + dwLength: SIZE_T, + ) -> SIZE_T --- + VirtualAllocEx :: proc( + hProcess: HANDLE, + lpAddress: LPVOID, + dwSize: SIZE_T, + flAllocationType: DWORD, + flProtect: DWORD, + ) -> LPVOID --- + VirtualFreeEx :: proc( + hProcess: HANDLE, + lpAddress: LPVOID, + dwSize: SIZE_T, + dwFreeType: DWORD, + ) -> BOOL --- + VirtualProtectEx :: proc( + hProcess: HANDLE, + lpAddress: LPVOID, + dwSize: SIZE_T, + flNewProtect: DWORD, + lpflOldProtect: PDWORD, + ) -> BOOL --- + VirtualQueryEx :: proc( + hProcess: HANDLE, + lpAddress: LPCVOID, + lpBuffer: PMEMORY_BASIC_INFORMATION, + dwLength: SIZE_T, + ) -> SIZE_T --- + ReadProcessMemory :: proc( + hProcess: HANDLE, + lpBaseAddress: LPCVOID, + lpBuffer: LPVOID, + nSize: SIZE_T, + lpNumberOfBytesRead: ^SIZE_T, + ) -> BOOL --- + WriteProcessMemory :: proc( + hProcess: HANDLE, + lpBaseAddress: LPVOID, + lpBuffer: LPCVOID, + nSize: SIZE_T, + lpNumberOfBytesWritten: ^SIZE_T, + ) -> BOOL --- + CreateFileMappingW :: proc( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCWSTR, + ) -> HANDLE --- + OpenFileMappingW :: proc( + dwDesiredAccess: DWORD, + bInheritHandle: BOOL, + lpName: LPCWSTR, + ) -> HANDLE --- + MapViewOfFile :: proc( + hFileMappingObject: HANDLE, + dwDesiredAccess: DWORD, + dwFileOffsetHigh: DWORD, + dwFileOffsetLow: DWORD, + dwNumberOfBytesToMap: SIZE_T, + ) -> LPVOID --- + MapViewOfFileEx :: proc( + hFileMappingObject: HANDLE, + dwDesiredAccess: DWORD, + dwFileOffsetHigh: DWORD, + dwFileOffsetLow: DWORD, + dwNumberOfBytesToMap: SIZE_T, + lpBaseAddress: LPVOID, + ) -> LPVOID --- + FlushViewOfFile :: proc( + lpBaseAddress: LPCVOID, + dwNumberOfBytesToFlush: SIZE_T, + ) -> BOOL --- + UnmapViewOfFile :: proc( + lpBaseAddress: LPCVOID, + ) -> BOOL --- GetLargePageMinimum :: proc() -> SIZE_T --- - GetProcessWorkingSetSizeEx :: proc(hProcess: HANDLE, lpMinimumWorkingSetSize: PSIZE_T, lpMaximumWorkingSetSize: PSIZE_T, Flags: PDWORD) -> BOOL --- - SetProcessWorkingSetSizeEx :: proc(hProcess: HANDLE, dwMinimumWorkingSetSize: SIZE_T, dwMaximumWorkingSetSize: SIZE_T, Flags: DWORD) -> BOOL --- - VirtualLock :: proc(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL --- - VirtualUnlock :: proc(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL --- - GetWriteWatch :: proc(dwFlags: DWORD, lpBaseAddress: PVOID, dwRegionSize: SIZE_T, lpAddresses: ^PVOID, lpdwCount: ^ULONG_PTR, lpdwGranularity: LPDWORD) -> UINT --- - ResetWriteWatch :: proc(lpBaseAddress: LPVOID, dwRegionSize: SIZE_T) -> UINT --- + GetProcessWorkingSetSizeEx :: proc( + hProcess: HANDLE, + lpMinimumWorkingSetSize: PSIZE_T, + lpMaximumWorkingSetSize: PSIZE_T, + Flags: PDWORD, + ) -> BOOL --- + SetProcessWorkingSetSizeEx :: proc( + hProcess: HANDLE, + dwMinimumWorkingSetSize: SIZE_T, + dwMaximumWorkingSetSize: SIZE_T, + Flags: DWORD, + ) -> BOOL --- + VirtualLock :: proc( + lpAddress: LPVOID, + dwSize: SIZE_T, + ) -> BOOL --- + VirtualUnlock :: proc( + lpAddress: LPVOID, + dwSize: SIZE_T, + ) -> BOOL --- + GetWriteWatch :: proc( + dwFlags: DWORD, + lpBaseAddress: PVOID, + dwRegionSize: SIZE_T, + lpAddresses: ^PVOID, + lpdwCount: ^ULONG_PTR, + lpdwGranularity: LPDWORD, + ) -> UINT --- + ResetWriteWatch :: proc( + lpBaseAddress: LPVOID, + dwRegionSize: SIZE_T, + ) -> UINT --- } @@ -320,66 +613,138 @@ MEMORY_RESOURCE_NOTIFICATION_TYPE :: enum c_int { LowMemoryResourceNotification, HighMemoryResourceNotification, } -LowMemoryResourceNotification :: MEMORY_RESOURCE_NOTIFICATION_TYPE.LowMemoryResourceNotification +LowMemoryResourceNotification :: MEMORY_RESOURCE_NOTIFICATION_TYPE.LowMemoryResourceNotification HighMemoryResourceNotification :: MEMORY_RESOURCE_NOTIFICATION_TYPE.HighMemoryResourceNotification -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - CreateMemoryResourceNotification :: proc(NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE) -> HANDLE --- - QueryMemoryResourceNotification :: proc(ResourceNotificationHandle: HANDLE, ResourceState: PBOOL) -> BOOL --- + CreateMemoryResourceNotification :: proc( + NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE, + ) -> HANDLE --- + QueryMemoryResourceNotification :: proc( + ResourceNotificationHandle: HANDLE, + ResourceState: PBOOL, + ) -> BOOL --- } -FILE_CACHE_MAX_HARD_ENABLE :: DWORD(0x00000001) +FILE_CACHE_MAX_HARD_ENABLE :: DWORD(0x00000001) FILE_CACHE_MAX_HARD_DISABLE :: DWORD(0x00000002) -FILE_CACHE_MIN_HARD_ENABLE :: DWORD(0x00000004) +FILE_CACHE_MIN_HARD_ENABLE :: DWORD(0x00000004) FILE_CACHE_MIN_HARD_DISABLE :: DWORD(0x00000008) -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - GetSystemFileCacheSize :: proc(lpMinimumFileCacheSize: PSIZE_T, lpMaximumFileCacheSize: PSIZE_T, lpFlags: PDWORD) -> BOOL --- - SetSystemFileCacheSize :: proc(MinimumFileCacheSize: SIZE_T, MaximumFileCacheSize: SIZE_T, Flags: DWORD) -> BOOL --- - CreateFileMappingNumaW :: proc(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR, nndPreferred: DWORD) -> HANDLE --- + GetSystemFileCacheSize :: proc( + lpMinimumFileCacheSize: PSIZE_T, + lpMaximumFileCacheSize: PSIZE_T, + lpFlags: PDWORD, + ) -> BOOL --- + SetSystemFileCacheSize :: proc( + MinimumFileCacheSize: SIZE_T, + MaximumFileCacheSize: SIZE_T, + Flags: DWORD, + ) -> BOOL --- + CreateFileMappingNumaW :: proc( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCWSTR, + nndPreferred: DWORD, + ) -> HANDLE --- } WIN32_MEMORY_RANGE_ENTRY :: struct { VirtualAddress: PVOID, - NumberOfBytes: SIZE_T, + NumberOfBytes: SIZE_T, } PWIN32_MEMORY_RANGE_ENTRY :: ^WIN32_MEMORY_RANGE_ENTRY -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - PrefetchVirtualMemory :: proc(hProcess: HANDLE, NumberOfEntries: ULONG_PTR, VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY, Flags: ULONG) -> BOOL --- - CreateFileMappingFromApp :: proc(hFile: HANDLE, SecurityAttributes: PSECURITY_ATTRIBUTES, PageProtection: ULONG, MaximumSize: ULONG64, Name: PCWSTR) -> HANDLE --- - MapViewOfFileFromApp :: proc(hFileMappingObject: HANDLE, DesiredAccess: ULONG, FileOffset: ULONG64, NumberOfBytesToMap: SIZE_T) -> PVOID --- - UnmapViewOfFileEx :: proc(BaseAddress: PVOID, UnmapFlags: ULONG) -> BOOL --- - AllocateUserPhysicalPages :: proc(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR) -> BOOL --- - FreeUserPhysicalPages :: proc(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR) -> BOOL --- - MapUserPhysicalPages :: proc(VirtualAddress: PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR) -> BOOL --- - AllocateUserPhysicalPagesNuma :: proc(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR, nndPreferred: DWORD) -> BOOL --- - VirtualAllocExNuma :: proc(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD, nndPreferred: DWORD) -> LPVOID --- + PrefetchVirtualMemory :: proc( + hProcess: HANDLE, + NumberOfEntries: ULONG_PTR, + VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY, + Flags: ULONG, + ) -> BOOL --- + CreateFileMappingFromApp :: proc( + hFile: HANDLE, + SecurityAttributes: PSECURITY_ATTRIBUTES, + PageProtection: ULONG, + MaximumSize: ULONG64, + Name: PCWSTR, + ) -> HANDLE --- + MapViewOfFileFromApp :: proc( + hFileMappingObject: HANDLE, + DesiredAccess: ULONG, + FileOffset: ULONG64, + NumberOfBytesToMap: SIZE_T, + ) -> PVOID --- + UnmapViewOfFileEx :: proc( + BaseAddress: PVOID, + UnmapFlags: ULONG, + ) -> BOOL --- + AllocateUserPhysicalPages :: proc( + hProcess: HANDLE, + NumberOfPages: PULONG_PTR, + PageArray: PULONG_PTR, + ) -> BOOL --- + FreeUserPhysicalPages :: proc( + hProcess: HANDLE, + NumberOfPages: PULONG_PTR, + PageArray: PULONG_PTR, + ) -> BOOL --- + MapUserPhysicalPages :: proc( + VirtualAddress: PVOID, + NumberOfPages: ULONG_PTR, + PageArray: PULONG_PTR, + ) -> BOOL --- + AllocateUserPhysicalPagesNuma :: proc( + hProcess: HANDLE, + NumberOfPages: PULONG_PTR, + PageArray: PULONG_PTR, + nndPreferred: DWORD, + ) -> BOOL --- + VirtualAllocExNuma :: proc( + hProcess: HANDLE, + lpAddress: LPVOID, + dwSize: SIZE_T, + flAllocationType: DWORD, + flProtect: DWORD, + nndPreferred: DWORD, + ) -> LPVOID --- } MEHC_PATROL_SCRUBBER_PRESENT :: ULONG(0x1) -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - GetMemoryErrorHandlingCapabilities :: proc(Capabilities: PULONG) -> BOOL --- + GetMemoryErrorHandlingCapabilities :: proc( + Capabilities: PULONG, + ) -> BOOL --- } -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - GlobalMemoryStatusEx :: proc(lpBuffer: ^MEMORYSTATUSEX) -> BOOL --- + GlobalMemoryStatusEx :: proc( + lpBuffer: ^MEMORYSTATUSEX, + ) -> BOOL --- } PBAD_MEMORY_CALLBACK_ROUTINE :: #type proc "stdcall" () -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - RegisterBadMemoryNotification :: proc(Callback: PBAD_MEMORY_CALLBACK_ROUTINE) -> PVOID --- - UnregisterBadMemoryNotification :: proc(RegistrationHandle: PVOID) -> BOOL --- + RegisterBadMemoryNotification :: proc( + Callback: PBAD_MEMORY_CALLBACK_ROUTINE, + ) -> PVOID --- + UnregisterBadMemoryNotification :: proc( + RegistrationHandle: PVOID, + ) -> BOOL --- } OFFER_PRIORITY :: enum c_int { @@ -388,19 +753,43 @@ OFFER_PRIORITY :: enum c_int { VmOfferPriorityBelowNormal, VmOfferPriorityNormal, } -VmOfferPriorityVeryLow :: OFFER_PRIORITY.VmOfferPriorityVeryLow -VmOfferPriorityLow :: OFFER_PRIORITY.VmOfferPriorityLow +VmOfferPriorityVeryLow :: OFFER_PRIORITY.VmOfferPriorityVeryLow +VmOfferPriorityLow :: OFFER_PRIORITY.VmOfferPriorityLow VmOfferPriorityBelowNormal :: OFFER_PRIORITY.VmOfferPriorityBelowNormal -VmOfferPriorityNormal :: OFFER_PRIORITY.VmOfferPriorityNormal +VmOfferPriorityNormal :: OFFER_PRIORITY.VmOfferPriorityNormal -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - OfferVirtualMemory :: proc(VirtualAddress: PVOID, Size: SIZE_T, Priority: OFFER_PRIORITY) -> DWORD --- - ReclaimVirtualMemory :: proc(VirtualAddress: PVOID, Size: SIZE_T) -> DWORD --- - DiscardVirtualMemory :: proc(VirtualAddress: PVOID, Size: SIZE_T) -> DWORD --- - VirtualAllocFromApp :: proc(BaseAddress: PVOID, Size: SIZE_T, AllocationType: ULONG, Protection: ULONG) -> PVOID --- - VirtualProtectFromApp :: proc(Address: PVOID, Size: SIZE_T, NewProtection: ULONG, OldProtection: PULONG) -> BOOL --- - OpenFileMappingFromApp :: proc(DesiredAccess: ULONG, InheritHandle: BOOL, Name: PCWSTR) -> HANDLE --- + OfferVirtualMemory :: proc( + VirtualAddress: PVOID, + Size: SIZE_T, + Priority: OFFER_PRIORITY, + ) -> DWORD --- + ReclaimVirtualMemory :: proc( + VirtualAddress: PVOID, + Size: SIZE_T, + ) -> DWORD --- + DiscardVirtualMemory :: proc( + VirtualAddress: PVOID, + Size: SIZE_T, + ) -> DWORD --- + VirtualAllocFromApp :: proc( + BaseAddress: PVOID, + Size: SIZE_T, + AllocationType: ULONG, + Protection: ULONG, + ) -> PVOID --- + VirtualProtectFromApp :: proc( + Address: PVOID, + Size: SIZE_T, + NewProtection: ULONG, + OldProtection: PULONG, + ) -> BOOL --- + OpenFileMappingFromApp :: proc( + DesiredAccess: ULONG, + InheritHandle: BOOL, + Name: PCWSTR, + ) -> HANDLE --- } WIN32_MEMORY_INFORMATION_CLASS :: enum c_int { @@ -409,16 +798,16 @@ WIN32_MEMORY_INFORMATION_CLASS :: enum c_int { MemoryRegionInfo :: WIN32_MEMORY_INFORMATION_CLASS.MemoryRegionInfo WIN32_MEMORY_REGION_INFORMATION :: struct { - AllocationBase: PVOID, + AllocationBase: PVOID, AllocationProtect: ULONG, - u: WIN32_MEMORY_REGION_INFORMATION_u, - RegionSize: SIZE_T, - CommitSize: SIZE_T, + u: WIN32_MEMORY_REGION_INFORMATION_u, + RegionSize: SIZE_T, + CommitSize: SIZE_T, } WIN32_MEMORY_REGION_INFORMATION_u :: struct #raw_union { - u: [1]u32, + u: [1]u32, Flags: ULONG, - s: WIN32_MEMORY_REGION_INFORMATION_u_s, + s: WIN32_MEMORY_REGION_INFORMATION_u_s, } WIN32_MEMORY_REGION_INFORMATION_u_s :: struct { Bitfield: ULONG, @@ -434,10 +823,26 @@ WIN32_MEMORY_REGION_INFORMATION_u_s_Bitfield :: distinct ULONG Reserved : 32-6, }*/ -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - QueryVirtualMemoryInformation :: proc(Process: HANDLE, VirtualAddress: PVOID, MemoryInformationClass: WIN32_MEMORY_INFORMATION_CLASS, MemoryInformation: PVOID, MemoryInformationSize: SIZE_T, ReturnSize: PSIZE_T) -> BOOL --- - MapViewOfFileNuma2 :: proc(FileMappingHandle: HANDLE, ProcessHandle: HANDLE, Offset: ULONG64, BaseAddress: PVOID, ViewSize: SIZE_T, AllocationType: ULONG, PageProtection: ULONG, PreferredNode: ULONG) -> PVOID --- + QueryVirtualMemoryInformation :: proc( + Process: HANDLE, + VirtualAddress: PVOID, + MemoryInformationClass: WIN32_MEMORY_INFORMATION_CLASS, + MemoryInformation: PVOID, + MemoryInformationSize: SIZE_T, + ReturnSize: PSIZE_T, + ) -> BOOL --- + MapViewOfFileNuma2 :: proc( + FileMappingHandle: HANDLE, + ProcessHandle: HANDLE, + Offset: ULONG64, + BaseAddress: PVOID, + ViewSize: SIZE_T, + AllocationType: ULONG, + PageProtection: ULONG, + PreferredNode: ULONG, + ) -> PVOID --- } @@ -464,45 +869,57 @@ MapViewOfFile2 :: #force_inline proc "stdcall" ( ) } -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - UnmapViewOfFile2 :: proc(ProcessHandle: HANDLE, BaseAddress: PVOID, UnmapFlags: ULONG) -> BOOL --- + UnmapViewOfFile2 :: proc( + ProcessHandle: HANDLE, + BaseAddress: PVOID, + UnmapFlags: ULONG, + ) -> BOOL --- } -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { - GetProductInfo :: proc(OSMajorVersion: DWORD, OSMinorVersion: DWORD, SpMajorVersion: DWORD, SpMinorVersion: DWORD, product_type: ^Windows_Product_Type) -> BOOL --- + GetProductInfo :: proc( + OSMajorVersion: DWORD, + OSMinorVersion: DWORD, + SpMajorVersion: DWORD, + SpMinorVersion: DWORD, + product_type: ^Windows_Product_Type, + ) -> BOOL --- } HandlerRoutine :: proc "stdcall" (dwCtrlType: DWORD) -> BOOL PHANDLER_ROUTINE :: HandlerRoutine + + DCB_Config :: struct { - fParity: bool, - fOutxCtsFlow: bool, - fOutxDsrFlow: bool, - fDtrControl: DTR_Control, - fDsrSensitivity: bool, + fParity: bool, + fOutxCtsFlow: bool, + fOutxDsrFlow: bool, + fDtrControl: DTR_Control, + fDsrSensitivity: bool, fTXContinueOnXoff: bool, - fOutX: bool, - fInX: bool, - fErrorChar: bool, - fNull: bool, - fRtsControl: RTS_Control, - fAbortOnError: bool, - BaudRate: DWORD, - ByteSize: BYTE, - Parity: Parity, - StopBits: Stop_Bits, - XonChar: byte, - XoffChar: byte, - ErrorChar: byte, - EvtChar: byte, + fOutX: bool, + fInX: bool, + fErrorChar: bool, + fNull: bool, + fRtsControl: RTS_Control, + fAbortOnError: bool, + BaudRate: DWORD, + ByteSize: BYTE, + Parity: Parity, + StopBits: Stop_Bits, + XonChar: byte, + XoffChar: byte, + ErrorChar: byte, + EvtChar: byte, } DTR_Control :: enum byte { - Disable = 0, - Enable = 1, + Disable = 0, + Enable = 1, Handshake = 2, } RTS_Control :: enum byte { @@ -519,9 +936,9 @@ Parity :: enum byte { Space = 4, } Stop_Bits :: enum byte { - One = 0, + One = 0, One_And_A_Half = 1, - Two = 2, + Two = 2, } // A helper procedure to set the values of a DCB structure. @@ -596,24 +1013,24 @@ get_dcb_config :: proc "contextless" (dcb: DCB) -> (config: DCB_Config) { // NOTE(tetra): See get_dcb_config() and init_dcb_with_config() for help with initializing this. DCB :: struct { - DCBlength: DWORD, // NOTE(tetra): Must be set to size_of(DCB). - BaudRate: DWORD, - settings: u32, // NOTE(tetra): These are bitfields in the C struct. - wReserved: WORD, - XOnLim: WORD, - XOffLim: WORD, - ByteSize: BYTE, - Parity: Parity, - StopBits: Stop_Bits, - XonChar: byte, - XoffChar: byte, - ErrorChar: byte, - EofChar: byte, - EvtChar: byte, + DCBlength: DWORD, // NOTE(tetra): Must be set to size_of(DCB). + BaudRate: DWORD, + settings: u32, // NOTE(tetra): These are bitfields in the C struct. + wReserved: WORD, + XOnLim: WORD, + XOffLim: WORD, + ByteSize: BYTE, + Parity: Parity, + StopBits: Stop_Bits, + XonChar: byte, + XoffChar: byte, + ErrorChar: byte, + EofChar: byte, + EvtChar: byte, wReserved1: WORD, } -@(default_calling_convention = "stdcall") +@(default_calling_convention="stdcall") foreign kernel32 { GetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- SetCommState :: proc(handle: HANDLE, dcb: ^DCB) -> BOOL --- @@ -650,11 +1067,11 @@ PROCESSOR_CACHE_TYPE :: enum c_int { } CACHE_DESCRIPTOR :: struct { - Level: BYTE, + Level: BYTE, Associativity: BYTE, - LineSize: WORD, - Size: DWORD, - Type: PROCESSOR_CACHE_TYPE, + LineSize: WORD, + Size: DWORD, + Type: PROCESSOR_CACHE_TYPE, } ProcessorCore :: struct { @@ -664,14 +1081,14 @@ NumaNode :: struct { NodeNumber: DWORD, } DUMMYUNIONNAME_u :: struct #raw_union { - Core: ProcessorCore, - Node: NumaNode, - Cache: CACHE_DESCRIPTOR, + Core: ProcessorCore, + Node: NumaNode, + Cache: CACHE_DESCRIPTOR, Reserved: [2]ULONGLONG, } SYSTEM_LOGICAL_PROCESSOR_INFORMATION :: struct { ProcessorMask: ULONG_PTR, - Relationship: LOGICAL_PROCESSOR_RELATIONSHIP, - DummyUnion: DUMMYUNIONNAME_u, + Relationship: LOGICAL_PROCESSOR_RELATIONSHIP, + DummyUnion: DUMMYUNIONNAME_u, } From 5fc54ec7e57af02af38e6f979929d4542cadbfcf Mon Sep 17 00:00:00 2001 From: Mark Naughton Date: Wed, 5 Apr 2023 11:09:31 +0100 Subject: [PATCH 31/50] Add script for removing platform-specific libs --- misc/remove_libraries_for_other_platforms.sh | 46 ++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 misc/remove_libraries_for_other_platforms.sh diff --git a/misc/remove_libraries_for_other_platforms.sh b/misc/remove_libraries_for_other_platforms.sh new file mode 100755 index 000000000..5a5286faf --- /dev/null +++ b/misc/remove_libraries_for_other_platforms.sh @@ -0,0 +1,46 @@ +#!/bin/bash +OS=$(uname) + +panic() { + printf "%s\n" "$1" + exit 1 +} + +remove_windows_libraries() { + find . -type f -name '*.dll' | xargs rm -f + find . -type f -name '*.lib' | xargs rm -f + find . -type d -name 'windows' | xargs rm -rf +} + +remove_macos_libraries() { + find . -type f -name '*.dylib' | xargs rm -f + find . -type d -name '*macos*' | xargs rm -rf +} + +remove_linux_libraries() { + find . -type f -name '*.so' | xargs rm -f + find . -type d -name 'linux' | xargs rm -rf +} + +case $OS in + Linux) + remove_windows_libraries + remove_macos_libraries + ;; + Darwin) + remove_windows_libraries + remove_linux_libraries + ;; + OpenBSD) + remove_windows_libraries + remove_macos_libraries + remove_linux_libraries + ;; + FreeBSD) + remove_windows_libraries + remove_macos_libraries + remove_linux_libraries + ;; +*) + panic "Platform unsupported!" +esac From 119cafd963fc807466ca69c0464bf05a91471f88 Mon Sep 17 00:00:00 2001 From: Mark Naughton Date: Wed, 5 Apr 2023 11:28:54 +0100 Subject: [PATCH 32/50] Add assert_vendor() sub-routine --- misc/remove_libraries_for_other_platforms.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/misc/remove_libraries_for_other_platforms.sh b/misc/remove_libraries_for_other_platforms.sh index 5a5286faf..b66deddb6 100755 --- a/misc/remove_libraries_for_other_platforms.sh +++ b/misc/remove_libraries_for_other_platforms.sh @@ -6,6 +6,12 @@ panic() { exit 1 } +assert_vendor() { + if [ $(basename $(pwd)) != 'vendor' ]; then + panic "Not in vendor directory!" + fi +} + remove_windows_libraries() { find . -type f -name '*.dll' | xargs rm -f find . -type f -name '*.lib' | xargs rm -f @@ -24,6 +30,7 @@ remove_linux_libraries() { case $OS in Linux) + assert_vendor remove_windows_libraries remove_macos_libraries ;; From 4030c5a6893f9f49c79c75a4ca05a7dc486642cb Mon Sep 17 00:00:00 2001 From: Mark Naughton Date: Wed, 5 Apr 2023 11:34:41 +0100 Subject: [PATCH 33/50] Add assert_vendor to Darwin and *BSD --- misc/remove_libraries_for_other_platforms.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/misc/remove_libraries_for_other_platforms.sh b/misc/remove_libraries_for_other_platforms.sh index b66deddb6..db2e33ccd 100755 --- a/misc/remove_libraries_for_other_platforms.sh +++ b/misc/remove_libraries_for_other_platforms.sh @@ -35,15 +35,18 @@ case $OS in remove_macos_libraries ;; Darwin) + assert_vendor remove_windows_libraries remove_linux_libraries ;; OpenBSD) + assert_vendor remove_windows_libraries remove_macos_libraries remove_linux_libraries ;; FreeBSD) + assert_vendor remove_windows_libraries remove_macos_libraries remove_linux_libraries From d715158fe39952570217ebacfc26af4b5eae1185 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 15:55:55 +0100 Subject: [PATCH 34/50] Add `vendor:lua/5.4` --- vendor/lua/5.4/include/lauxlib.h | 276 ++++++++++ vendor/lua/5.4/include/lua.h | 517 +++++++++++++++++ vendor/lua/5.4/include/lua.hpp | 9 + vendor/lua/5.4/include/luaconf.h | 763 ++++++++++++++++++++++++++ vendor/lua/5.4/include/lualib.h | 58 ++ vendor/lua/5.4/lua.odin | 822 ++++++++++++++++++++++++++++ vendor/lua/5.4/windows/lua54.dll | Bin 0 -> 354816 bytes vendor/lua/5.4/windows/lua54dll.lib | Bin 0 -> 30090 bytes 8 files changed, 2445 insertions(+) create mode 100644 vendor/lua/5.4/include/lauxlib.h create mode 100644 vendor/lua/5.4/include/lua.h create mode 100644 vendor/lua/5.4/include/lua.hpp create mode 100644 vendor/lua/5.4/include/luaconf.h create mode 100644 vendor/lua/5.4/include/lualib.h create mode 100644 vendor/lua/5.4/lua.odin create mode 100644 vendor/lua/5.4/windows/lua54.dll create mode 100644 vendor/lua/5.4/windows/lua54dll.lib diff --git a/vendor/lua/5.4/include/lauxlib.h b/vendor/lua/5.4/include/lauxlib.h new file mode 100644 index 000000000..59fef6af1 --- /dev/null +++ b/vendor/lua/5.4/include/lauxlib.h @@ -0,0 +1,276 @@ +/* +** $Id: lauxlib.h $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lauxlib_h +#define lauxlib_h + + +#include +#include + +#include "lua.h" + + +/* global table */ +#define LUA_GNAME "_G" + + +typedef struct luaL_Buffer luaL_Buffer; + + +/* extra error code for 'luaL_loadfilex' */ +#define LUA_ERRFILE (LUA_ERRERR+1) + + +/* key, in the registry, for table of loaded modules */ +#define LUA_LOADED_TABLE "_LOADED" + + +/* key, in the registry, for table of preloaded loaders */ +#define LUA_PRELOAD_TABLE "_PRELOAD" + + +typedef struct luaL_Reg { + const char *name; + lua_CFunction func; +} luaL_Reg; + + +#define LUAL_NUMSIZES (sizeof(lua_Integer)*16 + sizeof(lua_Number)) + +LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver, size_t sz); +#define luaL_checkversion(L) \ + luaL_checkversion_(L, LUA_VERSION_NUM, LUAL_NUMSIZES) + +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); +LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len); +LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg); +LUALIB_API int (luaL_typeerror) (lua_State *L, int arg, const char *tname); +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int arg, + size_t *l); +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int arg, + const char *def, size_t *l); +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int arg); +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int arg, lua_Number def); + +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int arg); +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int arg, + lua_Integer def); + +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); +LUALIB_API void (luaL_checktype) (lua_State *L, int arg, int t); +LUALIB_API void (luaL_checkany) (lua_State *L, int arg); + +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); +LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname); +LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname); +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); + +LUALIB_API void (luaL_where) (lua_State *L, int lvl); +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); + +LUALIB_API int (luaL_checkoption) (lua_State *L, int arg, const char *def, + const char *const lst[]); + +LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname); +LUALIB_API int (luaL_execresult) (lua_State *L, int stat); + + +/* predefined references */ +#define LUA_NOREF (-2) +#define LUA_REFNIL (-1) + +LUALIB_API int (luaL_ref) (lua_State *L, int t); +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); + +LUALIB_API int (luaL_loadfilex) (lua_State *L, const char *filename, + const char *mode); + +#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL) + +LUALIB_API int (luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, + const char *name, const char *mode); +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); + +LUALIB_API lua_State *(luaL_newstate) (void); + +LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx); + +LUALIB_API void luaL_addgsub (luaL_Buffer *b, const char *s, + const char *p, const char *r); +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, + const char *p, const char *r); + +LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup); + +LUALIB_API int (luaL_getsubtable) (lua_State *L, int idx, const char *fname); + +LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1, + const char *msg, int level); + +LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname, + lua_CFunction openf, int glb); + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + + +#define luaL_newlibtable(L,l) \ + lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1) + +#define luaL_newlib(L,l) \ + (luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) + +#define luaL_argcheck(L, cond,arg,extramsg) \ + ((void)((cond) || luaL_argerror(L, (arg), (extramsg)))) + +#define luaL_argexpected(L,cond,arg,tname) \ + ((void)((cond) || luaL_typeerror(L, (arg), (tname)))) + +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) + +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) + +#define luaL_dofile(L, fn) \ + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_dostring(L, s) \ + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) + +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) + +#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL) + + +/* push the value used to represent failure/error */ +#define luaL_pushfail(L) lua_pushnil(L) + + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + +struct luaL_Buffer { + char *b; /* buffer address */ + size_t size; /* buffer size */ + size_t n; /* number of characters in buffer */ + lua_State *L; + union { + LUAI_MAXALIGN; /* ensure maximum alignment for buffer */ + char b[LUAL_BUFFERSIZE]; /* initial buffer */ + } init; +}; + + +#define luaL_bufflen(bf) ((bf)->n) +#define luaL_buffaddr(bf) ((bf)->b) + + +#define luaL_addchar(B,c) \ + ((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \ + ((B)->b[(B)->n++] = (c))) + +#define luaL_addsize(B,s) ((B)->n += (s)) + +#define luaL_buffsub(B,s) ((B)->n -= (s)) + +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); +LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz); +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B, size_t sz); +LUALIB_API char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B, size_t sz); + +#define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE) + +/* }====================================================== */ + + + +/* +** {====================================================== +** File handles for IO library +** ======================================================= +*/ + +/* +** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and +** initial structure 'luaL_Stream' (it may contain other fields +** after that initial structure). +*/ + +#define LUA_FILEHANDLE "FILE*" + + +typedef struct luaL_Stream { + FILE *f; /* stream (NULL for incompletely created streams) */ + lua_CFunction closef; /* to close stream (NULL for closed streams) */ +} luaL_Stream; + +/* }====================================================== */ + +/* +** {================================================================== +** "Abstraction Layer" for basic report of messages and errors +** =================================================================== +*/ + +/* print a string */ +#if !defined(lua_writestring) +#define lua_writestring(s,l) fwrite((s), sizeof(char), (l), stdout) +#endif + +/* print a newline and flush the output */ +#if !defined(lua_writeline) +#define lua_writeline() (lua_writestring("\n", 1), fflush(stdout)) +#endif + +/* print an error message */ +#if !defined(lua_writestringerror) +#define lua_writestringerror(s,p) \ + (fprintf(stderr, (s), (p)), fflush(stderr)) +#endif + +/* }================================================================== */ + + +/* +** {============================================================ +** Compatibility with deprecated conversions +** ============================================================= +*/ +#if defined(LUA_COMPAT_APIINTCASTS) + +#define luaL_checkunsigned(L,a) ((lua_Unsigned)luaL_checkinteger(L,a)) +#define luaL_optunsigned(L,a,d) \ + ((lua_Unsigned)luaL_optinteger(L,a,(lua_Integer)(d))) + +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) + +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) + +#endif +/* }============================================================ */ + + + +#endif + + diff --git a/vendor/lua/5.4/include/lua.h b/vendor/lua/5.4/include/lua.h new file mode 100644 index 000000000..c9d64d7f2 --- /dev/null +++ b/vendor/lua/5.4/include/lua.h @@ -0,0 +1,517 @@ +/* +** $Id: lua.h $ +** Lua - A Scripting Language +** Lua.org, PUC-Rio, Brazil (http://www.lua.org) +** See Copyright Notice at the end of this file +*/ + + +#ifndef lua_h +#define lua_h + +#include +#include + + +#include "luaconf.h" + + +#define LUA_VERSION_MAJOR "5" +#define LUA_VERSION_MINOR "4" +#define LUA_VERSION_RELEASE "2" + +#define LUA_VERSION_NUM 504 +#define LUA_VERSION_RELEASE_NUM (LUA_VERSION_NUM * 100 + 0) + +#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR +#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE +#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2020 Lua.org, PUC-Rio" +#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" + + +/* mark for precompiled code ('Lua') */ +#define LUA_SIGNATURE "\x1bLua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +#define LUA_MULTRET (-1) + + +/* +** Pseudo-indices +** (-LUAI_MAXSTACK is the minimum valid index; we keep some free empty +** space after that to help overflow detection) +*/ +#define LUA_REGISTRYINDEX (-LUAI_MAXSTACK - 1000) +#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i)) + + +/* thread status */ +#define LUA_OK 0 +#define LUA_YIELD 1 +#define LUA_ERRRUN 2 +#define LUA_ERRSYNTAX 3 +#define LUA_ERRMEM 4 +#define LUA_ERRERR 5 + + +typedef struct lua_State lua_State; + + +/* +** basic types +*/ +#define LUA_TNONE (-1) + +#define LUA_TNIL 0 +#define LUA_TBOOLEAN 1 +#define LUA_TLIGHTUSERDATA 2 +#define LUA_TNUMBER 3 +#define LUA_TSTRING 4 +#define LUA_TTABLE 5 +#define LUA_TFUNCTION 6 +#define LUA_TUSERDATA 7 +#define LUA_TTHREAD 8 + +#define LUA_NUMTYPES 9 + + + +/* minimum Lua stack available to a C function */ +#define LUA_MINSTACK 20 + + +/* predefined values in the registry */ +#define LUA_RIDX_MAINTHREAD 1 +#define LUA_RIDX_GLOBALS 2 +#define LUA_RIDX_LAST LUA_RIDX_GLOBALS + + +/* type of numbers in Lua */ +typedef LUA_NUMBER lua_Number; + + +/* type for integer functions */ +typedef LUA_INTEGER lua_Integer; + +/* unsigned integer type */ +typedef LUA_UNSIGNED lua_Unsigned; + +/* type for continuation-function contexts */ +typedef LUA_KCONTEXT lua_KContext; + + +/* +** Type for C functions registered with Lua +*/ +typedef int (*lua_CFunction) (lua_State *L); + +/* +** Type for continuation functions +*/ +typedef int (*lua_KFunction) (lua_State *L, int status, lua_KContext ctx); + + +/* +** Type for functions that read/write blocks when loading/dumping Lua chunks +*/ +typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); + +typedef int (*lua_Writer) (lua_State *L, const void *p, size_t sz, void *ud); + + +/* +** Type for memory-allocation functions +*/ +typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); + + +/* +** Type for warning functions +*/ +typedef void (*lua_WarnFunction) (void *ud, const char *msg, int tocont); + + + + +/* +** generic extra include file +*/ +#if defined(LUA_USER_H) +#include LUA_USER_H +#endif + + +/* +** RCS ident string +*/ +extern const char lua_ident[]; + + +/* +** state manipulation +*/ +LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); +LUA_API void (lua_close) (lua_State *L); +LUA_API lua_State *(lua_newthread) (lua_State *L); +LUA_API int (lua_resetthread) (lua_State *L); + +LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); + + +LUA_API lua_Number (lua_version) (lua_State *L); + + +/* +** basic stack manipulation +*/ +LUA_API int (lua_absindex) (lua_State *L, int idx); +LUA_API int (lua_gettop) (lua_State *L); +LUA_API void (lua_settop) (lua_State *L, int idx); +LUA_API void (lua_pushvalue) (lua_State *L, int idx); +LUA_API void (lua_rotate) (lua_State *L, int idx, int n); +LUA_API void (lua_copy) (lua_State *L, int fromidx, int toidx); +LUA_API int (lua_checkstack) (lua_State *L, int n); + +LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); + + +/* +** access functions (stack -> C) +*/ + +LUA_API int (lua_isnumber) (lua_State *L, int idx); +LUA_API int (lua_isstring) (lua_State *L, int idx); +LUA_API int (lua_iscfunction) (lua_State *L, int idx); +LUA_API int (lua_isinteger) (lua_State *L, int idx); +LUA_API int (lua_isuserdata) (lua_State *L, int idx); +LUA_API int (lua_type) (lua_State *L, int idx); +LUA_API const char *(lua_typename) (lua_State *L, int tp); + +LUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum); +LUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); +LUA_API int (lua_toboolean) (lua_State *L, int idx); +LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); +LUA_API lua_Unsigned (lua_rawlen) (lua_State *L, int idx); +LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); +LUA_API void *(lua_touserdata) (lua_State *L, int idx); +LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); +LUA_API const void *(lua_topointer) (lua_State *L, int idx); + + +/* +** Comparison and arithmetic functions +*/ + +#define LUA_OPADD 0 /* ORDER TM, ORDER OP */ +#define LUA_OPSUB 1 +#define LUA_OPMUL 2 +#define LUA_OPMOD 3 +#define LUA_OPPOW 4 +#define LUA_OPDIV 5 +#define LUA_OPIDIV 6 +#define LUA_OPBAND 7 +#define LUA_OPBOR 8 +#define LUA_OPBXOR 9 +#define LUA_OPSHL 10 +#define LUA_OPSHR 11 +#define LUA_OPUNM 12 +#define LUA_OPBNOT 13 + +LUA_API void (lua_arith) (lua_State *L, int op); + +#define LUA_OPEQ 0 +#define LUA_OPLT 1 +#define LUA_OPLE 2 + +LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_compare) (lua_State *L, int idx1, int idx2, int op); + + +/* +** push functions (C -> stack) +*/ +LUA_API void (lua_pushnil) (lua_State *L); +LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); +LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); +LUA_API const char *(lua_pushlstring) (lua_State *L, const char *s, size_t len); +LUA_API const char *(lua_pushstring) (lua_State *L, const char *s); +LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, + va_list argp); +LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); +LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); +LUA_API void (lua_pushboolean) (lua_State *L, int b); +LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); +LUA_API int (lua_pushthread) (lua_State *L); + + +/* +** get functions (Lua -> stack) +*/ +LUA_API int (lua_getglobal) (lua_State *L, const char *name); +LUA_API int (lua_gettable) (lua_State *L, int idx); +LUA_API int (lua_getfield) (lua_State *L, int idx, const char *k); +LUA_API int (lua_geti) (lua_State *L, int idx, lua_Integer n); +LUA_API int (lua_rawget) (lua_State *L, int idx); +LUA_API int (lua_rawgeti) (lua_State *L, int idx, lua_Integer n); +LUA_API int (lua_rawgetp) (lua_State *L, int idx, const void *p); + +LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); +LUA_API void *(lua_newuserdatauv) (lua_State *L, size_t sz, int nuvalue); +LUA_API int (lua_getmetatable) (lua_State *L, int objindex); +LUA_API int (lua_getiuservalue) (lua_State *L, int idx, int n); + + +/* +** set functions (stack -> Lua) +*/ +LUA_API void (lua_setglobal) (lua_State *L, const char *name); +LUA_API void (lua_settable) (lua_State *L, int idx); +LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_seti) (lua_State *L, int idx, lua_Integer n); +LUA_API void (lua_rawset) (lua_State *L, int idx); +LUA_API void (lua_rawseti) (lua_State *L, int idx, lua_Integer n); +LUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); +LUA_API int (lua_setmetatable) (lua_State *L, int objindex); +LUA_API int (lua_setiuservalue) (lua_State *L, int idx, int n); + + +/* +** 'load' and 'call' functions (load and run Lua code) +*/ +LUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, + lua_KContext ctx, lua_KFunction k); +#define lua_call(L,n,r) lua_callk(L, (n), (r), 0, NULL) + +LUA_API int (lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, + lua_KContext ctx, lua_KFunction k); +#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL) + +LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, + const char *chunkname, const char *mode); + +LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data, int strip); + + +/* +** coroutine functions +*/ +LUA_API int (lua_yieldk) (lua_State *L, int nresults, lua_KContext ctx, + lua_KFunction k); +LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg, + int *nres); +LUA_API int (lua_status) (lua_State *L); +LUA_API int (lua_isyieldable) (lua_State *L); + +#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) + + +/* +** Warning-related functions +*/ +LUA_API void (lua_setwarnf) (lua_State *L, lua_WarnFunction f, void *ud); +LUA_API void (lua_warning) (lua_State *L, const char *msg, int tocont); + + +/* +** garbage-collection function and options +*/ + +#define LUA_GCSTOP 0 +#define LUA_GCRESTART 1 +#define LUA_GCCOLLECT 2 +#define LUA_GCCOUNT 3 +#define LUA_GCCOUNTB 4 +#define LUA_GCSTEP 5 +#define LUA_GCSETPAUSE 6 +#define LUA_GCSETSTEPMUL 7 +#define LUA_GCISRUNNING 9 +#define LUA_GCGEN 10 +#define LUA_GCINC 11 + +LUA_API int (lua_gc) (lua_State *L, int what, ...); + + +/* +** miscellaneous functions +*/ + +LUA_API int (lua_error) (lua_State *L); + +LUA_API int (lua_next) (lua_State *L, int idx); + +LUA_API void (lua_concat) (lua_State *L, int n); +LUA_API void (lua_len) (lua_State *L, int idx); + +LUA_API size_t (lua_stringtonumber) (lua_State *L, const char *s); + +LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); +LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); + +LUA_API void (lua_toclose) (lua_State *L, int idx); + + +/* +** {============================================================== +** some useful macros +** =============================================================== +*/ + +#define lua_getextraspace(L) ((void *)((char *)(L) - LUA_EXTRASPACE)) + +#define lua_tonumber(L,i) lua_tonumberx(L,(i),NULL) +#define lua_tointeger(L,i) lua_tointegerx(L,(i),NULL) + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#define lua_newtable(L) lua_createtable(L, 0, 0) + +#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) + +#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) + +#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) +#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) +#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) +#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) +#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) +#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) +#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) +#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) + +#define lua_pushliteral(L, s) lua_pushstring(L, "" s) + +#define lua_pushglobaltable(L) \ + ((void)lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)) + +#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) + + +#define lua_insert(L,idx) lua_rotate(L, (idx), 1) + +#define lua_remove(L,idx) (lua_rotate(L, (idx), -1), lua_pop(L, 1)) + +#define lua_replace(L,idx) (lua_copy(L, -1, (idx)), lua_pop(L, 1)) + +/* }============================================================== */ + + +/* +** {============================================================== +** compatibility macros +** =============================================================== +*/ +#if defined(LUA_COMPAT_APIINTCASTS) + +#define lua_pushunsigned(L,n) lua_pushinteger(L, (lua_Integer)(n)) +#define lua_tounsignedx(L,i,is) ((lua_Unsigned)lua_tointegerx(L,i,is)) +#define lua_tounsigned(L,i) lua_tounsignedx(L,(i),NULL) + +#endif + +#define lua_newuserdata(L,s) lua_newuserdatauv(L,s,1) +#define lua_getuservalue(L,idx) lua_getiuservalue(L,idx,1) +#define lua_setuservalue(L,idx) lua_setiuservalue(L,idx,1) + +#define LUA_NUMTAGS LUA_NUMTYPES + +/* }============================================================== */ + +/* +** {====================================================================== +** Debug API +** ======================================================================= +*/ + + +/* +** Event codes +*/ +#define LUA_HOOKCALL 0 +#define LUA_HOOKRET 1 +#define LUA_HOOKLINE 2 +#define LUA_HOOKCOUNT 3 +#define LUA_HOOKTAILCALL 4 + + +/* +** Event masks +*/ +#define LUA_MASKCALL (1 << LUA_HOOKCALL) +#define LUA_MASKRET (1 << LUA_HOOKRET) +#define LUA_MASKLINE (1 << LUA_HOOKLINE) +#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) + +typedef struct lua_Debug lua_Debug; /* activation record */ + + +/* Functions to be called by the debugger in specific events */ +typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); + + +LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar); +LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar); +LUA_API const char *(lua_getlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_setlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_getupvalue) (lua_State *L, int funcindex, int n); +LUA_API const char *(lua_setupvalue) (lua_State *L, int funcindex, int n); + +LUA_API void *(lua_upvalueid) (lua_State *L, int fidx, int n); +LUA_API void (lua_upvaluejoin) (lua_State *L, int fidx1, int n1, + int fidx2, int n2); + +LUA_API void (lua_sethook) (lua_State *L, lua_Hook func, int mask, int count); +LUA_API lua_Hook (lua_gethook) (lua_State *L); +LUA_API int (lua_gethookmask) (lua_State *L); +LUA_API int (lua_gethookcount) (lua_State *L); + +LUA_API int (lua_setcstacklimit) (lua_State *L, unsigned int limit); + +struct lua_Debug { + int event; + const char *name; /* (n) */ + const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ + const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ + const char *source; /* (S) */ + size_t srclen; /* (S) */ + int currentline; /* (l) */ + int linedefined; /* (S) */ + int lastlinedefined; /* (S) */ + unsigned char nups; /* (u) number of upvalues */ + unsigned char nparams;/* (u) number of parameters */ + char isvararg; /* (u) */ + char istailcall; /* (t) */ + unsigned short ftransfer; /* (r) index of first value transferred */ + unsigned short ntransfer; /* (r) number of transferred values */ + char short_src[LUA_IDSIZE]; /* (S) */ + /* private part */ + struct CallInfo *i_ci; /* active function */ +}; + +/* }====================================================================== */ + + +/****************************************************************************** +* Copyright (C) 1994-2020 Lua.org, PUC-Rio. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +******************************************************************************/ + + +#endif diff --git a/vendor/lua/5.4/include/lua.hpp b/vendor/lua/5.4/include/lua.hpp new file mode 100644 index 000000000..ec417f594 --- /dev/null +++ b/vendor/lua/5.4/include/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" +} diff --git a/vendor/lua/5.4/include/luaconf.h b/vendor/lua/5.4/include/luaconf.h new file mode 100644 index 000000000..3ad294e4f --- /dev/null +++ b/vendor/lua/5.4/include/luaconf.h @@ -0,0 +1,763 @@ +/* +** $Id: luaconf.h $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef luaconf_h +#define luaconf_h + +#include +#include + + +/* +** =================================================================== +** General Configuration File for Lua +** +** Some definitions here can be changed externally, through the +** compiler (e.g., with '-D' options). Those are protected by +** '#if !defined' guards. However, several other definitions should +** be changed directly here, either because they affect the Lua +** ABI (by making the changes here, you ensure that all software +** connected to Lua, such as C libraries, will be compiled with the +** same configuration); or because they are seldom changed. +** +** Search for "@@" to find all configurable definitions. +** =================================================================== +*/ + + +/* +** {==================================================================== +** System Configuration: macros to adapt (if needed) Lua to some +** particular platform, for instance restricting it to C89. +** ===================================================================== +*/ + +/* +@@ LUA_USE_C89 controls the use of non-ISO-C89 features. +** Define it if you want Lua to avoid the use of a few C99 features +** or Windows-specific features on Windows. +*/ +/* #define LUA_USE_C89 */ + + +/* +** By default, Lua on Windows use (some) specific Windows features +*/ +#if !defined(LUA_USE_C89) && defined(_WIN32) && !defined(_WIN32_WCE) +#define LUA_USE_WINDOWS /* enable goodies for regular Windows */ +#endif + + +#if defined(LUA_USE_WINDOWS) +#define LUA_DL_DLL /* enable support for DLL */ +#define LUA_USE_C89 /* broadly, Windows is C89 */ +#endif + + +#if defined(LUA_USE_LINUX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +#endif + + +#if defined(LUA_USE_MACOSX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* MacOS does not need -ldl */ +#endif + + +/* +@@ LUAI_IS32INT is true iff 'int' has (at least) 32 bits. +*/ +#define LUAI_IS32INT ((UINT_MAX >> 30) >= 3) + +/* }================================================================== */ + + + +/* +** {================================================================== +** Configuration for Number types. +** =================================================================== +*/ + +/* +@@ LUA_32BITS enables Lua with 32-bit integers and 32-bit floats. +*/ +/* #define LUA_32BITS */ + + +/* +@@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for +** C89 ('long' and 'double'); Windows always has '__int64', so it does +** not need to use this case. +*/ +#if defined(LUA_USE_C89) && !defined(LUA_USE_WINDOWS) +#define LUA_C89_NUMBERS +#endif + + +/* +@@ LUA_INT_TYPE defines the type for Lua integers. +@@ LUA_FLOAT_TYPE defines the type for Lua floats. +** Lua should work fine with any mix of these options supported +** by your C compiler. The usual configurations are 64-bit integers +** and 'double' (the default), 32-bit integers and 'float' (for +** restricted platforms), and 'long'/'double' (for C compilers not +** compliant with C99, which may not have support for 'long long'). +*/ + +/* predefined options for LUA_INT_TYPE */ +#define LUA_INT_INT 1 +#define LUA_INT_LONG 2 +#define LUA_INT_LONGLONG 3 + +/* predefined options for LUA_FLOAT_TYPE */ +#define LUA_FLOAT_FLOAT 1 +#define LUA_FLOAT_DOUBLE 2 +#define LUA_FLOAT_LONGDOUBLE 3 + +#if defined(LUA_32BITS) /* { */ +/* +** 32-bit integers and 'float' +*/ +#if LUAI_IS32INT /* use 'int' if big enough */ +#define LUA_INT_TYPE LUA_INT_INT +#else /* otherwise use 'long' */ +#define LUA_INT_TYPE LUA_INT_LONG +#endif +#define LUA_FLOAT_TYPE LUA_FLOAT_FLOAT + +#elif defined(LUA_C89_NUMBERS) /* }{ */ +/* +** largest types available for C89 ('long' and 'double') +*/ +#define LUA_INT_TYPE LUA_INT_LONG +#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE + +#endif /* } */ + + +/* +** default configuration for 64-bit Lua ('long long' and 'double') +*/ +#if !defined(LUA_INT_TYPE) +#define LUA_INT_TYPE LUA_INT_LONGLONG +#endif + +#if !defined(LUA_FLOAT_TYPE) +#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE +#endif + +/* }================================================================== */ + + + +/* +** {================================================================== +** Configuration for Paths. +** =================================================================== +*/ + +/* +** LUA_PATH_SEP is the character that separates templates in a path. +** LUA_PATH_MARK is the string that marks the substitution points in a +** template. +** LUA_EXEC_DIR in a Windows path is replaced by the executable's +** directory. +*/ +#define LUA_PATH_SEP ";" +#define LUA_PATH_MARK "?" +#define LUA_EXEC_DIR "!" + + +/* +@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for +** Lua libraries. +@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for +** C libraries. +** CHANGE them if your machine has a non-conventional directory +** hierarchy or if you want to install your libraries in +** non-conventional directories. +*/ + +#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR +#if defined(_WIN32) /* { */ +/* +** In Windows, any exclamation mark ('!') in the path is replaced by the +** path of the directory of the executable file of the current process. +*/ +#define LUA_LDIR "!\\lua\\" +#define LUA_CDIR "!\\" +#define LUA_SHRDIR "!\\..\\share\\lua\\" LUA_VDIR "\\" + +#if !defined(LUA_PATH_DEFAULT) +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" \ + LUA_SHRDIR"?.lua;" LUA_SHRDIR"?\\init.lua;" \ + ".\\?.lua;" ".\\?\\init.lua" +#endif + +#if !defined(LUA_CPATH_DEFAULT) +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.dll;" \ + LUA_CDIR"..\\lib\\lua\\" LUA_VDIR "\\?.dll;" \ + LUA_CDIR"loadall.dll;" ".\\?.dll;" \ + LUA_CDIR"?54.dll;" ".\\?54.dll" +#endif + +#else /* }{ */ + +#define LUA_ROOT "/usr/local/" +#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" +#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" + +#if !defined(LUA_PATH_DEFAULT) +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \ + "./?.lua;" "./?/init.lua" +#endif + +#if !defined(LUA_CPATH_DEFAULT) +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so;" \ + LUA_CDIR"lib?54.so;" "./lib?54.so" +#endif + +#endif /* } */ + + +/* +@@ LUA_DIRSEP is the directory separator (for submodules). +** CHANGE it if your machine does not use "/" as the directory separator +** and is not Windows. (On Windows Lua automatically uses "\".) +*/ +#if !defined(LUA_DIRSEP) + +#if defined(_WIN32) +#define LUA_DIRSEP "\\" +#else +#define LUA_DIRSEP "/" +#endif + +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Marks for exported symbols in the C code +** =================================================================== +*/ + +/* +@@ LUA_API is a mark for all core API functions. +@@ LUALIB_API is a mark for all auxiliary library functions. +@@ LUAMOD_API is a mark for all standard library opening functions. +** CHANGE them if you need to define those functions in some special way. +** For instance, if you want to create one Windows DLL with the core and +** the libraries, you may want to use the following definition (define +** LUA_BUILD_AS_DLL to get it). +*/ +#if defined(LUA_BUILD_AS_DLL) /* { */ + +#if defined(LUA_CORE) || defined(LUA_LIB) /* { */ +#define LUA_API __declspec(dllexport) +#else /* }{ */ +#define LUA_API __declspec(dllimport) +#endif /* } */ + +#else /* }{ */ + +#define LUA_API extern + +#endif /* } */ + + +/* +** More often than not the libs go together with the core. +*/ +#define LUALIB_API LUA_API +#define LUAMOD_API LUA_API + + +/* +@@ LUAI_FUNC is a mark for all extern functions that are not to be +** exported to outside modules. +@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables, +** none of which to be exported to outside modules (LUAI_DDEF for +** definitions and LUAI_DDEC for declarations). +** CHANGE them if you need to mark them in some special way. Elf/gcc +** (versions 3.2 and later) mark them as "hidden" to optimize access +** when Lua is compiled as a shared library. Not all elf targets support +** this attribute. Unfortunately, gcc does not offer a way to check +** whether the target offers that support, and those without support +** give a warning about it. To avoid these warnings, change to the +** default definition. +*/ +#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ + defined(__ELF__) /* { */ +#define LUAI_FUNC __attribute__((visibility("internal"))) extern +#else /* }{ */ +#define LUAI_FUNC extern +#endif /* } */ + +#define LUAI_DDEC(dec) LUAI_FUNC dec +#define LUAI_DDEF /* empty */ + +/* }================================================================== */ + + +/* +** {================================================================== +** Compatibility with previous versions +** =================================================================== +*/ + +/* +@@ LUA_COMPAT_5_3 controls other macros for compatibility with Lua 5.3. +** You can define it to get all options, or change specific options +** to fit your specific needs. +*/ +#if defined(LUA_COMPAT_5_3) /* { */ + +/* +@@ LUA_COMPAT_MATHLIB controls the presence of several deprecated +** functions in the mathematical library. +** (These functions were already officially removed in 5.3; +** nevertheless they are still available here.) +*/ +#define LUA_COMPAT_MATHLIB + +/* +@@ LUA_COMPAT_APIINTCASTS controls the presence of macros for +** manipulating other integer types (lua_pushunsigned, lua_tounsigned, +** luaL_checkint, luaL_checklong, etc.) +** (These macros were also officially removed in 5.3, but they are still +** available here.) +*/ +#define LUA_COMPAT_APIINTCASTS + + +/* +@@ LUA_COMPAT_LT_LE controls the emulation of the '__le' metamethod +** using '__lt'. +*/ +#define LUA_COMPAT_LT_LE + + +/* +@@ The following macros supply trivial compatibility for some +** changes in the API. The macros themselves document how to +** change your code to avoid using them. +** (Once more, these macros were officially removed in 5.3, but they are +** still available here.) +*/ +#define lua_strlen(L,i) lua_rawlen(L, (i)) + +#define lua_objlen(L,i) lua_rawlen(L, (i)) + +#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) +#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) + +#endif /* } */ + +/* }================================================================== */ + + + +/* +** {================================================================== +** Configuration for Numbers. +** Change these definitions if no predefined LUA_FLOAT_* / LUA_INT_* +** satisfy your needs. +** =================================================================== +*/ + +/* +@@ LUA_NUMBER is the floating-point type used by Lua. +@@ LUAI_UACNUMBER is the result of a 'default argument promotion' +@@ over a floating number. +@@ l_floatatt(x) corrects float attribute 'x' to the proper float type +** by prefixing it with one of FLT/DBL/LDBL. +@@ LUA_NUMBER_FRMLEN is the length modifier for writing floats. +@@ LUA_NUMBER_FMT is the format for writing floats. +@@ lua_number2str converts a float to a string. +@@ l_mathop allows the addition of an 'l' or 'f' to all math operations. +@@ l_floor takes the floor of a float. +@@ lua_str2number converts a decimal numeral to a number. +*/ + + +/* The following definitions are good for most cases here */ + +#define l_floor(x) (l_mathop(floor)(x)) + +#define lua_number2str(s,sz,n) \ + l_sprintf((s), sz, LUA_NUMBER_FMT, (LUAI_UACNUMBER)(n)) + +/* +@@ lua_numbertointeger converts a float number with an integral value +** to an integer, or returns 0 if float is not within the range of +** a lua_Integer. (The range comparisons are tricky because of +** rounding. The tests here assume a two-complement representation, +** where MININTEGER always has an exact representation as a float; +** MAXINTEGER may not have one, and therefore its conversion to float +** may have an ill-defined value.) +*/ +#define lua_numbertointeger(n,p) \ + ((n) >= (LUA_NUMBER)(LUA_MININTEGER) && \ + (n) < -(LUA_NUMBER)(LUA_MININTEGER) && \ + (*(p) = (LUA_INTEGER)(n), 1)) + + +/* now the variable definitions */ + +#if LUA_FLOAT_TYPE == LUA_FLOAT_FLOAT /* { single float */ + +#define LUA_NUMBER float + +#define l_floatatt(n) (FLT_##n) + +#define LUAI_UACNUMBER double + +#define LUA_NUMBER_FRMLEN "" +#define LUA_NUMBER_FMT "%.7g" + +#define l_mathop(op) op##f + +#define lua_str2number(s,p) strtof((s), (p)) + + +#elif LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE /* }{ long double */ + +#define LUA_NUMBER long double + +#define l_floatatt(n) (LDBL_##n) + +#define LUAI_UACNUMBER long double + +#define LUA_NUMBER_FRMLEN "L" +#define LUA_NUMBER_FMT "%.19Lg" + +#define l_mathop(op) op##l + +#define lua_str2number(s,p) strtold((s), (p)) + +#elif LUA_FLOAT_TYPE == LUA_FLOAT_DOUBLE /* }{ double */ + +#define LUA_NUMBER double + +#define l_floatatt(n) (DBL_##n) + +#define LUAI_UACNUMBER double + +#define LUA_NUMBER_FRMLEN "" +#define LUA_NUMBER_FMT "%.14g" + +#define l_mathop(op) op + +#define lua_str2number(s,p) strtod((s), (p)) + +#else /* }{ */ + +#error "numeric float type not defined" + +#endif /* } */ + + + +/* +@@ LUA_INTEGER is the integer type used by Lua. +** +@@ LUA_UNSIGNED is the unsigned version of LUA_INTEGER. +** +@@ LUAI_UACINT is the result of a 'default argument promotion' +@@ over a LUA_INTEGER. +@@ LUA_INTEGER_FRMLEN is the length modifier for reading/writing integers. +@@ LUA_INTEGER_FMT is the format for writing integers. +@@ LUA_MAXINTEGER is the maximum value for a LUA_INTEGER. +@@ LUA_MININTEGER is the minimum value for a LUA_INTEGER. +@@ LUA_MAXUNSIGNED is the maximum value for a LUA_UNSIGNED. +@@ LUA_UNSIGNEDBITS is the number of bits in a LUA_UNSIGNED. +@@ lua_integer2str converts an integer to a string. +*/ + + +/* The following definitions are good for most cases here */ + +#define LUA_INTEGER_FMT "%" LUA_INTEGER_FRMLEN "d" + +#define LUAI_UACINT LUA_INTEGER + +#define lua_integer2str(s,sz,n) \ + l_sprintf((s), sz, LUA_INTEGER_FMT, (LUAI_UACINT)(n)) + +/* +** use LUAI_UACINT here to avoid problems with promotions (which +** can turn a comparison between unsigneds into a signed comparison) +*/ +#define LUA_UNSIGNED unsigned LUAI_UACINT + + +#define LUA_UNSIGNEDBITS (sizeof(LUA_UNSIGNED) * CHAR_BIT) + + +/* now the variable definitions */ + +#if LUA_INT_TYPE == LUA_INT_INT /* { int */ + +#define LUA_INTEGER int +#define LUA_INTEGER_FRMLEN "" + +#define LUA_MAXINTEGER INT_MAX +#define LUA_MININTEGER INT_MIN + +#define LUA_MAXUNSIGNED UINT_MAX + +#elif LUA_INT_TYPE == LUA_INT_LONG /* }{ long */ + +#define LUA_INTEGER long +#define LUA_INTEGER_FRMLEN "l" + +#define LUA_MAXINTEGER LONG_MAX +#define LUA_MININTEGER LONG_MIN + +#define LUA_MAXUNSIGNED ULONG_MAX + +#elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */ + +/* use presence of macro LLONG_MAX as proxy for C99 compliance */ +#if defined(LLONG_MAX) /* { */ +/* use ISO C99 stuff */ + +#define LUA_INTEGER long long +#define LUA_INTEGER_FRMLEN "ll" + +#define LUA_MAXINTEGER LLONG_MAX +#define LUA_MININTEGER LLONG_MIN + +#define LUA_MAXUNSIGNED ULLONG_MAX + +#elif defined(LUA_USE_WINDOWS) /* }{ */ +/* in Windows, can use specific Windows types */ + +#define LUA_INTEGER __int64 +#define LUA_INTEGER_FRMLEN "I64" + +#define LUA_MAXINTEGER _I64_MAX +#define LUA_MININTEGER _I64_MIN + +#define LUA_MAXUNSIGNED _UI64_MAX + +#else /* }{ */ + +#error "Compiler does not support 'long long'. Use option '-DLUA_32BITS' \ + or '-DLUA_C89_NUMBERS' (see file 'luaconf.h' for details)" + +#endif /* } */ + +#else /* }{ */ + +#error "numeric integer type not defined" + +#endif /* } */ + +/* }================================================================== */ + + +/* +** {================================================================== +** Dependencies with C99 and other C details +** =================================================================== +*/ + +/* +@@ l_sprintf is equivalent to 'snprintf' or 'sprintf' in C89. +** (All uses in Lua have only one format item.) +*/ +#if !defined(LUA_USE_C89) +#define l_sprintf(s,sz,f,i) snprintf(s,sz,f,i) +#else +#define l_sprintf(s,sz,f,i) ((void)(sz), sprintf(s,f,i)) +#endif + + +/* +@@ lua_strx2number converts a hexadecimal numeral to a number. +** In C99, 'strtod' does that conversion. Otherwise, you can +** leave 'lua_strx2number' undefined and Lua will provide its own +** implementation. +*/ +#if !defined(LUA_USE_C89) +#define lua_strx2number(s,p) lua_str2number(s,p) +#endif + + +/* +@@ lua_pointer2str converts a pointer to a readable string in a +** non-specified way. +*/ +#define lua_pointer2str(buff,sz,p) l_sprintf(buff,sz,"%p",p) + + +/* +@@ lua_number2strx converts a float to a hexadecimal numeral. +** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that. +** Otherwise, you can leave 'lua_number2strx' undefined and Lua will +** provide its own implementation. +*/ +#if !defined(LUA_USE_C89) +#define lua_number2strx(L,b,sz,f,n) \ + ((void)L, l_sprintf(b,sz,f,(LUAI_UACNUMBER)(n))) +#endif + + +/* +** 'strtof' and 'opf' variants for math functions are not valid in +** C89. Otherwise, the macro 'HUGE_VALF' is a good proxy for testing the +** availability of these variants. ('math.h' is already included in +** all files that use these macros.) +*/ +#if defined(LUA_USE_C89) || (defined(HUGE_VAL) && !defined(HUGE_VALF)) +#undef l_mathop /* variants not available */ +#undef lua_str2number +#define l_mathop(op) (lua_Number)op /* no variant */ +#define lua_str2number(s,p) ((lua_Number)strtod((s), (p))) +#endif + + +/* +@@ LUA_KCONTEXT is the type of the context ('ctx') for continuation +** functions. It must be a numerical type; Lua will use 'intptr_t' if +** available, otherwise it will use 'ptrdiff_t' (the nearest thing to +** 'intptr_t' in C89) +*/ +#define LUA_KCONTEXT ptrdiff_t + +#if !defined(LUA_USE_C89) && defined(__STDC_VERSION__) && \ + __STDC_VERSION__ >= 199901L +#include +#if defined(INTPTR_MAX) /* even in C99 this type is optional */ +#undef LUA_KCONTEXT +#define LUA_KCONTEXT intptr_t +#endif +#endif + + +/* +@@ lua_getlocaledecpoint gets the locale "radix character" (decimal point). +** Change that if you do not want to use C locales. (Code using this +** macro must include the header 'locale.h'.) +*/ +#if !defined(lua_getlocaledecpoint) +#define lua_getlocaledecpoint() (localeconv()->decimal_point[0]) +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Language Variations +** ===================================================================== +*/ + +/* +@@ LUA_NOCVTN2S/LUA_NOCVTS2N control how Lua performs some +** coercions. Define LUA_NOCVTN2S to turn off automatic coercion from +** numbers to strings. Define LUA_NOCVTS2N to turn off automatic +** coercion from strings to numbers. +*/ +/* #define LUA_NOCVTN2S */ +/* #define LUA_NOCVTS2N */ + + +/* +@@ LUA_USE_APICHECK turns on several consistency checks on the C API. +** Define it as a help when debugging C code. +*/ +#if defined(LUA_USE_APICHECK) +#include +#define luai_apicheck(l,e) assert(e) +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Macros that affect the API and must be stable (that is, must be the +** same when you compile Lua and when you compile code that links to +** Lua). +** ===================================================================== +*/ + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +** (It must fit into max(size_t)/32.) +*/ +#if LUAI_IS32INT +#define LUAI_MAXSTACK 1000000 +#else +#define LUAI_MAXSTACK 15000 +#endif + + +/* +@@ LUA_EXTRASPACE defines the size of a raw memory area associated with +** a Lua state with very fast access. +** CHANGE it if you need a different size. +*/ +#define LUA_EXTRASPACE (sizeof(void *)) + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@@ of a function in debug information. +** CHANGE it if you want a different size. +*/ +#define LUA_IDSIZE 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +#define LUAL_BUFFERSIZE ((int)(16 * sizeof(void*) * sizeof(lua_Number))) + + +/* +@@ LUAI_MAXALIGN defines fields that, when used in a union, ensure +** maximum alignment for the other items in that union. +*/ +#define LUAI_MAXALIGN lua_Number n; double u; void *s; lua_Integer i; long l + +/* }================================================================== */ + + + + + +/* =================================================================== */ + +/* +** Local configuration. You can use this space to add your redefinitions +** without modifying the main part of the file. +*/ + + + + + +#endif + diff --git a/vendor/lua/5.4/include/lualib.h b/vendor/lua/5.4/include/lualib.h new file mode 100644 index 000000000..eb08b530a --- /dev/null +++ b/vendor/lua/5.4/include/lualib.h @@ -0,0 +1,58 @@ +/* +** $Id: lualib.h $ +** Lua standard libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lualib_h +#define lualib_h + +#include "lua.h" + + +/* version suffix for environment variable names */ +#define LUA_VERSUFFIX "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR + + +LUAMOD_API int (luaopen_base) (lua_State *L); + +#define LUA_COLIBNAME "coroutine" +LUAMOD_API int (luaopen_coroutine) (lua_State *L); + +#define LUA_TABLIBNAME "table" +LUAMOD_API int (luaopen_table) (lua_State *L); + +#define LUA_IOLIBNAME "io" +LUAMOD_API int (luaopen_io) (lua_State *L); + +#define LUA_OSLIBNAME "os" +LUAMOD_API int (luaopen_os) (lua_State *L); + +#define LUA_STRLIBNAME "string" +LUAMOD_API int (luaopen_string) (lua_State *L); + +#define LUA_UTF8LIBNAME "utf8" +LUAMOD_API int (luaopen_utf8) (lua_State *L); + +#define LUA_MATHLIBNAME "math" +LUAMOD_API int (luaopen_math) (lua_State *L); + +#define LUA_DBLIBNAME "debug" +LUAMOD_API int (luaopen_debug) (lua_State *L); + +#define LUA_LOADLIBNAME "package" +LUAMOD_API int (luaopen_package) (lua_State *L); + + +/* open all previous libraries */ +LUALIB_API void (luaL_openlibs) (lua_State *L); + + + +#if !defined(lua_assert) +#define lua_assert(x) ((void)0) +#endif + + +#endif diff --git a/vendor/lua/5.4/lua.odin b/vendor/lua/5.4/lua.odin new file mode 100644 index 000000000..ce15e185f --- /dev/null +++ b/vendor/lua/5.4/lua.odin @@ -0,0 +1,822 @@ +package lua_5_4 + +import "core:intrinsics" +import "core:builtin" + +import c "core:c/libc" + +#assert(size_of(c.int) == size_of(b32)) + +when ODIN_OS == .Windows { + foreign import lib "windows/lua54dll.lib" +} + +VERSION_MAJOR :: "5" +VERSION_MINOR :: "4" +VERSION_RELEASE :: "2" + +VERSION_NUM :: 504 +VERSION_RELEASE_NUM :: VERSION_NUM * 100 + 0 + +VERSION :: "Lua " + VERSION_MAJOR + "." + VERSION_MINOR +RELEASE :: VERSION + "." + VERSION_RELEASE +COPYRIGHT :: RELEASE + " Copyright (C) 1994-2020 Lua.org, PUC-Rio" +AUTHORS :: "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" + + +/* mark for precompiled code ('Lua') */ +SIGNATURE :: "\x1bLua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +MULTRET :: -1 + +REGISTRYINDEX :: -MAXSTACK - 1000 + + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +** (It must fit into max(size_t)/32.) +*/ +MAXSTACK :: 1000000 when size_of(rawptr) == 4 else 15000 + + +/* +@@ LUA_EXTRASPACE defines the size of a raw memory area associated with +** a Lua state with very fast access. +** CHANGE it if you need a different size. +*/ +EXTRASPACE :: size_of(rawptr) + + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@@ of a function in debug information. +** CHANGE it if you want a different size. +*/ +IDSIZE :: 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +L_BUFFERSIZE :: c.int(16 * size_of(rawptr) * size_of(Number)) + + +MAXALIGNVAL :: max(align_of(Number), align_of(f64), align_of(rawptr), align_of(Integer), align_of(c.long)) + + +Status :: enum c.int { + OK = 0, + YIELD = 1, + ERRRUN = 2, + ERRSYNTAX = 3, + ERRMEM = 4, + ERRERR = 5, + ERRFILE = 6, +} + +/* thread status */ +OK :: Status.OK +YIELD :: Status.YIELD +ERRRUN :: Status.ERRRUN +ERRSYNTAX :: Status.ERRSYNTAX +ERRMEM :: Status.ERRMEM +ERRERR :: Status.ERRERR +ERRFILE :: Status.ERRFILE + +/* +** basic types +*/ + + +Type :: enum c.int { + NONE = -1, + + NIL = 0, + BOOLEAN = 1, + LIGHTUSERDATA = 2, + NUMBER = 3, + STRING = 4, + TABLE = 5, + FUNCTION = 6, + USERDATA = 7, + THREAD = 8, +} + +TNONE :: Type.NONE +TNIL :: Type.NIL +TBOOLEAN :: Type.BOOLEAN +TLIGHTUSERDATA :: Type.LIGHTUSERDATA +TNUMBER :: Type.NUMBER +TSTRING :: Type.STRING +TTABLE :: Type.TABLE +TFUNCTION :: Type.FUNCTION +TUSERDATA :: Type.USERDATA +TTHREAD :: Type.THREAD +NUMTYPES :: 9 + + + +ArithOp :: enum c.int { + ADD = 0, /* ORDER TM, ORDER OP */ + SUB = 1, + MUL = 2, + MOD = 3, + POW = 4, + DIV = 5, + IDIV = 6, + BAND = 7, + BOR = 8, + BXOR = 9, + SHL = 10, + SHR = 11, + UNM = 12, + BNOT = 13, +} + +CompareOp :: enum c.int { + EQ = 0, + LT = 1, + LE = 2, +} + +OPADD :: ArithOp.ADD +OPSUB :: ArithOp.SUB +OPMUL :: ArithOp.MUL +OPMOD :: ArithOp.MOD +OPPOW :: ArithOp.POW +OPDIV :: ArithOp.DIV +OPIDIV :: ArithOp.IDIV +OPBAND :: ArithOp.BAND +OPBOR :: ArithOp.BOR +OPBXOR :: ArithOp.BXOR +OPSHL :: ArithOp.SHL +OPSHR :: ArithOp.SHR +OPUNM :: ArithOp.UNM +OPBNOT :: ArithOp.BNOT + +OPEQ :: CompareOp.EQ +OPLT :: CompareOp.LT +OPLE :: CompareOp.LE + + +/* minimum Lua stack available to a C function */ +MINSTACK :: 20 + + +/* predefined values in the registry */ +RIDX_MAINTHREAD :: 1 +RIDX_GLOBALS :: 2 +RIDX_LAST :: RIDX_GLOBALS + + +/* type of numbers in Lua */ +Number :: distinct (f32 when size_of(uintptr) == 4 else f64) + + +/* type for integer functions */ +Integer :: distinct (i32 when size_of(uintptr) == 4 else i64) + +/* unsigned integer type */ +Unsigned :: distinct (u32 when size_of(uintptr) == 4 else u64) + +/* type for continuation-function contexts */ +KContext :: distinct int + + +/* +** Type for C functions registered with Lua +*/ +CFunction :: #type proc "c" (L: ^State) -> c.int + +/* +** Type for continuation functions +*/ +KFunction :: #type proc "c" (L: ^State, status: c.int, ctx: KContext) -> c.int + + +/* +** Type for functions that read/write blocks when loading/dumping Lua chunks +*/ +Reader :: #type proc "c" (L: ^State, ud: rawptr, sz: ^c.size_t) -> cstring +Writer :: #type proc "c" (L: ^State, p: rawptr, sz: ^c.size_t, ud: rawptr) -> c.int + + +/* +** Type for memory-allocation functions +*/ +Alloc :: #type proc "c" (ud: rawptr, ptr: rawptr, osize, nsize: c.size_t) -> rawptr + + +/* +** Type for warning functions +*/ +WarnFunction :: #type proc "c" (ud: rawptr, msg: rawptr, tocont: c.int) + +GCWhat :: enum c.int { + STOP = 0, + RESTART = 1, + COLLECT = 2, + COUNT = 3, + COUNTB = 4, + STEP = 5, + SETPAUSE = 6, + SETSTEPMUL = 7, + ISRUNNING = 9, + GEN = 10, + INC = 11, +} +GCSTOP :: GCWhat.STOP +GCRESTART :: GCWhat.RESTART +GCCOLLECT :: GCWhat.COLLECT +GCCOUNT :: GCWhat.COUNT +GCCOUNTB :: GCWhat.COUNTB +GCSTEP :: GCWhat.STEP +GCSETPAUSE :: GCWhat.SETPAUSE +GCSETSTEPMUL :: GCWhat.SETSTEPMUL +GCISRUNNING :: GCWhat.ISRUNNING +GCGEN :: GCWhat.GEN +GCINC :: GCWhat.INC + + + +/* +** Event codes +*/ + +HookEvent :: enum c.int { + CALL = 0, + RET = 1, + LINE = 2, + COUNT = 3, + TAILCALL = 4, +} +HOOKCALL :: HookEvent.CALL +HOOKRET :: HookEvent.RET +HOOKLINE :: HookEvent.LINE +HOOKCOUNT :: HookEvent.COUNT +HOOKTAILCALL :: HookEvent.TAILCALL + + +/* +** Event masks +*/ +HookMask :: distinct bit_set[HookEvent; c.int] +MASKCALL :: HookMask{.CALL} +MASKRET :: HookMask{.RET} +MASKLINE :: HookMask{.LINE} +MASKCOUNT :: HookMask{.COUNT} + +/* activation record */ +Debug :: struct { + event: HookEvent, + name: cstring, /* (n) */ + namewhat: cstring, /* (n) 'global', 'local', 'field', 'method' */ + what: cstring, /* (S) 'Lua', 'C', 'main', 'tail' */ + source: cstring, /* (S) */ + srclen: c.size_t, /* (S) */ + currentline: c.int, /* (l) */ + linedefined: c.int, /* (S) */ + lastlinedefined: c.int, /* (S) */ + nups: u8, /* (u) number of upvalues */ + nparams: u8, /* (u) number of parameters */ + isvararg: bool, /* (u) */ + istailcall: bool, /* (t) */ + ftransfer: u16, /* (r) index of first value transferred */ + ntransfer: u16, /* (r) number of transferred values */ + short_src: [IDSIZE]u8 `fmt:"s"`, /* (S) */ + /* private part */ + i_ci: rawptr, /* active function */ +} + + +/* Functions to be called by the debugger in specific events */ +Hook :: #type proc "c" (L: ^State, ar: ^Debug) + + +State :: struct {} // opaque data type + + +@(link_prefix="lua_") +@(default_calling_convention="c") +foreign lib { + /* + ** RCS ident string + */ + + ident: [^]u8 // TODO(bill): is this correct? + + + /* + ** state manipulation + */ + + newstate :: proc(f: Alloc, ud: rawptr) -> ^State --- + close :: proc(L: ^State) --- + newthread :: proc(L: ^State) -> ^State --- + resetthread :: proc(L: ^State) -> Status --- + + atpanic :: proc(L: ^State, panicf: CFunction) -> CFunction --- + + version :: proc(L: ^State) -> Number --- + + + /* + ** basic stack manipulation + */ + + absindex :: proc (L: ^State, idx: c.int) -> c.int --- + gettop :: proc (L: ^State) -> c.int --- + settop :: proc (L: ^State, idx: c.int) --- + pushvalue :: proc (L: ^State, idx: c.int) --- + rotate :: proc (L: ^State, idx: c.int, n: c.int) --- + copy :: proc (L: ^State, fromidx, toidx: c.int) --- + checkstack :: proc (L: ^State, n: c.int) -> c.int --- + + xmove :: proc(from, to: ^State, n: c.int) --- + + + /* + ** access functions (stack -> C) + */ + + isnumber :: proc(L: ^State, idx: c.int) -> b32 --- + isstring :: proc(L: ^State, idx: c.int) -> b32 --- + iscfunction :: proc(L: ^State, idx: c.int) -> b32 --- + isinteger :: proc(L: ^State, idx: c.int) -> b32 --- + isuserdata :: proc(L: ^State, idx: c.int) -> b32 --- + type :: proc(L: ^State, idx: c.int) -> Type --- + typename :: proc(L: ^State, tp: Type) -> cstring --- + + @(link_name="lua_tonumberx") + tonumber :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Number --- + @(link_name="lua_tointegerx") + tointeger :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Integer --- + toboolean :: proc(L: ^State, idx: c.int) -> b32 --- + tolstring :: proc(L: ^State, idx: c.int, len: ^c.size_t) -> cstring --- + rawlen :: proc(L: ^State, idx: c.int) -> Unsigned --- + tocfunction :: proc(L: ^State, idx: c.int) -> CFunction --- + touserdata :: proc(L: ^State, idx: c.int) -> rawptr --- + tothread :: proc(L: ^State, idx: c.int) -> ^State --- + topointer :: proc(L: ^State, idx: c.int) -> rawptr --- + + /* + ** Comparison and arithmetic functions + */ + + arith :: proc(L: ^State, op: ArithOp) --- + rawequal :: proc(L: ^State, idx1, idx2: c.int) -> b32 --- + compare :: proc(L: ^State, idx1, idx2: c.int, op: CompareOp) -> b32 --- + + /* + ** push functions (C -> stack) + */ + + pushnil :: proc(L: ^State) --- + pushnumber :: proc(L: ^State, n: Number) --- + pushinteger :: proc(L: ^State, n: Integer) --- + pushlstring :: proc(L: ^State, s: cstring, len: cstring) -> cstring --- + pushstring :: proc(L: ^State, s: cstring) -> cstring --- + pushvfstring :: proc(L: ^State, fmt: cstring, argp: c.va_list) -> cstring --- + pushfstring :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> cstring --- + pushcclosure :: proc(L: ^State, fn: CFunction, n: c.int) --- + pushboolean :: proc(L: ^State, b: b32) --- + pushlightuserdata :: proc(L: ^State, p: rawptr) --- + pushthread :: proc(L: ^State) -> Status --- + + /* + ** get functions (Lua -> stack) + */ + + getglobal :: proc(L: ^State, name: cstring) -> c.int --- + gettable :: proc(L: ^State, idx: c.int) -> c.int --- + getfield :: proc(L: ^State, idx: c.int, k: cstring) -> c.int --- + geti :: proc(L: ^State, idx: c.int, n: Integer) -> c.int --- + rawget :: proc(L: ^State, idx: c.int) -> c.int --- + rawgeti :: proc(L: ^State, idx: c.int, n: Integer) -> c.int --- + rawgetp :: proc(L: ^State, idx: c.int, p: rawptr) -> c.int --- + + createtable :: proc(L: ^State, narr, nrec: c.int) --- + newuserdatauv :: proc(L: ^State, sz: c.size_t, nuvalue: c.int) -> rawptr --- + getmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + getiuservalue :: proc(L: ^State, idx: c.int, n: c.int) -> c.int --- + + + /* + ** set functions (stack -> Lua) + */ + + setglobal :: proc(L: ^State, name: cstring) --- + settable :: proc(L: ^State, idx: c.int) --- + setfield :: proc(L: ^State, idx: c.int, k: cstring) --- + seti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawset :: proc(L: ^State, idx: c.int) --- + rawseti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawsetp :: proc(L: ^State, idx: c.int, p: rawptr) --- + setmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + setiuservalue :: proc(L: ^State, idx: c.int, n: c.int) -> c.int --- + + + /* + ** 'load' and 'call' functions (load and run Lua code) + */ + + @(link_name="lua_callk") + call :: proc(L: ^State, nargs, nresults: c.int, + ctx: KContext = 0, k: KFunction = nil) --- + + @(link_name="lua_pcallk") + pcall :: proc(L: ^State, nargs, nresults: c.int, errfunc: c.int, + ctx: KContext = 0, k: KFunction = nil) -> c.int --- + + load :: proc(L: ^State, reader: Reader, dt: rawptr, + chunkname, mode: cstring) -> Status --- + + dump :: proc(L: ^State, writer: Writer, data: rawptr, strip: b32) -> Status --- + + + /* + ** coroutine functions + */ + + @(link_name="lua_yieldk") + yield :: proc(L: ^State, nresults: c.int, ctx: KContext = 0, k: KFunction = nil) -> Status --- + resume :: proc(L: ^State, from: ^State, narg: c.int, nres: ^c.int) -> Status --- + status :: proc(L: ^State) -> Status --- + isyieldable :: proc(L: ^State) -> b32 --- + + + /* + ** Warning-related functions + */ + + setwarnf :: proc(L: ^State, f: WarnFunction, ud: rawptr) --- + warning :: proc(L: ^State, msg: string, tocont: b32) --- + + + /* + ** garbage-collection function and options + */ + + + + gc :: proc(L: ^State, what: GCWhat, #c_vararg args: ..any) -> c.int --- + + + /* + ** miscellaneous functions + */ + + error :: proc(L: ^State) -> Status --- + + next :: proc(L: ^State, idx: c.int) -> c.int --- + + concat :: proc(L: ^State, n: c.int) --- + len :: proc(L: ^State, idx: c.int) --- + + stringtonumber :: proc(L: ^State, s: cstring) -> c.size_t --- + + getallocf :: proc(L: State, ud: ^rawptr) -> Alloc --- + setallocf :: proc(L: ^State, f: Alloc, ud: rawptr) --- + + toclose :: proc(L: ^State, idx: c.int) --- + + /* + ** {====================================================================== + ** Debug API + ** ======================================================================= + */ + + getstack :: proc(L: ^State, level: c.int, ar: ^Debug) -> c.int --- + getinfo :: proc(L: ^State, what: cstring, ar: ^Debug) -> c.int --- + getlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + setlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + getupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + setupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + + upvalueid :: proc(L: ^State, fidx, n: c.int) -> rawptr --- + upvaluejoin :: proc(L: ^State, fidx1, n1, fidx2, n2: c.int) --- + + sethook :: proc(L: ^State, func: Hook, mask: HookMask, count: c.int) --- + gethook :: proc(L: ^State) -> Hook --- + gethookmask :: proc(L: ^State) -> HookMask --- + gethookcount :: proc(L: ^State) -> c.int --- + + setcstacklimit :: proc(L: ^State, limit: c.uint) -> c.int --- + + /* }============================================================== */ +} + + + +/* version suffix for environment variable names */ +VERSUFFIX :: "_" + VERSION_MAJOR + "_" + VERSION_MINOR + +COLIBNAME :: "coroutine" +TABLIBNAME :: "table" +IOLIBNAME :: "io" +OSLIBNAME :: "os" +STRLIBNAME :: "string" +UTF8LIBNAME :: "utf8" +MATHLIBNAME :: "math" +DBLIBNAME :: "debug" +LOADLIBNAME :: "package" + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + open_base :: proc(L: ^State) -> c.int --- + open_coroutine :: proc(L: ^State) -> c.int --- + open_table :: proc(L: ^State) -> c.int --- + open_io :: proc(L: ^State) -> c.int --- + open_os :: proc(L: ^State) -> c.int --- + open_string :: proc(L: ^State) -> c.int --- + open_utf8 :: proc(L: ^State) -> c.int --- + open_math :: proc(L: ^State) -> c.int --- + open_debug :: proc(L: ^State) -> c.int --- + open_package :: proc(L: ^State) -> c.int --- + + /* open all previous libraries */ + + openlibs :: proc(L: ^State) --- +} + + + +GNAME :: "_G" + +/* key, in the registry, for table of loaded modules */ +LOADED_TABLE :: "_LOADED" + + +/* key, in the registry, for table of preloaded loaders */ +PRELOAD_TABLE :: "_PRELOAD" + +L_Reg :: struct { + name: cstring, + func: CFunction, +} + +L_NUMSIZES :: size_of(Integer)*16 + size_of(Number) + + +/* predefined references */ +NOREF :: -2 +REFNIL :: -1 + + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + @(link_name="luaL_checkversion_") + L_checkversion :: proc(L: ^State, ver: Number = VERSION_NUM, sz: c.size_t = L_NUMSIZES) --- + + + L_getmetafield :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + L_callmeta :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + @(link_name="luaL_tolstring") + L_tostring :: proc(L: ^State, idx: c.int, len: ^c.size_t = nil) -> cstring --- + L_argerror :: proc(L: ^State, arg: c.int, extramsg: cstring) -> c.int --- + L_typeerror :: proc(L: ^State, arg: c.int, tname: cstring) -> c.int --- + @(link_name="luaL_checklstring") + L_checkstring :: proc(L: ^State, arg: c.int, l: ^c.size_t = nil) -> cstring --- + @(link_name="luaL_optlstring") + L_optstring :: proc(L: ^State, arg: c.int, def: cstring, l: ^c.size_t = nil) -> cstring --- + L_checknumber :: proc(L: ^State, arg: c.int) -> Number --- + L_optnumber :: proc(L: ^State, arg: c.int, def: Number) -> Number --- + + L_checkinteger :: proc(L: ^State, arg: c.int) -> Integer --- + L_optinteger :: proc(L: ^State, arg: c.int, def: Integer) -> Integer --- + + L_checkstack :: proc(L: ^State, sz: c.int, msg: cstring) --- + L_checktype :: proc(L: ^State, arg: c.int, t: c.int) --- + L_checkany :: proc(L: ^State, arg: c.int) --- + + L_newmetatable :: proc(L: ^State, tname: cstring) -> c.int --- + L_setmetatable :: proc(L: ^State, tname: cstring) --- + L_testudata :: proc(L: ^State, ud: c.int, tname: cstring) -> rawptr --- + L_checkudata :: proc(L: ^State, ud: c.int, tname: cstring) -> rawptr --- + + L_where :: proc(L: ^State, lvl: c.int) --- + L_error :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> Status --- + + L_checkoption :: proc(L: ^State, arg: c.int, def: cstring, lst: [^]cstring) -> c.int --- + + L_fileresult :: proc(L: ^State, stat: c.int, fname: cstring) -> c.int --- + L_execresult :: proc(L: ^State, stat: c.int) -> c.int --- + + + L_ref :: proc(L: ^State, t: c.int) -> c.int --- + L_unref :: proc(L: ^State, t: c.int, ref: c.int) --- + + @(link_name="luaL_loadfilex") + L_loadfile :: proc (L: ^State, filename: cstring, mode: cstring = nil) -> Status --- + + @(link_name="luaL_loadbufferx") + L_loadbuffer :: proc(L: ^State, buff: cstring, sz: c.size_t, name: cstring, mode: cstring = nil) -> Status --- + L_loadstring :: proc(L: ^State, s: cstring) -> Status --- + + L_newstate :: proc() -> ^State --- + + L_len :: proc(L: ^State, idx: c.int) -> Integer --- + + L_addgsub :: proc(b: ^L_Buffer, s, p, r: cstring) --- + L_gsub :: proc(L: ^State, s, p, r: cstring) -> cstring --- + + L_setfuncs :: proc(L: ^State, l: [^]L_Reg, nup: c.int) --- + + L_getsubtable :: proc(L: ^State, idx: c.int, fname: cstring) -> c.int --- + + L_traceback :: proc(L: ^State, L1: ^State, msg: cstring, level: c.int) --- + + L_requiref :: proc(L: ^State, modname: cstring, openf: CFunction, glb: c.int) --- + +} +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + +L_Buffer :: struct { + b: [^]byte, /* buffer address */ + size: c.size_t, /* buffer size */ + n: c.size_t, /* number of characters in buffer */ + L: ^State, + init: struct #raw_union { + n: Number, u: f64, s: rawptr, i: Integer, l: c.long, + b: [L_BUFFERSIZE]byte, /* initial buffer */ + }, +} +L_bufflen :: #force_inline proc "c" (bf: ^L_Buffer) -> c.size_t { + return bf.n +} +L_buffaddr :: #force_inline proc "c" (bf: ^L_Buffer) -> [^]byte { + return bf.b +} + +L_addchar :: #force_inline proc "c" (B: ^L_Buffer, c: byte) { + if B.n < B.size { + L_prepbuffsize(B, 1) + } + B.b[B.n] = c + B.n += 1 +} + +L_addsize :: #force_inline proc "c" (B: ^L_Buffer, s: c.size_t) -> c.size_t { + B.n += s + return B.n +} + +L_buffsub :: #force_inline proc "c" (B: ^L_Buffer, s: c.size_t) -> c.size_t { + B.n -= s + return B.n +} + +L_prepbuffer :: #force_inline proc "c" (B: ^L_Buffer) -> [^]byte { + return L_prepbuffsize(B, c.size_t(L_BUFFERSIZE)) +} + + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + L_buffinit :: proc(L: ^State, B: ^L_Buffer) --- + L_prepbuffsize :: proc(B: ^L_Buffer, sz: c.size_t) -> [^]byte --- + L_addlstring :: proc(B: ^L_Buffer, s: cstring, l: c.size_t) --- + L_addstring :: proc(B: ^L_Buffer, s: cstring) --- + L_addvalue :: proc(B: ^L_Buffer) --- + L_pushresult :: proc(B: ^L_Buffer) --- + L_pushresultsize :: proc(B: ^L_Buffer, sz: c.size_t) --- + L_buffinitsize :: proc(L: ^State, B: ^L_Buffer, sz: c.size_t) -> [^]byte --- +} + + +/* }====================================================== */ + + + + +/* +** {============================================================== +** some useful macros +** =============================================================== +*/ + +getextraspace :: #force_inline proc "c" (L: ^State) -> rawptr { + return rawptr(([^]byte)(L)[-EXTRASPACE:]) +} +pop :: #force_inline proc "c" (L: ^State, n: c.int) { + settop(L, -n-1) +} +newtable :: #force_inline proc "c" (L: ^State) { + createtable(L, 0, 0) +} +register :: #force_inline proc "c" (L: ^State, n: cstring, f: CFunction) { + pushcfunction(L, f) + setglobal(L, n) +} + +pushcfunction :: #force_inline proc "c" (L: ^State, f: CFunction) { + pushcclosure(L, f, 0) +} + + +isfunction :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .FUNCTION } +istable :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .TABLE } +islightuserdata :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .LIGHTUSERDATA } +isnil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NIL } +isboolean :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .BOOLEAN } +isthread :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .THREAD } +isnone :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NONE } +isnoneornil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) <= .NIL } + + +pushliteral :: pushstring +pushglobaltable :: #force_inline proc "c" (L: ^State) { + rawgeti(L, REGISTRYINDEX, RIDX_GLOBALS) +} +tostring :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return tolstring(L, i, nil) +} +insert :: #force_inline proc "c" (L: ^State, idx: c.int) { + rotate(L, idx, 1) +} +remove :: #force_inline proc "c" (L: ^State, idx: c.int) { + rotate(L, idx, -1) + pop(L, 1) +} +replace :: #force_inline proc "c" (L: ^State, idx: c.int) { + copy(L, -1, idx) + pop(L, 1) +} + +L_newlibtable :: #force_inline proc "c" (L: ^State, l: []L_Reg) { + createtable(L, 0, c.int(builtin.len(l) - 1)) +} + +L_newlib :: proc(L: ^State, l: []L_Reg) { + L_checkversion(L) + L_newlibtable(L, l) + L_setfuncs(L, raw_data(l), 0) +} + +L_argcheck :: #force_inline proc "c" (L: ^State, cond: bool, arg: c.int, extramsg: cstring) { + if cond { + L_argerror(L, arg, extramsg) + } +} + +L_argexpected :: #force_inline proc "c" (L: ^State, cond: bool, arg: c.int, tname: cstring) { + if cond { + L_typeerror(L, arg, tname) + } +} + +L_typename :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return typename(L, type(L, i)) +} +L_dofile :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadfile(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_dostring :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadstring(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_getmetatable :: #force_inline proc "c" (L: ^State, n: cstring) -> c.int { + return getfield(L, REGISTRYINDEX, n) +} +L_opt :: #force_inline proc "c" (L: ^State, f: $F, n: c.int, d: $T) -> T where intrinsics.type_is_proc(F) { + return d if isnoneornil(L, n) else f(L, n) +} + + + +/* push the value used to represent failure/error */ +pushfail :: pushnil + + +/* }============================================================== */ + + +/* +** {============================================================== +** compatibility macros +** =============================================================== +*/ + +newuserdata :: #force_inline proc "c" (L: ^State, s: c.size_t) -> rawptr { + return newuserdatauv(L, s, 1) +} +getuservalue :: #force_inline proc "c" (L: ^State, idx: c.int) -> c.int { + return getiuservalue(L, idx, 1) +} +setuservalue :: #force_inline proc "c" (L: ^State, idx: c.int) -> c.int { + return setiuservalue(L, idx, 1) +} diff --git a/vendor/lua/5.4/windows/lua54.dll b/vendor/lua/5.4/windows/lua54.dll new file mode 100644 index 0000000000000000000000000000000000000000..44130fad2ce7e082a4e985b06594608bb91523ec GIT binary patch literal 354816 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%0AR8{_2bcX#_7gjYsM77{dcG^r- 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σ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

Edrm`T$<^WZSU;(8kgX6M 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 OdN0G#fAmWC(f Date: Wed, 5 Apr 2023 15:56:56 +0100 Subject: [PATCH 35/50] Add README.md --- vendor/lua/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 vendor/lua/README.md diff --git a/vendor/lua/README.md b/vendor/lua/README.md new file mode 100644 index 000000000..6484ab2d1 --- /dev/null +++ b/vendor/lua/README.md @@ -0,0 +1,5 @@ +# Lua in Odin + +```odin +import lua "vendor:lua/5.4" // or whatever version you want +``` \ No newline at end of file From cbd2d896376f09d81fcb974fee3a61af46b228fc Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 15:58:06 +0100 Subject: [PATCH 36/50] Add LICENSE --- vendor/lua/LICENSE | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 vendor/lua/LICENSE diff --git a/vendor/lua/LICENSE b/vendor/lua/LICENSE new file mode 100644 index 000000000..4a17a5230 --- /dev/null +++ b/vendor/lua/LICENSE @@ -0,0 +1,6 @@ +Copyright © 1994–2023 Lua.org, PUC-Rio. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file From 31bc982a5387a130dac0db627eed459c11381a60 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 16:00:58 +0100 Subject: [PATCH 37/50] Fix typo --- vendor/lua/5.4/lua.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/lua/5.4/lua.odin b/vendor/lua/5.4/lua.odin index ce15e185f..c1c18485f 100644 --- a/vendor/lua/5.4/lua.odin +++ b/vendor/lua/5.4/lua.odin @@ -542,7 +542,7 @@ foreign lib { /* open all previous libraries */ - openlibs :: proc(L: ^State) --- + L_openlibs :: proc(L: ^State) --- } From 8c327567c04caf82342024f7035760e54e73fc78 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 16:05:39 +0100 Subject: [PATCH 38/50] Minor change to `L_loadbuffer`'s signature --- vendor/lua/5.4/lua.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/lua/5.4/lua.odin b/vendor/lua/5.4/lua.odin index c1c18485f..6b3179670 100644 --- a/vendor/lua/5.4/lua.odin +++ b/vendor/lua/5.4/lua.odin @@ -617,7 +617,7 @@ foreign lib { L_loadfile :: proc (L: ^State, filename: cstring, mode: cstring = nil) -> Status --- @(link_name="luaL_loadbufferx") - L_loadbuffer :: proc(L: ^State, buff: cstring, sz: c.size_t, name: cstring, mode: cstring = nil) -> Status --- + L_loadbuffer :: proc(L: ^State, buff: [^]byte, sz: c.size_t, name: cstring, mode: cstring = nil) -> Status --- L_loadstring :: proc(L: ^State, s: cstring) -> Status --- L_newstate :: proc() -> ^State --- From 3fa684d6ba295bd6ef38a0cf6c992d13dcb9d372 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 16:08:57 +0100 Subject: [PATCH 39/50] Update examples/all/all_vendor.odin --- examples/all/all_vendor.odin | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/examples/all/all_vendor.odin b/examples/all/all_vendor.odin index bd5921e6a..8ba141e8f 100644 --- a/examples/all/all_vendor.odin +++ b/examples/all/all_vendor.odin @@ -1,7 +1,10 @@ package all import botan "vendor:botan" +import cgltf "vendor:cgltf" +import commonmark "vendor:commonmark" import ENet "vendor:ENet" +import exr "vendor:OpenEXRCore" import ggpo "vendor:ggpo" import gl "vendor:OpenGL" import glfw "vendor:glfw" @@ -9,8 +12,7 @@ import microui "vendor:microui" import miniaudio "vendor:miniaudio" import PM "vendor:portmidi" import rl "vendor:raylib" -import exr "vendor:OpenEXRCore" -import cgltf "vendor:cgltf" +import zlib "vendor:zlib" import SDL "vendor:sdl2" import SDLNet "vendor:sdl2/net" @@ -24,8 +26,13 @@ import NS "vendor:darwin/Foundation" import MTL "vendor:darwin/Metal" import CA "vendor:darwin/QuartzCore" +import lua_5_4 "vendor:lua/5.4" + _ :: botan +_ :: cgltf +_ :: commonmark _ :: ENet +_ :: exr _ :: ggpo _ :: gl _ :: glfw @@ -33,8 +40,7 @@ _ :: microui _ :: miniaudio _ :: PM _ :: rl -_ :: exr -_ :: cgltf +_ :: zlib _ :: SDL _ :: SDLNet @@ -46,4 +52,6 @@ _ :: vk _ :: NS _ :: MTL -_ :: CA \ No newline at end of file +_ :: CA + +_ :: lua_5_4 \ No newline at end of file From 012f386057964c9afde4e948bc18d9b8b0b7b8e5 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 16:16:48 +0100 Subject: [PATCH 40/50] Add linux binaries --- vendor/lua/5.4/linux/liblua54.a | Bin 0 -> 510970 bytes vendor/lua/5.4/linux/liblua54.so | Bin 0 -> 309576 bytes vendor/lua/5.4/lua.odin | 4 ++++ 3 files changed, 4 insertions(+) create mode 100644 vendor/lua/5.4/linux/liblua54.a create mode 100644 vendor/lua/5.4/linux/liblua54.so diff --git a/vendor/lua/5.4/linux/liblua54.a b/vendor/lua/5.4/linux/liblua54.a new file mode 100644 index 0000000000000000000000000000000000000000..479aa3322e9a1af0b6bc6a0991bc9676fa8370d1 GIT binary patch literal 510970 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

    OGfV21)z2men0Ao0s}mMOWV1 z+(Ef-o>{0rA1+@7A^7D>RbYPioquU_+wzsmBOs2hf-v>+&Q^FAe=C=FQp(+b=^dAP z>T2g)UhaqgXtNvPMu^LM(iH11^=R(RolTAH&Hm2jzlt`mYHIfAhzqV#t32NdvGNsA z2JkeuLEfMLmbZACk##MN1dtRDPf$`PEiU8X2zb4Gl?Mki;!uTE%kf(s@qnnKxxKkD zf=eXYvC0G00{rWUHX}ih`}VA9UEbF0`N&5+)2HKay64(!J=b09nRTsaJ^s(~Tz8%4 z>Z?7onpd}6=b7bZ8*Y}biZm~4?jQs$WL(@Fxz5Za78#1uUjotcjtKLqF`~-LKV|7u z)|J1wzvRGQa^NpH@RuBT4>>Tmvhr$wN!_jJw4?rt=~qlIy}Yb6svc)dbpdkWGM&=` zEJyz=n+_CF(PAo;r=U%TSZ>?+iQdWy^P#*v6VNQ;aBKNb=`PpNhJezQpCfwPx#5vo z+Kfwt^l*#aiwdVt?t6L7*aE1ejRl6aMc!}7^1c!3)!OR8y7YZ;0_9kah`&ci`g8Ta z?{oFC=cp60JRU!23OUV!TgHDX%{L*Wqqe z#uoFhLHI2ptxA_V_X}rfx%t~I?_2pEKJUuSosFR8bJr$--)4FL6<*>0b381ppEeIR z(oRFhennmhj6amZ5CM_~vj`xCj`_R^l!-VhJd`*gbn|JQVIm5G{I!tAS9q^<*pAm<}NYG=S^30^9BrrHs(D#1?(uG$MQij|Om zgXE!VBfwbyRk-Ys;8c6Sbv1s(y9HP60N5JAPYAB+KQOv%=e#9=laJP!P<0X5{elOu zpG~LgnR^R9*vrh~vYnYuvTSFyyEu0sPj`79QRp{beNEkuQT?(3d;Upq6XX3i1-ChE z6wRY5e;_&+<3jUiC1>Q)7a-e?ssT7XCxQb>FUEKP&iO zX+W;O5PX$|zaTiv-*mrG4`V#{m>}+l1n;x(SJX51lP&j#dLHBX8w-C&a5w)lFY{D8 z8RPkJ22yw91b^MaeS*{6wCTu*`^oTJfJRnK)|(f zy>b-#*`wg|M!~r$rOpWyzKiABGzxuW6#ULnaOwtROV{6xg8$Pf_`{>%yNOGj&CB6Y z@Dy-m8$ha%8av_fO~JM7xf(Ztk3&D0E&lHt1?Rbd+32SNSK*%R#!`)CxV=hnzv$TN z{y!*qgWz(3GAe}#o3KR!rEeU|*cB$mGbD>RxrAt85+|k%3;kg(W|4U?>gi-TA=O2g9 zhbv3@?+X5#!GAOP?@IprDF0o>e>j&O#EQC1kyj`{(U&O?Wr{(W@>ixjmMNcQigJeX zIz!RVPz=h-so8!L6z5@6L1hGXa+I3~Pf*&l0?+Er6!h6-!zgv0bBL-+BA0NMn~CvkE z3zkG9E#)Xh@!yR7nD(e5s#mqe#oJb|UeVY}V+LhzbyVY4DekdhtK1EOqZ%r?W{uYw z_#}h=(}HtYpJCup1HZz+bw5V_G{>R&-)GQseW3BL8@S2mCxVlY8J{-|`~$exeBO_C zPDgsGg=?JsDIMd_F;nAn4ZPgIR~dXv{#^$BM-BS8K|k5R2S%aSI!}zxl?HtdBMwKr z0zVzkO9bcT0t5e!L2s7ti=*Hlm-!v}oAj@Yg6EJB&ZakYSvWV*@w|N$`tJzNXkBg4 zKRpWl^9KEe27S#KJiw8UA3q)LjRtP==P5>Xq`wG1P5*@8493id-x&BTgFYzZiA`TC zIQd^}(0|InKV;xhgAd079iKZ5`eFm$W6+!Jjxr*2j870h&1aTOjfu}T@J3k(+40|N z-~ogFX9jNO&)cKmUYXD`AEp?5-f!TS82ASb{89ri5uEWf+ZW|p=*XXQWS!ox8@O5S zZyS8f_|K!L0UY_5^kowid>USE;3`~c&nd2Z;TX>VemXu+$dba&=cTd`AbyQO|1|?Q zn{yCl8YZ}4+7osI7$Ah_8cUDWL#n5V@?{o^}g{5>H3i*$!+ ze2d`HJ*4pm1urBMIL&9P;8MJ4{2{@aCv=*AyWpH-&}p3Vq;!7uKZ6enUTooe1!o^Z zr}-R^{*h%$r}2F02if-NG=50vXS#42e^zkLspvF)q443@N~iJXB|ZU#X7D3|hb;W4 z;EshS1rJ;JF~Msr{Dk1O7XF&x^%g!X_+ks!<4uEwtHbGmEw%7`$)8pW_X^%-;RS-X zTX>=15euIrc$bB%b4P)#weZP8-)-T3!Fw#cSjw@_!b^mHqlK>(`T+~q=Sbgc;WLHL zCJQeY{C*3cCHQ6wACPb#u<(%3Z?SMk@CPkCEcjLnuMzwq3$GP?yM=F%@q34b?-Ke! z3!f+B>s|{#U($8J!Y>s3poM=(@Iw}Uso>9A_+^40w(yS#{=9`>A@~ssze@0<7JiN3 zNelm&;KwZdLo$y!Vc`RkZ?9SSXM}#(!hbIK+ZH}e@)=vv%ISV-v+$={5S_*!5Zr6w zTLdq#@COCg->Ed8t%6Uo=pPbXk6)U8yWkXrGUKyDaKD8Q3QjRPlYXz@`ul?Be?ahQ z7X3lNOD+76;QHH|=JTxJD zZxx*1AI^EV)TY#Tq% z3Vp!hb69XKtDyNjFSujT9}zrk;YS6pvGAnewr!zfg4bL0Cj?(?;janaVBy1pFSYQu z1#h)*Pk|~{Pn(733*K(wUcn<4ULbgvg%=9G*1{(V-fiJUg7;YXWWoC^+%Nb>3x8Jd z0Shk?{9X&6Cio@`FBSZL3!f?YW(!XW{(yzg5`2q=2Lyl6!b5^@wQxu9hb%lS_;w4g z5qyV**9typ;q`*=weZD)AF%KS!4F#aQo#>dc&p&gT6mk_hb_Ea@aHW&BKQ#t?-Kl| zg|8JnY2n?1AG7ct!B1FtpWv@q_(s8pEqp-mw=Mi$!SV54Ilks^li>Lle!t*e3*Rhw zfrURHc%g-F5nRhI>2MzuyvU;8D)?jze@Jk@g>M(U*ur-RUSi>cf={#Xy@KnradbQn z2yWX{J1BU$#pjUVvn>2s!2=e4Sn!aAKQFjr;YS1yTli7IYb-n|c&&vW6P!9`bUM8! z1Yd07uL<5@;lqM2weYtEH*KOb3}qMzmo|$&U&hUL3-<~hvG5&&cUgF$;A<^>lHlDI zUL<&rg-;f|&%&Eze`BMC|I;KU4&%Rtmk6JGEqt2bn=HIk@cS+NLE*pI!pnvJ0Slic z_!bKf2>zgjhXmhh;f~-BS$J6R?G|1m_znxdz0l2{K?|=J`n?vuSnvZD-XQov3*R98 z4_SDt&_8S8>xBNWg+C_c`@DsJOYkEW-X;8xTKHJ`?v=FgZlOPB;hz%zZZ5gDx8xJ3 zg1qvA(|Y2U$oyWC;nDas!HX>Vj|lF!@R@>_Sok%9mstDyxziZ61>5}ZxOuJ!YThn*X~}@`Lj&$E(>2Fc(;XXIf*_Cj|%;Og|8KSlZ8{h zjBc~~pDEwF1m9xe8wKBL;a?DZyM^B;_@IUB{e=S-e!tKkvhcqb{IG@pgWyLj{2v8R zTDabKIAP)66#8Kc|5w3PLE#-ASU5D`qLB5feTxq&hQ3D3$bXQdohXSpnqNis%6c(GO<0#V0mC&0! zFIyFz&SQw0J0iCW!{$~Tv;)OMDg6I~iywYjWagMab^-o_yDcqX={^^_m-K(iim~Ve zX~ey$|FC;4mG6G^$8fwZoVE#iiQrNk^48?)jW}`mg#ggJ1IGw{p|z z@PADT^i#lKYRH1&=m_x6O9FllCKx&^q)mj8WMxFp)P zGV`AzPC9&H?`Z_axLCn>1}6iAE71{kA3c7#>dRu>WDCD!o=edsj2S+wf*pPY7=tLq z&vZ!&>%mbb%5*w9`nnD;^}R`VCWY&=IGeT~G|U$}{|m*x-{PU;ui<~h4SCxBOT~Yw zm9e(}&G4Ho|2E%%7jU{iXZ~^Or~T{l%N92MHC)91&?A$E&23udvF)E_Vnq=M=t|Tj zeP*rubb4NsZ#MrmHLj0;(;nq&=f51ql{WwSpV@vbyP|A{OY`1szjjk_MqEH$UE8nK z@nI+aGguW`Q>D!+o^+b>zwP84y6)7GmI3FDpF8m%rszZ2ws1iI#^F6Mz|f<(sOLkO z=dwXq0SM6sK)w%mur@I4Og)f!&u8Di?ZPYV|6Q1G3&;1XAP`>Mejau%viy&;p3979 zSOtV>RM@kP9fR>g!=|Gbc3ojjijfY(@ZqbzvtTT$;&9|sunw59LAd*5Xl#x*a#3}E zAV<=hU+mlFt&R^mv~U)G@?>aYjyIa@c_vy+3yI#0g~ankAvM{mBxuw4erq(eVb zp}ICJ(zZZhzO_){w2~OlgC!Dep|BEWv1r^=;WkG;2#kFq-RhbJ#UATcv2*4UyQHAtd}31XY@qBCTM+yfJd5Fl1)fRGSM zATgN%tOBtUGL!1s}6%MamsmMU^H%?M1X@3lEB_Z=aK_dRZxFa zI;>dbm_0WlLB806u}F`7>bZp9J{)=dMyvO|(cWSdOFScTw4ScH73wlJz;Zz-b?d^km!5 z_MXhX>kntqFK!x$92gZj>)dz|;*TxJpywI(v(KH3{Nb~kPDT!7_P(AKs~j48jPg6l zf9v`7ncktS$m?Tb*4fB`9Q)Yw{cH;(auW7t?>c)Hk#D?^%d7WfPNXMCf}2ipfjf6i zn2~|Tl`_R4Y-xCx2JExmB~|tzvNZV%GSB(~ECQow-NULp%$UO9Smcvj=l$C$p`VO) z-hUTvVoN?EdsX)wBXB6ox&7C;IprlIpfI(PlZE<$itX%t1F#hf6~YkaNl{hFk_~NM z^2Pk4gZBGD`)yc&4cct;#IWi|c8ySl+{?Yoyvw~`ghfBH9YdxmZ;cFH0NX|29zaVZ zgR40d?*-1zXMm9z+F@~qx~*ss_JX1{g*jyD=4`wYrfIx=b93nXI#?q~LN75(amXcnD8je=sLS=C6&LlwU@2ikeypfjfI-o z`5I(IUmiK^2A}>}8=Rew0|~~O3v+xhuWg@%z1;XKu;nDEucPW&9GB(YS0T&UIX)}V z2Y$ozBl6m-9e=2GZvPaD%!*l==&LhH)G-(j4p{bK2n;iKUjf6?BS^f}`&zayb`vGK zs{Y8F)7j3<@Yu*vHy%aaTdESB@jeVo$^={XDPj?R!e4sa8+k1!G*OSgmCNJQY2W9m zJUWj%w||T(=ck+B;Rb^e5;@wfrz-yZC_U8lWiMEC%%iS(Cz8kG)5#> z8y`}pp@rck3w30))|h;SWu-lltvMG2>^G&&-JrA`yN6z&ggodl_mf9(7E+{4Kn3gj z1=2Aq+Yy4DFv^K!JvJu-=u^v5GmHlGrKjNRj;J-o5nNrCnt~?%dRObp}q`e<9&sYJXmOT z_Jls~EcO*vJBx#bE1bnOg{{uw2Maqu?ks+&uv=UoDcmWpj}<;DuKNmma2=MT7^&=p%qn7hwcm|emM&zdkKkag-jQK!Q>sLv$h6Cx#Ak(2y1UVi9Z z;$7@7eb-yVmbv9b%zhrDX6-OhED{BAigBrXKh1E|5QoYx`i_e*C1e#B5&d+9D<-DgEl+Il}f%@#uU`9V?)KM6$zt(vV^}95W$g#2( zx$LZ9bVk*77#zJ6u!<}hLHsb;EQ>suSryxwnOKJsVkV>q9L5Azy@Szldx{`3Pj0xx z_Y;(4Tz_ofAEOo7RF_snHZE+I|@rhl%?KCkK%(amu;8}++zZ^c>%MLs7Q zQ^Nf1aABf!vXs2=YhK`ZB_l83adMy#d~t2)v9bU<<#Qd@*73(K~4MUJpAt!$#{_`)>wP9$#x zdafPYUq>grm)>RB_Hg1A(JOPjDE#;{kVe=nwCayp#V;kko|Jo-T)Mo;q_BbO#MjA= zU()vSuyABPc?9_q&+53p#JU>QBr@dM3hU&u4-V2>9bR(|#6N=hH$TqJxE7}AF{Sei zVvNE80q9Cnjd?!0xms;xqH(|*3n#1LfcAd1AH{~YDC_6I{i%5YCuhX|0JG-b%juG3 ze~7n5>ICHb5DdrTeb5inXU@)l0q0qs@T5TbE6#gffCrW~F%}=h8>a&|a%2PAOpNpg=Z`q+wXK@3&sDc&T$R`H9s24bOWGQ<>Kq!jZ3$SVeK7EcTr z#OZ(CUzGzHnVDH|+3ZFcZuFmUWB!XS=YQClc{X)(?S`8ilbV}XJ0?vnoxa9#O-bpr z>!x4-xzCrCJBl{oEc#-{tYwo{-{6?kN{UfsP_dbp`2INc&9E?onIaF@%ABZ#X{VVG1&zA$=qAKAr54_ZeobtX#2{^9G0g zKg3{uet$;hL$ERB%_Z5Da(q-a?o)XpWEXj2QJx6dEAzWEvL479QFi2xTz9X=Op)A@ zq?{@HTa|2o>q`(5M#o?fOIilAax?EVB%hnR%0R5#Wk67O=Bi+GDb93`qW|x-fkknX zjVI;k?OeH$Y+y~mL!v*%M56uRp6mb+-pZ^>_&Ie8gzscrv<+Zn=Rx3{&#G^TU1K~&vED2#krMnBTB~#0gN?aM+4(#%DyCU zn&l67Ey6p-Vb&#D`=Zq+T0_y@?ZPwWoHg04j9;Y_<6ib{V;t8Q_*a?!5(B@V@j?Ut zrtq7ol0+lfX8Kz^a&aBeS^Xdl{%9I}58*lkzJE3i{u1FM#QS<0`VZ33qcV@kCy#K1 zG2Qqy_=Uj9hS4C)q{fZQ7_X*28%~WK*D&77xEep`+bH7mDC1%bK{$Ft9Vxww)8O=a zI1+su^H=9lUM{3^IOrQ9innK!1TN?J?;}1;qhG$21}B?!Bhk}0AtT}ck_O)gT;wNL zMKwkpVcf+{QjAj&?Bz6kewzk=m-(nYx?;=%pHCQ9d*{S>1)TD7r2L$i2ERHDUJhKO zixzU>#Q25lT%s4q@V_eH<8h3K8&`5k8ntLzk0~H*ORo(zIhutXrPcVL#6c53%=;WL zswAE%yHvv35}QF%cC4CP*3?a#dVOh`Fcu|jONl#SK}r~z5;mq%W~rpHDQTNZP)gfW z(#q6zWJPI7U3=5o#*nbow4`o*%W4U(Ub``ki6_V!l2l1MQ6pJ>8fK}=R|orCp_W!h zBSp~KvWX&D05CMIah1GpTr~||d0*cE!&fb9rb!>?7>OEckp{kmX{wsKP}}XR)^4b& zB074=X1-;xG+4%@C&N|JB6&l7%Z81TlV*!* z0b)T&vcir;Z)n9`s8Iw0+TIFl=9DgNE}sH6^6Z|FC3WCl4eF+BR>!_Y_^~4-Neiww*AmIk-AskKPNHwVN zv1m8sh@QUZQFtTcL{D=Kg>TjHA`MsbPZh7~7oXPnlQvB8`J={%#zcjeaeJW)&50E5 z(eMj3e2s?FXGe}phUt^yw~HW@N({l3ICji`!rm)4Yppx z>AgbnY18m>4gZaX>*=z%pC>sBH2T$ylRUFDe4R#rv4(Hd=x1yAS2esy!+SMcms8oi zAbDs^Qt28q4jwpDo(USRr%UZoC;A)lQ+%FFL;rimDPAg~Cj7`1^MukYmv3pfUM{aQ zPJBLtpNjXSMz7~*aUR7Y(^ZVCqA%C*nHv5J#)-dP57k}*!Y693vkgJsSNH4fksJamFcLdS_DczM|33(eT$aTrb~TCy3xk zPF#yQ#~ zzJhTY3&<%xia+%&{1xV}%3ty6XMCAKujF50;Blr`<*E3*!?@}%6+Xmxv%%++JPEWK`19P(Remcz zFEg&{qr!j9_?-ryR~hdx@c&@E)4<P6N;4_WzK9k74{_16TdyBL?nd`bQ1?0>&RR@QWDVZQ!3_e4l}Tmhm0~zk>0D z20oeb!v=me<4+s-wTvG#@aq_V!N5Pw0Jii&bYbvrGWXkC7Yx?>`m(RRlKTPR~Yn4uWGi_oh-*rgMKG5gfr{&Ame6zQ~D#b zJ}CW>Szbzir1sz``IX+sGV(|1eRdf5V2+gY5d&BH7uD}7{z{)>?&(qblp0Q-q95db z=C9auLmO%2PMhI7ZbsOEBlqLfw})sqPSQhGv;POT-H42J8E!Hil5%Gb$9H1>AO}3 zaj(*^u2qbg;f0}HJfk_X?o|9L{4zYGdyXziT0%+=II|d3cy(P1nvueLIJ}#fXio7{ z*G+gv;Y&0cx?REHIUAEtmE7vufhX!dNrap29A3xh-lXjYHU>Yl{JYY~uhLDt$UTf7 z@ifCf%;9^C2WI&1BkV}^$D)c2*TDi)eoLp%rgTn(BR}&&m5pdu<0g2#7 z(nuueciiM(s%V099bTW$v1sueN7dq>qiTWAQN3WP!xvcM2+-dg?@d0(oCOOVb87Lo z$O_`O(6RWYD#x6g7SuTC7xdrcs911Qg}25rud3SNzu6Ha&{5-GR3rWnucN{n3_5DO zfuOiq2$2@vr2_X_r_u~^abP$a(3 zArgg?ex961{HJi5(~z^|B}uRPhiU^?{#paSh5aiGd=>kf415jyTMc|2`!^eS3;R0^ zT$M?efzw=tT(`U=({%^?cNq9K_U|_1`PG&dpFFaA^I`vdmJ4gAOKA2e_^2N*K&UF;VbiF;MA_AsvAxfQ;TarJJk z@W&Z1AOKF`2cX1vIte~$4I1OFA{Wd{Bl;~oP~Fs|Nl=`pq6_ZhD?=+7`- zYv5VzUt!?6>~At~b$*W01<+%P_tQ-GpS|OTa9Wi^*oAORUDe*MUQ^XIWm@9DZa#uj z``2Hn|59nwxp;JscCV7Jpv!PWm^p9tC<5bZhM$b*Ir#mx;i*3*p5{pC0Y*-ZE7Iq1 zxYZ3`r{hZDry02F&#o{8R$g_rIJ_zUPA2G3gv{S<#8Ux3je;HnKg>g86JKduqWVX9 zMXo?z9Jk_1QIxP>UED0tpL*w8&EZuzb@iJG;s-`@#96pw@XXAAi^IDWL%u5c6-@lh zu=K2n!>fLR<_nYuD!fX6x_7RfoNreWGtHUur+ep8c24fm!qTl7zPWW}TYE#BdgXHe z$#<@4>ZR+?f9LXiIVFTg+ZZr`-08dNYY>Dg>YFR75q6FE3ddGqV_Z|D zKRYxIe$UuQe^z*^_mHnJFSE<E%SvLU{Vx}wv-Ipe}}Dr0oqm0Th90z zv`^DcmM!2Ov`>j`=W0)yPizFtmKy={5M>c>IX`DJAod+QcU8{F80@N?f&HpCqljHr z{WI90=ZjXlDSw05M;5&(7@b#b)i0fH6(5b=bk@o^5Qt?jv@(tcV!?%(avzxGd>nh6 zdNQrv*R%b$Z+wnbemMO06W!jWmOU7-pY<;B%kB9eW22GJ{)O6QT3-LGwlO74fXqA2x+d3&gS z24i9|#k-rfGspt5vrskzf0NqJU7d)C$Q^BRjTM6*agTXZf+mLR@8w$t->VtULqSfrUF#75)^xFAUdVc>wFwrTzyfp zrV+08+6TPlhqitx;C%dm)!UyPv}cVz?H`*R%JrVE9E0P2}HvV@64(^XY5}1ymnPiqtBkO1a(8SHO(FYwKpraxNwha z#0-oshJ6BmHInNqKecsQ{?*kvS+enYg zDnAe&^gDl6Q&^U`8ueE0ua4eP7Kkm*+e00As=%-V#fR;+d7{)Pfj(F}$P3U0FZ&RZ zm?#qrJm?VaK>u*Y!d7;QhuJ5v0gr7)>_1G5VeH_1+WUw4=v@-9UrKFh#!k0jbh2~T z(wY7!c4>EVg$4z2awOtg$J=|Z)Rei z$fOSN26I2mR*-#)WHf?g2}o2{32Qo`CbT-t2j$+mvFU-gEzLg!AIlVmm zrj_g^bHEABd;5_vIv;<5a~GO?`LQidN*`^E7v4L6cgTZ^CaUfe-B#Zm*~NITG-cc?pi!E5S>?B+JhE+-arW%t%>xy%8!L6Su;z+gQ>`A79jf;8Mc!+A>J)H zrAI9LSC)-Uy76~WiK1C#UEvPOIMfc*h4~mN@%&``AFx$);GeYILw!T9!*#nIB8+;xXiKaLNO}&*!0c7cSPmWq!;^4mjvrid(opTo*&EJ zNIm37Rng|cTGWf!#3yCU+e!koc{Sq%jAgidWxZ{;L|f(dQEzl{L9FepxBT>$GV~HK z_Th@Wof$->jb&eq>ah@&`MCm$=L2Vp2P1lQ5$%6@4FRI-iFT%8G97ydCe9<-8p?QKGnvR-*Nx$7osj*^Vz*|bZ_AmW* zKdfT7;xB)Qs1WCJ^m)q?e?Y{^@ti}RjMu}YfMxd%>>E}=9aLUkIeQYNhWT7*k^NNp zg6xpbeo2Iu=?U0RCZ+P)CxUhY+poD+sDV5+J50s@V;CEt{s;SiWs4J&#pH82o_r#z z4QA0afquqozv3-^f$C5+BN)9lR{a6Y3vFDyy(jGTZ+~Ok#PWeHIf3Zt;sHnPtQ22i z5~v%a%$8Y@n5qiZPhlAZ^Nml0Z$NYmgoDx6pA9_M?YH0BO@7dOBYhb@r#0lW&j?~7 zdB7XngbAYLHE=ijBQf7Z>y5Tx-u*{RJ1}kA;&6nkq$+hAvWEcQCr7 zI@U`028%9-Dq`6M)(*^JvVAl^@Y})6JbMt&edWD({- MpwlwbPcspKZf~+Jlk6& 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 literal 0 HcmV?d00001 diff --git a/vendor/lua/5.3/linux/liblua53.so b/vendor/lua/5.3/linux/liblua53.so new file mode 100644 index 0000000000000000000000000000000000000000..83c5fbd68d24a020332b12555b84b20909b1d9e4 GIT binary patch literal 273536 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%0AkCK$qcnC63bG^q`6l^{Z!zrnnKEMTz%~>{ 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 P$ji-AUNA*4)pY*@#H>bB literal 0 HcmV?d00001 diff --git a/vendor/lua/5.3/lua.odin b/vendor/lua/5.3/lua.odin new file mode 100644 index 000000000..d7884e852 --- /dev/null +++ b/vendor/lua/5.3/lua.odin @@ -0,0 +1,759 @@ +package lua_5_3 + +import "core:intrinsics" +import "core:builtin" + +import c "core:c/libc" + +#assert(size_of(c.int) == size_of(b32)) + +when ODIN_OS == .Windows { + foreign import lib "windows/lua53dll.lib" +} else when ODIN_OS == .Linux { + foreign import lib "linux/liblua53.a" +} else { + #panic(`Unsupported platform of "vendor:lua/5.3"`) +} + +VERSION_MAJOR :: "5" +VERSION_MINOR :: "3" +VERSION_NUM :: 503 +VERSION_RELEASE :: "6" + +VERSION :: "Lua " + VERSION_MAJOR + "." + VERSION_MINOR +RELEASE :: VERSION + "." + VERSION_RELEASE +COPYRIGHT :: RELEASE + " Copyright (C) 1994-2020 Lua.org, PUC-Rio" +AUTHORS :: "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" + + +/* mark for precompiled code ('Lua') */ +SIGNATURE :: "\x1bLua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +MULTRET :: -1 + +REGISTRYINDEX :: -MAXSTACK - 1000 + + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +** (It must fit into max(size_t)/32.) +*/ +MAXSTACK :: 1000000 when size_of(rawptr) == 4 else 15000 + + +/* +@@ LUA_EXTRASPACE defines the size of a raw memory area associated with +** a Lua state with very fast access. +** CHANGE it if you need a different size. +*/ +EXTRASPACE :: size_of(rawptr) + + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@@ of a function in debug information. +** CHANGE it if you want a different size. +*/ +IDSIZE :: 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +L_BUFFERSIZE :: c.int(16 * size_of(rawptr) * size_of(Number)) + + +MAXALIGNVAL :: max(align_of(Number), align_of(f64), align_of(rawptr), align_of(Integer), align_of(c.long)) + + +Status :: enum c.int { + OK = 0, + YIELD = 1, + ERRRUN = 2, + ERRSYNTAX = 3, + ERRMEM = 4, + ERRERR = 5, + ERRGCMM = 6, + ERRFILE = 7, +} + +/* thread status */ +OK :: Status.OK +YIELD :: Status.YIELD +ERRRUN :: Status.ERRRUN +ERRSYNTAX :: Status.ERRSYNTAX +ERRMEM :: Status.ERRMEM +ERRERR :: Status.ERRERR +ERRFILE :: Status.ERRFILE + +/* +** basic types +*/ + + +Type :: enum c.int { + NONE = -1, + + NIL = 0, + BOOLEAN = 1, + LIGHTUSERDATA = 2, + NUMBER = 3, + STRING = 4, + TABLE = 5, + FUNCTION = 6, + USERDATA = 7, + THREAD = 8, +} + +TNONE :: Type.NONE +TNIL :: Type.NIL +TBOOLEAN :: Type.BOOLEAN +TLIGHTUSERDATA :: Type.LIGHTUSERDATA +TNUMBER :: Type.NUMBER +TSTRING :: Type.STRING +TTABLE :: Type.TABLE +TFUNCTION :: Type.FUNCTION +TUSERDATA :: Type.USERDATA +TTHREAD :: Type.THREAD +NUMTYPES :: 9 + + + +ArithOp :: enum c.int { + ADD = 0, /* ORDER TM, ORDER OP */ + SUB = 1, + MUL = 2, + MOD = 3, + POW = 4, + DIV = 5, + IDIV = 6, + BAND = 7, + BOR = 8, + BXOR = 9, + SHL = 10, + SHR = 11, + UNM = 12, + BNOT = 13, +} + +CompareOp :: enum c.int { + EQ = 0, + LT = 1, + LE = 2, +} + +OPADD :: ArithOp.ADD +OPSUB :: ArithOp.SUB +OPMUL :: ArithOp.MUL +OPMOD :: ArithOp.MOD +OPPOW :: ArithOp.POW +OPDIV :: ArithOp.DIV +OPIDIV :: ArithOp.IDIV +OPBAND :: ArithOp.BAND +OPBOR :: ArithOp.BOR +OPBXOR :: ArithOp.BXOR +OPSHL :: ArithOp.SHL +OPSHR :: ArithOp.SHR +OPUNM :: ArithOp.UNM +OPBNOT :: ArithOp.BNOT + +OPEQ :: CompareOp.EQ +OPLT :: CompareOp.LT +OPLE :: CompareOp.LE + + +/* minimum Lua stack available to a C function */ +MINSTACK :: 20 + + +/* predefined values in the registry */ +RIDX_MAINTHREAD :: 1 +RIDX_GLOBALS :: 2 +RIDX_LAST :: RIDX_GLOBALS + + +/* type of numbers in Lua */ +Number :: distinct (f32 when size_of(uintptr) == 4 else f64) + + +/* type for integer functions */ +Integer :: distinct (i32 when size_of(uintptr) == 4 else i64) + +/* unsigned integer type */ +Unsigned :: distinct (u32 when size_of(uintptr) == 4 else u64) + +/* type for continuation-function contexts */ +KContext :: distinct int + + +/* +** Type for C functions registered with Lua +*/ +CFunction :: #type proc "c" (L: ^State) -> c.int + +/* +** Type for continuation functions +*/ +KFunction :: #type proc "c" (L: ^State, status: c.int, ctx: KContext) -> c.int + + +/* +** Type for functions that read/write blocks when loading/dumping Lua chunks +*/ +Reader :: #type proc "c" (L: ^State, ud: rawptr, sz: ^c.size_t) -> cstring +Writer :: #type proc "c" (L: ^State, p: rawptr, sz: ^c.size_t, ud: rawptr) -> c.int + + +/* +** Type for memory-allocation functions +*/ +Alloc :: #type proc "c" (ud: rawptr, ptr: rawptr, osize, nsize: c.size_t) -> rawptr + + +GCWhat :: enum c.int { + STOP = 0, + RESTART = 1, + COLLECT = 2, + COUNT = 3, + COUNTB = 4, + STEP = 5, + SETPAUSE = 6, + SETSTEPMUL = 7, + ISRUNNING = 9, +} +GCSTOP :: GCWhat.STOP +GCRESTART :: GCWhat.RESTART +GCCOLLECT :: GCWhat.COLLECT +GCCOUNT :: GCWhat.COUNT +GCCOUNTB :: GCWhat.COUNTB +GCSTEP :: GCWhat.STEP +GCSETPAUSE :: GCWhat.SETPAUSE +GCSETSTEPMUL :: GCWhat.SETSTEPMUL +GCISRUNNING :: GCWhat.ISRUNNING + + + +/* +** Event codes +*/ + +HookEvent :: enum c.int { + CALL = 0, + RET = 1, + LINE = 2, + COUNT = 3, + TAILCALL = 4, +} +HOOKCALL :: HookEvent.CALL +HOOKRET :: HookEvent.RET +HOOKLINE :: HookEvent.LINE +HOOKCOUNT :: HookEvent.COUNT +HOOKTAILCALL :: HookEvent.TAILCALL + + +/* +** Event masks +*/ +HookMask :: distinct bit_set[HookEvent; c.int] +MASKCALL :: HookMask{.CALL} +MASKRET :: HookMask{.RET} +MASKLINE :: HookMask{.LINE} +MASKCOUNT :: HookMask{.COUNT} + +/* activation record */ +Debug :: struct { + event: HookEvent, + name: cstring, /* (n) */ + namewhat: cstring, /* (n) 'global', 'local', 'field', 'method' */ + what: cstring, /* (S) 'Lua', 'C', 'main', 'tail' */ + source: cstring, /* (S) */ + currentline: c.int, /* (l) */ + linedefined: c.int, /* (S) */ + lastlinedefined: c.int, /* (S) */ + nups: u8, /* (u) number of upvalues */ + nparams: u8, /* (u) number of parameters */ + isvararg: bool, /* (u) */ + istailcall: bool, /* (t) */ + short_src: [IDSIZE]u8 `fmt:"s"`, /* (S) */ + /* private part */ + i_ci: rawptr, /* active function */ +} + + +/* Functions to be called by the debugger in specific events */ +Hook :: #type proc "c" (L: ^State, ar: ^Debug) + + +State :: struct {} // opaque data type + + +@(link_prefix="lua_") +@(default_calling_convention="c") +foreign lib { + /* + ** RCS ident string + */ + + ident: [^]u8 // TODO(bill): is this correct? + + + /* + ** state manipulation + */ + + newstate :: proc(f: Alloc, ud: rawptr) -> ^State --- + close :: proc(L: ^State) --- + newthread :: proc(L: ^State) -> ^State --- + + atpanic :: proc(L: ^State, panicf: CFunction) -> CFunction --- + + version :: proc(L: ^State) -> ^Number --- + + + /* + ** basic stack manipulation + */ + + absindex :: proc (L: ^State, idx: c.int) -> c.int --- + gettop :: proc (L: ^State) -> c.int --- + settop :: proc (L: ^State, idx: c.int) --- + pushvalue :: proc (L: ^State, idx: c.int) --- + rotate :: proc (L: ^State, idx: c.int, n: c.int) --- + copy :: proc (L: ^State, fromidx, toidx: c.int) --- + checkstack :: proc (L: ^State, n: c.int) -> c.int --- + + xmove :: proc(from, to: ^State, n: c.int) --- + + + /* + ** access functions (stack -> C) + */ + + isnumber :: proc(L: ^State, idx: c.int) -> b32 --- + isstring :: proc(L: ^State, idx: c.int) -> b32 --- + iscfunction :: proc(L: ^State, idx: c.int) -> b32 --- + isinteger :: proc(L: ^State, idx: c.int) -> b32 --- + isuserdata :: proc(L: ^State, idx: c.int) -> b32 --- + type :: proc(L: ^State, idx: c.int) -> Type --- + typename :: proc(L: ^State, tp: Type) -> cstring --- + + @(link_name="lua_tonumberx") + tonumber :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Number --- + @(link_name="lua_tointegerx") + tointeger :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Integer --- + toboolean :: proc(L: ^State, idx: c.int) -> b32 --- + tolstring :: proc(L: ^State, idx: c.int, len: ^c.size_t) -> cstring --- + rawlen :: proc(L: ^State, idx: c.int) -> c.size_t --- + tocfunction :: proc(L: ^State, idx: c.int) -> CFunction --- + touserdata :: proc(L: ^State, idx: c.int) -> rawptr --- + tothread :: proc(L: ^State, idx: c.int) -> ^State --- + topointer :: proc(L: ^State, idx: c.int) -> rawptr --- + + /* + ** Comparison and arithmetic functions + */ + + arith :: proc(L: ^State, op: ArithOp) --- + rawequal :: proc(L: ^State, idx1, idx2: c.int) -> b32 --- + compare :: proc(L: ^State, idx1, idx2: c.int, op: CompareOp) -> b32 --- + + /* + ** push functions (C -> stack) + */ + + pushnil :: proc(L: ^State) --- + pushnumber :: proc(L: ^State, n: Number) --- + pushinteger :: proc(L: ^State, n: Integer) --- + pushlstring :: proc(L: ^State, s: cstring, len: cstring) -> cstring --- + pushstring :: proc(L: ^State, s: cstring) -> cstring --- + pushvfstring :: proc(L: ^State, fmt: cstring, argp: c.va_list) -> cstring --- + pushfstring :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> cstring --- + pushcclosure :: proc(L: ^State, fn: CFunction, n: c.int) --- + pushboolean :: proc(L: ^State, b: b32) --- + pushlightuserdata :: proc(L: ^State, p: rawptr) --- + pushthread :: proc(L: ^State) -> Status --- + + /* + ** get functions (Lua -> stack) + */ + + getglobal :: proc(L: ^State, name: cstring) -> c.int --- + gettable :: proc(L: ^State, idx: c.int) -> c.int --- + getfield :: proc(L: ^State, idx: c.int, k: cstring) -> c.int --- + geti :: proc(L: ^State, idx: c.int, n: Integer) -> c.int --- + rawget :: proc(L: ^State, idx: c.int) -> c.int --- + rawgeti :: proc(L: ^State, idx: c.int, n: Integer) -> c.int --- + rawgetp :: proc(L: ^State, idx: c.int, p: rawptr) -> c.int --- + + createtable :: proc(L: ^State, narr, nrec: c.int) --- + newuserdata :: proc(L: ^State, sz: c.size_t) -> rawptr --- + getmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + getuservalue :: proc(L: ^State, idx: c.int) -> c.int --- + + + /* + ** set functions (stack -> Lua) + */ + + setglobal :: proc(L: ^State, name: cstring) --- + settable :: proc(L: ^State, idx: c.int) --- + setfield :: proc(L: ^State, idx: c.int, k: cstring) --- + seti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawset :: proc(L: ^State, idx: c.int) --- + rawseti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawsetp :: proc(L: ^State, idx: c.int, p: rawptr) --- + setmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + setuservalue :: proc(L: ^State, idx: c.int) -> c.int --- + + + /* + ** 'load' and 'call' functions (load and run Lua code) + */ + + @(link_name="lua_callk") + call :: proc(L: ^State, nargs, nresults: c.int, + ctx: KContext = 0, k: KFunction = nil) --- + + @(link_name="lua_pcallk") + pcall :: proc(L: ^State, nargs, nresults: c.int, errfunc: c.int, + ctx: KContext = 0, k: KFunction = nil) -> c.int --- + + load :: proc(L: ^State, reader: Reader, dt: rawptr, + chunkname, mode: cstring) -> Status --- + + dump :: proc(L: ^State, writer: Writer, data: rawptr, strip: b32) -> Status --- + + + /* + ** coroutine functions + */ + + @(link_name="lua_yieldk") + yield :: proc(L: ^State, nresults: c.int, ctx: KContext = 0, k: KFunction = nil) -> Status --- + resume :: proc(L: ^State, from: ^State, narg: c.int) -> Status --- + status :: proc(L: ^State) -> Status --- + isyieldable :: proc(L: ^State) -> b32 --- + + + /* + ** garbage-collection function and options + */ + + + + gc :: proc(L: ^State, what: GCWhat, data: c.int) -> c.int --- + + + /* + ** miscellaneous functions + */ + + error :: proc(L: ^State) -> Status --- + + next :: proc(L: ^State, idx: c.int) -> c.int --- + + concat :: proc(L: ^State, n: c.int) --- + len :: proc(L: ^State, idx: c.int) --- + + stringtonumber :: proc(L: ^State, s: cstring) -> c.size_t --- + + getallocf :: proc(L: State, ud: ^rawptr) -> Alloc --- + setallocf :: proc(L: ^State, f: Alloc, ud: rawptr) --- + + /* + ** {====================================================================== + ** Debug API + ** ======================================================================= + */ + + getstack :: proc(L: ^State, level: c.int, ar: ^Debug) -> c.int --- + getinfo :: proc(L: ^State, what: cstring, ar: ^Debug) -> c.int --- + getlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + setlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + getupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + setupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + + upvalueid :: proc(L: ^State, fidx, n: c.int) -> rawptr --- + upvaluejoin :: proc(L: ^State, fidx1, n1, fidx2, n2: c.int) --- + + sethook :: proc(L: ^State, func: Hook, mask: HookMask, count: c.int) --- + gethook :: proc(L: ^State) -> Hook --- + gethookmask :: proc(L: ^State) -> HookMask --- + gethookcount :: proc(L: ^State) -> c.int --- + + /* }============================================================== */ +} + + + +/* version suffix for environment variable names */ +VERSUFFIX :: "_" + VERSION_MAJOR + "_" + VERSION_MINOR + +COLIBNAME :: "coroutine" +TABLIBNAME :: "table" +IOLIBNAME :: "io" +OSLIBNAME :: "os" +STRLIBNAME :: "string" +UTF8LIBNAME :: "utf8" +BITLIBNAME :: "bit32" +MATHLIBNAME :: "math" +DBLIBNAME :: "debug" +LOADLIBNAME :: "package" + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + open_base :: proc(L: ^State) -> c.int --- + open_coroutine :: proc(L: ^State) -> c.int --- + open_table :: proc(L: ^State) -> c.int --- + open_io :: proc(L: ^State) -> c.int --- + open_os :: proc(L: ^State) -> c.int --- + open_string :: proc(L: ^State) -> c.int --- + open_utf8 :: proc(L: ^State) -> c.int --- + open_bit32 :: proc(L: ^State) -> c.int --- + open_math :: proc(L: ^State) -> c.int --- + open_debug :: proc(L: ^State) -> c.int --- + open_package :: proc(L: ^State) -> c.int --- + + /* open all previous libraries */ + + L_openlibs :: proc(L: ^State) --- +} + + + +GNAME :: "_G" + +/* key, in the registry, for table of loaded modules */ +LOADED_TABLE :: "_LOADED" + + +/* key, in the registry, for table of preloaded loaders */ +PRELOAD_TABLE :: "_PRELOAD" + +L_Reg :: struct { + name: cstring, + func: CFunction, +} + +L_NUMSIZES :: size_of(Integer)*16 + size_of(Number) + + +/* predefined references */ +NOREF :: -2 +REFNIL :: -1 + + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + @(link_name="luaL_checkversion_") + L_checkversion :: proc(L: ^State, ver: Number = VERSION_NUM, sz: c.size_t = L_NUMSIZES) --- + + + L_getmetafield :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + L_callmeta :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + @(link_name="luaL_tolstring") + L_tostring :: proc(L: ^State, idx: c.int, len: ^c.size_t = nil) -> cstring --- + L_argerror :: proc(L: ^State, arg: c.int, extramsg: cstring) -> c.int --- + @(link_name="luaL_checklstring") + L_checkstring :: proc(L: ^State, arg: c.int, l: ^c.size_t = nil) -> cstring --- + @(link_name="luaL_optlstring") + L_optstring :: proc(L: ^State, arg: c.int, def: cstring, l: ^c.size_t = nil) -> cstring --- + L_checknumber :: proc(L: ^State, arg: c.int) -> Number --- + L_optnumber :: proc(L: ^State, arg: c.int, def: Number) -> Number --- + + L_checkinteger :: proc(L: ^State, arg: c.int) -> Integer --- + L_optinteger :: proc(L: ^State, arg: c.int, def: Integer) -> Integer --- + + L_checkstack :: proc(L: ^State, sz: c.int, msg: cstring) --- + L_checktype :: proc(L: ^State, arg: c.int, t: c.int) --- + L_checkany :: proc(L: ^State, arg: c.int) --- + + L_newmetatable :: proc(L: ^State, tname: cstring) -> c.int --- + L_setmetatable :: proc(L: ^State, tname: cstring) --- + L_testudata :: proc(L: ^State, ud: c.int, tname: cstring) -> rawptr --- + L_checkudata :: proc(L: ^State, ud: c.int, tname: cstring) -> rawptr --- + + L_where :: proc(L: ^State, lvl: c.int) --- + L_error :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> Status --- + + L_checkoption :: proc(L: ^State, arg: c.int, def: cstring, lst: [^]cstring) -> c.int --- + + L_fileresult :: proc(L: ^State, stat: c.int, fname: cstring) -> c.int --- + L_execresult :: proc(L: ^State, stat: c.int) -> c.int --- + + + L_ref :: proc(L: ^State, t: c.int) -> c.int --- + L_unref :: proc(L: ^State, t: c.int, ref: c.int) --- + + @(link_name="luaL_loadfilex") + L_loadfile :: proc (L: ^State, filename: cstring, mode: cstring = nil) -> Status --- + + @(link_name="luaL_loadbufferx") + L_loadbuffer :: proc(L: ^State, buff: [^]byte, sz: c.size_t, name: cstring, mode: cstring = nil) -> Status --- + L_loadstring :: proc(L: ^State, s: cstring) -> Status --- + + L_newstate :: proc() -> ^State --- + + L_len :: proc(L: ^State, idx: c.int) -> Integer --- + + L_gsub :: proc(L: ^State, s, p, r: cstring) -> cstring --- + + L_setfuncs :: proc(L: ^State, l: [^]L_Reg, nup: c.int) --- + + L_getsubtable :: proc(L: ^State, idx: c.int, fname: cstring) -> c.int --- + + L_traceback :: proc(L: ^State, L1: ^State, msg: cstring, level: c.int) --- + + L_requiref :: proc(L: ^State, modname: cstring, openf: CFunction, glb: c.int) --- + +} +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + +L_Buffer :: struct { + b: [^]byte, /* buffer address */ + size: c.size_t, /* buffer size */ + n: c.size_t, /* number of characters in buffer */ + L: ^State, + initb: [L_BUFFERSIZE]byte, /* initial buffer */ +} + +L_addchar :: #force_inline proc "c" (B: ^L_Buffer, c: byte) { + if B.n < B.size { + L_prepbuffsize(B, 1) + } + B.b[B.n] = c + B.n += 1 +} + +L_addsize :: #force_inline proc "c" (B: ^L_Buffer, s: c.size_t) -> c.size_t { + B.n += s + return B.n +} + +L_prepbuffer :: #force_inline proc "c" (B: ^L_Buffer) -> [^]byte { + return L_prepbuffsize(B, c.size_t(L_BUFFERSIZE)) +} + + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + L_buffinit :: proc(L: ^State, B: ^L_Buffer) --- + L_prepbuffsize :: proc(B: ^L_Buffer, sz: c.size_t) -> [^]byte --- + L_addlstring :: proc(B: ^L_Buffer, s: cstring, l: c.size_t) --- + L_addstring :: proc(B: ^L_Buffer, s: cstring) --- + L_addvalue :: proc(B: ^L_Buffer) --- + L_pushresult :: proc(B: ^L_Buffer) --- + L_pushresultsize :: proc(B: ^L_Buffer, sz: c.size_t) --- + L_buffinitsize :: proc(L: ^State, B: ^L_Buffer, sz: c.size_t) -> [^]byte --- +} + + +/* }====================================================== */ + + + + +/* +** {============================================================== +** some useful macros +** =============================================================== +*/ + +getextraspace :: #force_inline proc "c" (L: ^State) -> rawptr { + return rawptr(([^]byte)(L)[-EXTRASPACE:]) +} +pop :: #force_inline proc "c" (L: ^State, n: c.int) { + settop(L, -n-1) +} +newtable :: #force_inline proc "c" (L: ^State) { + createtable(L, 0, 0) +} +register :: #force_inline proc "c" (L: ^State, n: cstring, f: CFunction) { + pushcfunction(L, f) + setglobal(L, n) +} + +pushcfunction :: #force_inline proc "c" (L: ^State, f: CFunction) { + pushcclosure(L, f, 0) +} + + +isfunction :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .FUNCTION } +istable :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .TABLE } +islightuserdata :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .LIGHTUSERDATA } +isnil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NIL } +isboolean :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .BOOLEAN } +isthread :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .THREAD } +isnone :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NONE } +isnoneornil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) <= .NIL } + + +pushliteral :: pushstring +pushglobaltable :: #force_inline proc "c" (L: ^State) { + rawgeti(L, REGISTRYINDEX, RIDX_GLOBALS) +} +tostring :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return tolstring(L, i, nil) +} +insert :: #force_inline proc "c" (L: ^State, idx: c.int) { + rotate(L, idx, 1) +} +remove :: #force_inline proc "c" (L: ^State, idx: c.int) { + rotate(L, idx, -1) + pop(L, 1) +} +replace :: #force_inline proc "c" (L: ^State, idx: c.int) { + copy(L, -1, idx) + pop(L, 1) +} + +L_newlibtable :: #force_inline proc "c" (L: ^State, l: []L_Reg) { + createtable(L, 0, c.int(builtin.len(l) - 1)) +} + +L_newlib :: proc(L: ^State, l: []L_Reg) { + L_checkversion(L) + L_newlibtable(L, l) + L_setfuncs(L, raw_data(l), 0) +} + +L_argcheck :: #force_inline proc "c" (L: ^State, cond: bool, arg: c.int, extramsg: cstring) { + if cond { + L_argerror(L, arg, extramsg) + } +} + +L_typename :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return typename(L, type(L, i)) +} +L_dofile :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadfile(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_dostring :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadstring(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_getmetatable :: #force_inline proc "c" (L: ^State, n: cstring) -> c.int { + return getfield(L, REGISTRYINDEX, n) +} +L_opt :: #force_inline proc "c" (L: ^State, f: $F, n: c.int, d: $T) -> T where intrinsics.type_is_proc(F) { + return d if isnoneornil(L, n) else f(L, n) +} + + + +/* }============================================================== */ diff --git a/vendor/lua/5.3/windows/lua53.dll b/vendor/lua/5.3/windows/lua53.dll new file mode 100644 index 0000000000000000000000000000000000000000..fca1529ee1a44e09b40cb069a9a1d793c261f40f GIT binary patch literal 302592 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 OZI@kV^ZozQ*M9=sdNXnW literal 0 HcmV?d00001 diff --git a/vendor/lua/5.3/windows/lua53dll.lib b/vendor/lua/5.3/windows/lua53dll.lib new file mode 100644 index 0000000000000000000000000000000000000000..5d204d37f19c69888eb03a1858dcbdc0cbf7d9f1 GIT binary patch literal 28930 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 a^<|BE2qM*jz(245`z literal 0 HcmV?d00001 From 03972d565ed33354c48a912608c23f3844dae1cb Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 16:31:25 +0100 Subject: [PATCH 42/50] Alignment fix --- vendor/lua/5.4/lua.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vendor/lua/5.4/lua.odin b/vendor/lua/5.4/lua.odin index edfc2db5f..df02076ba 100644 --- a/vendor/lua/5.4/lua.odin +++ b/vendor/lua/5.4/lua.odin @@ -319,9 +319,9 @@ foreign lib { ** state manipulation */ - newstate :: proc(f: Alloc, ud: rawptr) -> ^State --- - close :: proc(L: ^State) --- - newthread :: proc(L: ^State) -> ^State --- + newstate :: proc(f: Alloc, ud: rawptr) -> ^State --- + close :: proc(L: ^State) --- + newthread :: proc(L: ^State) -> ^State --- resetthread :: proc(L: ^State) -> Status --- atpanic :: proc(L: ^State, panicf: CFunction) -> CFunction --- From 8ff713f3bb60172ae880dfebcef039cf4c331653 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 16:52:17 +0100 Subject: [PATCH 43/50] Add `vendor:lua/5.2` --- vendor/lua/5.2/include/lauxlib.h | 212 ++++++++ vendor/lua/5.2/include/lua.h | 444 +++++++++++++++++ vendor/lua/5.2/include/lua.hpp | 9 + vendor/lua/5.2/include/luaconf.h | 553 +++++++++++++++++++++ vendor/lua/5.2/include/lualib.h | 55 +++ vendor/lua/5.2/linux/liblua52.a | Bin 0 -> 396236 bytes vendor/lua/5.2/linux/liblua52.so | Bin 0 -> 235709 bytes vendor/lua/5.2/lua.odin | 728 ++++++++++++++++++++++++++++ vendor/lua/5.2/windows/lua52.dll | Bin 0 -> 300544 bytes vendor/lua/5.2/windows/lua52dll.lib | Bin 0 -> 29546 bytes 10 files changed, 2001 insertions(+) create mode 100644 vendor/lua/5.2/include/lauxlib.h create mode 100644 vendor/lua/5.2/include/lua.h create mode 100644 vendor/lua/5.2/include/lua.hpp create mode 100644 vendor/lua/5.2/include/luaconf.h create mode 100644 vendor/lua/5.2/include/lualib.h create mode 100644 vendor/lua/5.2/linux/liblua52.a create mode 100644 vendor/lua/5.2/linux/liblua52.so create mode 100644 vendor/lua/5.2/lua.odin create mode 100644 vendor/lua/5.2/windows/lua52.dll create mode 100644 vendor/lua/5.2/windows/lua52dll.lib diff --git a/vendor/lua/5.2/include/lauxlib.h b/vendor/lua/5.2/include/lauxlib.h new file mode 100644 index 000000000..0fb023b8e --- /dev/null +++ b/vendor/lua/5.2/include/lauxlib.h @@ -0,0 +1,212 @@ +/* +** $Id: lauxlib.h,v 1.120.1.1 2013/04/12 18:48:47 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lauxlib_h +#define lauxlib_h + + +#include +#include + +#include "lua.h" + + + +/* extra error code for `luaL_load' */ +#define LUA_ERRFILE (LUA_ERRERR+1) + + +typedef struct luaL_Reg { + const char *name; + lua_CFunction func; +} luaL_Reg; + + +LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver); +#define luaL_checkversion(L) luaL_checkversion_(L, LUA_VERSION_NUM) + +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); +LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len); +LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg); +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg, + size_t *l); +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg, + const char *def, size_t *l); +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg); +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def); + +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg); +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg, + lua_Integer def); +LUALIB_API lua_Unsigned (luaL_checkunsigned) (lua_State *L, int numArg); +LUALIB_API lua_Unsigned (luaL_optunsigned) (lua_State *L, int numArg, + lua_Unsigned def); + +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); +LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t); +LUALIB_API void (luaL_checkany) (lua_State *L, int narg); + +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); +LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname); +LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname); +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); + +LUALIB_API void (luaL_where) (lua_State *L, int lvl); +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); + +LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def, + const char *const lst[]); + +LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname); +LUALIB_API int (luaL_execresult) (lua_State *L, int stat); + +/* pre-defined references */ +#define LUA_NOREF (-2) +#define LUA_REFNIL (-1) + +LUALIB_API int (luaL_ref) (lua_State *L, int t); +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); + +LUALIB_API int (luaL_loadfilex) (lua_State *L, const char *filename, + const char *mode); + +#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL) + +LUALIB_API int (luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, + const char *name, const char *mode); +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); + +LUALIB_API lua_State *(luaL_newstate) (void); + +LUALIB_API int (luaL_len) (lua_State *L, int idx); + +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, + const char *r); + +LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup); + +LUALIB_API int (luaL_getsubtable) (lua_State *L, int idx, const char *fname); + +LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1, + const char *msg, int level); + +LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname, + lua_CFunction openf, int glb); + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + + +#define luaL_newlibtable(L,l) \ + lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1) + +#define luaL_newlib(L,l) (luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) + +#define luaL_argcheck(L, cond,numarg,extramsg) \ + ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) + +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) + +#define luaL_dofile(L, fn) \ + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_dostring(L, s) \ + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) + +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) + +#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL) + + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + +typedef struct luaL_Buffer { + char *b; /* buffer address */ + size_t size; /* buffer size */ + size_t n; /* number of characters in buffer */ + lua_State *L; + char initb[LUAL_BUFFERSIZE]; /* initial buffer */ +} luaL_Buffer; + + +#define luaL_addchar(B,c) \ + ((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \ + ((B)->b[(B)->n++] = (c))) + +#define luaL_addsize(B,s) ((B)->n += (s)) + +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); +LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz); +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B, size_t sz); +LUALIB_API char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B, size_t sz); + +#define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE) + +/* }====================================================== */ + + + +/* +** {====================================================== +** File handles for IO library +** ======================================================= +*/ + +/* +** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and +** initial structure 'luaL_Stream' (it may contain other fields +** after that initial structure). +*/ + +#define LUA_FILEHANDLE "FILE*" + + +typedef struct luaL_Stream { + FILE *f; /* stream (NULL for incompletely created streams) */ + lua_CFunction closef; /* to close stream (NULL for closed streams) */ +} luaL_Stream; + +/* }====================================================== */ + + + +/* compatibility with old module system */ +#if defined(LUA_COMPAT_MODULE) + +LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname, + int sizehint); +LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname, + const luaL_Reg *l, int nup); + +#define luaL_register(L,n,l) (luaL_openlib(L,(n),(l),0)) + +#endif + + +#endif + + diff --git a/vendor/lua/5.2/include/lua.h b/vendor/lua/5.2/include/lua.h new file mode 100644 index 000000000..ff4a10861 --- /dev/null +++ b/vendor/lua/5.2/include/lua.h @@ -0,0 +1,444 @@ +/* +** $Id: lua.h,v 1.285.1.4 2015/02/21 14:04:50 roberto Exp $ +** Lua - A Scripting Language +** Lua.org, PUC-Rio, Brazil (http://www.lua.org) +** See Copyright Notice at the end of this file +*/ + + +#ifndef lua_h +#define lua_h + +#include +#include + + +#include "luaconf.h" + + +#define LUA_VERSION_MAJOR "5" +#define LUA_VERSION_MINOR "2" +#define LUA_VERSION_NUM 502 +#define LUA_VERSION_RELEASE "4" + +#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR +#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE +#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2015 Lua.org, PUC-Rio" +#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" + + +/* mark for precompiled code ('Lua') */ +#define LUA_SIGNATURE "\033Lua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +#define LUA_MULTRET (-1) + + +/* +** pseudo-indices +*/ +#define LUA_REGISTRYINDEX LUAI_FIRSTPSEUDOIDX +#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i)) + + +/* thread status */ +#define LUA_OK 0 +#define LUA_YIELD 1 +#define LUA_ERRRUN 2 +#define LUA_ERRSYNTAX 3 +#define LUA_ERRMEM 4 +#define LUA_ERRGCMM 5 +#define LUA_ERRERR 6 + + +typedef struct lua_State lua_State; + +typedef int (*lua_CFunction) (lua_State *L); + + +/* +** functions that read/write blocks when loading/dumping Lua chunks +*/ +typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); + +typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); + + +/* +** prototype for memory-allocation functions +*/ +typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); + + +/* +** basic types +*/ +#define LUA_TNONE (-1) + +#define LUA_TNIL 0 +#define LUA_TBOOLEAN 1 +#define LUA_TLIGHTUSERDATA 2 +#define LUA_TNUMBER 3 +#define LUA_TSTRING 4 +#define LUA_TTABLE 5 +#define LUA_TFUNCTION 6 +#define LUA_TUSERDATA 7 +#define LUA_TTHREAD 8 + +#define LUA_NUMTAGS 9 + + + +/* minimum Lua stack available to a C function */ +#define LUA_MINSTACK 20 + + +/* predefined values in the registry */ +#define LUA_RIDX_MAINTHREAD 1 +#define LUA_RIDX_GLOBALS 2 +#define LUA_RIDX_LAST LUA_RIDX_GLOBALS + + +/* type of numbers in Lua */ +typedef LUA_NUMBER lua_Number; + + +/* type for integer functions */ +typedef LUA_INTEGER lua_Integer; + +/* unsigned integer type */ +typedef LUA_UNSIGNED lua_Unsigned; + + + +/* +** generic extra include file +*/ +#if defined(LUA_USER_H) +#include LUA_USER_H +#endif + + +/* +** RCS ident string +*/ +extern const char lua_ident[]; + + +/* +** state manipulation +*/ +LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); +LUA_API void (lua_close) (lua_State *L); +LUA_API lua_State *(lua_newthread) (lua_State *L); + +LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); + + +LUA_API const lua_Number *(lua_version) (lua_State *L); + + +/* +** basic stack manipulation +*/ +LUA_API int (lua_absindex) (lua_State *L, int idx); +LUA_API int (lua_gettop) (lua_State *L); +LUA_API void (lua_settop) (lua_State *L, int idx); +LUA_API void (lua_pushvalue) (lua_State *L, int idx); +LUA_API void (lua_remove) (lua_State *L, int idx); +LUA_API void (lua_insert) (lua_State *L, int idx); +LUA_API void (lua_replace) (lua_State *L, int idx); +LUA_API void (lua_copy) (lua_State *L, int fromidx, int toidx); +LUA_API int (lua_checkstack) (lua_State *L, int sz); + +LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); + + +/* +** access functions (stack -> C) +*/ + +LUA_API int (lua_isnumber) (lua_State *L, int idx); +LUA_API int (lua_isstring) (lua_State *L, int idx); +LUA_API int (lua_iscfunction) (lua_State *L, int idx); +LUA_API int (lua_isuserdata) (lua_State *L, int idx); +LUA_API int (lua_type) (lua_State *L, int idx); +LUA_API const char *(lua_typename) (lua_State *L, int tp); + +LUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum); +LUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); +LUA_API lua_Unsigned (lua_tounsignedx) (lua_State *L, int idx, int *isnum); +LUA_API int (lua_toboolean) (lua_State *L, int idx); +LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); +LUA_API size_t (lua_rawlen) (lua_State *L, int idx); +LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); +LUA_API void *(lua_touserdata) (lua_State *L, int idx); +LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); +LUA_API const void *(lua_topointer) (lua_State *L, int idx); + + +/* +** Comparison and arithmetic functions +*/ + +#define LUA_OPADD 0 /* ORDER TM */ +#define LUA_OPSUB 1 +#define LUA_OPMUL 2 +#define LUA_OPDIV 3 +#define LUA_OPMOD 4 +#define LUA_OPPOW 5 +#define LUA_OPUNM 6 + +LUA_API void (lua_arith) (lua_State *L, int op); + +#define LUA_OPEQ 0 +#define LUA_OPLT 1 +#define LUA_OPLE 2 + +LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_compare) (lua_State *L, int idx1, int idx2, int op); + + +/* +** push functions (C -> stack) +*/ +LUA_API void (lua_pushnil) (lua_State *L); +LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); +LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); +LUA_API void (lua_pushunsigned) (lua_State *L, lua_Unsigned n); +LUA_API const char *(lua_pushlstring) (lua_State *L, const char *s, size_t l); +LUA_API const char *(lua_pushstring) (lua_State *L, const char *s); +LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, + va_list argp); +LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); +LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); +LUA_API void (lua_pushboolean) (lua_State *L, int b); +LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); +LUA_API int (lua_pushthread) (lua_State *L); + + +/* +** get functions (Lua -> stack) +*/ +LUA_API void (lua_getglobal) (lua_State *L, const char *var); +LUA_API void (lua_gettable) (lua_State *L, int idx); +LUA_API void (lua_getfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawget) (lua_State *L, int idx); +LUA_API void (lua_rawgeti) (lua_State *L, int idx, int n); +LUA_API void (lua_rawgetp) (lua_State *L, int idx, const void *p); +LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); +LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); +LUA_API int (lua_getmetatable) (lua_State *L, int objindex); +LUA_API void (lua_getuservalue) (lua_State *L, int idx); + + +/* +** set functions (stack -> Lua) +*/ +LUA_API void (lua_setglobal) (lua_State *L, const char *var); +LUA_API void (lua_settable) (lua_State *L, int idx); +LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawset) (lua_State *L, int idx); +LUA_API void (lua_rawseti) (lua_State *L, int idx, int n); +LUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); +LUA_API int (lua_setmetatable) (lua_State *L, int objindex); +LUA_API void (lua_setuservalue) (lua_State *L, int idx); + + +/* +** 'load' and 'call' functions (load and run Lua code) +*/ +LUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, int ctx, + lua_CFunction k); +#define lua_call(L,n,r) lua_callk(L, (n), (r), 0, NULL) + +LUA_API int (lua_getctx) (lua_State *L, int *ctx); + +LUA_API int (lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, + int ctx, lua_CFunction k); +#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL) + +LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, + const char *chunkname, + const char *mode); + +LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); + + +/* +** coroutine functions +*/ +LUA_API int (lua_yieldk) (lua_State *L, int nresults, int ctx, + lua_CFunction k); +#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) +LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg); +LUA_API int (lua_status) (lua_State *L); + +/* +** garbage-collection function and options +*/ + +#define LUA_GCSTOP 0 +#define LUA_GCRESTART 1 +#define LUA_GCCOLLECT 2 +#define LUA_GCCOUNT 3 +#define LUA_GCCOUNTB 4 +#define LUA_GCSTEP 5 +#define LUA_GCSETPAUSE 6 +#define LUA_GCSETSTEPMUL 7 +#define LUA_GCSETMAJORINC 8 +#define LUA_GCISRUNNING 9 +#define LUA_GCGEN 10 +#define LUA_GCINC 11 + +LUA_API int (lua_gc) (lua_State *L, int what, int data); + + +/* +** miscellaneous functions +*/ + +LUA_API int (lua_error) (lua_State *L); + +LUA_API int (lua_next) (lua_State *L, int idx); + +LUA_API void (lua_concat) (lua_State *L, int n); +LUA_API void (lua_len) (lua_State *L, int idx); + +LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); +LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); + + + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + +#define lua_tonumber(L,i) lua_tonumberx(L,i,NULL) +#define lua_tointeger(L,i) lua_tointegerx(L,i,NULL) +#define lua_tounsigned(L,i) lua_tounsignedx(L,i,NULL) + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#define lua_newtable(L) lua_createtable(L, 0, 0) + +#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) + +#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) + +#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) +#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) +#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) +#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) +#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) +#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) +#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) +#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) + +#define lua_pushliteral(L, s) \ + lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) + +#define lua_pushglobaltable(L) \ + lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS) + +#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) + + + +/* +** {====================================================================== +** Debug API +** ======================================================================= +*/ + + +/* +** Event codes +*/ +#define LUA_HOOKCALL 0 +#define LUA_HOOKRET 1 +#define LUA_HOOKLINE 2 +#define LUA_HOOKCOUNT 3 +#define LUA_HOOKTAILCALL 4 + + +/* +** Event masks +*/ +#define LUA_MASKCALL (1 << LUA_HOOKCALL) +#define LUA_MASKRET (1 << LUA_HOOKRET) +#define LUA_MASKLINE (1 << LUA_HOOKLINE) +#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) + +typedef struct lua_Debug lua_Debug; /* activation record */ + + +/* Functions to be called by the debugger in specific events */ +typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); + + +LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar); +LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar); +LUA_API const char *(lua_getlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_setlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_getupvalue) (lua_State *L, int funcindex, int n); +LUA_API const char *(lua_setupvalue) (lua_State *L, int funcindex, int n); + +LUA_API void *(lua_upvalueid) (lua_State *L, int fidx, int n); +LUA_API void (lua_upvaluejoin) (lua_State *L, int fidx1, int n1, + int fidx2, int n2); + +LUA_API int (lua_sethook) (lua_State *L, lua_Hook func, int mask, int count); +LUA_API lua_Hook (lua_gethook) (lua_State *L); +LUA_API int (lua_gethookmask) (lua_State *L); +LUA_API int (lua_gethookcount) (lua_State *L); + + +struct lua_Debug { + int event; + const char *name; /* (n) */ + const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ + const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ + const char *source; /* (S) */ + int currentline; /* (l) */ + int linedefined; /* (S) */ + int lastlinedefined; /* (S) */ + unsigned char nups; /* (u) number of upvalues */ + unsigned char nparams;/* (u) number of parameters */ + char isvararg; /* (u) */ + char istailcall; /* (t) */ + char short_src[LUA_IDSIZE]; /* (S) */ + /* private part */ + struct CallInfo *i_ci; /* active function */ +}; + +/* }====================================================================== */ + + +/****************************************************************************** +* Copyright (C) 1994-2015 Lua.org, PUC-Rio. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +******************************************************************************/ + + +#endif diff --git a/vendor/lua/5.2/include/lua.hpp b/vendor/lua/5.2/include/lua.hpp new file mode 100644 index 000000000..ec417f594 --- /dev/null +++ b/vendor/lua/5.2/include/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" +} diff --git a/vendor/lua/5.2/include/luaconf.h b/vendor/lua/5.2/include/luaconf.h new file mode 100644 index 000000000..03db8542d --- /dev/null +++ b/vendor/lua/5.2/include/luaconf.h @@ -0,0 +1,553 @@ +/* +** $Id: luaconf.h,v 1.176.1.2 2013/11/21 17:26:16 roberto Exp $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef lconfig_h +#define lconfig_h + +#include +#include + + +/* +** ================================================================== +** Search for "@@" to find all configurable definitions. +** =================================================================== +*/ + + +/* +@@ LUA_ANSI controls the use of non-ansi features. +** CHANGE it (define it) if you want Lua to avoid the use of any +** non-ansi feature or library. +*/ +#if !defined(LUA_ANSI) && defined(__STRICT_ANSI__) +#define LUA_ANSI +#endif + + +#if !defined(LUA_ANSI) && defined(_WIN32) && !defined(_WIN32_WCE) +#define LUA_WIN /* enable goodies for regular Windows platforms */ +#endif + +#if defined(LUA_WIN) +#define LUA_DL_DLL +#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ +#endif + + + +#if defined(LUA_USE_LINUX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +#define LUA_USE_READLINE /* needs some extra libraries */ +#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */ +#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ +#define LUA_USE_LONGLONG /* assume support for long long */ +#endif + +#if defined(LUA_USE_MACOSX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* does not need -ldl */ +#define LUA_USE_READLINE /* needs an extra library: -lreadline */ +#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */ +#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */ +#define LUA_USE_LONGLONG /* assume support for long long */ +#endif + + + +/* +@@ LUA_USE_POSIX includes all functionality listed as X/Open System +@* Interfaces Extension (XSI). +** CHANGE it (define it) if your system is XSI compatible. +*/ +#if defined(LUA_USE_POSIX) +#define LUA_USE_MKSTEMP +#define LUA_USE_ISATTY +#define LUA_USE_POPEN +#define LUA_USE_ULONGJMP +#define LUA_USE_GMTIME_R +#endif + + + +/* +@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for +@* Lua libraries. +@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for +@* C libraries. +** CHANGE them if your machine has a non-conventional directory +** hierarchy or if you want to install your libraries in +** non-conventional directories. +*/ +#if defined(_WIN32) /* { */ +/* +** In Windows, any exclamation mark ('!') in the path is replaced by the +** path of the directory of the executable file of the current process. +*/ +#define LUA_LDIR "!\\lua\\" +#define LUA_CDIR "!\\" +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" ".\\?.lua" +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll;" ".\\?.dll;" \ + LUA_CDIR"?52.dll;" ".\\?52.dll" + +#else /* }{ */ + +#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/" +#define LUA_ROOT "/usr/local/" +#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR +#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" "./?.lua" +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so;" \ + LUA_CDIR"lib?52.so;" "./lib?52.so" +#endif /* } */ + + +/* +@@ LUA_DIRSEP is the directory separator (for submodules). +** CHANGE it if your machine does not use "/" as the directory separator +** and is not Windows. (On Windows Lua automatically uses "\".) +*/ +#if defined(_WIN32) +#define LUA_DIRSEP "\\" +#else +#define LUA_DIRSEP "/" +#endif + + +/* +@@ LUA_ENV is the name of the variable that holds the current +@@ environment, used to access global names. +** CHANGE it if you do not like this name. +*/ +#define LUA_ENV "_ENV" + + +/* +@@ LUA_API is a mark for all core API functions. +@@ LUALIB_API is a mark for all auxiliary library functions. +@@ LUAMOD_API is a mark for all standard library opening functions. +** CHANGE them if you need to define those functions in some special way. +** For instance, if you want to create one Windows DLL with the core and +** the libraries, you may want to use the following definition (define +** LUA_BUILD_AS_DLL to get it). +*/ +#if defined(LUA_BUILD_AS_DLL) /* { */ + +#if defined(LUA_CORE) || defined(LUA_LIB) /* { */ +#define LUA_API __declspec(dllexport) +#else /* }{ */ +#define LUA_API __declspec(dllimport) +#endif /* } */ + +#else /* }{ */ + +#define LUA_API extern + +#endif /* } */ + + +/* more often than not the libs go together with the core */ +#define LUALIB_API LUA_API +#define LUAMOD_API LUALIB_API + + +/* +@@ LUAI_FUNC is a mark for all extern functions that are not to be +@* exported to outside modules. +@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables +@* that are not to be exported to outside modules (LUAI_DDEF for +@* definitions and LUAI_DDEC for declarations). +** CHANGE them if you need to mark them in some special way. Elf/gcc +** (versions 3.2 and later) mark them as "hidden" to optimize access +** when Lua is compiled as a shared library. Not all elf targets support +** this attribute. Unfortunately, gcc does not offer a way to check +** whether the target offers that support, and those without support +** give a warning about it. To avoid these warnings, change to the +** default definition. +*/ +#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ + defined(__ELF__) /* { */ +#define LUAI_FUNC __attribute__((visibility("hidden"))) extern +#define LUAI_DDEC LUAI_FUNC +#define LUAI_DDEF /* empty */ + +#else /* }{ */ +#define LUAI_FUNC extern +#define LUAI_DDEC extern +#define LUAI_DDEF /* empty */ +#endif /* } */ + + + +/* +@@ LUA_QL describes how error messages quote program elements. +** CHANGE it if you want a different appearance. +*/ +#define LUA_QL(x) "'" x "'" +#define LUA_QS LUA_QL("%s") + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@* of a function in debug information. +** CHANGE it if you want a different size. +*/ +#define LUA_IDSIZE 60 + + +/* +@@ luai_writestring/luai_writeline define how 'print' prints its results. +** They are only used in libraries and the stand-alone program. (The #if +** avoids including 'stdio.h' everywhere.) +*/ +#if defined(LUA_LIB) || defined(lua_c) +#include +#define luai_writestring(s,l) fwrite((s), sizeof(char), (l), stdout) +#define luai_writeline() (luai_writestring("\n", 1), fflush(stdout)) +#endif + +/* +@@ luai_writestringerror defines how to print error messages. +** (A format string with one argument is enough for Lua...) +*/ +#define luai_writestringerror(s,p) \ + (fprintf(stderr, (s), (p)), fflush(stderr)) + + +/* +@@ LUAI_MAXSHORTLEN is the maximum length for short strings, that is, +** strings that are internalized. (Cannot be smaller than reserved words +** or tags for metamethods, as these strings must be internalized; +** #("function") = 8, #("__newindex") = 10.) +*/ +#define LUAI_MAXSHORTLEN 40 + + + +/* +** {================================================================== +** Compatibility with previous versions +** =================================================================== +*/ + +/* +@@ LUA_COMPAT_ALL controls all compatibility options. +** You can define it to get all options, or change specific options +** to fit your specific needs. +*/ +#if defined(LUA_COMPAT_ALL) /* { */ + +/* +@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'. +** You can replace it with 'table.unpack'. +*/ +#define LUA_COMPAT_UNPACK + +/* +@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'. +** You can replace it with 'package.searchers'. +*/ +#define LUA_COMPAT_LOADERS + +/* +@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall. +** You can call your C function directly (with light C functions). +*/ +#define lua_cpcall(L,f,u) \ + (lua_pushcfunction(L, (f)), \ + lua_pushlightuserdata(L,(u)), \ + lua_pcall(L,1,0,0)) + + +/* +@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library. +** You can rewrite 'log10(x)' as 'log(x, 10)'. +*/ +#define LUA_COMPAT_LOG10 + +/* +@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base +** library. You can rewrite 'loadstring(s)' as 'load(s)'. +*/ +#define LUA_COMPAT_LOADSTRING + +/* +@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library. +*/ +#define LUA_COMPAT_MAXN + +/* +@@ The following macros supply trivial compatibility for some +** changes in the API. The macros themselves document how to +** change your code to avoid using them. +*/ +#define lua_strlen(L,i) lua_rawlen(L, (i)) + +#define lua_objlen(L,i) lua_rawlen(L, (i)) + +#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) +#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) + +/* +@@ LUA_COMPAT_MODULE controls compatibility with previous +** module functions 'module' (Lua) and 'luaL_register' (C). +*/ +#define LUA_COMPAT_MODULE + +#endif /* } */ + +/* }================================================================== */ + + + +/* +@@ LUAI_BITSINT defines the number of bits in an int. +** CHANGE here if Lua cannot automatically detect the number of bits of +** your machine. Probably you do not need to change this. +*/ +/* avoid overflows in comparison */ +#if INT_MAX-20 < 32760 /* { */ +#define LUAI_BITSINT 16 +#elif INT_MAX > 2147483640L /* }{ */ +/* int has at least 32 bits */ +#define LUAI_BITSINT 32 +#else /* }{ */ +#error "you must define LUA_BITSINT with number of bits in an integer" +#endif /* } */ + + +/* +@@ LUA_INT32 is a signed integer with exactly 32 bits. +@@ LUAI_UMEM is an unsigned integer big enough to count the total +@* memory used by Lua. +@@ LUAI_MEM is a signed integer big enough to count the total memory +@* used by Lua. +** CHANGE here if for some weird reason the default definitions are not +** good enough for your machine. Probably you do not need to change +** this. +*/ +#if LUAI_BITSINT >= 32 /* { */ +#define LUA_INT32 int +#define LUAI_UMEM size_t +#define LUAI_MEM ptrdiff_t +#else /* }{ */ +/* 16-bit ints */ +#define LUA_INT32 long +#define LUAI_UMEM unsigned long +#define LUAI_MEM long +#endif /* } */ + + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +*/ +#if LUAI_BITSINT >= 32 +#define LUAI_MAXSTACK 1000000 +#else +#define LUAI_MAXSTACK 15000 +#endif + +/* reserve some space for error handling */ +#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000) + + + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +** CHANGE it if it uses too much C-stack space. +*/ +#define LUAL_BUFFERSIZE BUFSIZ + + + + +/* +** {================================================================== +@@ LUA_NUMBER is the type of numbers in Lua. +** CHANGE the following definitions only if you want to build Lua +** with a number type different from double. You may also need to +** change lua_number2int & lua_number2integer. +** =================================================================== +*/ + +#define LUA_NUMBER_DOUBLE +#define LUA_NUMBER double + +/* +@@ LUAI_UACNUMBER is the result of an 'usual argument conversion' +@* over a number. +*/ +#define LUAI_UACNUMBER double + + +/* +@@ LUA_NUMBER_SCAN is the format for reading numbers. +@@ LUA_NUMBER_FMT is the format for writing numbers. +@@ lua_number2str converts a number to a string. +@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion. +*/ +#define LUA_NUMBER_SCAN "%lf" +#define LUA_NUMBER_FMT "%.14g" +#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) +#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ + + +/* +@@ l_mathop allows the addition of an 'l' or 'f' to all math operations +*/ +#define l_mathop(x) (x) + + +/* +@@ lua_str2number converts a decimal numeric string to a number. +@@ lua_strx2number converts an hexadecimal numeric string to a number. +** In C99, 'strtod' does both conversions. C89, however, has no function +** to convert floating hexadecimal strings to numbers. For these +** systems, you can leave 'lua_strx2number' undefined and Lua will +** provide its own implementation. +*/ +#define lua_str2number(s,p) strtod((s), (p)) + +#if defined(LUA_USE_STRTODHEX) +#define lua_strx2number(s,p) strtod((s), (p)) +#endif + + +/* +@@ The luai_num* macros define the primitive operations over numbers. +*/ + +/* the following operations need the math library */ +#if defined(lobject_c) || defined(lvm_c) +#include +#define luai_nummod(L,a,b) ((a) - l_mathop(floor)((a)/(b))*(b)) +#define luai_numpow(L,a,b) (l_mathop(pow)(a,b)) +#endif + +/* these are quite standard operations */ +#if defined(LUA_CORE) +#define luai_numadd(L,a,b) ((a)+(b)) +#define luai_numsub(L,a,b) ((a)-(b)) +#define luai_nummul(L,a,b) ((a)*(b)) +#define luai_numdiv(L,a,b) ((a)/(b)) +#define luai_numunm(L,a) (-(a)) +#define luai_numeq(a,b) ((a)==(b)) +#define luai_numlt(L,a,b) ((a)<(b)) +#define luai_numle(L,a,b) ((a)<=(b)) +#define luai_numisnan(L,a) (!luai_numeq((a), (a))) +#endif + + + +/* +@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger. +** CHANGE that if ptrdiff_t is not adequate on your machine. (On most +** machines, ptrdiff_t gives a good choice between int or long.) +*/ +#define LUA_INTEGER ptrdiff_t + +/* +@@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned. +** It must have at least 32 bits. +*/ +#define LUA_UNSIGNED unsigned LUA_INT32 + + + +/* +** Some tricks with doubles +*/ + +#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) /* { */ +/* +** The next definitions activate some tricks to speed up the +** conversion from doubles to integer types, mainly to LUA_UNSIGNED. +** +@@ LUA_MSASMTRICK uses Microsoft assembler to avoid clashes with a +** DirectX idiosyncrasy. +** +@@ LUA_IEEE754TRICK uses a trick that should work on any machine +** using IEEE754 with a 32-bit integer type. +** +@@ LUA_IEEELL extends the trick to LUA_INTEGER; should only be +** defined when LUA_INTEGER is a 32-bit integer. +** +@@ LUA_IEEEENDIAN is the endianness of doubles in your machine +** (0 for little endian, 1 for big endian); if not defined, Lua will +** check it dynamically for LUA_IEEE754TRICK (but not for LUA_NANTRICK). +** +@@ LUA_NANTRICK controls the use of a trick to pack all types into +** a single double value, using NaN values to represent non-number +** values. The trick only works on 32-bit machines (ints and pointers +** are 32-bit values) with numbers represented as IEEE 754-2008 doubles +** with conventional endianess (12345678 or 87654321), in CPUs that do +** not produce signaling NaN values (all NaNs are quiet). +*/ + +/* Microsoft compiler on a Pentium (32 bit) ? */ +#if defined(LUA_WIN) && defined(_MSC_VER) && defined(_M_IX86) /* { */ + +#define LUA_MSASMTRICK +#define LUA_IEEEENDIAN 0 +#define LUA_NANTRICK + + +/* pentium 32 bits? */ +#elif defined(__i386__) || defined(__i386) || defined(__X86__) /* }{ */ + +#define LUA_IEEE754TRICK +#define LUA_IEEELL +#define LUA_IEEEENDIAN 0 +#define LUA_NANTRICK + +/* pentium 64 bits? */ +#elif defined(__x86_64) /* }{ */ + +#define LUA_IEEE754TRICK +#define LUA_IEEEENDIAN 0 + +#elif defined(__POWERPC__) || defined(__ppc__) /* }{ */ + +#define LUA_IEEE754TRICK +#define LUA_IEEEENDIAN 1 + +#else /* }{ */ + +/* assume IEEE754 and a 32-bit integer type */ +#define LUA_IEEE754TRICK + +#endif /* } */ + +#endif /* } */ + +/* }================================================================== */ + + + + +/* =================================================================== */ + +/* +** Local configuration. You can use this space to add your redefinitions +** without modifying the main part of the file. +*/ + + + +#endif + diff --git a/vendor/lua/5.2/include/lualib.h b/vendor/lua/5.2/include/lualib.h new file mode 100644 index 000000000..da82005c9 --- /dev/null +++ b/vendor/lua/5.2/include/lualib.h @@ -0,0 +1,55 @@ +/* +** $Id: lualib.h,v 1.43.1.1 2013/04/12 18:48:47 roberto Exp $ +** Lua standard libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lualib_h +#define lualib_h + +#include "lua.h" + + + +LUAMOD_API int (luaopen_base) (lua_State *L); + +#define LUA_COLIBNAME "coroutine" +LUAMOD_API int (luaopen_coroutine) (lua_State *L); + +#define LUA_TABLIBNAME "table" +LUAMOD_API int (luaopen_table) (lua_State *L); + +#define LUA_IOLIBNAME "io" +LUAMOD_API int (luaopen_io) (lua_State *L); + +#define LUA_OSLIBNAME "os" +LUAMOD_API int (luaopen_os) (lua_State *L); + +#define LUA_STRLIBNAME "string" +LUAMOD_API int (luaopen_string) (lua_State *L); + +#define LUA_BITLIBNAME "bit32" +LUAMOD_API int (luaopen_bit32) (lua_State *L); + +#define LUA_MATHLIBNAME "math" +LUAMOD_API int (luaopen_math) (lua_State *L); + +#define LUA_DBLIBNAME "debug" +LUAMOD_API int (luaopen_debug) (lua_State *L); + +#define LUA_LOADLIBNAME "package" +LUAMOD_API int (luaopen_package) (lua_State *L); + + +/* open all previous libraries */ +LUALIB_API void (luaL_openlibs) (lua_State *L); + + + +#if !defined(lua_assert) +#define lua_assert(x) ((void)0) +#endif + + +#endif diff --git a/vendor/lua/5.2/linux/liblua52.a b/vendor/lua/5.2/linux/liblua52.a new file mode 100644 index 0000000000000000000000000000000000000000..828b775c8511e9ac3584408901a4a029d68e81f6 GIT binary patch literal 396236 zcmeFa3w%}8nK!(10S*^)j*602s;3$>DAEK`iBLUElQ>a@NyOl#+LI?lXw#v*MkO}J~-2~@39ZH?4wV!TAO7_a&M&sxtqXJwI0 zZ{K|1dt1Nc?7jZ$Ssgn**Rwx6ucE24=GqCL3l4Yrv#-p{&o3yrDnA&^6G8fK zFnDGD)pKNw)e|f$?IO#XyygG?|D|=Xe!gY>|NZ}O=Udia^8e~_%lb3_(7)H`KV_x= zIsgBBp_Q)x|MYGvo&Jw~<4RAyx^-Dze1 zL${Ur>({L@&eSH0zSd(B-+uZCl)z+_N zPaMfrRX7zg#fpuw+u{{(q$5%7*og6-}H_gXATP<22OPJF&H~CgqLSH`lJM zk5wuEnudnDScR+zr=d9hYh`}L zeX5+~<;;nQ%0(ypsK+7L_H&h#d>94G;YiN#h)ldw*yyUN|U0dS}D-EGqc_0vL z>l)T@os)P}tf`Y#4NrA#tWK62)dj!ExV){^?xjFgqLQ50u=wlY9R^TVQsM&<)DkCw zOePM`u*Bh43F0=HIPR0uJUlUk3{MQ%uXLnbR94j0$?nsbx~*&ACa#LFXP(G>yjdi> zR`#n{Q&WR%`TE!jl-G)wDHDaHKKd@zE-vY z`)-8*3eL4vv3im6!g8>wt5_2glDM$EvBIgWA<+;Gxv)HyM-FouYGP7q7^tglW=^+q z=_yuKEIhxEl3G~aBJgK(Rt3dUQ_-|GwxOblDPo%%XHiptyW~eeMg8p~_~W8c7nTzRDm+Dg zqe|UrXd>1!q&Ze6+7ETxP+RRZNsT9c)fIKBYK3ZziS|KNHpQxIxkhU1ledix&B=S* z)YaB=yP&+P;>&Sg)6gL5kXqBcUtiHYEUdC2F58}nQ^NttK?7u(%0Mhr9)uuE4HQsP zF64N9v#7I@@}@W{nFYI~yrHQIRi5&bj@P_GEo*)$TS*{N4&~CYk&=m&LsNivV^f0@ zt8`=~0gQ?6kj!(Wd@Ukq-sT#N52+z8Qm*PEQjVIW4lB8%wo@K;N8%Reap-o^UZU0z zQxV`+W%1by6pSK|@nztl5c){#A(X zE$>#A*VfmHp1ZQ#X;>GlpM{Q3+*X!1-(K%jY)Z<^O3Gtuq(eB#YGa%uD^3B=M5I-y4x;57)x01o#|Vkin5zba zD5Z=6qB&kC+608imhOiT44aBYsg4Z9fx<{iP*lztOn-7n;Bd9rU@t~_nLDA>w3&1i zrFVw;1qDD}kT8Q(3yT=KS47Ze?<$A9x{&D-L%I4$`t=EZl%@lXYvR?_sy9W;E2^r7 zWeon5WFZ3P=6X%0{KHrzRa3N_*ef-g@};OTA(5Gj*C%gjqDyTkCMr=V)ru-&!;2^h z=($37qSi}J$59y=F9?#XS#Tjs`T|Rq2HGwzmlIJjQHiffc9tl_^|p9zGFxk#<3dMA zNsAkBCeF~3OP9w9_Z1y7$StPRt&!4c726hT?$Ww zU?pyo`4hfWJqRy))VhkbLNzASO+~G2XljTr@x)J!*{N80bu{0J0=vozjgB7UmQ5?~JqIDRq5Ua1$!3ECbiEALeC_{{i)8h>vp=<0HOQLic|U?&b{qiATasQapY zT9B;D)AJ|tWmi5W^O<-(7cvn*z2w>Mhpv+|DeA2a+S9x3uE9*Z;ON$y?aNlo*&CYg zxANaW19yFpnb<$3VE>l$++N#Tg?n~%!cPec*;2b+3I6Md+&g@Kz{F9?2*d`SEXLDm^{_m{Re4m9Ve zdU20Mr+3-jynNfe#*60r+y&tH8Zz14^t)0N+zo`iGLrh6k=>Bxp0vG<0pe;W-VF5q z3^}zE>jKI2s6U}_bvc8AggR3193=0)X1gzv;Grs4<@it_>I;2$A^x!XmgPqT5w-PY;1q1tL)q_ zd!+Z$u=IL=aZ2>({KwjkI};Kgq&a8&m}uRA$%=VA^P~Q_qTU#D6Xx< z%l0K+@+aQUbmo)NVvz@vbL_S^oR#*GB4R`R=PGJX+bhI;X;Zef1$s+%57}vZXMq`_ zV4C1y3RQ+0ScbOh#Ar6c41xH)BKVO$dG8NWN1gB|J{aT7PJA%VxghaDrZWLu9^H=m zwU~W`L@$Jw@`1llkb}uThx_V5pM76y{ObJ<@wSoK{fYO_bprXFiTA7Hm`|l6dN$^R zo)}Q6w1T8uX6I&?6hM;FD2!j%1r}Il3Mm(_f0g1HvZ7y zL+wVRwLUgurZPN#2!}jcprH8_)TXH?ndCG+XgBwi z;L!gfkH@TgX~MyBG{tr&=h&F$$#KQ@aA$i2vG%2jf}7^wQ%3Wq?8M_C|DNOS4e%5S ztt>{&WPX$U+fF$}sYLu{0)IMlAyyFAw?%oA{Qr3Vp{G!Wo8_cewV#N;?e!kib!(@M znI%THXpW89PEJ`AcPpK1{L>>jtNqiXIgS45_vEyI(m(zFoDOk)AZM4jK9sXtTp!Nq z6xT;{x^Yc)&a+4wj5=*^%^4sf%!DC`FCK~HWC!5Kb!r~r$U@L=kL2XhU9Rj++Ya_1 zNGK;c9}F*TJ6`I(yUcxtO5$(bNimakF-F7^vMBDN?rQY^J26>)Myy$;|Ehf%Ml%91 zy1s2=vTdim-+x9*-VhM=(lBdGr&W}gI3A9=V?Dh&e*BFaDhEjyqD~tESXR z4sO0Byo&oJCbDiG#Q9t!EIFUW1ikH)|C{?=>KLRuS?ERkqAVOgJr$z$2N^yGF>MML zB}bRB3-%H#OnJmqNGs3i<2ywzb^owWB;;)h$r|_81u)P@Wq)ojLS_mBG6b^->I8B` zO^wgoA(o-j(2O!U1I5xuOmy92JbJev!xpt#@0SOls)?F}?|&7%>)! znCmbFCw)UR5@JddoIf#Z?emf9F)EZ)W5^|EPqvT9->Yv?{+dBDN6f-S8rpn$!GJq| zP|nv+*RRj?J}9Ek;d!7o(H506Y__d3L95mlN@f|xMbSrTUR+L$+!!(H-Oj-Z;McfnAo+u+E0Yk2Pm}G=TOgR!rI@$hj>f`M^8skcY?!b11*V_Fc zBpDNb=W|j<(vQsdQBK72K=wARd}18V1$q2fe&@|Jo?>7P^#5Gb_q|h)o(#YyMW=HS z^F@*Y<}KEZ5DIG47NkY0Z1}h(!ysy-%I9CzpN99M_60rEDP(hC_8(03t5nBB&E_5u z^?CIhdVj)R%m88sQ?WJu`Jd#U`qvw;6Q@5-1^lI19yXt({G2YIy)n)Qc6?+%x7(NX zuyigPz@ph(Hi$KIsh62^I5YvRwIpzA{$R+NY(WZ*oZ;HYDq zo`GTM|H?=oxB>23~Yx256H3N{=L!svelCPuhLX?>sgCLZ6dmBk?ib{5*H8f6x3<+K|J3 z0k&13rr&#ZiI|Mgw$ST7J7Z%2JG9QY>crNF<;=~0OcYhrO5)=oX9C)hHVZ`k6hihP z@dahRW^^=~#BvzxxsqVi4b6e_3c7ZlSj)-U-NSOA`a?eUwy=GR^yjppK|d7Zhw~Zt zDeR0vvfW8Jz5k;Z^>|s~9BduuM6hS;E3JGNSr<9aXhxP14{KA(_npZ1%`^qOY$3Lh zmtve~ztTc8l)9a0UyN7T$MiP3 z2C;=A$^(XrFtwdigpB6dmo1q?JF2<<^DSA zz9hC9-V!Bk>vRvqA!|kGiK_>~Et_*Dq&c5*pQ9d%)>)O4M}-fe@V0E%qU_-_w^A%z zP!$l}<&ez@=!vL|Qz2}m{{)>(2=EU@$M`4Pl}YyhJ@gIcn~6<>#m-pKB{6=6Ao$0M zuqdRh$Pi}ghxPdzJ!8<e&ixY)s+wA)TQI@H7c zBL9>qb$+MnCnzC$o3<$==P#m+OxpkJ>W;&OD`@SGHkRS}r<6KCNE$-+$azMRfB*M+ zUX6W&49xnvdMEUMUGIN|fsDfJX+v0C_H7g!L!w`_+_^m6-}+UW31Cvvbz(xxohz_( z`PW_8Wq_*7Xhy~Gbct&-zq94eWn(Y{@5|Hnm%Ie6dE9T%Z{L&@e=qT_!0ESd2oD9g z9{hU>SMdJYN*68Et-Lv~L=E{+3xZ)sa)jGm?uuv2KI7!gDqnn}@YA zw@ZWQ`Y2xhaglL3na3{kQ7p7O#ik`Kw1sFWwyFHd`OnK#KFrr?#Mm#n$Z~X$PMs*S zD|WiE;fkD#Jrpi4`AI9fc|zav;D+>63C*Q@{_$kXizN(APfL(}Od+x0N$v@7{qsT< z%@VL_qz0kY`{mzZ{@aM23e|_rQFJ!^Qi7C=&u0H&l0L@G30^qSC#X{ZB%?dE$;gYIoU zF{3(%hC-n|P>oJbwip1%Q`=HDIz*MDT(Z(h5;;i8pZm++`%Z{0u*6H(CEg$FdzQ8KuO7ez zEec5#N+|3;RpcHDCtgqMJs&AYpnOOyb9)2u6}1;ZRIEjnFE6U>EKPJ~F7PIIE^wFr zK1esBoMSPM$c$es=7^9wIccN)YHV7Qilu3{w!TsuUud$aIbwo0oK|R0%esylnUn2u5cH?U})5bXfpsc%xTzfG@|CbWz86oBa8Fo-v2lDQY$e}+kFS*B zI==rpT^A%Ww`W|R72KJge$#|3U-86cS)@dQ_`e7L;qh$}X%;Gd#lQ&A7(7Rif6x+jmZ1%!pO0*Ul= zn=(#eQ4Wiy!WO8o8V>t3g_Tge8%233UMq)PL17CL8QarKvVyl{`6z4`hl#w3^eRL= zs)I*43`d)UBdnXTvo!2w#zfk{sm%u&yPW7ES-~1`B|JboF>r!5k`2@XwPCaRAeIJ0A9^BJBSAP-<}@H%1&gUfVWM^$_5b5@`XV=1Hn6)c93Wn zB*tvdydf)ZXGVK^dNnwfO#C8#7w~ToB#$!vGNKoC1Ge=O1kY0NB$^(kS)$W4OB%`} z(PUzdM6Qy4m``4MND`Gyl;vld=|lq;#Q!|T?k7OVvn>A>z5GnGf@n~mt3}vC{1#1= zztLoS?qpikxvAcFF_uU1;Rt(}F={VzM1PdA76Q<%NQz=2m0J9kOkBe4IAFvjewmpR z$+E=zLAVl@&6tuI!e%h0>VWh^h_PX9kiJl~K@j1qIb8Hp)kf*ItXniZ@n~h5t8uUD zKUkd=h#=2FKo4;EBgyauSp#Y5KM;ukn~ndYOtY70=4SrZ_g-1O=PCGOHrFo zmA+I+9d2bgE%5-6OJb4fCtSTYX}aaiKC_-m6i-Ar@0q`?>?`(zDrGN1eVyG(;4y~E1<1z8kP z-fSMsQe)L(=%Vy=>P^MqlZ&YHnC1}i5p`TBbz9zM2wbrcPfC;8qlRfWFl{28v_yE~ zO8nY9_K}=*Fdg*^awOXiFm@*aBArr7XJJ+lJ)CuDWa9GVz0Ku(f#aQ>hIq@eLNwx{ z2wy^yq#i{%Eoxx6ee|E?j6X-%JV+&)czE4_f!Ng*;DAn684!@V;Fi(seD8P;QEuOdmbkxs| zGTjA4CuC2`F6H%Q4kJ2pgbgw_Ng#5rGf89&Z-5Xccwju)DzyydWd?_@;PCC~+}^qA zXb?oeSeA#drA+rXCS54KG1*9k6PK$vR1Z5iP9euhq+=k1d@M%!a)CX_;X(&4NQ~V+ zX3@^fb_jRg-RbF-qROPwnb~~%dc3}B&BR-)@=6B^#a&aZu41M`@9EDJ@9ocA)7)&$ zY-%76k>}6MhnI*XmJF+GcIH?!aRPHaoi&?TkE1*@ORisbxqLZWMv2wneSbRq`Tvd! zf(?lgchw}*5Z|p;lOFa{o9ga7crtZ>?~l%xH+fv2S@2RiEDl1Jh~i?#dAKAg?Q`kHwDrSbC-m-00W|GHD@n|z6uoVphAJx_l`82xl|{u>n`hXnbmE+O2QWumab zh4h;mZ>j#Mjm-L^F@Ta#^HAIhmlu>*MK67+_zJ%X0TiG5lkVmOrSCEw#Jwtxx>jnK zPFfk%eW`mDPa!lW6K2+5O;A#Fv;0V3D*wvgjGK|_ud_^29A({1^+&o`m0RhkGl7|H zOfl#1``%w7kLJw$kCb;J@0=+km7O84eq3mtW2R5V8!7$3JQ?p1qhp%sORCdgHokRF8#<^L9FGEcZIgBnj_$T_^ zjD3%Yr+@nBs0(w~m54qu_~A@UHnjJGg8h4Hr--^I9? z`vUubakbuB!1QBKB;p@p(Ty@5V7!BIweF%l2vIJ^uVDIVj1Mrb@_7a0L2i0AT+L%V z#JJMSrNBq3&o40jYNl8Dsb#!{@yj_s8%E(ndmAGE2A{7HJ;&8A|DEZ(4f;Kd4=}!& zBOM?CVz z#yc5T^)?RumfB^2an&wUfR9vfIZR*13kRiVt{8=$_K1Z1Gd+zH68Sh}cgz?#o z_b~ny#v`NfUo;B-1?JO86E?V7d9iL){25o{!kvugu>$U3dUq85_cDDa(_g~$v?nIy zmhlARKV-ax2fDi%e{>Z7hepAF#e4!RAX}Kv??$12i|IR<{_9NtA>(=6K@TxL33_~_ zcBFBO%4N}Orf_1v1lN4VTNtM`GdbFWBl=y8i#-zH#f%4epcZ=|z;6IPQo5^{KExC7 zeZ(9tHVS>iD0nOLu|6f^D?LMJiAGBIUZ&4udU%EVF5@A_#hwa6{&5sOKOO}?JPLk% z6#OONRG;0fFvfF!`bVLEpXqy;Ug@`VjJqS1cM@>oAEX63+`aN*O&Nv$BBt+Tda=KQ zIG2q=e>KzhFg-V?Rm8Y@sKx5lTEe*4i~?V!H!4Tre;d=UW&vEm`EOyolkvY{{Hu!o zGZH9d{J$~2oAE~&|7YN5VqMU~{%w4fhlwk#TC(Cb3rEJAtZH!t+e#TuA!8T9@JBp0 zv$naZVrHI2CcR*6gilV-ydwX~tF4*Q!aVw!ML$>2@om#YMMQE&h+&r{X@W$Y!8WY? zjA-iRe@5G6rUi)d|IAj|a5E4f<l!pj&xJ8hlusLSY>uY4q$gLlU}`iKM9tY1-;9w}>{}%tgwM3t92uBmTl_$Nxk& z(}tNR5!Ms9g&@8nj3j&%n=OBqZMD;^0tu#nov}6DG|F(JBEu|eia=Ne{P=QN9Rx(ykao)JA$wUOJ^wyfD;TK^1CTH?r zuHm0UxZ=M{!}B%#poY)V@Th<|8MXF zk@(Nm@Skh=JPnWX`kv@%Z&dL)kJsOXQ+p}=44$YFuJbux!)=YeUc+_zJ2iZPM*ls= zsU1lsRk}}V^g5pkUVoeU`L>2fH9p-MuJie|hA-CWC-FL%_%GG)i#1%&f7dAZG+x&d zpD$>9zNq0k|A#ePrys}bSF^l0+A193w`lxV@p{zE{{{`$^Z&ORzDDEo!YKH3Ue^+T zozD##uJie44X@VtXYx9g_^j3NLJhCg@Kz1i>3^Z&I{&G>-Zl9@Fbe*NhSzE7zN+C< zG`xz}yTo6|pVV-Qs^s|`B7!4&9siDo--a+n|0!NLne>GkPEDlf9Sv{R@HP#1H2koJ zFV*lt4cE)HhLk%T<%hcFedK|=Q^RkEU*+c?M!^qj_#GPk^BR7qhF{C;T1r=^FV^tQ z8hz&|_%j+#dnqcPgBsqV;l;durF3<@@nsFy$H%)hT-S$BYj~^1fBIB-;7tB=G<*lb zRX$63ol5k2yZj9?fg@a(tM3U^;v|xa&zssfuJift+W0kFqyKjezf!|j@pwUcJEY;i z)AY8khhv(aT&B_Q90kwR^r22)t?9ilYJ8??^0Pt1S8MhEB@M4UA09ZfJ|!w~3d_*S zspttG$2bqmf)C+kjB_<4aX;f+tR#Lm zTE=S(d>!L;2HwDUqk%Uw?ilz+#y1)Gos4fb@U4uu71-(}zj8GpdQdl-Mvz~5#3Ap;NaII-KnXE6S-fp21b zuYo_x_@f4XALE?{{xIVQ4g4tQ^QeJ8zqqIalRxH0W3J zxMH@KNC>oMd3RF=;JW1{nIH9@z{>`%-V+!!aP^+RByC(H*6KZhpnR8&G<(K-op4~u2WpP}s=P*nAtJ!Igk zd3{@D;Oe<~hk>i-;}00PdOp6_z}55dCk$LYAAi@tSF>KC=ceQ+@AR*pkJIx}atc?^ z$MXzaJs+p%pgO&JK3-+u>N)rh1K&MK#(&Vj)pPA94171Qhcj7TR6f=7>udv8&#z|~ z_-=kqt>jnnQO~cd40`oETFI}XSI?s#FzD6u=uQJy&z)Z|aP{0dQ`^s>G}LqF83wMN zBbOO?56?SQKT!Ep&ynvj=sS7+yxYJB7=PNp)$`&(16R*~r)u+XN?SeW4H>w4&Rb{T z>Ur)x2CkmxK4{?Td2Ww^tLM3y+`m;lsOPr12CkmN&NFcJytT~0)$`Uy16R*OTMb-2 z_k6&>)$`3K3|u|O>@{%pyz(OhR}<}kwx332R?jPyep2+N?jx=hiBE={uu36HFIk;it*)N2iO0?x z-z8`$ENNrSPP~=b|DBY7843-v154a@oOxvX;U|=m`&%+|5XL4tY%1Uo|1YUByvz=* zoK9Bzs_eAHhePovMLvbaj0nz8F6jk=q22I;_YFAj9C zBwM*rZ_ONGDPbc_V7%HZY8X}|OWh;3cZ=n3^Djc8b zZ~Gw(^32OB}=2yMqrq1J!Jei z0A{Fy2rOyH)8G*gcVua+?*b4Y9c6}+Y*13(V6P7+)+0y@MgD`b5>im?^S3=lmJWuZ z?nzOjFaq292#~%TsX5)>s+#Vb4}W#Xsl#dU3I09f3ifZ#XqlNNEevZmUdUkfL?Mi= z$Rp|+CNeih?8K4z{RgEj#Syv-*&~62(PW%kZ<&{6ZOZl1-L9_QvC~Mrr2N7H?WZ~u zJ)!YO-E{3tc;dCp{-;y&8Liy^9t>NRWT!pu9_xDlf(7mKTHK@g-P4bLo_gHYbG&ie z_S0S0iL7Zu)ED-LH#{U_z0s~~>RpDF0UksNEn+oBjuod%Ts`4xUkx%y^5T``x+ODG?G0<&q|t;LqiQWl@+ZA1m2l<`&lh%&O0fw; z35`D%-Uf3yX_o5?L+3hYg;{;ak1D;Xt}r@iyYD+IBi>j+y2AFZi+YQ*l?{~A%FeKt zxlPw>lf&&1D~I|JDf>`^ zmM{U8qAysH>zs|o6HVGzPrO7tK}$A=hS?198uIo{X&Ksjq(rnZTEDj+QOHW|Bw@CQ zq*aJFtVckqPPY+)%I$h-O1P^hYy8Rak4Mlup6z=OEL8d17o?F1jg$K>KweWBPK_6p zCAo7;W^6gn_WZV2N@g&&edMK~V!{~zP^Fp9)b<5Kk_U;51kJNATrd!Z1@^H2`hjWJVf=F6>w0zUwpYd2HW)5A7WOYX zHvMGRi7Df|-89iJirT+`&h^_Zhrq=D)jJ?v{XZi466MVr|M>WmDCp0zBW%<^)o-t` z>F54Z*<{Mb_zD{~&;wgS?#cYeQg(CP--gKs(OX@wj7>asNpA!AMcf`TRzdn+TDPE1 zo08{b7;Kl52|ow}!uQc=Bb#_nNhA$MS;xWV;vEIgZke?0llKv}b!=!y;~noDxY72u zqK<|76z!_XgRozf4I8we#~fx|gxVXHGstQr=dJnk4&P_*lT+$=g4vAj!6g=Q=&Vn<5jR1g)t4L zUw`5wD%h5U!4wRlZ2Yp+&CK!dfzeH2s!Euec?+2$>yR)~6Bed;4#5I58&w<0UR6j~ zJ_SqIl6toHJ`ls+oa}F76N8hS@rl7RoZ0A$a=vxFPpFlwZ6|0lB$ddd9bOs+h?XIA zfiv~?8YgI{*q)tjR~GxC?U~!co;3|B5MxQ$g}KvWpJ+e-o)rEE+(Ld5^`LLV6elE$=>+30VP70?$K!v*vyER9WIJ~x2RK3b~vKbq2~y8Oy- zWY9nkSthfCptU@hx}Ui5My?XK3&ym*g6~5NosjY)NAV@xK$AMqy)k+A&YVWNXWI$Y z%E|hPxRt&m8M2X1(*n@nKcSv3tZK`m!JfR3)BML0gXyq+=)b3HAN3_DOjY{+e?mNb zy+e<6pK1@x`wG#SB{NXC`;|wSV(;)4`XU7{`CF?{Vc>}r$f}nl?^_ITRQ<;`fT+J` zW9sYv0X2rIauz{^L{r6Y#^8>$Uz9e!7x{|Z9khH#KnZOUhi;5}iMbQ}t(TyYpob#fy2+7( zH~pus8%`CDIvAB5qbA&nuJz~cH0yN58D3X4Tm{$r?W(UJ&ti)M(rz(@xI zWLcQb8%_{`6+NEYQ%TPB0m|Z$!pY*oa!Fm5rUKL)xzvNPFmZCQFxi~4fhW@l|D59WzBfSS zE^^=Zw{C#H&%zJ)cgUsPPS(L#qz<8RAX3A|j{(w0LXIFsG)F=8S!h8eK6~GRa(7=8 zO)kPx?JY+yp>rTMX#Kv+L;@r6mveMrpEFVFbUD5hPcA49#NSZ!JWu!?pVD`dG!GnBFmK82PS3x8hqqZh(}3wyJ3N>O6cIn+H`&>b}~x((ik7f6Ypm`lOotY z`B7St`w8ep4|y9)EkuvFPYIT|71tw0V$+-~;!)2au?vpcJ#=}{^^2G=YWhX&XF$o2 zeo0(21`D-P_sJsnh`;p}G)Oq{(K-G$dL~pvDmf{rSQ2i%J&bad3hnxqnE!keRq9=V zjRB$S$;LM(^cW$F+yTsFOy*|T-DEwzTPqLhUFd% zHQcDt?!qKW^tYn?H(It#9EYxnaq5sLTiE||NNU)>XKBualJ>gGv4%z0gVHS^1l6*MxxQ+lrKw$^$P=C8b`(xbelrH`*-P?_K~%`ISbrrx z!4~GnP`Ywl$7+gd?nq`1t+~iVrH|^sX$refG<`ntNqYQzl^W(~HrdAg^}ch66k>FZ z_+ZuPt179#p|_l7O*^IH(@TvM{{t+J`}Zk*pwbc3>J6VoGhu`UncF;>)_ea9GsN6< z-^FeJ_EG2Eq&MQ*p$_I_FEb$eJU#%_1%)u**B3=;W&XH*zX=20{a?rUsV1k+1))8t zBiT#*dzL}ANs?&(*oWyxvcvbzMNG*=ta~Q+{s89DlM9Z%xk!oR@kj>E%KK&rFUHR! z8T7QHZz^R(*FT9*vNm8s_^cZLPdCyl^Q}nKRjWUa+6w-V<7>vmcMByN|3_Lc3jX?j zv3&Bt67md9{~$1G=OWjxoZNwr0ot&coYpG&s72m=OyS;9g;G-r%{YPPcu%RAjN$TNJo5La|x;TF;_OooxIPuOxxm)66iUAY=bV*LxPDHbHg zZ6CX6=a{=QZpd2w)%5nv^fzGbOT1=CX{h(s`1Jsh?t>hkwgSiz9nE#gEteO8b@P2G zUGIRsMO+N`CG;G{J3A_PuZxt ziFm*f9oZ8hw@zLJb{}JU9X!O?XP7Pob{S#H z9_$yge3RjA<*40c<|8f*}^_cQ(z!r6{v2zIpnvKaaQ5Q1JRZQbZ zK9Kn@W|i$6)1G;E##hrbCZ#bu(LOtvmfp)&b}zT09!TER`&E?`rs|H3Hd1*Ha$J6` zQPjb6jM1!&TnPWKGxiz*qMx$e+Om|*#iEI11CtE@MaUH4^|*&sLl^->g_8`ZcdMQz z9t#uWZrnbWN_0b385Ju1`y>QJw=$Cmu%&61{j2GBXQY1*MK79|i|`hvdzXmyc7eG` z7(^t4fv~hF>--_6{aceZeT$Gi;@8bIEkvW2F_;eHifqsjFMJd2M@$<(opymvOY*DE z*j>uBiFC3qEb|rN_oKe2$qUITnJ}bxs;P}?m`3T+*}yh4_Fam%YJ0{KX%-q8ed6!| zit5Ol=*0BR>W+9l%<<@+ToC_9854C=l*la43JSxRtB?ore*0f-Ls2uS2*Zh^n^a`m zi?FYlf7SnY1{SFfs2XXpsk;z+-c+4~{i^O1Ep7C&I4DS5eY2!jy&FmKC>?5ha!R+7 z?joGK7zGKJM~p{sW?D495YN9fem>$-`kY;fM65Yg zeieTy!swpWY?88-hxct`>(X^Nckoki^{3-VKU>ZIY7;~ zKg+m^vXH~+GLmgaDn9X7@8FC1H?S)hSCyvbdGi?$a(yZByMgf#<7&=b$@nhD#k?C> z6XWU(fSOxwRrD-uVlEAg+~~F=)eKtF(XWetDwlepV~&!R^{l|hC;OF(^Srn*xy#UzY;^V@Xe1j+ zZ;XPU8U@cpml%l;*}NJFr}iHSp9TD^^farHt5iu+h;j9fyjqV@KOy=areBBrk)yR7 z;p!cB)nC>t{#>PMZMK>54#rhK-LCjEuJq?O7`HfsY8<{29NP`Sdfcx`0@lA#4!%NcBGkN}cMhlSOws z^Erp{G8V0sjOQ@En{lyTL)g`fhxlx(SSJA&wj;rR7vrRl$gO00b+$oG|88YGj|MV0 zwLaR&cp2lb$zUr1e57*S&Gfrz+Zs;IZ)nX*<=ssR98S!~as3CypA&4MK)8n)?`AwM zVe5dRKUV^mGTzO&I%6Q#90+@X@jMnNHIBT>cn9O(MLUsuhw%_s3>TY}l9Y4CRsJpc z(tM>=AB$C$Z>Xq?$E?N*r?SS0VM8yr)@q88T`m#OY{8b-I;*-V7DI?M+cisgv7;xw zvtjfL2E3eGS|RfrA8s+hDu1)E^70zceD7`(FyyOMscA~QK<f= zkP*DRT-d#8SaYlJCN2L6-^%jl+v}Z*O|hn?h9;t3NY-ZRD%Qm6q)${>WnDvaO!|@U z$_imiXkodm%!V3NnMO?ImtHEVid7X0&o7joCTWXkVR?NmCql&z&)2GK9Y?E)Rj!lP z?M2qGwHj+e8^qR%0xyKkpQhUSwF@P6eSH0zSd;J!Ge!ln7}^{AxAiI-jIq^&4d*l2 zJ{u~Un1WiS9wz#!!9>yoRMg)-fBnrq?Go9IF$?fKcZR zwbj^T=4vEgbw!=3@>;Sr7psztvAqnTllQgt$=k+;=HxwY>T2tm7m6+#1pQ~a=tVR~ zkn>TzsVUs1QE-p@9nt6DU(w%5032Otsig34X!tY@e@Me=Zl>seqv52h75)bezeK}V z@_dbgFVgVeXgG~!iqG#gJXgd0JWdjy^ELb;4cGHuqTxFI%^I%L>o$XEY*P8rZ2-;E z@Oyc@qWoN-;rDB}p8tn6e6~hEkH;(G6V&i>4WFao&+&Lg^fVT$d~TZv4;HoYIs;n_Z|%oYWNDC2bp{}XtEuGL&HA{ze=}D!>`nE-KG-pQRCwGSfNpV2!9y= z8Z}isdR5*JS5N*{zb;A?Z_$mHH<4gq3{`uML{XGV*_}^#XH!%JE2EL5(T?YOI#vd^7TNr=P zz$+Mk$iQQa?>2Ci|A!4+m3Oa!D_aSV8u)A;Cpry$4&w(6d>-RR4P4n=c*4LVOy6zb zjf_8S;7>6AoPl>U{(^x&&3KQ2`*=Ki*}x|;-fQ5>Hq+|{p2_?N47`l-pnuyypiV_2Mt{9Gxr#H57WPE;A)@QM+s`_s(t3E z2Cnv*^9)?=Gt+*n&PVMt*BQ9lXWn7p-98zAmw~H&=7R>V_LHA8aJ8TOx`C_xWO1+* zNl`HUtLI1RyT=Mw&yQBKTqwMg=T+*v#tK*a(hnN+YG3-OfvbJ#7YtnOODnlk{MEiR zedC3k!qs!DRR*q}TeTXv+OOVi;*%xcrwzP}*DaQ|KSOD&{c6)zQ5mm8Y=d6ySJxSM z9_w?}KUBGrdfT8^`_)evcp2-lx~kZk_}Y|lmp^LT<%-!?%nFiQJz;B6v^YJDI||B} z25ZhKpR6DH^>G>LK14tG4d7W`%hm~L&V+YTXJ@?<9E@9x)6IDK`6)Z2G1s2{xb5cI zZdopftni9bcSzcXc!q34Oe0py?Dos)$|fSh?eR3S+<*gZIItnKlTAlA?6yu=4e_`A z6cyI?y#MZRBTA{aF#HUk0f5bE-^I8zx`XF#NksMw;N_^B7#@_+U+zluTa>2 z4{H6Bp@Ls-URBV2*UExlMckwQ_9fU*b$_M3n~%i(JLzZ;GH~}+T#>pgZ{H>Gb%^j! z;|@%xMAG(?|86>y+BXJ2)i`T=wC@wVQLV}ob_cJojI>#$X|O%hLv?Wq72Wk3&T-SL z(Y<7!j`Gd#+-uoKrV~SH&NwgftxT91Ky{*oT_-Y2Ggbt=CST$ef8rC^Y#E1SZ77u)T$IJD>s zJa{$#O|F4={=t85m;dYg=N$95(z(fzOVr+&hGU~6h^%|4|C`CA{NUWbj~Vy<26-mi zFiUW)nW!fqzrBec6g^>WERCOSHQ_NT>53AVsBhQm>5S^?v7SyYiTg0FnQ+*Gh4ue}prD zsJl6276ARg_AW&$1WM;l&2jFO22w10dM~l*8qBl{x;HOtdu+=MT=@R)DfzX%v)=m; zyYexSQRK}l%=7QrxXGU0E#gfdunW5G`m~+)wyL(Smon|NW2LUI?^Z}=M}BAD8tNE| zUnz_);hbgitU=pxXNKK&%DDvQ8G@%m7p6IMjshl>N^)&?<4SjNRN8x5T()C{jrPbt zo`0(Um#O%O22(^Szkg2&$Wnf)IRim>_$m)l57`q(Dib%9?wY_DVaKt2Nx8E6n zfhL@3!1*P0#Hsf=2%^xfhn&yY;y@l9UGXM(H{yJV&n@#ou%ON9ILnK@6N#rZ$Yh>s zp))>o>LsyhusBZktOoLr)458>kQ5knhDYh7k5(Ug{y$6}xxooT_nA}%@5KqgQe^ zmeA4D-pPoLV}?c6yleff_hJIG$h&^iBCjCqt?=c)kvMTd;)AjN)_MfA;&3~?yh7yXqESBUMf&BuQq*Oj)SF_v0V*VmK`G7;1?Xf?2F@Yv ziw=+EZ`}p}66bFv`=K%;6L5#~wAqLh^=fj3B*6TbU>|ko90`d-&!q|Q4WRU5(LwaM zpF?%#g;uq7Zn-S~c~L)MZyC>%v4&2vu=)-@RghY(ZjTB$#lj=)#b{^(FF3Y=&Jdw5~ z+EEN=vew?E)TsH`%$HYY)6m$yAloae@j`VNB;O9Z%V!WK1PaXZRBqi3L4@x|Zjp)2 zIoUs%2X4`%;j<|9@xJe(?~pB*q5!Emf9shjg^gJoX**aT^X@?071>g;rnfi33f5EJ zq_4P-W9F22ZEWI$ss1njmc~OKo^VKxji9t3F)MtycsBi9m4=@yt-jevjr44y_Z&4{m+XRe*2%^E9MDL?#(3d@ZL#u`T1VjtnJ^sm-c@9f4G+($@c$X zFV$oJ_x94pdjI`Ix1$(BMZrtJ6Rv>;=)yEA78u2Hu&hj!wk@YBwQ6Y@`Q&Dn)J|MZq9xT2jidqa1Jd}{L>%J3E)~~dzsU65nw|()nHcI-kMVeoGd$_ zDPKe@`vM5Yby6Oa;lyPmr;#G?*yJsNWF4eAk+VijF3@Eg(PG!54?pJAi22ZEkUTj7 z!c;Bd&G?$_Z9um?<;=0$>*#3bVcFHxnOW|^T8h6^8|>5g z(U|r$%bjee#Op!ZYY2LfdQ^~Dnj#I-W>GKN?Tb%g&QbTVC>gs-7C~sbK*Yc2rU^xD z&pVgd-u$3Fw=v+{QR-rC(0>-m!y>ONw=~h|E1laEa4Ko>QgC4FYf-N#&-NB!eC+Jc z6tjzht_}Cv1&8A&rQ(6I#B_Q(j;lw}ZE%RwzN`cz2rUAkK%tF#{|%NZ#H6JQ*@Ur* ztNNBgA)xWS8?)t%-_Dp1O@@Y+^Jl0|xwz=!niP#6#bBY7?6Bf-|Ce(BVRPjzi1jZq z8G!V^BD)OMqf%#JB(nXH-{6R?2+-;q^wfT2rO}^wKhrroF_-~Tn6DFBTk>(A?SBh$ zd7V|)P>C0Sr@%P)xi>_a8}c7{Z1D}xR7lxw`^6|2WTO7?%<|1LE! zf{-{H8`ox5h4!{;qOn(poAT>_Lh9}-W3XUU+ zBhsh0jS_(D<>0>u|Kyg^4^AH@(&?~c;Y2!HX-~wtM8HA(`%q?b7tIC4SfRH;oKW|~%mW<5$nD~G2!{3%LIv=NRT-;#{4DteN!Lv^eA{&40 zPY?{Kdic>xl3j@JN@-53Ia&A=a2{@z%%xDs*@e=lo-xsMn$n^EK#sT4t&4F_ICXd3 zsqaGR7~Pv`%>YI`|I+yRh)e0y`zyLr=|87~xF=e2>RQD2EFvO|eyX^lo=}7wV&*>t z+{6SabpW`d{LTo~AGMKLe~W;Plz;VIf`tgzorc@zj;1 zP~GdK|G@EejP6ZZ+QlWztiK02zItXxamlItOP^)MaWhi=9pwhy%?VQdLA@p8EBT}M zx=h&tWVMKC9@atR(VUt8k@8OD>KV4p9gDgVHL1$KN}tw)Bc)#!L;&2iM#Y%vORCd< ziSEDhEFg&`ojFrZjp5`U>1-eAd7@WxCdPM;JknXZ3z$B{l_SPiVAB}i#kd$xlYCU| zGLXc%6Ag!vPm+k?PL91}#QWHK2)$2c;lZNzI87iS@jFKR>OZ6xh@Rw5cMF7PjHTBX zL5mqDeW*KG?lDQZQDI*YH)BrgH}WjanA7xGCDW_9fZ|ibxT65R)-zse;F4~Pb%TLZ zKc@21{6Kdt!ZXHNrh~ZO&Ull7?_`|xitfHHJY%ezbP)IVF;03wck(RI7;CEz;{E~Q zKV43KAn-BPe>3QJGkvas?_qj*O$9#6_!B88c{kEo%>4)*>CD#Cqu?(AKMVax*^ZF% zYFTeE9$-;a68S#kK?5I;u1kFK7*{&<(~O50SMow;VTrzl@gIUOx!H=I^_F9Oa(qlmA5Do4R@CEU<~6sLII!^f8qtMft#gWqeAIv8( zNiq;~Q{2*-#gXX$eH6Th`K&&J`EY&)Mxm#UF3##Py_nM?j-PS$eWfdz&jr9o%FpFY zALMx*mUGha%LtWL^TvusIsjE+;XoJ;kJZyubDj9b=iaNtR);(ocXjeinmC=7N8T&w zM+Cs2MznAi{fP5yu)`58ED&B1oG-}pC4r#G7jelD2cn3hZux?5zKA+Y(hCl=M66jN z)+`Zg)@(W%RV>c1(O!(mE|6j8?xz-)X`ej`P&t&08|8XuBPg+GseL5}#)n5yuL34o&uiL}D$ ztSvdZkiJoPg@)7IPvK8#I88kjuAfz-VW1QGsfq%tkED^z(_$4#WAbP#LK@AUT{IAgPc^W=f!>`ux^%{PyhVRty&uaKLH2fM3|F(u-sNsLF;X1u| zvIaUTm!9q`8vR8YpHmvH^Z7ncz=@CEzaG(WT@M`9@Enc*Ga9b*AJlNtfvVlpd3>dG zr)l_^8cuU7ML$==FV=ANt|sx(>ERWQaQbgy{m5!SV1(Zzs8Z`rMSmaTELKVS`x#er zG)2FQang0<6#jtpCiim`{vhMjr^qQ>>6xHFQ}}N7Q=OAj^bbp~(4{)Qm+={VRrHUt zKhMBB*-tu(oT5J{y`rz__)*5GkC0RJPe`v7;;X{D*&i|Rr`c~C_;c)!8o1iCEi>>Q z_AfQ?m)XD4zE7xi8HRs%oDe0CVP+Beu~;FmIehk=)Jy7w6PgN)y2;OgxA z{RVyw^WSCQ*E0TqfzN0BK?5&l{2>EZ^|0H(SM#|3uz@dSe6NA8Wc*PBU&VN*fh+z8 z4ZMo!j~aLl<4+iP6_4ND2Hwc@PaC+y_;UuniSZW%Ld-cc&~x)VElCh z-^uuZfp;+eu7RuXu?`yeeN6w6f#1)#>Q74l>|$K?Cxt)2xO)DiaP_^{Ni0VSe~9S= z2ELo|$p-!~ z&Gh1xH4RtaZ=Gk*zrge%1MguxV&E?`ZX0+n<52^Do$)dQFXQ~Hd8^95w04g(hX(z( zd49Rd!2g!<)dv0@#;Xjx-zTcesxk2IF@2qZzr*y62L7*1?-=-ljBhgV?=!B(Lsj1I zGTvg){~hD427W)|I}H497~g5&-(tMOz^8Ei-(%qSGW~r9eh=gK8~8=cXP1G0lj$EY z@UJuepn*3s{*ZxR!Tfg{_|=R*Y~b|Fm)u?hS7)^!HSj{_(`n!(j2|@cg^V9H@VT6B zP^6yfkL*3|3|<}wnEF{gADCqDSI-CX3|#G-Mhsl-o0|Pd?VFl%uJ%n$IaK?mrktpK zQ?s5!ygq-<$dB4L%_YHyQ}VC&FGB{d_9M+RY-)e8#h_Q;dw;;d)jr};16TWnbyW?i z14}rGlsvO^CGPXC#POv3yu3W|d(~`wh&n%i)>VJ*_o(O4#s<5PxQ4KHI|Hu?uA)zY z@b|QEY6af`!K+=))$}1=yd+tImte~VybxX?Kbt-VlsJG_zHR}iKFddEK=kiN;7g9S z*OHB@$0-f^3?qLJ5+8lqPw(u@m+^i=`zd1l?|*LiJMef%45>EKJDT{S#3rA+o2D(P zZ+X#+xS<^zC)nPXe3VFHQ={cfLne`@#dyK(4&-kW?r$IPN|EVnZ1;$}KpmX=l0{L# zI(?{Hq~4*wb1%N}6;lpW=7F7xln#k+v`;z)@v z@$q^7)?E~qe8H}_2pfS>uW+SJA0Am4wDBRQu-m7Sv)x1a&$rw)!HS>Vf4zM7mfncR z3*rUOZTWnPYQJ5H4@fLM6citte&JNn_)O^ZwcOQl=Xm&$s;GpGbVU7mYUK3NJ+8n&dag!5j`{@-VZ*~ zD&B8Jv8`&nnVKbp0yiit{kRYje78GsL^drxbc{B4@cN<$CV0O%Fm#*_K;U)G$zVFa z(fFG~BkwCneo z3)+|FW>fv4-VJ)F3!gV0MDY^{4U&|WrQXT+aAd_>G$+Xo2M`HKF?gI_dB?#9=PY!h zyd>Q*+x>sodl&d9t2=Leask6dCbqPVmDbTl4T6{;YNF82kOZEQLE@4iRy2W-7)l^9 znSoHbgib=49ip*oySA_W6yMq|-PNvrs}yfEfLye;ja6ILOF>ubjFCdUAYOUD-}C&= z%*jb+Tf5u+f8Ni3&nKDZJm2#>_xpK%zu$3?4u3wvi#)(~Zio=LO@p#axFp&S4(E;U z`Dc1P8?I6V#-!P$S&-g3k?W$k1bxI#I(x5tqwLuFQ8N_jm>2}x4qcmM1@Fu&_qwBj zbfq+BZJH_DZO4cJb$T^Z75)szlemN2AeCj0JKmX3GO@2iNUM~5vOP1i+_=t)?#}D( zbJGy)-}PQjPeuM{<%A1>%U1h0jH1wHCzGPmWAdzGd^|{5oCNu}F-{()5DPBB3PXBq z6_dAa=5i~L(oH!qZTBZL+QLy+>;x^9a(7NML`rn{OaQ1 zL|kRpT-Xtu_)7;|z8l}0hbFgvy)(j(C-`eo7`#JgUwP2eIrr@Bz{#f}SX7GFtYFsO zVAj4+Yy~=4dwyrb*&l+dUPZsuxhPk$fk%Q){Eot2q{xZit$55s@w*DQs$}0?xJ^Cp zQ=I1L5zLLqr0pCJyQ*eNF(q5jz115z+9}7y(m<}Zjf|{A^UC-B91V}+D6u&{)XbMd z@j3aiT?3!*1s^yD$=&(UBv`0tq1p|E~s)-{s=?1x0Tv4`{k~)-yl7)u=sM6yz#Bcw#6R|6{eKi-A`<${w_&VI5 zeD?9(S&{3H??zXNzI1eR)!FDUX#Dd#=++qR@SO}VJigl($=&Ad5J7JJx=Vo)4VZubqj%gWTh# zAzWUx_R_rA8Y~i$Narux{vA!Hn3c~uqwq}hgm=SeUQQ@^j4v+@#&ZipS#P6(<4QUV zoyY)FjrJ}H@1BhUPytP%Al?d(GlTuZd&}qXt6HfJF3I&OMnIL;5Cs-u{S>3*ELC0% z*_Tycb#{H28$FUG5|V!J_TNIf(tGo(@L1{H-q=x5_R6}6Z1Ab^bH862V_!bxW+?cl z2m@uWZ+JP-xqgku+s)6$p`4pagFUN}Ks1+l6S(Uk_caRZJtwx@=fon#jTNyKzEEr( zWz%LM9cTnu`-1UV1^Xae0D?SD9`KDsqmrW?1)lYQ+;S@EJ6`TU*1L-N8$1yAy7@(f zENYgJTRJztq$Xe{1{XnhLk#a)Nu{dDSh)`gYVz&#pY3rr?&d%P@iTX3KoSN=&&b1G z)tijEiyb=o%Kyt%-^Io>a`Xf&4n1cxu zRfk)6*MBh(eH{h#MsU~5m_yh4@(1$R?o~E=u0Ye8gF;79jmAWPg`QDglomb6ib*!2 zFl2n!WttqTFoc6!$)c5|xh2Pyge#;;{H1aK2dedbK76{$w)W&iSAeiDxf*^k6#M<# za|eDe^ODq6@^*&1op)+U7jMs3(&+%WxX~+7*ti&?+_Nm3j9zHWKl8mmn}?MV2HV-b zjqmP933+e1lfT>NjqZ9ZT-W(78pihk?3+CrAjc#q9LRBsFjhh8Gg6BQvXoLgr(-DM zxWwV;NvSw@C`u(2;w;CnP4fP|bbUEJ|JaGp(M=+ADD9-mL*)#^{3ov6<7U$J*$1Bp z%$?IwWipuy$$#{kj;|*6OFi^*O^A`camIeE0B6ryHMVia0Z({-{7%~kewkicNJ3K*LPq%q7C@#+336d$ zG{3_8v(**eE)F!_pUqOKi&f5Y>UXOJ8;i5&VkN(~zY=RBh(2LLSJ{uAI2njNiousv z$8{6#InDBJ`T>hJejV0q&qc-!+@#hs*J5q+T)5?U`Pup5KVhj*8p>H-grIOAstO8H z#371L9ZmS(V0mBX!&RFO-WyeZ*&+F}`$k&ND&3(G|0@Fl0n3Dq@Fq$KDfom^<2mmsEF8{s}F= zmoh$$(G3;I7UZ}o&5fa{Q|;6stz9y>q>*1VTPzGbA*>nM|3Wc;QFsC*mr#LNlA)iA z%x7%BmgeGO*eMO?#IRV!qWqoTI=lV=JpmYdW5wxhVtRf`-`A~Vs@3`}q3-EccLgKC z4pwj-q1fz>P<(?AGF+>JsOOf7w8o9@KF%SKtO{R_aR=k%A+->}RtZ9NQrfO~9qQt4i&4C!wcf zIf)|rA*&0CS?EA24U%ga{6pPT7e?hb#S*wc z8VOOXGQMRieXgZxF}S6mrP{M(*-8j{dBWhT0u#{U`sF@oA8%`H21k!#<|)TLgBH3H zoc}&(y^gGC@If>9Qb=~SwM4)w)PQ&l8J*@9xGCWr#XRIIqEc|*GFNP8B1;FRez6(c z%9fQEv`5;(`LnbkW4LRUH8dmO`nHyK3XPRtz=ZmifFWurv*H>f9WH%iTgwU`lG(lt ziCAo;8OyzAI8;_~b>$W;7EynX1D9WM6qaL`O034p^Ii9kBV@$oKaDM8Gyxd@X`=kO z5>g#Go3d9!)`b`NaXqOT8J;b47rBut+F=^`lfEx)1-u1#Y{`}yrW?#i46laVh0BIIiDF`+$J!Fy=5}PfcXl4l&sALCHbS)*5bxCMpKA?{rw=HZdXJ{ zZppo7Twm6v5j{CKXJ`KkUU6v{%R`^L{}y()JOU|M8_H1eHZxrwMIh1V(07wwm50N7 z7$J9){gu>xW>9Fk6wZewUC-p;B`t3>GbL|?D-bu0oK1P7*~tI1!{>kInCx#s4r$g9 zp)hrqBlDnn#{K}iTQ=FP$l<&(wW{XlsDi3czaHkHL(WK5+fsQbmpq_M<@z@2aUt+shKyX4u(IvuC^MU>$*x zU77p%tM043*1fw=-CuXJYDY|OklJip7vZy4)U>AKG~+_hET7gZ(S?8pkl zc=Cim%}%hNE4UQDxT0O#5s8Z(7uzPo{A>M}z%SFK#vVMi(ebNsPJ?)omPSAQVz>P} zWSoNeKkg&-tMjk@SHp#NyZql1|8}_ApAK*yEOwdDE$@7nqS$>XzED<$j$fC5Jurr; z>4e-f`4g^fk_P0dDjjCPxLqhQj7Q{)T9f0b3SI{lh(EiA+3zf|&n zKq6%O-@8rttfzaJln{K3KMr9sb4$&e7Dn1;?mE$UJ9gQ$->6D&W@j-0Edge z$_EFSdMj`{ewS+KFX{f4GER(fI9VpPF;n&_N408-nGem{})@(U=vWUBL;(bo28JE zL-08Y87f0nCAe;v+GCC2g&L6Omj!43OjD~~Mx=Q5wA)g_gBp(g^G|pm4!=JG{!j*dH*u>^0rEVR z0Y8)hKav4|KLb7j?RdC&`B`c>T*(@td^#nqod}nPYoy`I;Zoo%Pd%8Z^)Tpz8N$Ch z15Q~ZhU1q(Rjq{)PFn{0PNCO&NcH;oR>3uofLbFXod3me@U+d{LSHOhMy-`W^Z@CH zsV{zi8xDV3!s(O#uGYl}=fw>4f69Qrp8@At@Nn@K09WmKteZ1E?ww5>F1>edE21c!4X(2NL1eO}076oE3kX7>3^WrG( zfjy15rK%0LM&YtA?xJg5IhM%EwibxbxEKYET&W`3Tsb1z%)7Sms>F|!%#tg72>Qb>3;b5_&irV%j+{Bf>tE-|`NmbS2#w&!(9M?83cCY)Y zsKsSf>c9i>EkNp5E^BX^r_zI~$~qeABhWdcQjWW>G+i~tt->potYPiKu^a(6C_k0( z14T7U@u?BGCA^dtlR~~&|D>5!o4U`eRvlQVoFiE}GFWwKN#kKF^SJW?=Tfw1{A-^5 zb##Ow&UKH*?;!}o;pI&HYdk>^hV-2KHO}#rhV(xCYrF{klZNrkdGw4eUe2t9j4Cf*P*Sx~Sry02B2_|mJT8)u~IB`>^ zr^CR_bnef9Z{-3WhT)XrU#I`f(L{&h(+u3q*Odlt=1bp;!tl-XOq8W4aWkBdft#{Z ziwxWhr_I1k`b`GTt&q;wtp?6Dw8l@7d5`Ha(|?J9n=)7d12^lX*1*Z?ro&%q;4CVQ zuQYH|wy)j5P5N~P&b77<=W7OT()Ss-nf_!3{A~j_^Oa@DV43|Q&%n+6dJWv{U-bq) z(MbP~4Sa@yKV#s<25!oPnc=jJ0}%}C@pSy_@>yfxW_rGF;N0?R`g;uAq<`AL&2l)) z3(qi&*Gvx>ij*O4=IaInH}h2>i%Zgf3I94hQw)5vfzQu?w`9QM8Sst9xHriN|1{Ye zGCd|-@VPi zWr$M90Rv}Pof7%W7OwXr#m4+dQooc}$inqLqRztgK4P-~cIbct|vzVv?oWs6?# z3qq1!O|Q=Zv|cQY_ewo!StgC^^?bq#N3Yv+jro@(dfh(R!u7hnnTu3|d-%`s4qsF< zwHPeMFn{@d2Mc9RWfl4PgWs{9QQ-ZXIRU)F`20SCy4Uf^m;4xDefY?UUw(3aUaWiq z)U>C+?UO4B?&>40fAiWxuhWB{#QkLOQGB%G&MJnw+Oc#VoA{P??j6Ld3{|A~%mtRb zx5Kj)ZykuiQt`%4PPi`XEIv#o7Ao!`e!}dz36Z~+aM_6#ky8}kU=c5`V(4O~@U7Vl z0v|^ilqc~i6~rJP?l*Ina}?jLek--miulvc#v zNqhiin9Anj4_0#v!$hg|(3SJw~q(}R4bcl%mjUgF1~HjzKgTM3@?sT(hWSiXF);UiW}L}ocm^<5rFJwx7UbUe z{DSV^M6O3HED*+W6f+QGL3s|UVz)d?B_0*Z%OGVauc9^Qr?y=nOll&xEF{T<{_~>ssaTp(e@MZa0!S#H|y(sZ7 z1NXt&%y*c-=g*b+{)lhm*+B#u9J7oc4S6oA=hSyOz^m_;_%u1>yCt+K=0vkct52)u z*UR!T*AE4i-p4`&_d5P*cz){U2cK{G`8PixU)q6x>~E3(jmi^|JRkniLx+6Z@< z!wJGLvb0JeXTWBWC^s$NRVO7G@MK^N^RM;K zeHr7|>4a4o9Y5EDrXekjesX`M?aD!ZUbPb{xJ^4x{IhwQCL#XynXGox<)`1TfMvL- z^jb-`f0jSD<=Ve4|I>ikWe3P}Le|9B@Wn88`uT3Bo#a~n^mg&UEh)D-cKqC$4;TM2 zCKyKbE!V1k?f4C+K~~cJEx)ZX-Rhf|#Hz+L*m)jAT(>8mxN|TjUM25pEQ7sJ@K(Y9 zUY-{Ut{ayczr=00Z*+9ZQ8g??#$&i|fE;Vpw+LxGx}0YLAMVWi?}!^=YHL#l9B12H zEZ2J~@R*5{+U3et-n6()S%Od+MW^{;9KYV6tg|93>%+^S!y8APHMR8a+M2*WhI8;t zhtt+Utt6~W^2N5v{Te1ZWg>#}!Tf042RjYv&Gzgk2&3_0_jSk}sa1lv%2U(p_uDL7 z*XuDGm-IC^qBK6vUgP3RKK5QCFT-9Vc5HrSNgp_DV{eu`)>Gx%$w3-74SQ+a-_9@45b@V)X49|3VSHP^Lq?bsur|`_-W1-`q4hT%h<(>z|4aWJTXU z39iY09|MOx5f-iBMjRAA!+DSaBA$}Rc5-A;Nr60H!G6CFuUM)=CJ|m0A1mZa=GDo9 z2?9%3*Fk!QI{3p7H<$@&iG8af334owKXARQwaUJn-*##kt3fbpe*%P&BRV=WvTxq2 zB3hV_$grdNX1^ORR$?=;=IU0jZt7*t=G}h9DDUCP|3*&NlaVvH>|;>kDe?=E?x`TOz=w+`3a})1 zVz{*cRws6qF9-oP+TOWjA4`%ue7I68b)jYKuy^j^7!oV9vii59zHA@0|}?GGgO*4N*;1Wn+gFd_4ZrnNbNV8k@ z>GW2_XD_Y9-9(pxGr9QktMb;C1bR9k+7QThcD)K&m;D2$DZY0nwu^UMlvSPB;Jy5+ zvFk=)s|U$Lh-$ooi@nm}IdL%Y_Z95L0cbIMbQU1Y;=<;6Pm||RX#$2ZZ zW23v9v@qwp4;5yg*ze#IdxI_6isutMjA(AQlj8ZD#kC9bdW>{1ck+ikjCYL7D}*(V ziwzich@jFlOQ$C~u3)y>4loV+d~Knk#?SxbdxI0!!i{+}O{TrUHWnyMlaw0=bXwUy zXxM&eGVKjYWsY>I(!VyGX>ahC`p>jC(Ek70y+OU5P|1Q6M=C>^_6AMj-*0))<);I< z0+!*T%9rmA2ZfO3|8e#P+y0Y#gFMa%Foz}mYz|DjPQR{yl37g*2qqII7^YACrhlyB zNIO_I()}&>28`~%VvWxHt2H_Ugi&KDp8SS0+!~$zh4jUE(x~wjPkuX9d@lrH)Od<# zCH{%`;YqX2eW<%Yi0khQ=L=qs=Wy}f2%Pj=r2^D=3T$l#`dfwG&qXrKo$kZ)Jvxsi1Ady6yB*Gp2F@<8!@o$%mk*BF8m~5RGd*LZ-05uYrOwKLUz!1*n*p!S zfUn7bf6K_1nVwrS(EE^X8m3>esNScm-!!iK%~A{Rm3Ovh8XZobdh>Yhm8Zsazj@Tc zb^mzF!gW8Os3VOINB4ti7Owk2^9|+>5xQ!oU0hsJQdTzY66&uRMwiW{#UERj&AsQi zY2vS6S^XX_zDN!FK7`9X7vw?KdK5m*L|@B|9{!;7y|XvZ8nqfbF*VnCxBrH^ZtBP1 ziaT+6$u;&Gs~~%MJUsgNtWi1M?it7;*237Or66)wLIRKym)J1vE{Yz=-3(h+jn7hu z?(r(1vx?e5dnb=oMeM4TTLAT2*|K-Tt06CHq(|E9hXcoNI` z@&JDH9+7v*Iz258<<>7jOs^4C7x9uVa}kqEtIRsu0ExU zhWD|*!z*t;QW{|%X4iG4?D%04lB|#oZK|#;dA+k^LAJMRFOpmlOX%-}fk$}xDWbyn zjdX0XbpG( z7Vq{sqhbf5$8svV4o7x4@lOV0pFwTpMH9Kx&t7#3KDrLn+>wG7F2dazyJzZ=B^+0}P8 zk1b3bWy#CFoB?{bk1a&LaXD%k>BWU;vIqe8*p>LuhVQtc*a`g+Dp1Ss!btgOoZR5l z1}87cm7tdR@#!y}DkVQG?Pw70wx$Ypq(S&Dq|l{Dk7RF5eo`ew#pm>l-|Itmlj^(c znVqoO{x@p>tU*8A@f^!%;1Ps#GFb}u!Dl{DOz_~C-+jMz#^~RDKUDwqW1w~3dCln= zJJs3s(U+WE?~ZgP{>j-XbJqs-EgZTG-usgC&bz^~zICX$Uj@DYdd!&wY2`_)3!Ha; zpF|jt2=C;B6}rzW}uqLRX2ls%AuDCEitNEJC8vA!L{KqAcnW{I%ohG z6?-!J;?d2{sLq>evQ~M~l&YgIZHvB`GwSipRTvF(3#pasK@RBZi`!9=6h$GZ1_Esn z;W0Q@;pLj|jSNGfz#^z*!pHIg3M@lvxfwUVD#>2nV9t6+w^)8Pej-7q=i*lp?!L;P zXJ7f%JR5U$vmk9pp;yF-omTRjSOEPMx2MMf`BeB3!#%(~0iQDoI*MYIuApjnU&ZD~ zuwwJ_tHT?i1H#+Yf%=G^$PSOD(x9VmGO5bNRfrW2oNzCQhZc?aRmad2^evVk7O`>n zI@!KK^=W8*GKv-1Kg(^OopqyrF7oh;*&C$XpG(*0 zct!!y))_$jhZP|!M2 z0C|2E8#|gCT>8u;aJAxQQG*yS?fy_*KMSAU?N^R*;@1~EbvS02;E=2k3LXVJ9ho$LFz5aN~n1P*O#k#BK!i_5`-$T=>#|j zKpIed9UFd~PEQb}8Z3L>yUB}4*twV~-0Au`-QMFjp$gjz5>K&oqkD=#yy}Yh{5%|s z{yV;iWAe@CHQZ0b8MRV(ygbj(J3%~Q==RDv?jMzdk{Ii)+$(-L@UHGl$B)~;YqG-E z1moSe!&5LeyLfKw5n5Sz6|rN3Mk$Oh4By+;jq4tyKf)-*=zKsU-cnLvJ2+FZ411L#DZaP+wRBY;Njs~>NRaO3Z37;xv* zVJN%;RsOYIhqImAgIUlHpffJIo;Za&F|}6dya`%Fx-Q3N8uf%rYncc&o`S)oZ11{@ zoq7~@U$(2i=Add6FX~2d5R*2@5|QI-=`gx%?^@g(jdI18BJMSRX!C%zo5 zx)M4eRI3j4H1G9zZ@veKM*2S~>F=pzd(J8=AG>}Uuf3<9j+}CL=>r`_Zj%Pz$E%44 zafNl7dc$vYdY7XeA6b2Usyyb5aq7#*KFGHC)JrP7dfYue{u|Iu*I(+YfWf$Uyt2TL z%ZR~iqZ(5;^+;}W5s!NAXH1DU0B0?RDrCk%Gh{;E5P;*QHp5vW~i; zI!RTNUZP%s@^GtcBW%dBm*X+#TerT>WqrlNdwd*95^5-UNowiWZ>4JK*`D0JK4itY zUFoAqk3aG9CKNEnWfiFt|2o?>rWq_hzej6l{U}_feIznE$*VhhIcPYSFVFWz|2InJ zcqLYruOs&=uVKcU_%b3LIG7sW;^nQWu%WF4eS92ybr||2%KZqR%Wrk3w5-VIAeM@F zd3DJV95rtkKQPO!pHz)i|GD~o_D!RHt9AXxZ>lOe(tUEnCkMW$+G{Gjs`VG7+Y9F2 zVix0zsu-VRcH(AmRU4kdHxC4Ke8VROE@eHW!l_$-9_kN!glP$e@Tv;oMTQVGL#W&E zZ)jFa5k%jH&nM5tGD6xPz@8en4MSVisc=Xqt5}lttP1pL2KpBC!VEm#*h_l?b~LPH z7nXK>KZy5a3@=!h1v=Lj)?h(*w<>9Bk&Jf2iU|$cn7X+A(e2+~5QRFSvICK~FrfIc zioW(K7d~Z1tJ};nVM0XJRML2=?fYPa)_$udaMHP7# z3&+SkYMrLjM_r%6*l)SHQybCP+ek5Xk7d6NuXD%Exq4<9`p`OWD zF7+T)*ygzXA{2v0p;w(<|BmV8x_qo#uxv=2huIGU*(v+WRbveF%+3l%_h*$=j@|HU zh8Zk-Vf8%MKl)2?u z+86#THxWO_eBwFlccb2koW@Uf$|dp#s>uX@DU}*x^NK~oY3f64elUjRRo}qQ!STDg zv(&OsmZQ+h2=$R&>ku}_AASlRgN0ZSTMQJol(d7A#-6|JG_AXq%R8s+g;igQm**jU z$Bd=n1DH?%yGr5J!Ln(T9Ko0D)dj(x z>ze}mX4PZ|_RmrWyl%azdEf2QT<`2X%6RsK6LWi3)&*m;I!c~1=v;PEES3}B1zoUg zZ#V&()}D&bc~YrJ)dzG{xk{1%%lt$u+RK4JId9$`dK?Z;xxNzUZ(oGSldd{qbLM{idSygyh2!o)I! z$Rgb_A5*{H--E7I(eWZNmoDJawYqcz7;>4f`dQP1@$LK+8r;8$LmCaNoywxD9B^oW zZdDd#<=94pDJBOoAqBqhNKUYk%LB(}IsWh`kOse+aiMzkoy6A$I8wfo`0Nq)xdcz< zkVWN7E>g+yvt$zsK{@b{TW{dEUKs7G30yvFdLTAyp-Q`V%M?&6rrTbIKy`x?fY6?$ zssnr@NKcW{&i2khu9cMvE^jwiN5?CfIE?g?IL^YayoUA({c%0_+>0zFR=tii#(&Tc z``ofu!qd{_A2?o7IO>#00of?>kI%&N?Nlc|mAUkG^W2{O#|J+VC_X!y7)Nb?P!Si3 zKf@#2M>^dg5h%Zu^*fwR z7*T^Sv6J@r{R|CI$!`*$Qwh3%YYG^vfNv@au!ENzM^fnuR(qcl8()}sjs(ccPf;m+ zUao>9vpSgWD+&t|Uv}eA*@62c&gyX;Lt=va>V{7>(?=8Ec0H(AV($_8I*?FKb76jG zq#8AKD3pW9(L?j*PJAUaiKi-AM}k=^ixTS@T75rORnMS<^sDt>FusYc*Xaot7Rjhn zQCO6i&-7yD(7A3wR`~LG<@DITU4J|?Yu}R}l|@S17Jv^Z!9s}Ne-IBck_dav{%+zl z;0>Z1Th)ji{LY&E8KXyff0jV=`vh7X#W?W(PkjFY7DzgjfvtKxb>bTeIyc~u>C?~% z?6UM6&cSgj&RS=U+Qa$(x5*}WPt(sX=xoH6A>Qk@m<7d7>|R>k@yUs<_aoJ_3&Nip zOx7x7oPIElDQ)F%qFv^OkC^9YJV4oYO5}{r4GXfvpH(Rv@7;cNb@cF#=u0`Hc5hyw z^gMf_hkwq4dwd!IZ<5->CiE`wQ1WN5GQpil6bflk;bD%$iP+mbj)V4MS5H39zsTm) z4|x(N_6wZfP%rAPx%CNEyuluDA%(KA)PK(LRy>PQx4N(z9A?&!7@PoP9;3hqWFm`<19zAc`yB?TnWJ;VpG|*>u!6<>{!Oxb z?8G=B%ukp)`_UU(u_y^&16_}GPT8}OF#~I5UUAn4Wd|c~j&F)O*~@< z3)z8u9INw~Wz}Wg?KQfjdDgBtuZGNniQCa0I0+8mu&;Gsi>lA)OFxf3p1*nisHC6k zx1O51fm=Aw1gh2AK@LP(3QDm2JDNBbt3GsPERd#SBy)NqO{s(HSNBy`=j^Lo;7ODq z8aSoTv|mkp9uT?;c$6@Sx%Er=41MVRDkidniFZ-^J>}SHK~;X`^bPK32i<;Cy8BxS zVsGLDLyhd&{GVZ=ngIrAHsx1}9JW!gTvm`9UM&VzM7pDVj0S z_jA_2$Y8?o$j@5bOY8|eQp7aHet~ZeFAQu%|Gy50ZO?`0sJc`Y$uvH==k20Jx9onq z$f@t)XJBVn0zEx~%7c*DJ1>>=?W=@h_g$}LJKleN+$sB&#Z*Ob(mbDj*p0j? z9#b=Kj7RG#J&m+5#56Anir1 zG(bJ0)U!H%_&m=VL%x`Vg!QwLZdf-{XRFA~RZ!n2!itW}hGx-0>OP@O)#cwTV!6Yx z&Rp5JC5r!-Wl|w-O?0#QZe6Zjs9MF~2`kafq|B;DC?RE8 zDh=9rwlOT2QvCNz_?&i`mYcKZFrNs2ORka6uEE)K{f_0i4a^$;D8E)2m8&vZYWroG zIO2C(E?%JX^yZvv$F*)6xn)F8?k(97)o0xL7dn<34fD|@*cl3OvD*bJGqAe_3kv4L zvrn)NVpl{*Y|5<~SG*;sCp-H(RX?P8S!g~;(Ol)yv?EEQ zy3;b<(}b3~Ib2%Rzm=}x_3VNka^spUo;drr$dTXQ9Tbuoa+ls;cjhvwAp}nx5y)N+>EKq+1&$iMY+om+i zdZxI~DNvtPGNt6dQ;Vz*`C$>TJDbKYFRy&gMBO%JB5Z3?9472JT;jg=N}D+quZ$;8 zs0!qHuHZr@D0KRMK4l$bvEw4oD#QG1{j=>cUDDlQbB&H)eOS;So_74qrj3!jl?r5F zs)Q$*`RAdZoqyf|&iJW6$ux)0bl)%$4>F{s(a*VJFIH&!XOz#iPfA0|rv2&X0-)M% zl1}rPZ)v+t%TG+DRw+`{x#AF%W&n__a&D?>*!$lu_(2F-F`SH+I3H# zrP4Vgd@+oj{^8P2@>VJMt&)E7ld?+e_(uU7F8+K9YQp@&Di}L{mul!Q>He0y=sa&S zCDTC#Y%oRc!}A%zw+gP;loJK-6I`z=rwguywDj8YD#5E{ z!0wRnuM@mqaJ8m{+l?AO-6h;C^xcBjQOE^Gtr_wBmf%|jU#(m{o*xSClZ2}^A>96t z;Ki~jRqH?Cy9Do(^^Qy*P$mLq`g$lsi_ohCm1cP}id1$vaBu2luBmFZ*gkTRXyEfxA;0 zR)*WwOj*|6ws=ahXIXoFbHn1chNUhr)e~-8jO$g}5l2(QiiS1_#6y6jb@2_0!wpPL z`c1{uvJ%8Mq>0--D!5gPnCXweM)`H%JwkBpK`GW z$wIu$oTnYhZf;PjO4CYaA>J}r7^YH5%D4(lhiFo@#Aw{tlqihrHQa;(UrI?CM+HS& zCH1^6ZCDcKi>*F&kg`+w#uYT68lr<%)Ta)wG9azHRzhbG^QmVQbwvAMJ+-N~B~%DI z$X(?|pkZWzOc5jz7D_b*Hyla_p%&e?*6w1^c^h8V46O#PHd%UHyz&OL8z==UhtSbpX@DKC1DVvQ8s@o`LT*aE@)7K55`w>S_Ef1LqK- z@o};~VE7y&G_LOmAkMPY_{({Cfgw(><1zly+{%S446|_o{x$ub8Sv}5@PuJFQ}D0p zi(~<#!`Ej#6J%T_Zr0Zl1Lx9IhZB|Y*QUQf#$P+$w`80peyI^oqaJ51ygdWnnE^jt z#$`MF3uRok@zn;-xk%^hX9j+*f!}Ym9}{0^)bAvN{%xb&xX04rzm%aIp2-mJiw1s~ z5e}@%Fkk$ylXfD>R2cDx6;*owq3LfIT=8|ouJMrIdhMX`V}kP>gGS>MBwlF_DcliU zswIW%czr6AbU1g&d!dDIm3Q_*8XfOl?rTc+RO8zOXPMJz{BHME=?OORdj&6*r>4J8 z-ltpm4te)m_*Thpg@yOYyJO*x%DXOa9q$3bt1S8_rH{0<90CgE?j@aF};%fb%`zRki%2!6MPj}rV| z3qMux`z-u4!FO2rrv!i4!cP~x&%!?^_@frC*8vAC{2ZZw!ov04Km8VdfzUr~;U$6} zwD5}sf8N5&1V3!yGX#Ix!UKZqcCGuV*0rwNwZ?-&uiLf8=L)XdwZ^X!T(@hD>vfWD z*BZY@=yki+_;rGFUr(d)#e(baOB!zw+?EkuCV0LT&I-ZxdPIlglXkBAlg794fD1;? z4;p`7&NY2j_$5Nm{XUJR*E-CLEWA$+5GGsr3<;;$!UKZavd@)*ms<2e!KYjJT*3Vo zewE-A7G5K`o)2}tt`R(B(O)Ncm4z=ByxPJW1Yc<3%LHF!;VT5Mv+x@QUuxkI!J906 zjo_3)GwW-e;H?(EQSh*ZcMINO;W5G2T6mA(ofdwp;9VB}O~E%?__qb$V&UHvyw}3- z6#O;||AFAQTlkLzzr(^G7JRFPm&&^QE(?E4pTk*rlhEI7;ZF#DuZ5ow{5}gW9Piej z&wZr&oxBdwOQ+M_Wzip#aP9fX&jt@;k8k=McdV5jeO^1w!u7eV-ELcD{cX1^eO_zV zyFRbg`Oy7QpVz)_#jDS2Crdswy*{sXEL@-0hAmv5*Y;VsKCgY+!u5G=zKpwc=D$9# z4OzH8uMJyxtL#HITev=-yTiiu`P{u0uFvNlwQzktm#}bsJ~vk82c7&-{nj(i9J+2=_n^$d%%TN<^@UbvmPb(f2dv>1G`v$`abTw_=U)---(|BjgOEy>T_bB2`_n8b!cf!s8__#LqmY1eS#c?Lrdc(Fb1MnA@kmcVx65= zawPihjM$j)gn>EWX`G!0DHOw1xkXA)3_EAAfZk*KRV9r31_G!m@WY=H*{^aG+XcUF zV84zf0%cFU)9Gd@Bk2BTJy3#N zrR_}=&@cgW?O+8Qy9j|qL`Fv`TV>vUO88|c04}P9GLnV7FjwLoh&_$02hZ3d8Lj0oSlW3N`Zu{Ps z{4rkGe&juNQSu!ilnE@y2mno`c}T1$`CWjDB>8vfs^GDvOl6=ZHbwLb5UZ)H< z{NfG`l`IaysSHLxyf!w;+jTy6BGUdpJk{G(fE-3YMEbnSf-X1`mSK`W5tJcCHt-PB zi(#AJ8WQD7l4?leLqiiUIj3C8p~NDTEX2sWb3qr+k;c|jm4!tM8r-Km;O{>RX^QPl z{s?Jc`yLX-kMJ30NcmjG@_BXm!Rafi0SxNLv7AS^R7&0tAF@6h63?B(#WREPY#2VC zvBSo52IHCgAH*{;V?3W3KAztUZHCCt>5S(UHO+9m8Cq^HqEQYhHI*oO~UUc+q6k>Wl!;%lpAEeO}i=aLRZHy|54kf}AXBe8c$A{KUEGL<-a^J}j zR}YtJ5W8^rKn|$hG^qVWKP*N=>YC2r-LctmSHja(Sw@h*N*&w^Cv$d8POel#U= z6BE1#;=e-@41MH-2M%^RwZeWGNyCcgUOf*XgeL(Fd{2*??l|@!YmC9a1;rQX`6g#z zhtRoe@mVVJ`403XG(kT)R+m~AjT22kI_t#A@FzQ`XHSV7+dLMlZ5N6h;bet{y~AZo zycBAgT=^)ZEB_HP4JFS_&4UngYEpy06G!7sJS=lXcDN?tIQ3$<%`x!&%t zput0P*XS-N$+#Z&o^4!-CFc_!cAQ_wSwT&Y#i{9WRu)z_CvNg?;u)82Tkcehv}Pl% zp`K77^t)4+8=7l*PwvkHv1zf2p0%_32W@t|U011o#c3fGz7u^nJ9bgeRZuE25w6^1 zMt5b&e4HJ*C$RD4Ni=HjEv;~^h<$|d7lp78Z6ThM{48?fu1AtH*r!yvaDMA*!Ca>2 zH{F1K3SAw@w<@G0M}3#xeV>e=+;^ir2A~fhdLrxeBOCV?u;flhs1n};DSFrc^Hz9E zt@lC<17>^+5R~yAGjs+GsJ zDltRmGP0ZvN#nr(QH@FBfC4aI2Pz*e3!OY(?yrPu3@46@+19w5vQlpsZ@qQm4w_V% zYB(_`4@9xc%VTRF$dzW4@9m?ak<6x9oohc>!l5IkSDo`HlC^`*V0CQh-4dVM(fEzPo;jEd(aeQNKI~o zT}6yB`xiKcpc;y{4|gZ(q}5Rb%uSAhYxUc2g$dg zCj#Ap@gryMaSn2phe&>fP}~+uRb;8~lW()FrRSyO{e#n&^TS#9;XK-!f zxzcgfWrkwEVksj+Pk^m`2r3A>aSxr;+&+@5F*#23?jBWp{Tn4#+mb-O!X9ATDsMM+BQQZSRxI?htK>=g? zRFltBJ)x+C14E8QE)83d(8L63qzbT#>Gdy3M;h8?evwnu>vdcWv8(JE_=$Y;&j26gJ;^CIY7ok-!82c6V z@4UTp5t^4iaKYUo*q=ktShn`6nGK*BA9cG%+4Jj9bx!UH#KYhH0H-ODKd7Z!D2B6A zmjYq^kNKYx_@5H^pAz{0V+nkW`$t(k@`-%Ny+lQDn;_-KPhy5FszX`xuNbnZ`EYiG zR?C+8@XleK=3)LQxmP92s{GF$*Q(?yI_U=U&-_s`>X0mT?Xz8WpFyr%1`qX5WesalaCzR@FU4KGJaM1M_wM zs4zn+%*6;Zh%i|Wg+jBCGzjx%%E$NQT#=G{hFokEXEQ8^Dxu{j z%}q=>lD!#GK=R#9xBiy@2x-%0rDWf8E{61Z0SZSF&a&PiVZOF35UA!rGGccE%`~tXyncXx8&*a2>c}_qd{!Z9(%1P(IT$hxb%fBMVoJ znG0!Sy6Zd06E-UbeiUc?~3l8=4o3n6SJo zT^t6|&{#tJU>JX5fsX_zwm%9;z*Er{Zwp$WniSeU3Z{uliC5C*FT&0&!7 z%i9v&;pCld#x!IB#~H*BvtyDA6>~QTLyVw*|&>F8EKVF6_zr-|`ihYNM z<;OVe^1B8YeZpI> z_Goa|#-}avT#V;%@%M*Zf&vMc@snNAj(-g>#$Swo(;N`l1ZjpTC(_dB=hqCoa*&@l z#lMNsuKj8J9|g0^|AhE&vK(~!wf}FxGF<)>^IVE1iIDlH7>V|;`wwxu?CG;kWbg0f zi(%~a^W93KqCW5i@gxnKW90exx8rB`9xna^6J7sDtq84GmuQ$@()}%Er@;}GZHzj4oSCa|gfERs&CkHD7hLn=sd*R}&2X~5F3uh|)a0n!o`=Il(8+MB zS9Y9-Tc$~H+hv8|c1Uf43+rSmwAF&M9!#@Vy^Ki7!fLmTf(JAp&rO1V*}~(3-)P~z zg5P7|-x7R`)Vp@RL-3deOUtb2k|OUcai8?xA4*_R zh9hH!8GdgD{M#Au?`Ob&Oxz4u?9`bsT)YQ>Go8KCA=O$Oets)>zO3KW+8g*`!K(!4 ze4>nE0#y>P3v0tI%NtgzW6y@RHk{?PLs%MzeDypHmGi>(<;z+jMBIu)Q{2yodjLDa z9-KD1^b|O*<$-9e9APqWPg=+swyAu*h(FW#b1{D|;m@V~DdkUzqA5{mnF3tcwL`NH zNECHRv9hZ$N>rF7D$uFL6yRN0yKLn$CFne#*A=>u%HdR`j<3sV>%(hW8PqT~V8ohyF4yG=vm7yc_b`e@+;BVQu@GmEpx5ZZWCEAxXNBC?Snk$R(>} zITX@n1m!43lr(JfSfEpp6rQ#=K(2h1i}HwANu%=>ku-#tt!#}b&kNnUQFwDp%kss% z>fOByk@e1|%(V+X#3)lp5QaF{Y#P6kAPn&f@UL-qUU6|YDUEYINMnbu=Vjub!oQ|> z$61%2OJ`FtN?A)5(n*K@y zH^X0M;AZ;U4cw&9VnSf}D8auD|FjG^za-M|aXS7reTRWhHSiq<&MknZ=M5_~bT;F? zF$4Ys!8r_0!@mwEOU6YzoG%*qr3U>f11~l3?;3cSfsd5+F2ldXz|SynF70)C&NgtK zDQNsE12^-#I0N350sppvb9~m}KWgA+zoHNUJ&xSvp&eOaqm?7nP zRtEec12^mIDg!s;U7P{GF$2Ca1Ac1;{LT#cPcq=UGT?tFixRs$w`aglKP_EuTwCh$ zywSkFVBnh#ywJeEVc;bOerE>!CmHZJGvGP00Ajw(@K4KtpOpbG$$$qk;8$h9A2V>X zJ-=q)W;(sH?z7Wx>a;NFr)Hr4qJf`dlylI)*~N7|RvY-a23~96CViuUpJ&joGH{b# z%j_{QIu!p&2ApZ2VL1HPXWER5#>T5%IE6nf z@A{$X>tsHVX)r~KI8cqL-;C8ufll)G0$y4;t3tnvD_X^In2aOK@KEb(`pwW0jaE>`N z8vjtz<5y@J&l36y3m+l4W8tF&4_WxBf>&AiX@cAB;ZuSywCGP4e36BJPVhPlKTGhX z7JiQ4O%^^;@Ma6YK=4)zFA+R!;TH?uVc}(hueIoQR|)-X7G5Lx?G}EG;CEQ~b%JlT@H&b2E(>oE`fV1zOz^uce1+imTKJ8E-)G?w z!FO1ALelfFh2J6T$UY0-DB(P6;rESofddx4L+~do{9(cSExb?gr!D+Z!4F#a0l}ZQ z@FxU6Y~lTazii=83!bp>gMz>Tq5WyvU+Y3O?Dwj|g6D;eQg`mVJL)aGnF2>3mo4=@$N>;C>6wlKx`u_nC(g zf;$#Hg`;Rf7JjPWRTh4l;MErXDZv+7`00Z4ypl$j=jQ~kv+%P7Uuxm!2;OAj69sR! z@CyWQweULWFFX%5({r)VcUX9t;A<^>hTxqR9uU0C!Yc*eY~ew{w^;aG!Fw(ID#35F z@EXByxA1EOzr(_>6MUDfd>X(ga4a_-f!Vs1g8iFji&Dv+_CW61lK%En*Mgd zt1S9E1h2O6t%5JK@Vf+GWZ~Ncue0#G1z&36_X@809_Y;f`vh;c=ywR-YT*wH9=7m4 z!8f>!8MZ(o%tUUJlFXCLcB_Ft$R_^R|`JYqF*R@zJ)Ime7uF% z39k9NbofgJpJ3593GTD-X2A0@P!tBm*9&me4F5P7Jj$jOD+6f!J91n zKEazUe23tz7XGl{whpc8)6hs^IxPA}g?_Dt9}v9L!k-Yl%fkBw-)!Lr9z3ZC7jzV{IKA+TlmX@-(le|NxWMv{B@zf%fgQdzRkkl68vrpKOy+N7XE?Y_gT1R z64_zlxiTL;Y~d#){e2cbR_GtK@O;4!SonCspRn*^Ie+iB@Cicyw1rO*`hyl;DD=-; z_&A|IY~hoI{$&gQhU7P4;nRfvbqoKL(7UbLf) zZ?f>O2;OSpD+TYc@HW9aEj%LlW(!{{c&~+%Ka1ve_mL_eeU7lz!h3{%n}z>_;P+ZM z`MGFzxQ|r$cL?5R;adeiVBzHdqUm=Zsc?QM_(2Q*k>H0dT%RK(ESv)DG{@XWD*XEe zKVjiJ1y_V{<15?wUcr5^)97`A`-b(4STydJ_c{yjlXv@^zf;23<*dUgrUk}6H`eRR zT=A#r^}JGK;Bs`O!l^cJ`qBJ;O%|^C{kB-R=Hq?X!Zjano}^c&NAu(9d}v(r<5gMo znjf!uMZ=1ZrHgS|X|Ye4zg!n%fsB1D7(ajTJI*skt6ZY=x2Opme7`VtvGr5;-ocV1 z)W&w0_lGBfu_r-krIKI}~$e+8cXS8`Q7#0Y!bG*c+kPAC=c|e{kaK>Q?bkR((PGI%&Ce z8CS}O;%lMk4Vtc8U3WDVu|6mE%&x?l!Pw*TE3*2Yq;k8wiuh*(WqZ~JD$Dk)TNLPV zvMOSGpogsFH_rY(h}EAAzVn7tcA%}sssBZ={wdrw{5bx9qdHjZIx5n_eZ)%kyu4?^ z8Mvu~Sek-A_U5K~=Z3t?}`4lKRCI zsP-woz{`9~04!Hh=1Z2{;7JLiLsY#;iHZA`wfiW_jw^A>FY^`EEP+sUlJT>p1yy~Tye)W(~jg7-L+faTqed^bv zxU?CMz<*XYOOO5HJ@v5Tnk-=&-CoiDrT)o3!gNhlzS2MXtopn(q-;9H(GK|i@ zhMHip>x6Di@=eweLe5u&wEqIZxwWzDj!s)8epmKFi1Dz~&v!fRq`qAmw5~@UQ8Nv8 z{7lnu@jF6T3wP7l@tba@opgUo*&@a@oD7kR+r63Se1+;KFf_-)^F3?Kxup9jEa5Grs%WKouXw9v?0T+oaj&z{0=(fbHu~aor znH+Vhw#v4s@vp*8Lwat9H69}fL!5J%#!X&thN$ij7b%bjGYhqNpUp$q+#aP|p_mXMTe7;LA zDK7oEYrTV*cD3;{8?Jr{aMgr{Nz!}r6qk@&)d#(5J@QZsx)P)gf4a_p?OoaaSM7Rlq_E8z4^PK za$>K!IyXZTUrM}%PVL=UlhyfNqpRm~!v&r1)qA^mzR>yJQg0UzXgc3JC%itbJ584I zsvbJuYlT`lgxdLDd*t~*yv7rKuh<*?C49yDgE^J?(cO80SdAwX_hIAX?Ro+Z>11l< zpDU4yfoW_v)Fg`(x+=PoSFv1FJQBMo@j8^4&UAx55Z#v@>S@SMz7K_GXwRt>@F2=c z0XBGR(Og{xVGkA|BDLevD&f&W@|}8Y@D3%YxoqGrrC$rGwFB|Fxzw$_@!fk>;^yaj zqYuLtdpwv^lONrcABfG(MPJB<>LrftXjGnLJ(7;}pdRQSQCHQdNTQRq!fMOu?@tK3(3Ji&M+H1I*^cdRCFpg-OJ zgYg>RR{)=zH?XC#*L+XzY>W4ISuEq6-SwD!Y$|#|C;pFiEDfRm`a`fe;Y+;}D+;T;6GMe{-ig(P zt=@@u6n28#JMpf2$iMH(8`B9 z01DKh14lGYHtzTqDod=M2ez9lrC0K7^yRQKmJ)-x$bG1FaY*cx8>As! z9W5~2OVEtRe^}W(o;&!=ZXH)#J5F`*ErP4~VCOn_t6*x|qRxDvqlx;L{Miqr&U}Jn zsEY}jlb{F)I)nW1!_k0d8YhahPNd3|PNV>JB0=>~&fD3emExhmIN!{11t5hMqd8+# z{xP-Da9Hrn9(On^`|B$IMR+Y0w^}~0h>qBlTRpCLOHNOA_BQAox?;=?qMzxnIExyj zG^j;s3__KcOo1e_c`%her>bucQ+oNo>zInA;ql?0S+{qeeqc1ewzi*a3#Q3*R@F&i zT^P-8;)R{@0j%gGE27=z%c*ZNa$?o{8P@JQP^i?b=>H}jCCKWU!5HNoC}xX{I`mK`>adH zul;kcNxMEn&=GAF|8{-rcm4c|_%GHT<#}(0_;tMc*)IMq@1Ezxzm02u8s9Ab?fN?` z{_89cI{(^#6qe!Y@32(RF(G9Au`aZKU4NO*+WfMQ{)YJ14=XvU?CrFZwm=FvPZGyh ze$uw%XEyD&56I)=01czYHP@Q2mS8G8^hl!VX5^5 zu&41q9Q|{|hlw|tf&N$qdaksG3;$H4cewCRCk{WhIUhLFe^|Nz%aMl14a8ez0@wZB z$q>#w;HTl91E2D3#H9}x>pfhYVxa=1Ave@copSL-C9a|r9`7of(v_mrrcCAG?jRi` z^PoH>JhgEN9p=?GE}4o~*IwTM^(QSiC@=GB7q=}7H+hCvf705r+S3TtBTA{syxKv! zN(QT5K`No#1i#@HrEbMl#nLIKwv2 zsyW8#v*DjeJ+P^)BjTg=Nzo@4-K6CMdRZb zFbp4s_}6%q^c$v!bGF96BDkHNm_dJzLI0S6o9XN~!r_`$hhH!KlJTBt;NKM7j(4Yl z`waSQnF>fh(ZIDlrj75(K>sKBr6E1{cRHO-8R$t%!}Rk%&uBL$K3;G=^J#jY;Cdaa z@yUYgu}qt$Dlv=Eof?48NLtE z{N;Q{U&d!rhQ&tCC=>Yv^Hr66H@{^z>q+=2eH?J|v5y~sIH`im!R6*kHZ>E13IX;pN& z{Ad{cs-G6V(QXfauOi?W*)$&W1@=n(>}f)hqpGhQP>eZiWF9fCXmlU740d`^O3*NR zkJRM`Myn2vel{7HN&22WLDfg?PSa+SO=$OFO_;?!`DOCz0aYM9%0u?;)Q_;oKbve~ zze>MLl)w6655LCkPttvM*+iz8ux!{%hx9EsW6qOa4fJe*%5>H*Npgk8ij7#{I{Qtl5na%Xq@c?O}Tue!g-B)_u6pEOld6nNYU%= zw#J6*_oX)c%j&(}hObcXtu}n6dhfE~tJM2C8{Vnjdu_PRldU#f>*ejR;TzQZy*7M{ zdcWU>N7efSHvBI2{*VoitM^B3xRzZG*zj+w_x(2fJL>&_4ZlylAGG0rr{0Hc`1jO% z(uO~%-jCXFJ%>JS!yi}gqJY4z%iC^+>$!}^pHaA;Q)v8og%=Tk(fF(KH8pnE_-_QbnGeYUaw4aze-yu#{*9O^Vj z*+9iwcX(n-?}`fXB3~Y5D6z(!KUQxG_t`^*9@=6{phWOqD88~B7sEl3=w`PSTU$C< z<#!BLRpK`XYvxO8a0S=Wp{f%42i1q6D$x?)x;U&*pNuceAFARI05`^!^U*R?<%O3+ zRUW>@Zk}bu&$423tid_A=ZGK$p$Y+SDshQd4lWlAfJ#8}KKJMzw>9-Z5b6!kz&h^Q zGO6sCR<{@o6gpfxE9Yzt6hO5CDiz+Ecuh&%TQnFr&CwDIOakg@frf~MJIAfqDo^^} zao##7JQr8iNo6Pt7YPnXkP1|T!m9MRTsy1hIFI%p+gd#*jGM)m6vY=H9t&$iad>ie zC_bk&zNBRIw3OZe>7idY^{8{db#Ku1RG!b;J)DP|U45}dj{FD|;>PMhrT1J|u@}>u zE&}#V7xCNjXWmv2jC~r6Jr{@#Zdzi+bF9Xft;Cdt*6!DHp$!*`l?S1S|XcfucQa_2`Y^PRl!evAqPN(OgTAhnM2{`AB`q-=ResuKAgJ&C64 zu_EM;N~PS@$d=Y}T)`TzY3+X@;z_AjQN2MYcYFhi znoRHX_p$-#u&8S!VF|_tM)#!B*VHrl*w8b9l1c0XAGFD0KS>^kkOVtX{Qio@yzs4l zdEu`pgS`4T7<)QH0SLr~L$MJZu5>Z5B~w~cM8#h+|Hst*uM8hlVA_k1N;MenNGXat zr@jbHm_*I{(G$)!i+JC6AHviBi_N8e*Un}?FKv_>Be7S7vdMYHR8GOYk#ABzg&K%O z6l9D0zty+Y2jrR`Y67ue`l9=s>u&H4Q<3*@U9 z3dY{YhM{2Wr>^bn;H-F{+}izCo-ca+1lK+Oa@?g_SxN0M)*CA~P`n!0r*j@$+NMxT^=Y$&ji zax1a8CSB|izQ^1mkcu|GxCU)Xxv%2qn<}D*ox#TE{8LW^WBV=VkAe*E?$`5z&H*S% zx!qE)FE|9}XxE|x?qJ101eGgL?%KJbawH$=t<+w3F@31(#e2s^^N`kS^DQYG@ZIcN zEZS+@fykRX`*Fqa!(_^oM2UaawX<%{Xt~rQj0cM1^Jk%@#C@DdTyKr@6>L`GtuuQ~m;GY&EToUmwR1vruQM1O zbXV+kCGMy9@#~@YCXx_0R{z>J6mYX2z;g^`Ih@`@!jgH z+q(n0a(0JwGl6d5=22QAKSHoPuAMan6|ZhSU8XA{B!Mj-40=z)waxn^tyZN2Z!5mZ zUG@xA!5GSip}NOrzW)VR-#UaYn3#|4XHrr0Nb(ZY-`L)f3Vg7of4Y6Pm2s4kXsx2P_vJ++27PQgHBx7(`N9XSepPqdLp&yfM-psp}X7dDxj zc~3CSG_ALn?%zclzHDSBoEhI|uEnMCqV20m9>p!hcWiNc;A3s1klPw%gkuMn?cGH* z`7G}#9>bsI;V9d8(Xdm!G4@{a2PiivZKb*|8>$pFVW?76grVF#1ee1cwo`hu(ey!N+Lg`d?8)WJsdvx~ed{pY2`|?~)$)@SzAd*H=8f>H5@oK~P7ZhO+(?=(g`g8()AS z2gYupB9!X6$P<4N#-MYc#H?L!{IO4J!gC`iTPn09ONw&WV%+Bn#y25z7S>pexDxyf zG^ta%S)Z-kn@ZyrhD_6~xVvm1l&C7wT{rQeTCQc)In?aZ*zS!Z!Ot)_DBLT6y+LWg34`?uj1B{%^T*&H+vZP zpz}yDeuD~k_?HOV0=KUm;ahVVdG_9Znjpe&?zR92VYNB>Q>ALy|b6(di6G}9__ZR0)^otCQoVudiT z29M82`Nb$H!Lih)(m>gOKOQWxqI;0MyOXEA$JS$h4WbRDYLqD}?!(kz#)0H}82gOe z&&FEBN9Q+#8haXds;kf$qxq2*(Rg{Gla5J{n#v`npm^rQ=N9y?%g>9rde=>Is7?c$ z)!#)UjZoE~LcZIKL$N z(Mi{~c9aXNv34oT1v<7I4!?H4E@!zULOCe{VQk(~*EX-DT@Kok474*qTM`eDZ>(~; zYuo9Pd=bdq>@y|nJQ04dMz|{7@xTm0zR0!hbv7}Lwe=wPfIL@{=Sp(dQ}ewnvKWK5 z2nY49Z4}190ruVWl%B#rR$1zLD&QrP#@ZT?l*cNYTs!AuG>%3Op^Wn+l}(-PSzhq7GoHJo(jd_ykapSLQzDMGO`c*JlK9Ge~2N%=nqrvDZ?|IxxbB9 zqod&*6~(DEdVGVc?~4fH>y zDYO(#pMUBru~)&$Csc=beE~Qce-UmqBTy3pR9%ehDKw7-nE8Ulw{>~3pTn1uj6(zD z@0-bcKZm_HwPZkk5tFJ#3+fta6GF3$aCpR2n3$~%uQX^`Wp4j0NJ$_wy^_ENEjjQhw zxQZU1*0RIZN2x4|j3vuDTFqVn_=xcF6V$+m|FSmYxz$F&(CB?-bJB&Aetw)nJQY+I@L7U(}ZI5CI=urlTm(t<6aM-dV z`7d8l{u{l+) z9}K8TP9;{PkXf@?ZC!oXqvLRGe+~hf%?8lbw}=4ho9pfsc%RK{|6G0llnX00^IUxe zuv&?Siz)MET;E5KMKWFC>N}Xv^u~sx=V*CC&=k1(-HL?%(TdPy8a@|#kU`#M->sB79K5o0c8+^7DSV2u>;BHkG)0?5fN9ETH!2lkN74% zL0N{JN!X2ioqd)F*1s}^zaXrCjU1SLh6v%e(D4cf@R+lQ#MVzZ=J@Db*PY7|vFP!c zuD+G9Fc3#Yp*obToWdFXzIdNNqR9gE46ZwQ%>%_$Y04w6zHb2(>|Hw}7-AiPNK3r# znyGl5J%Td0f@6gp(k~_+lqw+~bM+rX&ZozBx?@KoK+yOs=8Gd7AEoMh>U(@KdX1;i zjlsu5gZ|>{o%oxLLb0$0+Yo2PyG!D8F*siA!CQ#C;7alRMhE_|`4RI4FEMWmhRs$B zvQ-cc;Tq%ZIWL{Ylq?He5O{|#lc#L z!yh%#!!yWA&Qv+9^NnAxX1%ik!6U*!=q2jvJ&;wOh?^9bwiBtrBA zhIRB09n2Ld*Jz!>#aGaWtIu{g?%3ewJ(A(WyQnTkbhhv&EC!?Rpu_-ULb1B1OS=Um`r}|EVOR5?mG@MqR|uQy6&n)b+V+?JYKM){~1@`VkT`o zL~h~L5P!aj>8{U1#7$8bU$!nPMTO)17i@F8Jjo~DK^iZ`lw8j*R2kEy<&Y0KTaJE= zg%xWMqJZyW8w3ubBtu?k#jTpSucQS@1y71Zk><->w2nwHUA9@6lTTnY#i;XsAe{&P z*t_Wx%Isp>A+n27J)+QBHN=U(9H9!t~*W?AP}xT>fc6BT;b~DqMe>3zzLnQT&C(|6um6N&a_E| zeLITd$VU`1jY;2;Hznj3-m?WvKKwhG*GTSXSdmd1#1`J<4}XiW&BOj`xziRE1-`$@ z-b$oAWwc2BzT!s_pxgjt3==Uo((6W6F4mV8m&9uFM|$8T#y@gv^oy^5xMzYRC(qTl z1F0A&d!y{w$crL9Q)Or5CAI}SLKxORPDNaJi{aWDKbj>>n66>`lh3`4kV^aGR2pE= zerRA+SSI#Qz##7-izm_4I+AaqmXCg3wIe<@BoEV>5V<9v!N*iX(*7GEMmo5Q*+E_# z1pja`YUUw-d_!LHGN>Vo0aYSYToc=~3rXWhKJq4b&=!h)D6$B3-t9}w|CIB|*a?$)^mA3NrNOUx3ND zCy%1-Ni~T7o3!};c}R6qvHe>GjyJ)!*Jb0&$+JG5LPtwv30`7*L@Y&-NqrMi4Iy|# z59p8mf!@sm=aF$}NK@m0hl{!Xt+&iuXq5GOc=9S_;K+5DpvZ0?&JzfrARYMyVIa#; zI7aWW60%7Lg4H8#C(loQ14DJTKKZddBj=-Vi4evHM{Yy1>i+t1(Wa}m7(=V0h+_eJ zt;ihT6Z|$Z3)Jl4Bcpn(b(|@i8f!&|2crAWkL8U1m^@iW7#5hNHjCCn)b&zv`Tio z#^6?#mc1a(C&7xhJ5G_z5oCnm2pK(v$tV&>e0q*ei;$4}FqvhuD=6vR7Iq?c?Ar=V zOWClFCG!PsZ*<6+49SpjrJ(_BUGJv#m@!<0ik51FPW(zVH+`I=A+<(c;BYs!J_20_ zF~!5l2^dC5pE;lynFBJe^9gyd5PpdXbU8)tC<>^CwdENnZl@#T;1AA$j2^$z)%SU% z%WM}jCloz?(Ua(k9pUQP6r8&H{sC{UyI&{81OfD-iI=mUz8qM^qVqt@!A* zBL1S9B8~jhZHHgYD86LF3yuYtS087q}=N2I|H6>UOJl_wOoBae`x#G~wYBVR&jQ{#!~@ylF&w+hP3U41tS%f*qH=w?SRY}qlJ z>FMgDkjRy|5C2b6fRfJ7kZc)!v9~K-JM&s9a8}30sU!2G7igzcd+3i1`(wYw`ATzU zA}?Lrc?b)R;SdRmJ{T-TADm7-a9h-ZX&FZgD4D-SMbMozj)U13h#gPUqIq{kzCH3h zO3;%WGK{PQcTquIeViP-wzJ8fO=*{_?|L2w4KBZ$|nvafpm0kV3Q1V-)-M!}=u04YehWqjG&!v_I(MKM?U!0;``OFrpx;T8;#x;1J^msCewU1wj$w+0S9j zrP@t>rY+WL)e=6=v4zr7T26&!uXSo27>mGIc>NGsIX!-P?h^%&EYH4ZUNH}L5d*;F zBW(EPYAn1&EfWH`Bd8fkRxR}|i-s>YfLSHRsR*k$L`S zd$CWGcOi%3m6+^pDxEFZo&#}Qw6X*}B$6`5FH&KqXs^ylk|kZI^5;2T1Hss_GMulw zi*-^6VAXgEGw@C!dgYLuAq_PShhk9psB$CpCj+q-j6pV(;$8KJ0lUv^Oem+9d`M?X4Ul!NGrW#Q#_oS>X9yh`O9+lN%Qx%X$X z+l<03=91A9o1}a;KC8I@WOzV0k&%dQEH0U@{0(0vXqQF4mm2w?#2!laBfWUAj|c_> z2Ki%T>*%XHIFu;DK&tq$=^~Iv^y)QYAYwiGZz8-YS=Z$Y&`Fz|zP|8Yid*Cyfo zP;&Gj@-kFh(*I2O(s*966!p9Aat*l>@gMxGk7>I5XVgyk1Pg0RzE-tqf>+STEBPY$wnneZb;JrH|HlRem%%A$mN= zb=OZ&oCIHA?4{%#g0HKOBMmkHCGeS?Jjs<9v@so`A5C=iZDz1AsI_9rG7du*`_bC$ z87)K;$o?9NTF|B{jjqd|7UI4Ul?+fb6Ek+oDnUX(;zbIwH$V>Wt@1mEl>q(-D0~>ci%#Fe zR6ELs9O;R*Tnu1e&rtQ)bwcCSk5z4sauxUG5Qd^5vDl)aS!-vr7A~$w32EJ%nm_ma zk}W6_=*?sa{P9-|LsUiI!XYd6T5Jzxo8L#-4^+JGO0fKJobAu4_XnoF@84SQA6dbo zu>&b|1{1{9|4VQg^qx6kYt0!VSw?;gULnSR8qhJhbEYx#`c7PSjqiRSoS9g;o5DGH?Jcsa%?sJ>` z#d?icr%CsRIJC{j@{N8`t8gx55QG3G5F6s~A9}T9`MVcTk)-(WNb(_c2LUQ0axnkc zA5J>aIvw710TTwKcwo>m$j~D%5tH*7oi8{LmGe%G%DFl!Xg)C=p)lRe$gqz}u7$7Q zp}DdJd5L8czRdbHKONJb7@YpC@VV?6gaxwLT^Aa`K`AWIl)l8`91-SS7a0`3#LZ61 zGG*{h`b=w-EY>LH8zIb!?punE+H1yq#EBA`N*0gd%jmtS@lLH+75-SPu|%eDJ^N7d zfj8Jay9E~hJytlvBg??N7aYKU%=$9)(AY>FMX6be85sLpk?^U3`+didVP_(L$oM4t z3NG2mg&=oy_(QR55?L=CaY~FBc|e*jeX`_HNNg*4T-g{?@*o}VK!;0@EG7rLFEGHt zWeMWa1W})OBH|rybFI*d%_tTEKBzy>j}7@DWGj%FC6+6YT37?Gb>ooDDrPjAJ8B_d z4+Ia@)LS4JS6L3^Gepf(DD0sjMINE*c*SSvU|8&6y%f~#fCE2X(1Jj53xWha)}RHN z1oX_Z_>#|;Q0(F2gW~zU;$b|cf9M%dE5qdYgj_w`{ZnMN@FT94`5?h9QR5&ep@Ls2 zQt>37Gt|?=`P-m(y%Sgotd8V^&x48PNF?>L0)pZ@o+!Q_*!f7kh?V-XRCFClD}G-w zCBIyg?m2whm8Aq@$7N0y?zC(-8Kww{cQ0sD>~a9m7ezIHSpb0($d-OY3pce zUN=?R#mx}P-V<)_Qr4BtIH|iK+}WM_)DUh~b{vTk?(W1fhnLR2)B|>xwsl;Zj%LsL zj&Q>|c_&3Gls%4~=JpoHEbc|TUbvYyZJObzE!@1i2jTKGc)%TpvqT!zODsrxagUk4o)R3Z*x26LgVgIW5^^fC!7+=e4*YuKgXgx$>MnYUFX7f^PfufK zSF@+H#Um5^(u;d8bF5l@K~Gy#GeU~PX}ZW9rlZrdrmd$9`Qs7U?4fH9(^~j! zdMoG+qK0TfCXC$nAM}cVQUYRaKf^W7z z6iJ8vWuy7e!087KkNK2Gc}|)*E{`XIYLk;gS(x4Eux0pUC;bn-kL7>#hR=8vO4jo= zv8J3lUy~ibV^N{|Mkq|MHJZV9m{I=WK+0`7zQUqAbNz*$XkN~6VG)kO#2J1$Bj8AdT%6#*ll_nfn>F31PgWse0(X8a32m|g~xic4s zWJdF<3rhu!K9ht!syqYpCUpkpYOt~9)ptI!?ISpa4} zaqj30^=%%%-G~&=y)$PcxSfaB8ujff{3g;fROm%|R^qz{P?!4tUHKj7lHOEUBhDq2 zXP1@(zemx$O&X+IBF8E$+Qz)SGq19+Bs$J2EX`RrsjvhHN**Xs+|tW%JHFq-=DYA8x%iw{s_p^Wmr)Me`2-M1CO`RDK0g`Q?-ORg?2b#%!5485vr6 zN^Z>p%XY=z#V~^Z_8jm}usm#I*zRO`h>p*_+$n>XDgsp~^dUHTP`Up%=B0>RFqJMk zZn3%oUeS0p> z+Ew)sW#Z29B46hg4mfkq$BDZcY9f*v8$NTP6Ae zuQ>Er^aaJBX;-w9=-=Gv_&djaxv*!_6=)@g@I?uM}E-DK#lhq3zq7O>HX1z14NMtVh6An~hxFkh? z^7#V8yrW?mA+DM_Lc*-G`Kxi&ROnZ6E;xDqx$ev0mi|+UZ5r+W4g6>r{i>f{e9Pqi zQ8fs=ToWoDI{q47pxm>{jWJ)6Z&WujjmLa}eF=UfIm3p#ua$uIPk+|$`q_jJbkDZi zG)2n&>spyUH(o7W-mK*c~BkpqQ|_%XzbzVyFKirYpvwJ!{OnYB@CC}m*8jjpG&=& z{NGxG4=~$RA0XdO^86lPkQ=O|yK0>J7{T$iU&h4Yc=45RZE zy+v@P@;SVWX%te6FWI79pXYDXNdR)6wP&yo|6h5pnPs~AptyOrh zN{U}9`h>#kRZ@t#1+c$UxITwd%q4(5sPGz9e#Q777{e>ljTsLk#`}0aiyv{1!gV`) zP~oKtzYy;|Rs$j8eH03*i6c(Pq3epE&DF7XxPH--1IV#4&| zo#rNm4__wVb$Ot23i))ENL-ASVC9`?#Kqy|co*YdJefblA7aM?qnnpC3Lj9oPR~sW z*Zr6n1H&E1Cgii@i-L_qj9p>frtngQi*YdUzfyP&3pR}I-u_zQ!&gaMj8$O$p9&vP z^r|~`u-uFAEBdL@nS(2dPQ>PZ_1>vfNCWRLOCm(He`1$_X&skT6 zSu<15Oy{hhEy}5_kp;cHb93A&_aI!L=+Ck7zC_^TZK%U>xuRFekosP#=shV!TCP#_ z+#+I{>lDuR&onnEK9&i>?pO4SZ1`M7|9}mzQFyNnU#$4(c0_+(rtmcyP|pU1|JsJH zRQSU-e6_;&+3+5PAF$!;75)tyzD41GW5fFu{?9f%F7SLC>TrBR;Nw&Gzi5L0rub~t zfO`Io!r!yu-&HsY^%(Qd3g`AP(|ljy)HpQFBLYXcvf)2e^d&Z&ZZnF|5B@2FG7X0cg_^d2=C<}f|7JO9}d`%X-KMVfNEco}b z;QyWlAIO3q$b!F;1^-PJ{QWHWr&;jH824n#$IoTKFUW#V%Yx6$g5Q`0Uz!DP$%2Qo z;FN7;iq|)?;P++0AIySN9Xu2Np)B}|S@2(H!4GG_Kg@#XqN~dko-?xGU(AAEo&~=y z3vOk>mt?^kfs6Yk%4B;bWHYdKW}&B?E>pZ5`VhlLN4U8sjCIPe1FLQwxbnB7(IM^z zuG4Fmj)tb&B0XWT8i&QMo@s48-3`-99UaYU#qt@}JiFIR@M=e6Yjfi&v6eXv$0UZQ zT`Q5g)eYgsR>i5Vp{J*9WruW9RzXH;kyS$Fjvm|#h=o$DtVP!GbDj2l%u72~E4v%o z>!cSV4p_0o)er~*7dRD8TT5GWdlQyE)0`b*iIU5aDje5>sG~`)3ezUy=4fwjSkt@$ z-mj7lWC97QFs`Fua$)ta$AQFZZ|ey=%vIB#NJ~rGx@N5LcJX_+W4&1L#YGrc!{t)3 zV?}4vdhx2=Hi_)0!!l?`o%B`y_pEB`>cBE5ojNLOmn^EZrj<><#(|Yh!2|5e95Pu2 zmA+AjUo+XWT%%p=%YZ=>>!3qT^SAAbiSr<7ZI0@;6AhvWEl8^ zJT6pOCY+RsYo;p%ARLv+>qw+s;P4RS( zIbBj#@J!vMbt21QvtV0G$S*ON2aTj*#nrk?p zSJ&N)gFe?ZcQ+%41%Nw5q@|}h+}#|Gba$u^NbTti4oFE*S+}C0ySuHqyN++QbW%qTsWRsuU241tMHM zP#NF{NxHH*tf~^DAS!1ngXYzBL{_h8?pD#Kf8x5Ad2D=CN{~wxQ?08Tl~wYT0b3_u zy1KDquk39dDQj0}Ps&bi(BhEvd|4=bT#9z3b5%nt*8Sxt@>tF%hCA7YTQela}$l18hE*ZUuWRU3_M`q%MHASjA8hw zz)$n9H}G2w{B{Gs&cN?8aL(y8A2|<@{LS#l@xH{(@H}DgnPu?#k%60h&cQg2hM&#! zxg-l-X5h2oMu*d9;3j{LuW88N4CfCGoU#wiN6TSJUvJ!zbMe#RFE#La2JScTkb!^Kz~>wI zzZm#B1ApAW*Bkhdft%yK<>!M4hT*&&KON3>23~LAuNe4^2L6VDFEj8@41BqP=c;u# z`n$luFEa2N1HatBO+L>X_)P}=h=Jc?;7dJtfuX+}@YC`AUmm=`5MPL&#y|Do1%`Mn zei|Ql0a1yY;hAFKW;v`d@LSH_K1m)HELxzsJD8X88MvfkzG8b6J{?iO(|dK7)Qm7Cd3# zW_bS5!0Qb@PZ_xB@8rwV;W7D~c|{sG)5l}rW_{dj;O2N^iduhXz34Z>Q*7WSeW`() z<+`RA6V!)eyjas$81h}Yj4xXJ(D4ctuUqOvr9 zGksqCFyvE*pXPH}9#M&#<%jEg8n1^%(_b=Cz=Ds-{}Fc@?=HTpZe@TZ&>z|d|=(YYC&$TuAX#KOW z4cGc-_u6o+e@4B7F?=S=cehb~NTT)6y6pIAlKvqZuJzBfDkFLDr}fXo9S;g4uJzAC zMmZ#|^~tu{aIGKqunpIGU`ZRU^~TD_k!d=ey%);&J{zv})$X<7T3_v98?N=PhV8iO z*R{eo zW4#EI75lL4Sd!m{D!t4KoDEQ3_JTa4VaV^!=O?jU`i>K%$7zF!9i_ryw3nZTqPoR_ z^x06%HL*i*o>wU8G5+6_3}59fIq| z8XUvgh1(EbSNA5w|B94W{E>rrfFQjGAIV0{8tNCkU`^i4A`ssMPsE`(IGW?vh~xmW zec3H1hY_Q6`MLQq!r~-5bq5R1h!ocxBB;@~y-ij;@8S~j$Hsn~eCa#+veiFe#rC@T zsQ+gr9ylO8#~-)V=jRW4CpwYH<$NzgL2PA`d-xVa5%hX#1JcE3%aFH9ye;M1px1H? zc|+0~bPjo$E2ORG6SRIOXmFXvkar!C!QNsNmkS1aFTn#x28fV^V)u*Gh(!+qm8pw! z0}8Cf#$vZ9sE7wn;1EYv^8C)k=g5m^GNXK?>?P_n)L4|G2-ZM62BVkKC)D2KbOSRK z)tfxnPDJk|Z7g~}9z)T5(!zk;p{zqu7JCIgkhVUWwjM}Zhn00O$`#Xb;8U9ZSe~}7 zOIxk9)tk01Oq?Mu=xhez_Dt+8`L4nvWbC>4G~R z7|`6&8ClutS>3$4vm5fk>dMONJSB@)L^{Het3quZ4c(od8Pl$vHvP)!5doG>mG6wf z6#l_DZ(rzeu5&v-Uoatm2bdQDJ5PLp{yd*zUv$p5uvJ;?`x2=L_?P^a-rI;xkYbN{ z&NE_{EgWHoqZ=fxq=TWIhWz!ozJ!3_-$M3cZ|%LrVCL{o>}AE?$td?KuMwN*eV}Cc z2KXK3I{rx>*j{+kWPUFOG)x>u^d^E2HvdL*v1v4Cbzu=Ubc4`~?@UmdAE3U-{l_8h z_ryNfZF#}e{$oG3tbP?cU`uWLJ*&ii^N`~4JQ6Y;hD>{pGbJZT!ZkbL@ zdm5cij%hg5Biyh8&v3VVwrX2!;nXEAW9l|6KPR>e7ET1&2)igx(fg021cuPr=LLs zGf8jB5`XPZ({lb#OeM319reon{Wb?W{WT%w8TK^gxBaSt(e;b@N4MI&&Oc_eJ?#NG z^jx`ByrlnZ!O0kQQa?~2-3%z^d@aP!?mwpwnfz~61$Dd4L))wLB*Q=H{*rqECxJir z^k^g6YW0$7&mRX!q`zO$i1r)yFDl%v3V>)&flXC-jlxAc3XCS#k-2c?rczhZ@&6iO z9hU|STc*8(^k0X?AQfi}WWsOCLeF)gO!RG8@JJSXOBOtq1^+g2{OsmI0GaSdfm7$Y zS7oK9d0OGRUno%wUsU*jqMxJiLwIJ2@8K-?AIJygVOZs_=>LH6wiF!(yrztsxS~yg zuz0fImu11Z2Qd@>8sH4i{i>)uuRP)L)|vcm&4RO!73rz^9ZT`)Q~VDoJQW5dq-dn3 zbmOYJwvIL^Ue`gVk{audmhNU~u;YVL&=wL6Y8ykx*{CEVPbF?AnT^) z6@qsFO0D7Mj;6|>{KSAudsSUZi?_0la6@~0=Zf2KT$#|Vl`6x~8Fz%+R*N7nsDmQ1 zq)-aRtqnb`Wb3c%ZdltL>7cT#JnpOx%Dqgs#@1DJEe%qCnHlYW|k zvoF_tzGUE3o6-372F@-};{gL_U!?Jc2F^BG<1F7a>|4*qPvd`U(3|OVBny5iBMQUE zx%g>5D-4`tFpb}4;2dXbywAW*e@$Im6W9GN!+*ZP=MB}_k{$aV&Ht#v*&kEALF4*7 z9@2XZyjHan#4j-LZz-JqUTENt81%&k{u2Yg*ud{o?F9Lo>2o~+7(UGS?lb63+(Tj* z(krLpeU|u7we)r8$O`u_t|jWhQ49LYgC}LI7EkYSmA7!X*90e zXDz$Xc(028JvMsX-m+Q4wuF>0xNOEXrDbIm6*I~`p0d(wrt`nFRQ!Kw2Bg4Omrwu9 zvS2O$W_Z2)!+!w=lAMMot=P*}V&OUB3{-LKDa2(wp7}Vgtcku|5{Nw=iamo?EQqb&7Nrm1nxuWRR$ z{Mxc#Tz7MRIFI*@_nycLpD98H2EXSu6^_xj$iL#l$f40AJ7Nc{8176zJgy99z2f?n zil22~LcTa$KDOJpJDIclwQ+vuZX6};zxJdx^=Gh`?YAo4UGwYrL^yc;%qO@~dl%#m zCvlOyy6c>`6Z#!v>TucIU_WHGqS{prou_+x{? z#{D1u3>VG(6s{c3-{Y#8GI7<+=mdtF$CsLS&G4R?vXf=UaJs5LG5_S|o25(^668|L zc>;I#T0<;{;`D3Wo9U1J=%Si}5V^#0{dXSjn8bmel{lO~??7+;#HXx&h++3f4l+>D zLEJSxgiE83Zg~iS+jJ2kv+YF%n8=j)_q-2w)%I+w)lM%Md>v$*5DYCk> z?2nhCNB@9}S>IcGjc9>xMlKJOJ+q55DB0A+mUgUT3(jp7T=VpY#8@Z6#79=1$rnW06QVeWVw^rcS6#8GEL#yFtphe$t{ zCpXUDo*SKTQ(^s`<8gvx5S}fVob$Z!li@k4=*#)ka1ea+|8P17*U3dcaB?ZB;xCS4nSe_7?ZLD`h)BjhG|N3 z34X-w@{v3>W+IJg?0zxt$@9;3Uk11IzZ5^yX#fA1Y>cu5y0;s>&&iJ4X%~QinCM#! z;!+j=5}N~^ewuVHEcP_vw^9xeVFtv%!@=}td!XIx^yfUpo_2JyR22xy-b`Z)PR6j4 z{!tFHVZ170l+6*c`%f&B|HtV7Ms(iND*o;M8=uBlN%xnOjWKwpY)rIuDg>EiPW+Tz zrgdszXa4B%v|=kB#l%fO*@a9i1MUMRWEJXLm3p$=W#V(QqCcSMMEeVSgTi%T*KO}A zg?m-Tc+_((@J!*~ngtg!Eqf&Z?cXc@_3E2wuYrAE;ianZi*^~*8X6sq5GU{~fo>%~NXZg1OG>aL*4VY4f(Gu6Ztqx0p$b8{b=lZ5U0bJx8>V!o zvJO&?aGR73k~uBQH=pVGaoho z7Zh#}=S3<%NpJG86wb$42A}U3^k({q3++H>=hI}+o3a)UXlY2#pEiDF(RipH!l7#CZ;>$>c@7T2`h zw_h2#JW+jeHb&7mti1pO-6XkL_eS%gnB(koi^*$RuZK|CK>8glMFR`A{^BIY@=0hH zyzM-&?vmI?LcQt5*AsJ3#`f$!@x|yf&JRDb8ux?}dA-5i!?|-4dE@uS_Fz2y;j0w~ z!bf8t3BO((PFN>n2ht8+fP-(Q90;|b^xTPKeaHsHHBIkvBFC9p5w2;%T77i*hUoFL z*35G4oIhExE_*>RkLNNd?_gS;n9@rP1l*o;z>1%Ti?P~^^ErEyV|SqkrPNd!^S)*| z_nds)wR6E_D}I&=DW**q%_+d8&4LkD_`zuO5xOItK{Vb*^9`*R5Q<;o!;SBg9FYrs zNV$R_E@5#8p)(^VNj}_)G6}b>LUkq-zbF-v7l+}q?;C0&`xnWT$iqFaC6(|Q#w4=v!gRxJ+Ajj3$g?Djx=v&FJ zi`#ehj-H|XS>_RwwFf`}EvlJ;d{^HQl%VMG$&uHO1@gV&Um}Si%cyimUI<=}*`E(l zEUh7eI$uJ4<(t3qmef-Q4AGNeu}ko>d_b9syM!>W_)AA*S~C>MF4@(+}Zp25&W_msrDhx?DY z`u~~!RP2e2aBhcc0Bt$nEkeeExvra9SBFLQK@#@!nmZ)O$a_dH1Z*gf&t?|YZUA)! z7qI1q5ZyTD)B$(gm(Lqqz*7_%#rD)%o5xzapS9NY^$zA>e=Gjs+4g!o<7)~kj=Jt% z4C~0h;1Bn?yTRRoYu#~&=IFQZy=-9Q8~h?w192yql9w6v2{Nt6+2PA+F6*{z5L7)F z5*nCP2Ro@}y+d9xAAufV(V%xS@}Y)OG>X8`U@unp+zWNU7&U2764w-26@%gPTs!CK zIs(awEXXOnyT)2vS<{0E9Kko}^vO^NbscKlEV~7oHVo$oe#V`giK>$`s|#?iXyc%T zI%4e}&a-l%zo_dQ5|Hvj=;Fxw(c&uEEt2dS8{QpsI0j>+%~<^Y=&Iu`0UUkx}^jp3+xT z$+j1IRv*ZUd2@dB^&6rma>E;=kQc7(e?gIiA(;Dp^8FLkMcO-><}d0c?kEi8S5y{7 zj@S!m_*amCLJt!Wp!SnaAHFNbgrTSTC7tr5+kq4se`>*;!GifL5@|mQCdxeurk2W# z{ta8~RQf1c?gwnQhlLzh3UPmiOesfmgRI4UdRFYmV@e&m2gvl!WJBg*BUVDeTB#Lt z$7@lX(5A#{c$-=|!sl~chO2E~7md{sYRk%6cY0p2;5hoI=s;58k#}_eEUkjMxHk4< zgry|jQQ+EnBij0^qKcOxxjK(}nE9@4AEQ}etF(+QqO25Uzu+a+P-KM6`GDoz>#z7A zuytecWRb8ghPwmH~zEb=YHXqPjv)SP_cI_;IHbTx@yP7ySc7xW^GB(SJ~|hNcwa#Mkrm z#eYGH;Mg#p=MycX@5Q(L=pujTT(`t(e409e`Dpfft;F&@`JAz5F=j1USfL#nm%9ju(Rygyu_k!j-z)wti-HR$nZ-bRJVqz zJ#0*ds*B_!pN}AWj>y50VmL;)gvWOSM=ORT{*g%K*YZ*=ln+T?Akx}b@$BYuUt%+^ zpvUFm?@oP=G*;{*bT#gL%lQtwGhB6-UnJT|B>?B8U+7=n5rt*s9*Bu`dx2DwN#?s1 z_ky3&g6nK%dBz=MvRnTIs>FA^{QyF%y7iM7s)}y?16LncQgIVBzn|`t*T4S^UZBXJy~oX#xND1E8lgqH z1u@JD#&5x$^9Nng=a_ydRl(RTp7@5M{*#fU7(@Jkcp?Hx@sZ?32$NNjjGR6alg#_@ zAb-f8EwCAhyl+wT%CSWZL!1CYUx~(mI;Onl4*e-~NAdLF2?=e$L+9v)`556Pbt1fI z%W}|e4Y=as#!J~Ts$P-pybyuEl@yLVaFk+*pj)wDjr>X!3on9=8*8oD5Lca|LmN}| zXNWEl*?~N(;yCg(z8D(OPr!RVt0}8yleHFVm{m$>q!4M_S?|j;M%&IsMc^Km#HQ=3}2ozye z;>BT(s}cp@w5IMsCI4n9G3%$e4iHrj&-yOl|k&UHEEId!%)k|>Pv$kBD3@yf z@Sd1L$oWHzeNhpX%!H=$%Yu>CR!2wlg$y$Vvwu5`B?hc4ok}H|wp7)sDhi*;4n|E9 zV!OrX9c5V3Q*EHgk90-G$SGb|(Ep3r!SFd4y|@##C)uL-gc=QExH;j!(h(aK*FdlNwOn_cq|zIGk%)$fy+6K` zL-EMrM5WM}Rs&R)TYsYc3#cS-`JVrsUtP=Xk6RpD`&|Ct`CNft#gbDGMvpt!zKn)H zpQ_es%q;6OviN-RNleLo{xD{WqE&Rh6K~5$lmdHP{#RqKPTdnd;avMGx>v4QQvcsJ zZ5=pLuC2+ls(HN!SJz$2X)oggGgUrBnYl+{yy4nj9`xN`Ia_V_YXv5E0x=6naB}C^yTF7O zpLuOiXytczN{xK^r0%{@##gWZ{g5oN`^$WLrb@d_huq z#WeP_-!)X?GJQ$g^U_vfy8{2H{->-%{i*K11hZ0}`ww}*)& z^%qLQ62+Lw$fRIcX~Yx&&+GA{|I_g^&3+Ys(e@Z0NK2!i^Oc?QdDG}K-R$|L{nyX0 zz!7j>yTtjVDzBAc~cd2*Xk6)4kHAlv)?BXw z?nF(hCjm@}e2D){`wRFXSFE5Lgvy%f?h&rVrgKRV;&Fqp=BM&cfAI?oSLer?pm?1i z*00Pja=0}?-2Z6ewTk{?6IAw0cSkJ6H{HjYPB@IKMVbXihhTp7h@)1JG0R5Q}m*-gk6lC@H~)(ei*n|BUk-Q4c=)uMkB7z z;MglrhvNf<->*76UB8{EFr?Q-MT}cOdz!*aRTdvm>35FC#ljcPYEb+y1fD7VsVANZ z_bNX3D?WPs!n>73_!Tb3F!Vz${$a_xlS|Mz$DIq*ILTTbu3qZkrQ$e#x=q|E-V|BA zdVL2@wyu+#5_oL7I1HVC;>dGx%J~c~MlYyqY;J?@|H|odX<9FQbKe5?5`yApES5(a zsQWJz|EswQo;tofwY?#=_6`@8*ik^YV^_$nI-JbSzzcuJ?k5o6xF9dwgHBq+fz`^6 zRdh^zByQVFLC{=(PaTH7g8L9mCpaU$LGgem9Wn#YQTfPhW}l(guqzGR)Wg^1lk{xk zHNCmk&Ng4;KSsXNkltL|{+j9ph_i3d^v@Z%8J-eVpGfaE=%*Vv8S|@JkGOivtH3`fG-h^F|utrmhLDI~Inx z$$yD~Uy5%!Jd;#=N%~>~FEVg5-HHvIV;9Y5s)3vS)*AQ)2K`qI+$;~@HE=V&IV^lI z_H^(VxLFQw%7Smng1?)kKJGTkgITWbGs0<>+aDUZnVwH)!DXyuycjnv15v>d@g=@Z zwSy`+Df~Qz7br%g6@2&y!?un_<5V1=p}d7g<0T5$<7|y<*^8D*X}na?djyv>pBV~g z+-Wp@xxz~%oWf@*obyr|P0xOwrc^#sIF64HW`+&76kcw_Lkgc|!)p}owc(2t?ziDf z6>iz^xlQA;+U#(|4&4_3Ekdqw0OD z4cFt_gEm}`SG7CMM~_R3RJb&*$Dg`fXuMbTPdeW;uE&{MZG7}N^FbS~$CFdY07moC z@OK)N$Vo`*v z{q7fs^D8G|9Zc-1AdR6*fF;T3uq%3eT=<&k@d;teiZ3XF8cDow_XEgHYHv&>6vOE^ zLstCZ=RH72=z;Rb!qR5kTLQw!&(*pNg5br{E^+thlOXNr^gxi0%Umd&U(wl#E1xgaxk zO*Tj(-6z@4&|zDz`=48wlwz$S$h8WblXGXDSgWWiEY0zbl{bzj)4DsSi5t=Mkuv|!oF#LCYGZY@-P)p_ z*<{s^sxhffHx8-Dis?yHBp+G#yENJSRph70B{?P_Pc@~}WR5@8J!Q@G$}TI`?*Dg+ zqqOK?>1RN>xBKr=eT`^24IUoDPOBF`qp2q(OsN`+KdSgJ{Wv|cr{7Xw42vRzO&Xy> z1*@7eXjssuUSO%mkM2wHGtKELLYJE$>^k21*=ArSDeo)IWVAc|Z8I#y?BVw+_ggig zdg}OVcs(qc(l4p{YD*C^{g|ZMy)J**WYzn#_-_w?rm)k?8s*WjazHr-gJk!g`I9NB zN>%-d;=5_={+r)SJL&$CvT9DTohXs@%G0gt$wzkCvzp)=v}`||sZ<$TUjH*>&oVsr zS|Hang=|uVMf4f4UyWZTnIh)~q_4-5M)VbUR^yk6p0a1s58z4DARpo`kxcYG_arcC04Ec6N%ZA3bC()EbtoVdH5%qq*4d0;NAF$zfsP~6#_+9G#Q5&96 z?*lgcTk3tk4gZdMKVZZER=ppz;onv7!#4au_3lwmmUI5JS*k1=uUGFIZTNtCZ;y0f zy`d{L-%QOlD>9$qam_Vf!j2`HKYd@4NA)%I(kuK`=Q(5MXT@*eb_$$jF-FbOiqG7Y z3(_RXwH|t{px=@&K+e!|mf-+V==JMkV-F?&8M=fiJxi+W$>Wq0;bK?vNqlqd@)x_* zywb5)oU|*rQu`l7`N?}hBov=9zr<|xYO&uSK2v%r6ry8;LI?2a? zOi6{Fd@V1nhBo2H2#8RXEJ#+s4b&kE`UlpHM=;!{L?9`2NBbCUhtNY`EGFX6_ZMu6 zlK(_sV~1ja*5rNK+MYaJTDJz)CC6*)`sBx82HLHG+ml^DqsLGBV*6a%o=3`t8j}ci z*$ctlzs=zZ!y_W-p%^q3sU^!e`eV&YlUpT=WT|#P=-T!TxM!Rj_v4^lD59#vpP>gH zj6F@oV1F#K$hG}n8HMQYv72QN4wU7ti(n!&&YhMe49&@BG$A^Gg7c3eM}s)HBT)86 zaQB;eqt`=L;M#r$e1dMWtM3(*=jidg$hint(vL6&v5CdC)0-dN?{)1Q@L@Ac5Xm{e z;{9+%D83r{zK7;Jf15l3SL!T0$UZ%1AR7)q=zPd+9hfNUFbZ98{taMH<+JPwrmW1DI= zxBIwniRpb@>~cwja*XuWC#s~=dq}4DTX{n7d44>C(t0Sl51lEV2&Zpr6%Jd8IFkPk z2=6kDKLI=uy8Ix0Op+o1R`N6*Rur)gr0oB#h?S&@*z)AXl1K8Vc#5P)5#!RUk@V@f z9)nkLoODzg7OD@VSoRyQ}KJZVwq#uzt*!GOkg7+h$YAhkrPGGt*x6Fwh`Gz?bf zEgZykuY=X&orBdA@&>DME_n4sJSX8f8Cx3)&iU49lUjzV-RDjkvu_D4k7{=6$DBOA zv~0k&(>ZH)IDeMc)jx<3K<^yIE(A4i>{3LD=9UiZeL*!mPj0cnF+{)-PoFq=-ip1o z)nDvQUdA0tK)u4<;~cPwNFauN|46>+Z){5SxBhAtkMuVVa8lpS9{a5z{VjYwH=Crp zi?@=uj*I~ z!BIwT9BExe5GNIhW^U>M95W5A{o}694QUr|iP{h-N=`z0P`JwNkTuaiIK$_siEx%x zJ=EyQy7lOg_qgP{sCa4W*lz5zh@6cAR?h;4eOlN8qXIShEg3dj1U4LJxfz=zD}f=z z7x!G}xwyxJtFm!EN>^KZbCajBHPW%lfm^I`gMGNU3CaxJ-H|TZR`6iz^&Tbr6H(8Z0Su`Gg>ayyz! z`6uv&ki7XO(@hOAm@n`T>di|bjVp$=mG3aO@=xgXR!Lpq(wzDFz-kXZ>9J_JqKo3V z9na0sk%p?T)~S7%-(ap``AzH8LNPayCv<9|j(g{Le_?raLUmzH?!MfNI<-}k-DHB2 zO{3$)r(Uc3h~L0}TMjg$@1#tUXLt8HbN>xGzaC(S2afNq6k?yxt_LerU{k8E|3ydU zcn~E`kAQ)2iI-hb=f6!%o_IHR)fc z3I@9v>IK>T=X~5=b^tjJs)BmG%|qKONi!PK{Uv2@^fZ%TJJR>!Nh8`>JgL`Bd>Bs}(XQfoJ$}SJDuF~>N&=Wn`lb@sxgp5J z-#qcJB~59(M&akAAz@pr@QZ9X^{=TJF2AQgN>SE0$CYVF*qX%uIET-Mw<&z44d-j7 zGmSccXOiu0$%2193w}=){JUB3hqB?k}w#q?UWotvXu++*WUt&RM zNAg*PF_KvL6{kv%QQ-ViMlH^+NKb2v8b3k4>aW9!F_v{<{R$44mZvU%rH;o}_jENh z3Tf<^LyE>~YF2SgSuQq%gQ;1$xULo4nuVU`Vyqcc_LJpg>h#e{f?bFwPDi?h*Z#Vd z2%S7b`;^n7(|N;o-;~)Z^?KChv3iunDuaoW1`{h`v}}?%+Zc_@ddxOqtp4VMc&8!G zx~%D6BnU(NT>La%fc&Q+&hn)3?FP;(WB|j5iGOV19G_}Fb5y5br++64 zJ}r;jPvw7;sxRcjwpH_g%fQb!@UzrFitH{h@ab9b8?)fIWx;P(IK#ufSBK|Y25!pa z_1V6pH`CwL)4b5&ldHyEq&L&E#K2AZ76WG+uEVoh;Y^na1ZP> z3=exVo7H{&*H51qUVxCcM>84(l1G}D-ZfD!q zWY#mf=IYF{-|3|l)1~nDPnZ2ZFiiy-53jI#Q8o&pXGFPXqN4~03)JD5o3|ls>BO0@ zE$-1vgbYp1TtgMZ;j2Rx$#50+%R6z9#{XgOZNTfQs=V==kCybq-XImKgK~iYsg#y$8jMGsD0Tud10f*62 z1QApUgOJ;_P!QS*D*xYa?X}Nc_w-)Gd41=7p7(k8lbdtSZ?CiV-fMsFv-et!;~z?t zJk&TI3O#5xYLGm!tLNvK_xh8-e7|Z$wk@USR`;Bp7?@j!2+36b z{L046;qa}g7y2o*ix<6T=5YvpT1S<8^0azNMgAJAi8l8;J(K3*<{(dSZ%_hLT2v1Ox?l8^x^gCdTP{=Md;kx<|S26 zbKli2EF|+xJ9PO%L6#~vJ{YIU+dbg(W@Gw48`9e)B)1`};oz{oD-8x& z3jU{9tJFPNwBLq}S8#0Ih!v=VRE={^ z?+a0A$LaY5cvII9qWVdyTd3fHd8?)y`f4h%>h|z7S#*OY9OwWlLmDa<{(dXY;3HI& zA4GYNE1!Wau--k1yyda#+D*NyDxh!V_uOkXuc|s&py_Gho;8#PXn+Regwg*^9Xg2t znOI=k-Tg5LT$hzzmPEU(hXkRt!SB3Fm*rN#q31&Ah6aRkz58~6%yf#rsWIqBOPGsL zV-wF@Aj@;(hRzPwwrDahtPCL9_cGpyr+113he!K9kH_92tn@t;?fVh#p>n06=OHX> zqi|pq$t#e?S^viL!~Ku;L>n`!u$Ate)bRZ?MwX)EQgRHH0BMEwN0nDk$bA|mu!I7P<YHD z8vFP69MhOt9SF2Eb+PVHY@E71+V>3JW^qFcR*Fvx(C$*7o?cOpW!}jCbD*GQEO1fK zGOB(*mVcxDoF0V56X-yad~hW&v%cD9MJALLXCo_?u17wA9hSZ!hFQ?}V)J1GS9$aE z8aj4P6Z&)@e-I$wlIcI^md9NiDfx^qQ}FWIDjA5S6=4HQvV>2#sw{U&r85ti|I~-8qLU?(pqe@3j?WJ&#gjOzkG< zj2RyN@}{B3xz9B-i7WCSz!LH1!DEK-#lZ7qvY|r@dZ7OL__f`~@pO*Yc1RZSLr?`2 z6|P}Ohs5toE`FNOXSBRu4@NMgdEJMjw_t65)6n-c{`0XKjK%n`3V3@iV6x7u9|hA> zEjkyURGo`ZrPu&Xd1WpLwuGkFVEJIX?v<55(@LOT(Y3p<|A@Db#M?ungA5-8-uj1FOdkN`2smgwMeTt%vW%(!XL)M&&e(RA~S5Ub115 ziS{+2XraG}_N~RM(yV4@NrO{|AcAmTV#{_4!bCDU@qHIzE(QJ2P3#}op39pk6b+GU z(Rhvm2k6=>7e*0?V(M@wiR^3WNfXkDo+;g^h(`KSN<}Kc`pi@$vY%gZvs*weh+Bn6!|7j7{<{pk(a<4i-7y$gJnO zoNsy2)~D`EPW`XcJ+t~>O#N&9e(0Wz^?VDen~$ zSA-vOqyGvfVF~^f(7DDj;rY@@qmS&U+-nY?@Evt;){Le^j zreQF>x%c^K?;py0Zq3X;=!OibV}k&p6w9Ze?^^KlFCg3YB{Rz_XZ7#xIT~-L`d$16 zdUgqYmKF&pXZS_?sI(X1@;Q3**YN=UyPWE^p^@l1FutHpEi^_A=|AFgcj^Pe%?8df zKGknMycys8-bs!}k5`AU=Z{2tuY*s+z~v=S23OLE5pwSum0YwmNzH`_(tO6 zmsE|Nl|F#a@r?(blP~g{UoKA^c$y02sLKv5Fur<;ur%b|P-BN6#&KAC!*;IVNV;Z$ z1IOR^ss}Bs<+H|b*Ku59=Hq-b#_!_zB#I)pyfRsW=6^ee2fJsLxI+UC{V%S5GEs(s zA_oq!WEuuPkgdWRA9y2XT+>jI{UqxL#*(>?Ve5K);m)P%x~j379wfH0P?ECMnh%N0 ztX+xTYbql!76G=IhJ%T8&#pttOS)k&`v||PvLGSR5eCL<{f{X~!qqHa_0mOVITn@_ zgm<@&cZA`Z>ye^;83c#p4CuB}em}`?MNTq?j`r<@ zzi-+yHI3^lBErxPmL&UQ)B|A{wv00&a zS4raW-H8!f$Zrdj2X7ksPSCMaZI-+$&4rmSL4G^f{vok%QhvMG{tbF#EiA`8VX~kx zjn)VAj$fL24Ym$JC0pteenA$!a)_lI4Vekmd~c!UuE4KMLKU^FnmURS<<%Q=$=PuU zY`B>5d;@m8a3D$}L&@|zgV(*z)~V-5IfQ}cr^lCvKjoDN1i2`NNgtZT?wWX}>5uXB z3()#GaL!x32ajH{$WIzt%5O-NY<}nY;2g`0%7)s#nZ&{VM^k9m(3u^MT&Vwv6yM&# z%HFrIm!_dI+V_6KoA(T_zu`rG_-&ZFCp9wBJ8g>F6Y?&d#~P*pZ$&n(j--Bx7^2uV zR1W>8v|}`mM6M0dd$6JBMQAmgyDwRSjJOcJrA$;4=_4^d9r~(k_edX4KfgJ9RH6lz ze71BYnYjn?WjsCi=~ahAn`A$_7S#MPL}l*- zPL{RQP*-vVBiNXRE=WW&dx9^2P)xQ@l>WYeDxCc<{B!Y%r+0mS3}#xJ2anPjc!`@7 z$I-RL)4O|LFM+bTcr?B{`ygJ@`Bv`ily00@2|GS9)*DQHW@Tp7Br+)R@v4M0scgCN zP}i85F(r-xGZX?gre{ov-g8BwZvR80Qw_aW%w@je+Y+A3Q>P^}Eiowai&q`jw<&sK z8f#`yrPupAjOBlVzK}!qDQiA668+k=>S*6&cr(a`^c(T?K1v4TFwJC0I+6YeP8e()3Uid8iWB4}-RXB--lCiK9oMkQsRpG$CVH4W3l<1kqHG?qa7HzhNl ziADR)26tu|*<@?+0DD|0Qm>4uzu_g80Mruh#zO10thHTUBETrg+_z_d}E%PWpu;G^tpB=tldPs!B9wCc+xqxLKK1 zNGo()f2wI#<|NiM3@28~Xs2v?P5;hSM>b|wpyXkxE?!lmZ3pfWQy=QaM$X;PfO%kN zqGShWJH5O1LCz$raHZQ^X}oOp@@3wghUG#c%DOB3T=vz zX4#6GTtOze6ywc%#|+$B68SUK(?XMUe7!VB*=EFUy^jc0xsSsnlzG|8h+uc+`gmqm zgpKGeD88xBW@iCM`Pe)-X8$&{UytMaILjWY^d?!$EZM@`tv|3mf}(?&8~o9#?PtUi zW!wy=%ewVbw=rtaJYNA0+B&kJWPgU~sw+2W-B=FsiWWsQbVo^^O4*b8*Z>K{N4ya2 zpMi)YPq5s)avVnBH*$d2`w&_z6oo5X!<226iUcyW(u^i&nQUV+seLgheg<)6WD*LX!RGjKDV4AL42MbS$p){R?qy;tX1gK*-s{;l=vn<@0YMpQMow4EP!O z+~DN%l;{dBgB+!>&uV!Q{AXt3FCki;F7iPo`X2YSx%mV*X%&J( zQf;f2MlX~v1=3nEp4sKW`x4KiBp)xrTRtB}=G3E(y!81v5B|udwV{?*SwB#=mC=(p>o@ut)f zDYoI9wD)d9*4M>mXD08PmAS00Au}5`4KA26i+1u}k$5~By_q|{>IWL%Nv3xs)6Xz( zU`b+R<20$@aw5t15d=ktVHoO9h%W=!6D?H7hG3J-@)$i4l#N z(T^oESD}H$J0MOy5r?r&E$E{BH;Ij(F{y#cbSLJGFl&(BnneANiAG>)XppYyNEcdK z4B8iPu-=r!rqN}b6-}9y{$(=#U#vNE8`3{Zrhn6zer)K&!ML`3D`%@S)A8SN&vZ${ z)R$IGu3xjdf@N>Uh}3UcJLYmSHbt6z&TMt)X5U%;SYvvK1NSC=s#wNhJw`7GJxfbi zv^OdJn=6d$;?UEK@$LEMgXQR2kFF9`NYr_l+R8Rb4R4h=k8&LM5s&ahV)Q4XeNey&?USpHC0WIp{u|41C%x z2G{RDtS%KpxChzhq>kj043~5N0bf~j`iZ? zP6X?{rahX9&z-)WoA$a91y2i!`vAm}nT?~Ua@=9$<=cac5FzAAsNF(6&BV8(;C5CH z-IEI+;}Hzi2CibGd1wzMg@&b{EkXUj-v@nE`Fa`jJ@AIF-zFWmBYaldT)&gwuC^T# zzg(LXw4_VG+0A=V|5@{;FNnX!npc_qBD%()T{%j|U&wr|wXDt@>hug{zm^|A*PdR3 zM%T-kY4fu7@=L+LXnXn^8ix9N**awZE$B}i-`D;E-#zcfca-qu2k-1f;ETldF`r$3 zuKmDY;E!QZ@p#`1*7fq?Kl=yQ$$0+zDFX;N5tK9SS-9kiIU5$na5M$;)o`|D+tFo9 zzPtDx`xoMO^t;86dkO00aC!Ek{P+d^HMd>(eDisRcnAF;!$-aqAJ6pHV5u^HeD-&T zj?bhCWqB_=DtiOE@G(v{>28#Gp-&6OS=%YnAYQLwHHP&OCz~+wOK>EC?q}+3jOgBg zS9~f)uo!Lie-WIsmtvf)^%`xU^#5rP9h&YO|MMLG!u@|0b4@m0X1U%j{i_?tH?~L% zku2FFDGqAhZmh56+6PuWSx?V(%Juk+i7&&WYBtGexC+TfXQQJCCMEkVun5N0Z%Q2t z#)+Hv9u-f&RzDu+wlmc@4*t7g9h2Gcg<3!d5Ig4b04Zmk&%`&;nOT^!lWJHD=23eFXAN zU~>UGgv>SL5}C$oE`^MLE3x^lQdl^~=snu^&!A7VJe3*y1x)j*u_y#P75lC}2Hw%W zpJ6_j82@K1m6W0yWs?8)$EiP!_6@%J&N~laOpe(K4t4qID_066C|cWPw@@AJe+-mZ z)<_-p@HA0Q)Y#izHKn|MO|t5^HTp4-=MSF4%o1Nu)O?DJt9o~>uD=lr6WKIapj_7O zlp++gALiqKwh0xh{$31F5TVDjud^RopSVr32O`$;3Y$wy|#?PXo_x1O~by;jKfPcSv}B z0CT-x_EIdXu0O#=h-ccyMzRwCxqcuY--e>@@LVa+-inyo_eV#v9OOE>BJsMbP`vH{ z=-cNa?~N_=-e`bD=wB>E|7(CI{?~`nkN78p^mAT#{cHS~2>Hj+?cqx{zFgh9Df>Lo zTzxk3{0-P!c|e{_u9L?hnei=|D`;d}&`ao{^AP!pxx@U%?&l)r= zsJ6;Gdy|m=)YSk~zZ#ho%2+ubjFn-x%np!IC2O+3L{Y7MG&>d3BQ$3f*#~8`G4ZEZ zCd&R|FXx@pY7!@-QE7Q2fgx!UQ-_-uW2nkT2A_BuuWc#pgm#M+z z@0Kmub;v8Ed<3N{@{w{Dq@Tv#f^*9)1Wjp>q?hP=9Il3ha@YeL!`p*D@wZs&!8Q)w*0&?HMGgH z3{(xH#8%2CrTHDNA-U(yb=LD-=kzh1Wn)W=q&6IX4k&yUbqO=bheiHxETZP|T(5+FL|K!27Q2ZOm zRIeK*=Tas9GsbKzDVuO)!31~}z<(osb%ji=Oz}GFCc@N8EsoFp51l@RT;O8(QH+?r z=D9k3`lplf;6u(O@jOU*K8ZX%@(Bk%jm1DZ?qy;)Y#->xxl7SAsJlYpD)}K{O@Ie^ zYIb|F$a{Ui*cnv+{E4aL~c}p zQGU#$u>58LV-Q@9weIQh?&$;z;@-dSqs8`__xM7a?>_1t`C-sH|Lm`yh9}>zu|&A9 z)b~#g;XYh{?S{XMJr%0mfoZ+@FioY6FyV!ID`4 zSLp1iKbu>p?bR0ZUU5BoN^EF(TgZls!&!pzoj-${k47RF3ouN|ob_9zc(}b@qWFg` zG49(G*WwuXE?1oGmvyX<`5NAwFULtd6Wr+@ga51K&X>vnj<8;l{`?#i+!eBY!~AF7 zhaJa7h4BBc2>vg`3sk5d7Qr6|E@yW29T~3zd$I`qE~Ve3^fGP*_6q6o3%fr8C={O& zD9459KLlLjqxDwCz2L!dav?q(Qx(Fg^Suy0vj~0>aE6PGM&e{FjJwN=(61c1y{zq;Qx&x^gmGgh_-)QU9=)w6yKq^jCbMpco9C&DShQg$3VujxE(4&{}yo# z%U(*5--YD)e&CdwC?~}WGRDRABSq*r-Y0$C7{`6P26Ac<`m>ARvz1RJJ0>_83*$<= zgyg?N6CvYY;B7_tq>A7-6v1yUf`7RP{`DgGzZSt+uL{Ze=SA>mi{Q-XLVWfW!T(qU z=XzctJ|84b!H3*2Md&9L!Rw3giSY0$^p-Bd(o+l0u(v?V`Mg>Fq&}Y(K`YU`S>my% zqYG!=@qh&>XAa4eo{HJT^6nJQ%6Co_t4cM2r6sYsB<7YT6BA!Kyk9Fcn3g1`O)YYE z9+9H@cE+s(+SlboKjXx^ux``~7Nt6L5e&X_n4n2ZNJtMnP@Oyu*>~b5wRBO-vMcD9 zJN$ph`FnXYw^T=aPIxjQ^ETfM)C^I_8d!z8U{SEJ2hy;_C>&@p3GFp8hD*cRJ#1KRjNmIOBP|!9Qu}nHEpK(9m;^=kePO zy^YV)20zKrpTq#+7@unVJfB{JTU`eO1|M(et!*yOB|V?78G261Jif=^HlE{k$jv9dXY2J)iFz+{V95#~Gx@mfV2;eFnGjKf~Z0D|`Np2Dj<5w!Cb*-ZJzxhR=gK zUSWJJ{&zZbCe9&>5BKXM@Bl~Lrt66!_-h8|)Y0?#fsT8~=QxA^R}tLn%@5Q6h>LG< z#CfvS^M6ZmW+&%R9zRm2I;5{M_%jB_mhyo9d4t=0dClOb8~U?(kQI*nZTb1C!Kq)x z$LDo}TX`O*<1q61fT2Id;5L6(8a!s`2a4d|F!-5vS!6NuNRyH{D`6Pax z&zB8eXYhRnuQ&KK77jS_vG`2}xBPEp=D~%-jdA@~ajy0G_*`c2a}0iq!KWE~ufgL6 zKkq0!z%g8|b$R~l4bE3RewZ#Ck)BI59^XZUK5)bv@bh@*hlo0SI<6l7I2VK9NIwHV zk8d^ji3a~DJ3lzmTeQVB!G-yJASSTjQ*i6)zhQ7&ZiftR z<-CfWB^>!D@bi2gHh81K4;cIugWtqP2abGfd-$lqXTs0(|3wk}C4--9=trM`2RQOi z;^+CiqP{)V7 zzEj~4%7u;?f93kVdI$Iv1+;q!@I8ua^BLfEifi)|;PVvMY8~LC71!z&;J;8jhPcuB zc#c(Ei(7z?Q@q-d2l&y7PYB^L#cM)%mEx>}bUxf_#aUTKl z@puULa!!Qsvy`57htBi&a%S14^LUfy<2(lkctZIs2;oV^FA3qhw0~_1;V&w_B!q8N zd|3#;Tk-Y~E{FDkb%yXCD}5@2A5?s02>+wv*M)Gu=&&Y)murFT3*i-t-x$J2E50s- zS1P_fgpXDHmJsgcd0PlSTIs(M!sjZ!A%ySI^xhG|?^OKG5Pp~9cZG1DUmHWXm*?Ff z+{^Rc5MHJ6{Ba2P^4t`{y*#&ta4*kCLb#XbV*j zgdeT=t`NTKXa~F)!nY|t7{Uj2oUtc_-=+Az5FXR<&>JCqn~tjvhVV5S?jJ*VO6l>* zN1SgT>U6vk))Dujeh{e$(ch@J)saYElNGNF(GTjl$Lpi^;ohR*jtkN6)ASx4!tYi* z7Q)xWTzW(m8E!rQd5UxWpU&ft#N;tDA%wT9+`=|O@6`BD4$+TQd`bvUsGRv7fzF3} zwBmIk+>gKGA$;;!_kJRT-==sng#SY41F}8agxjh3yb%41IuBV8!lx*HNeKU;;!PpE zM$7Gz5WY>v<;y~NLh+bOULYTRj9eGO*X#4$A>4n@{B;QTYtG^F+{BE43+MYL#l!M! z(siGWq4@jnJQMUipTA8y4x1ao{dX9CFQD`E{yWTu5bnRDZVTc5J4~fnj}j7{pHB|q z{yT|JhY#0(_vj1J@6h(M{o1yU!01mbXJhuX$whQOPMYjgKmHYVf5vIplt&%^;s5B! zh=}S&z!}07IODK7CffMkfd)hB<=B$KfeRi;z%hgqWzcp zoZMdWd%0pcl*NW|*Sjaut73`t1vscMdtBmS$*{!3(<>MOsFVE(V<$N4ajs?B&R-~O#cqLP!iGUP*go6_iC*4Bh492Wufn0u;mSQYDlHberts$w=s? zfpOhE5E2vfW@73y-P2%H_n50sNeoPb$=!p0TG1eiqtd@}kxO3+Iw;w~W@Q{qfyO6< zGj8jTVo3SWQ#tuihgBYh_FjLZJ)8_qo7u>PxaU4g+244bvyH%wYAl9z^n>%XlW{*! zkVxbUykcM4K&kBggms3s<=7zDJ1mZ!n%9o01`urYtOBVYr>)?7Gr3C=`zcppyIcJz z?CTVB4F8QiYX75K%_1>Goz0LoF}QQCPOo3qHcB7;(9A!|{+IILDR)yLML!a0Qi$ta zWTo(5+-vr9C|qT8$iAQn%F|SPA$_m!bNz`y)yP}9fBt>0zgXv^<*!^X^7odmjE!Oe z7p9#98e(Dc3I#TXczF4FnCm5l*apCwEiaW{2 zX@Od!FQEEK*x~Rwg)9`l-(%HIX2ylXH(q(Sr2F5wSBilZ+Oya2&}0H9+6I6 zjCo#+Z;S48^Tn_;-X@=aRg?Up8Ob^4)F&6snLhpehIxzT)t{4WSQN>9Rkhz*@mVro zvwWaS9#M$g%YSez^P}XrXHWK=_Af%e~*93;GDL4JcfHZ(pxda17Nky@ggtbE6<{`>@y;sP@!JAIDG$?!D{3-lS<`6zU`%b@+~D%VY(e z_~iW?U7qib44mR05I3xVBf+rpclXZ=>;K5ZUoqHt7kfpi)|IJ<*g20(T-@F5_lg(a zCH^-`E2l%u+G2fmIGAw1aIC%`Zg1C#`><-xjP3zt87z+DTuhf__?G zW}iqo`x@%|>SBH6xMA)^zYL>nL{|R(-L8z+U*A_2N(tptNJ7NJrOCypcps{XG7;w( z^6=6epP;;Gqbj{n+ahUUvG-(gTdKWnanRKMrIz;enn{?4(!KYVwuwF_eYN`!{OXCp-aize$jzQ` zCe+W)XxVj~9IY3Am<2*#t{jw?XX<=@&dtL(-#YLN^sQk+mTkj)^>4sWx&0lv8A(}>_8Ir?6Zgy6Z3q{zVn4% z=lo6upGb_RV)gVjv=nc?=5*-E?%UK;1L;4&3H_=gy+3ov@xBzApPzW;iM!iZGss3rf8aR){Nshb^Jp&+4L~_IL!^?4Qk2Zpvw?wewK(r79wAm z`gPB+bugMB8-w&igL`;N8H$MR$CU@*d$T1^ypY~}U}yTNV|PFC(i1Nncq)GEOCz3= zmt74(TCiB-4Ll$P)n@f2FMr47f|UGqb>kWYm3}3?S%Q4x6^8BuKCtsx7ZNK*kjXZ^ z_4A>f8j7KR!a^ZSHWEfZjQ(z0^^qU33d@Q8G*rdD+Pl>m$vF0*`l-LZeh*7ddQewc zR1*kGqF7O`-Ou%==jx)jI?bM1e8vBBPBx)}E#c5|35v`7+P(Rad1%!KB{Gc1%RU~p zh{tcP-;>Kr#z>P{e@Q*d^Iyep#9!w3SJZ!KsFeoby;T38KAnF*$NID_>RN!@+40() zxiW)hpslqXMnjvI(;n#J*4Xma%VGKR>ek4Lwk0?u?oWVYKPAo@18(l>Ue>lW6@pf2r2)R0JcvuI3g@Wx6_2FhCkWDSBv|!h1YQ(9NHVRzCdex->uCxXG;BK zhV9=gZ3y_@qW;J7DyxT!#E+xRjp`>nvZssjpQJq}@4M7bHa&?S zZPvOSZ;z-ScgciTPN!*j-T4RNoh4ZvJpMKBF%PHcdlxXgAP?g~9xhP-YWhoDmx^EH zU1oD#t?kVdi%jVP>$C2VuzTd;V7{}YIn~U&iCrBN+dHr)yZ8jqz0kUB(bBHwD_a@4 z|1}rG>lA&lnc&LM;JGps9A}cbadgh}PW_@+p`KhZVK~fhIzJQPY7_DBSpVKoxO|5$ z92RGS=$EB6H(>_^S=ZTP>!+wNA0{`%_e)$MYrQeEL0~dGITge*dLzhk2K` zvCuPDeZw*#$;P7`VV#y^%Ae~tK723#%YiX`woTU6kQnYS&4fEaHD1_4i2=gx(}KyBL2f4S@%P~un~BfmvMt=FLIH*z9Z`Y*r2Fe<;^A847#EsxQ8{^;-C7f{#^y)-&QhU!@;aze20x^eVJ6 zz`mb+@K4+}cZp0_e23y|6=!-#-=rdv{u9{6if>X}`b%KVidSmkjNzGX8Ghtbqqy{i zz?LgMSMk|+repd@zafNQqxe3>r5^*f2EP)sLc0Uc-W9htY!)9pF|LJ9I)6_5wQ)1F z>*RizSS~fN`x098q_$Qv^TOZbzS2DV+q;V3KPiI$ya@h65&ZQc_@9d4qfm4T#q-D_ z_=&*ZkDQr13=H9_-6g^uJB9dgr%fR|Sd40kEMBBjjzxa%u}CKsix+V^0Rowa;Ha1* zlsQdv*X7;t@$-(wi~Pg{6PM|18<^^l z<7yJp;*O5?R(E)h)`oG2GIi=C9%ftA0z1U1R#gDj)12fX!KJWs+^zYb-KF#;+%)CC z;!IV4Rx^uVZtxiHJ^c!UA8YU*8a!t3hYfD&4@3UbG29q_p8rt>xAY$~xQ*w<2DkJ} z4Q}Z_Z*WWhRfF63$m$K^7nV8WC%qrfZ7?|Lef;h;xWq@FHyWJuKHm2lob+?`Ii^=){CQWWHy-!&mxS;Q z`s~B;^!pU|>GHTQCwGVV`0_az!hNK|JDt6J!aIn4K8APNZqjz@78WQtA0J;%HiqyT z&ELmD_*})y$-waO<@u}-?#l@^VOV-Uu4=~^rr@`_(~9g2oqFo&Zd=5A|5o?($6VO_ zUnjS9(111?8yBa`#?PY?=~BOC6YAgbd9F{WV1=0-wL2f+X93BhMCQXJ3QWgs zmYx;b&S8gDJoH+-iDskM2-FV?6bDlHe)O}fJmXuT(BdsD)Nh5=-}KMxFK|or+%THv z7rzRqc)!hX+Q%0UMH8jt|vk1iuUA}g&RzSl@HyvbbWZ|YW-#Pi}>wSh_ZW;dS*{9e_-LAht>R!--?G1 z<5SK*k@<|1H}}n+5xoZnU3(uYnYyEAV&;fM%TKZ27s-y?7#~%cKB8ym!%}1T4l`%r zrIKY%TeCcGUC(bHyZCJkAIQYY`M$s^YWm5>^cxb-%oMqZv4`57jrb(SNcqng1BnvY zFHWXkfM`_PZq6*ky^Mcu?`-b-9wLNqVhCS0?eYUG4Y9VsaKV!>^#OylmsO%j>t1Aj zBJ@@n-HX0_Co-#07E@}e44Wt+3jJl3_eWxZS#Vc?xZ8K=dqMewjhQ>F z{OjlS@0_20^8B7LDD;=sU*gMsefkZ}e)kOr+28XUB)E64D{MnYfMpzE+47wCfZf@5 zDvo%a&J+#f{*L>{q_Kl2u3(nP#k*Q&*Bt3hBD#Lx=xsQp+S%fE6%B9&uljUr` zzX6_qI$yp_CT`esrwDUwl`&Y~SH&LD7xj46=%Fz|d8$wUw&YoE&##oPnm$hl>!<$q zy0NJDLua{i(lD^1BtG@`t4^sOD2Ejn(4&p2Pd{A0`PF0UOCGL&92&EoVLeE0XFUBj zh*v)W)3Ra(p!e;g;?X%U*LhY|geGrcqtPq8el@VpPNfQw`zs~>uWF5jiLL~!5SaFa zLAx*K{L-)SjrOI`ST{^P;H=h5{4|81Da{3n+)TRwpptzG%*FZ7{D4ETDYvn~p@rC* zDX>}aWukbhj@}bF>&j@~g$VqtY0BQiN6Hk_|LU5eP$Tq7zwmGFX}LRFe5=Nn~7^Taq}n{Df*mwP$YPhHZD^ z#%Mry?Yb)m+B#?ukD~(m{#*UI`o?JE0(&^{m%F9wr7qpDXT5m8kXPt$1g6=EgnlRx z3fp~o8(CG||LE$;>O)C54@RGF=b~SY=rfGmxB}%61}{}uz8@KKJ&o-jHG)s$^MtLJzBDVnE6puezM5uk@fkH%%2~9Zbuf|nibyVzxl5Y9WabW$ zpq4?7XV4G!{1cV>quZ5COwwSg=gWOMeP9%X3ttIWqC0e>E&nf3W<4 z@EhWuO`xXe@HLQYdh?J=voGI=?Db*)m3|Y_^cmvqPWX7T{9-$mia;`wTX%3A=;$hr zS1=CQf_`J18}EYuJ{`2kUbgg`X}29Gco7?acvMJVqV;xDewp993Xiw23GlhSId8<3XknohihHI1mpE`=RcOeia+2a5yuq?Q^cee3FC*Lf$EPi5Z>EDA>n|B@LedyYyG>Hk2f0APr8>-H_{KKKAkskOfAGzCNF3oFWE)r zQpMpEUw-ah=1w9SAJkY379FIEoND(DJuBlYQ+`8Mw=qP{i{IANaf!lv`ydUB{e>^0 zEQxq^@EmlYLokf!>sRmgu`F7gKx(Ry2i1xGy(yZUMGA7e27L>d%ULv8dB^n-n6^I! z-jk`TtKK62LDo-Ha+wcF`L0j@LdO`e`IR~zgVdn5n`VN+{~A_I+&HvY`St13#3^4+ z=Z*+PntXzAv{i9i9fL9~@kLZQiQ@bz{kHPsVNl_Rqmb?Bt|;+<-~DbFhR$tp0^;jV zkLFLXa`GzLUa`5t6!9@BK$x>lK!X&DZhqUNv(Ggwd1%s7htEQ0PQ)HW;XvzH$#n5z z=*kP`Yfqs?3i{9b3ve8@KE2=Xc}%4L^ZZm-?W4+aTLRXU68-O_K34ne(BT~KVV@yP zUH(SE51|3l*!R4Ye%g?&GgL&(rbvAyv z@{Ih!0B2s+(YZ{@#H)@*q5k0gY_UajuGC)k46`2+>S$TN@sA@N1*`*+&-au`%G_%e)k1%>Ec;(G|c zB=|krb5t(j{dE7YOM*DDR{mk{8kigM_1i-;};l63W5n_VUCAiKVK4x!j zG5%-)yoBGCfBZf0-<9kCQE$1W+AV%$IuPLt(P4L>)f-HV-vKjq(cXVRz9vfc!mc^C zcV`phA5TpESt2@PFfsMXE*z6~blb1?bFN%*#hBFBtwiS3L65Qdz4?1jl7bXlZJi~DnCAdo?z0X{lxk~BK;Jm)h=ur zi^4GPVfR#Wsf(Dp6;d)H+C2@8j+!@7eY%XdlrQ zLbMPuJC)4oe!$^nfpi;guDAE)Cg7LfudGj$tf;i@8sls77g_7q)22w^XaFjtTTTwN z#C!yjQ;)}@n&yQEWiXwTvMi~s-Jd*@F|3Q;vc30}QYV3+(Pjo=yS#5Ha{b-FbOf^s zr~0Q?iadF&KSsH7jkpfiL*%PNjGz{2&*LQ#9uNBTy7`Mst{Zr`4oM=)CDhvyzDdqb z*+{KxiJ@V=$Q~j=FYh1*P)G5xIcNCk=lh(DDHoejE|0Cie4GYUca974)|aOipdu;+DQ`!KF0Yh$5;QV+X713he^KhoKnjaY1C+uIFzClo7P=}VcLz+8Z;y|S zjf7Mx0ga|i`gwE&$$&*s-sG<(xu62^UKe40knzEnbK>p)4qwa#IvRnJd-jXKbK{iz zxjQN+M44~VI4W~4J3~ly{F|4wKO-b0Eqk{FBJ*}l^o#2A5AczQ`u13cDb;H|@(c;SF3%%+0p>eV|Z(kMdpXw2NT)bTkKzhtwL4ulvj+ zDezU?J+PX4fgu-<^1eSo;c>Izp>ILH`CoW$Egm1?$`SB(a1B~Da6U2D*2tnSIx)HXS738<)G8%z+ zgKvVqc}IKad$MYsV<2%gZV`g*n(HQ{<&~JRGm?3Sc8{+7<%9uyr>W-X%^8Thcd!gk zS5M1%%3biGDL5||v{ze_Vo_Zan7taJaO3bCi)=H%^|@z#7xm38M?gM_Xxts&%bo^W z=?BnJ_4nXGsbys9i%B-hU=EenK@1L!y!`M-mWS?RaqH9V&gDJevr?+n z7e&dhLqDz5q7B5_nzT&=WQcqi8%Tz*iY1RTgSFpMn0(|=Ziwtc^&OIL4-3~n%*Zj@ zKeQqt`cjxv@w_ycWeQz3@lAX7fzT;d_!SLP(8N}-QnfW?~9FGo^VGX z@nso>v%<&N3Dd3VTtYTc^;9=o!w`^x52%d#_K&7GYS zarClvNq6jor4!_(mX5C07#LsOwxpFP!du*olbRjN{p-#g$th=J1M!*epeF2GbX?il z*4`={R=}JFIdrym#b_!7=PbJ;um0#k7+aCko+p59_Zj#_CPtP&I=$ocKdQ@90jM3}q?_Y|j?h?7p}J}Gi#Gn0%B&{se$ci?pv z-Z){&*?6@YY*Ni_?IMQO?d}I z3(FiU9AhU9k43I-ZtrOgm_^!_187?k;|^{whQ&QgmqOU7j*eJ6w{J&2(Vbe-wmedY zK)WK`sU7KB9O-IxcdgA!BCv#lxOwx-Z9M*(iUsDDQ(Zl+k)_S;uxhd>XJ%%3n}{xU zLT6-Aa!!4`As$(dGjc2%OWWJP4HleZS9UDvK{;@_)6<@6>(o+l!L07sl2%t-BaG>l z&C9QeiG7ovR=-Oeg>CZpH{m}vIIgaX{Eg14axs8=lIf0j7ui3`ubgyK`A^Ouu8=c` z{63x}1{dQ$Sl~SuJ_+0|;WOMMj&;N`D$Z@*Tz1Zw*g&~hc7+DIwZqjiYF$|bremi7 z3R$m>k7C#x$q254{}BG#(uA`%94m#j;&DLg$5hOOonpO>f$T-n!mZ*zYkjtKvBaI} ztYF;W`uJ});#1mNM&qWeI=#e_kx92 z48J<1Z6sew>ueae#o^w&kl6SrDML$?rU@ig9z2~q4p5)^OZV%~z2bOs41OEb@B6sV z&pT(ym$KZZH2)zqYs-4elVf6tf|GZtn208w-#_0;I!Ra3mz@i}p=!owEM*PHz1*bh zExky}NeqwPYVcR+msgf(LwdT)e|^6xOhenqGn`fHl}fXkH0PldLBC=Lyc45lrxOj2p5-6gG#f&(bO3_NRjvH_oDip zi+j8;ysuN<5g8dqB6{Y!d~KPO9Tu*JQS+UAtKI`mLTR347+!V*rR&N{zauea8`G{d zjgH2L)x|_Gp6k?qit|S*(Hx+OisAWA^;<+g&Ep<$o;7N=$ec!N!TI){aq$`sdA1Snxwu^7;xbw3f8+dMU3=3Uy47{y0b0bigr zy+Xq}2^;LFle0iEn*|p*>DDOSHLSy81^$vTyXt5N{^ruMTJ!`c=ImSURJvnv54{O7 zL`7t_N%6CZ`*<#M@%**=ect(bc`pW2*p}Dy%Klk*))DV}n$ioEe@y)slZTeQ((@hv zv()ccwtWrj%I49qd2&q6fEYoaHHz}|XNI5V`wi<#=P?LmYv~W1-i9^GgPS94_}3zQ z%4dW6|1|KQBXaCRBBqUM6*(s0_lVN%Af5CRsE;?ZJ|5D?q8+a*-B85%IP>0HhB%qL zr2T7?aH{d>tuZ{JerrpmZ-B9RR>^UV(v6_EiNpUAW-^?#-MPLi6sKvl=pKj4h_z#; zOh2U8XCHWn^7#gtfzJT+T0rlEXt0e_4+BHL7!3>Lir6$r!_qh^9w4sqk+$o9O; zSBGDr_y4Hx$8=0VS~~xpzp}68{rl-@T#SN&3(MPw@2{7DhVR#q*ti;fU+SL0eYpPG z3O|2u$RZ2%eT(rvOna?jp=3sy^!XvQjf<3?5me!{M`!EEIm_boYK%+f(;+ zsQf%0zA|3_lR6HxxJon%=^9`;l(YRBQJJ^l{z%0;6_4qa`XETZUY}*oruT((7M!B= zJ2Znjl$K+8@~P8IlDQYKPbj`g@jj(LNAbCuDKgIj#`d3l{F$sfl%C@t;(q)l^C)0l zidV9Ohij7m5wVUy`cB0eKktg`An+q8PwB2@Qlj&*weqNi-gsr?ez-y0t&{KYL+a42 zO8ZwO9+2R@rfZ^#x+P+DunM)`a}qSO7Z3p{%gf$9B=$yP&{og-VQ2$O9+2O@pU2m z4aL73!rxN-UqU#GCi81&2p_Ka-64Fm;x7Mlp6^$DUk;MHaf*9u9p3vRio5qbim|rh z)DdCbM-}&H_`P3^;wOjboweHGkuyTLv)VE|BI^L239jcTpG!mZ3B`Lt_-w_m3E^%{ zWq9PK5Pq@JuLq}{Ff z6c6ZCzLZ4{3;I{@y-DbYN5*J7?{Qws4xx@jwu8RX66yV~i{QJ9;I9?I-zkC*NBjzf z%Xk;Uk0^qFqzFE-2!3`EJXr+4s0hxrwLX02aW6ybAS5qz!k*`z}w-`?L+g#PPFzfs3s-`8;e ztqA?*BKYG)@LkHkbF^dpAIhIP&P1M^fWURSON0ux3*}d|2!1qh^4X|-j!`}ni_lZY z3F&tz{a2KJb`knZi{Q(ZPv;oNph@|x^86KFt@zDF`23U7&y6}lSx3h0U5b0_g`CgQ zaqBDjXK%fl zYnOCU#p{lA&y(CGa;)NO6qmJN_bc^tTkj zxh~K2?od9DD4!n`p?|Ol{xjvXK?{iQAAhZQ({YaRHB`RC)JQdFxbpYqFz}cTW}mrwWHtg~Mcdce3D<9lh|G>{2a!CJX&! z;V@a=I!)d>O(;(j{-+83X_MbYH({!y9iJAkg9h7NmO$9pOtQ2S $QQg}sV>C$#& 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 OoTmTyyu&WFoBszof#G2Q literal 0 HcmV?d00001 diff --git a/vendor/lua/5.2/linux/liblua52.so b/vendor/lua/5.2/linux/liblua52.so new file mode 100644 index 0000000000000000000000000000000000000000..e2c4741927e36f6fd550eef7d53dfde2554fdf16 GIT binary patch literal 235709 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

    vY>GftJV#B4@kj!GuRQDR{IJ%rUtkf<=#`%A>P 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≻`q9JT&!DD5}&1yp|bKJ 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 N)$=hNtNTOu{{x~&WhMXs literal 0 HcmV?d00001 diff --git a/vendor/lua/5.2/lua.odin b/vendor/lua/5.2/lua.odin new file mode 100644 index 000000000..1d1f5ef73 --- /dev/null +++ b/vendor/lua/5.2/lua.odin @@ -0,0 +1,728 @@ +package lua_5_2 + +import "core:intrinsics" +import "core:builtin" + +import c "core:c/libc" + +#assert(size_of(c.int) == size_of(b32)) + +when ODIN_OS == .Windows { + foreign import lib "windows/lua52dll.lib" +} else when ODIN_OS == .Linux { + foreign import lib "linux/liblua52.a" +} else { + #panic(`Unsupported platform of "vendor:lua/5.2"`) +} + +VERSION_MAJOR :: "5" +VERSION_MINOR :: "2" +VERSION_NUM :: 502 +VERSION_RELEASE :: "4" + +VERSION :: "Lua " + VERSION_MAJOR + "." + VERSION_MINOR +RELEASE :: VERSION + "." + VERSION_RELEASE +COPYRIGHT :: RELEASE + " Copyright (C) 1994-2015 Lua.org, PUC-Rio" +AUTHORS :: "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" + + +/* mark for precompiled code ('Lua') */ +SIGNATURE :: "\x1bLua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +MULTRET :: -1 + +FIRSTPSEUDOIDX :: -MAXSTACK - 1000 + +REGISTRYINDEX :: -FIRSTPSEUDOIDX + + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +** (It must fit into max(size_t)/32.) +*/ +MAXSTACK :: 1000000 when size_of(rawptr) == 4 else 15000 + + +/* +@@ LUA_EXTRASPACE defines the size of a raw memory area associated with +** a Lua state with very fast access. +** CHANGE it if you need a different size. +*/ +EXTRASPACE :: size_of(rawptr) + + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@@ of a function in debug information. +** CHANGE it if you want a different size. +*/ +IDSIZE :: 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +L_BUFFERSIZE :: c.int(16 * size_of(rawptr) * size_of(Number)) + + +MAXALIGNVAL :: max(align_of(Number), align_of(f64), align_of(rawptr), align_of(Integer), align_of(c.long)) + + +Status :: enum c.int { + OK = 0, + YIELD = 1, + ERRRUN = 2, + ERRSYNTAX = 3, + ERRMEM = 4, + ERRERR = 5, + ERRGCMM = 6, + ERRFILE = 7, +} + +/* thread status */ +OK :: Status.OK +YIELD :: Status.YIELD +ERRRUN :: Status.ERRRUN +ERRSYNTAX :: Status.ERRSYNTAX +ERRMEM :: Status.ERRMEM +ERRERR :: Status.ERRERR +ERRFILE :: Status.ERRFILE + +/* +** basic types +*/ + + +Type :: enum c.int { + NONE = -1, + + NIL = 0, + BOOLEAN = 1, + LIGHTUSERDATA = 2, + NUMBER = 3, + STRING = 4, + TABLE = 5, + FUNCTION = 6, + USERDATA = 7, + THREAD = 8, +} + +TNONE :: Type.NONE +TNIL :: Type.NIL +TBOOLEAN :: Type.BOOLEAN +TLIGHTUSERDATA :: Type.LIGHTUSERDATA +TNUMBER :: Type.NUMBER +TSTRING :: Type.STRING +TTABLE :: Type.TABLE +TFUNCTION :: Type.FUNCTION +TUSERDATA :: Type.USERDATA +TTHREAD :: Type.THREAD +NUMTYPES :: 9 + + + +ArithOp :: enum c.int { + ADD = 0, /* ORDER TM, ORDER OP */ + SUB = 1, + MUL = 2, + DIV = 3, + MOD = 4, + POW = 5, + UNM = 6, +} + +CompareOp :: enum c.int { + EQ = 0, + LT = 1, + LE = 2, +} + +OPADD :: ArithOp.ADD +OPSUB :: ArithOp.SUB +OPMUL :: ArithOp.MUL +OPDIV :: ArithOp.DIV +OPMOD :: ArithOp.MOD +OPPOW :: ArithOp.POW +OPUNM :: ArithOp.UNM + +OPEQ :: CompareOp.EQ +OPLT :: CompareOp.LT +OPLE :: CompareOp.LE + + +/* minimum Lua stack available to a C function */ +MINSTACK :: 20 + + +/* predefined values in the registry */ +RIDX_MAINTHREAD :: 1 +RIDX_GLOBALS :: 2 +RIDX_LAST :: RIDX_GLOBALS + + +/* type of numbers in Lua */ +Number :: distinct (f32 when size_of(uintptr) == 4 else f64) + + +/* type for integer functions */ +Integer :: distinct (i32 when size_of(uintptr) == 4 else i64) + +/* unsigned integer type */ +Unsigned :: distinct (u32 when size_of(uintptr) == 4 else u64) + + +/* +** Type for C functions registered with Lua +*/ +CFunction :: #type proc "c" (L: ^State) -> c.int + + + +/* +** Type for functions that read/write blocks when loading/dumping Lua chunks +*/ +Reader :: #type proc "c" (L: ^State, ud: rawptr, sz: ^c.size_t) -> cstring +Writer :: #type proc "c" (L: ^State, p: rawptr, sz: ^c.size_t, ud: rawptr) -> c.int + + +/* +** Type for memory-allocation functions +*/ +Alloc :: #type proc "c" (ud: rawptr, ptr: rawptr, osize, nsize: c.size_t) -> rawptr + + +GCWhat :: enum c.int { + STOP = 0, + RESTART = 1, + COLLECT = 2, + COUNT = 3, + COUNTB = 4, + STEP = 5, + SETPAUSE = 6, + SETSTEPMUL = 7, + SETMAJORINC = 8, + ISRUNNING = 9, + GEN = 10, + INC = 11, +} +GCSTOP :: GCWhat.STOP +GCRESTART :: GCWhat.RESTART +GCCOLLECT :: GCWhat.COLLECT +GCCOUNT :: GCWhat.COUNT +GCCOUNTB :: GCWhat.COUNTB +GCSTEP :: GCWhat.STEP +GCSETPAUSE :: GCWhat.SETPAUSE +GCSETSTEPMUL :: GCWhat.SETSTEPMUL +GCSETMAJORINC :: GCWhat.SETMAJORINC +GCISRUNNING :: GCWhat.ISRUNNING +GCGEN :: GCWhat.GEN +GCINC :: GCWhat.INC + + + +/* +** Event codes +*/ + +HookEvent :: enum c.int { + CALL = 0, + RET = 1, + LINE = 2, + COUNT = 3, + TAILCALL = 4, +} +HOOKCALL :: HookEvent.CALL +HOOKRET :: HookEvent.RET +HOOKLINE :: HookEvent.LINE +HOOKCOUNT :: HookEvent.COUNT +HOOKTAILCALL :: HookEvent.TAILCALL + + +/* +** Event masks +*/ +HookMask :: distinct bit_set[HookEvent; c.int] +MASKCALL :: HookMask{.CALL} +MASKRET :: HookMask{.RET} +MASKLINE :: HookMask{.LINE} +MASKCOUNT :: HookMask{.COUNT} + +/* activation record */ +Debug :: struct { + event: HookEvent, + name: cstring, /* (n) */ + namewhat: cstring, /* (n) 'global', 'local', 'field', 'method' */ + what: cstring, /* (S) 'Lua', 'C', 'main', 'tail' */ + source: cstring, /* (S) */ + currentline: c.int, /* (l) */ + linedefined: c.int, /* (S) */ + lastlinedefined: c.int, /* (S) */ + nups: u8, /* (u) number of upvalues */ + nparams: u8, /* (u) number of parameters */ + isvararg: bool, /* (u) */ + istailcall: bool, /* (t) */ + short_src: [IDSIZE]u8 `fmt:"s"`, /* (S) */ + /* private part */ + i_ci: rawptr, /* active function */ +} + + +/* Functions to be called by the debugger in specific events */ +Hook :: #type proc "c" (L: ^State, ar: ^Debug) + + +State :: struct {} // opaque data type + + +@(link_prefix="lua_") +@(default_calling_convention="c") +foreign lib { + /* + ** RCS ident string + */ + + ident: [^]u8 // TODO(bill): is this correct? + + + /* + ** state manipulation + */ + + newstate :: proc(f: Alloc, ud: rawptr) -> ^State --- + close :: proc(L: ^State) --- + newthread :: proc(L: ^State) -> ^State --- + + atpanic :: proc(L: ^State, panicf: CFunction) -> CFunction --- + + version :: proc(L: ^State) -> ^Number --- + + + /* + ** basic stack manipulation + */ + + absindex :: proc (L: ^State, idx: c.int) -> c.int --- + gettop :: proc (L: ^State) -> c.int --- + settop :: proc (L: ^State, idx: c.int) --- + pushvalue :: proc (L: ^State, idx: c.int) --- + remove :: proc (L: ^State, idx: c.int) --- + insert :: proc (L: ^State, idx: c.int) --- + replace :: proc (L: ^State, idx: c.int) --- + copy :: proc (L: ^State, fromidx, toidx: c.int) --- + checkstack :: proc (L: ^State, sz: c.int) -> c.int --- + + xmove :: proc(from, to: ^State, n: c.int) --- + + + /* + ** access functions (stack -> C) + */ + + isnumber :: proc(L: ^State, idx: c.int) -> b32 --- + isstring :: proc(L: ^State, idx: c.int) -> b32 --- + iscfunction :: proc(L: ^State, idx: c.int) -> b32 --- + isinteger :: proc(L: ^State, idx: c.int) -> b32 --- + isuserdata :: proc(L: ^State, idx: c.int) -> b32 --- + type :: proc(L: ^State, idx: c.int) -> Type --- + typename :: proc(L: ^State, tp: Type) -> cstring --- + + @(link_name="lua_tonumberx") + tonumber :: proc(L: ^State, idx: c.int, isnum: ^b32 = nil) -> Number --- + @(link_name="lua_tointegerx") + tointeger :: proc(L: ^State, idx: c.int, isnum: ^b32 = nil) -> Integer --- + @(link_name="lua_tounsignedx") + tounsigned :: proc(L: ^State, idx: c.int, isnum: ^b32 = nil) -> Unsigned --- + toboolean :: proc(L: ^State, idx: c.int) -> b32 --- + tolstring :: proc(L: ^State, idx: c.int, len: ^c.size_t) -> cstring --- + rawlen :: proc(L: ^State, idx: c.int) -> c.size_t --- + tocfunction :: proc(L: ^State, idx: c.int) -> CFunction --- + touserdata :: proc(L: ^State, idx: c.int) -> rawptr --- + tothread :: proc(L: ^State, idx: c.int) -> ^State --- + topointer :: proc(L: ^State, idx: c.int) -> rawptr --- + + /* + ** Comparison and arithmetic functions + */ + + arith :: proc(L: ^State, op: ArithOp) --- + rawequal :: proc(L: ^State, idx1, idx2: c.int) -> b32 --- + compare :: proc(L: ^State, idx1, idx2: c.int, op: CompareOp) -> b32 --- + + /* + ** push functions (C -> stack) + */ + + pushnil :: proc(L: ^State) --- + pushnumber :: proc(L: ^State, n: Number) --- + pushinteger :: proc(L: ^State, n: Integer) --- + pushunsigned :: proc(L: ^State, n: Unsigned) --- + pushlstring :: proc(L: ^State, s: cstring, l: c.size_t) -> cstring --- + pushstring :: proc(L: ^State, s: cstring) -> cstring --- + pushvfstring :: proc(L: ^State, fmt: cstring, argp: c.va_list) -> cstring --- + pushfstring :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> cstring --- + pushcclosure :: proc(L: ^State, fn: CFunction, n: c.int) --- + pushboolean :: proc(L: ^State, b: b32) --- + pushlightuserdata :: proc(L: ^State, p: rawptr) --- + pushthread :: proc(L: ^State) -> Status --- + + /* + ** get functions (Lua -> stack) + */ + + getglobal :: proc(L: ^State, name: cstring) --- + gettable :: proc(L: ^State, idx: c.int) --- + getfield :: proc(L: ^State, idx: c.int, k: cstring) --- + geti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawget :: proc(L: ^State, idx: c.int) --- + rawgeti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawgetp :: proc(L: ^State, idx: c.int, p: rawptr) --- + + createtable :: proc(L: ^State, narr, nrec: c.int) --- + newuserdata :: proc(L: ^State, sz: c.size_t) -> rawptr --- + getmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + getuservalue :: proc(L: ^State, idx: c.int) --- + + + /* + ** set functions (stack -> Lua) + */ + + setglobal :: proc(L: ^State, var: cstring) --- + settable :: proc(L: ^State, idx: c.int) --- + setfield :: proc(L: ^State, idx: c.int, k: cstring) --- + rawset :: proc(L: ^State, idx: c.int) --- + rawseti :: proc(L: ^State, idx: c.int, n: c.int) --- + rawsetp :: proc(L: ^State, idx: c.int, p: rawptr) --- + setmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + setuservalue :: proc(L: ^State, idx: c.int) -> c.int --- + + + /* + ** 'load' and 'call' functions (load and run Lua code) + */ + + @(link_name="lua_callk") + call :: proc(L: ^State, nargs, nresults: c.int, + k: CFunction = nil) --- + + getctx :: proc(L: ^State, ctx: ^c.int) -> c.int --- + + @(link_name="lua_pcallk") + pcall :: proc(L: ^State, nargs, nresults: c.int, errfunc: c.int, + k: CFunction = nil) -> c.int --- + + load :: proc(L: ^State, reader: Reader, dt: rawptr, + chunkname, mode: cstring) -> Status --- + + dump :: proc(L: ^State, writer: Writer, data: rawptr) -> Status --- + + + /* + ** coroutine functions + */ + + @(link_name="lua_yieldk") + yield :: proc(L: ^State, nresults: c.int, ctx: c.int = 0, k: CFunction = nil) -> Status --- + resume :: proc(L: ^State, from: ^State, narg: c.int) -> Status --- + status :: proc(L: ^State) -> Status --- + + + /* + ** garbage-collection function and options + */ + + + + gc :: proc(L: ^State, what: GCWhat, data: c.int) -> c.int --- + + + /* + ** miscellaneous functions + */ + + error :: proc(L: ^State) -> Status --- + + next :: proc(L: ^State, idx: c.int) -> c.int --- + + concat :: proc(L: ^State, n: c.int) --- + len :: proc(L: ^State, idx: c.int) --- + + getallocf :: proc(L: State, ud: ^rawptr) -> Alloc --- + setallocf :: proc(L: ^State, f: Alloc, ud: rawptr) --- + + /* + ** {====================================================================== + ** Debug API + ** ======================================================================= + */ + + getstack :: proc(L: ^State, level: c.int, ar: ^Debug) -> c.int --- + getinfo :: proc(L: ^State, what: cstring, ar: ^Debug) -> c.int --- + getlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + setlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + getupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + setupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + + upvalueid :: proc(L: ^State, fidx, n: c.int) -> rawptr --- + upvaluejoin :: proc(L: ^State, fidx1, n1, fidx2, n2: c.int) --- + + sethook :: proc(L: ^State, func: Hook, mask: HookMask, count: c.int) -> c.int --- + gethook :: proc(L: ^State) -> Hook --- + gethookmask :: proc(L: ^State) -> HookMask --- + gethookcount :: proc(L: ^State) -> c.int --- + + /* }============================================================== */ +} + + + +/* version suffix for environment variable names */ +VERSUFFIX :: "_" + VERSION_MAJOR + "_" + VERSION_MINOR + +COLIBNAME :: "coroutine" +TABLIBNAME :: "table" +IOLIBNAME :: "io" +OSLIBNAME :: "os" +STRLIBNAME :: "string" +UTF8LIBNAME :: "utf8" +BITLIBNAME :: "bit32" +MATHLIBNAME :: "math" +DBLIBNAME :: "debug" +LOADLIBNAME :: "package" + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + open_base :: proc(L: ^State) -> c.int --- + open_coroutine :: proc(L: ^State) -> c.int --- + open_table :: proc(L: ^State) -> c.int --- + open_io :: proc(L: ^State) -> c.int --- + open_os :: proc(L: ^State) -> c.int --- + open_string :: proc(L: ^State) -> c.int --- + open_utf8 :: proc(L: ^State) -> c.int --- + open_bit32 :: proc(L: ^State) -> c.int --- + open_math :: proc(L: ^State) -> c.int --- + open_debug :: proc(L: ^State) -> c.int --- + open_package :: proc(L: ^State) -> c.int --- + + /* open all previous libraries */ + + L_openlibs :: proc(L: ^State) --- +} + + + +GNAME :: "_G" + +L_Reg :: struct { + name: cstring, + func: CFunction, +} + + +/* predefined references */ +NOREF :: -2 +REFNIL :: -1 + + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + @(link_name="luaL_checkversion_") + L_checkversion :: proc(L: ^State, ver: Number = VERSION_NUM) --- + + + L_getmetafield :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + L_callmeta :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + @(link_name="luaL_tolstring") + L_tostring :: proc(L: ^State, idx: c.int, len: ^c.size_t = nil) -> cstring --- + L_argerror :: proc(L: ^State, numarg: c.int, extramsg: cstring) -> c.int --- + @(link_name="luaL_checklstring") + L_checkstring :: proc(L: ^State, numArg: c.int, l: ^c.size_t = nil) -> cstring --- + @(link_name="luaL_optlstring") + L_optstring :: proc(L: ^State, numArg: c.int, def: cstring, l: ^c.size_t = nil) -> cstring --- + L_checknumber :: proc(L: ^State, numArg: c.int) -> Number --- + L_optnumber :: proc(L: ^State, nArg: c.int, def: Number) -> Number --- + + L_checkinteger :: proc(L: ^State, numArg: c.int) -> Integer --- + L_optinteger :: proc(L: ^State, nArg: c.int, def: Integer) -> Integer --- + L_checkunsigned :: proc(L: ^State, numArg: c.int) -> Unsigned --- + L_optunsigned :: proc(L: ^State, nArg: c.int, def: Unsigned) -> Unsigned --- + + + L_checkstack :: proc(L: ^State, sz: c.int, msg: cstring) --- + L_checktype :: proc(L: ^State, narg: c.int, t: c.int) --- + L_checkany :: proc(L: ^State, narg: c.int) --- + + L_newmetatable :: proc(L: ^State, tname: cstring) -> c.int --- + L_setmetatable :: proc(L: ^State, tname: cstring) --- + L_testudata :: proc(L: ^State, ud: c.int, tname: cstring) -> rawptr --- + L_checkudata :: proc(L: ^State, ud: c.int, tname: cstring) -> rawptr --- + + L_where :: proc(L: ^State, lvl: c.int) --- + L_error :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> Status --- + + L_checkoption :: proc(L: ^State, narg: c.int, def: cstring, lst: [^]cstring) -> c.int --- + + L_fileresult :: proc(L: ^State, stat: c.int, fname: cstring) -> c.int --- + L_execresult :: proc(L: ^State, stat: c.int) -> c.int --- + + + L_ref :: proc(L: ^State, t: c.int) -> c.int --- + L_unref :: proc(L: ^State, t: c.int, ref: c.int) --- + + @(link_name="luaL_loadfilex") + L_loadfile :: proc (L: ^State, filename: cstring, mode: cstring = nil) -> Status --- + + @(link_name="luaL_loadbufferx") + L_loadbuffer :: proc(L: ^State, buff: [^]byte, sz: c.size_t, name: cstring, mode: cstring = nil) -> Status --- + L_loadstring :: proc(L: ^State, s: cstring) -> Status --- + + L_newstate :: proc() -> ^State --- + + L_len :: proc(L: ^State, idx: c.int) -> c.int --- + + L_gsub :: proc(L: ^State, s, p, r: cstring) -> cstring --- + + L_setfuncs :: proc(L: ^State, l: [^]L_Reg, nup: c.int) --- + + L_getsubtable :: proc(L: ^State, idx: c.int, fname: cstring) -> c.int --- + + L_traceback :: proc(L: ^State, L1: ^State, msg: cstring, level: c.int) --- + + L_requiref :: proc(L: ^State, modname: cstring, openf: CFunction, glb: c.int) --- + +} +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + +L_Buffer :: struct { + b: [^]byte, /* buffer address */ + size: c.size_t, /* buffer size */ + n: c.size_t, /* number of characters in buffer */ + L: ^State, + initb: [L_BUFFERSIZE]byte, /* initial buffer */ +} + +L_addchar :: #force_inline proc "c" (B: ^L_Buffer, c: byte) { + if B.n < B.size { + L_prepbuffsize(B, 1) + } + B.b[B.n] = c + B.n += 1 +} + +L_addsize :: #force_inline proc "c" (B: ^L_Buffer, s: c.size_t) -> c.size_t { + B.n += s + return B.n +} + +L_prepbuffer :: #force_inline proc "c" (B: ^L_Buffer) -> [^]byte { + return L_prepbuffsize(B, c.size_t(L_BUFFERSIZE)) +} + + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + L_buffinit :: proc(L: ^State, B: ^L_Buffer) --- + L_prepbuffsize :: proc(B: ^L_Buffer, sz: c.size_t) -> [^]byte --- + L_addlstring :: proc(B: ^L_Buffer, s: cstring, l: c.size_t) --- + L_addstring :: proc(B: ^L_Buffer, s: cstring) --- + L_addvalue :: proc(B: ^L_Buffer) --- + L_pushresult :: proc(B: ^L_Buffer) --- + L_pushresultsize :: proc(B: ^L_Buffer, sz: c.size_t) --- + L_buffinitsize :: proc(L: ^State, B: ^L_Buffer, sz: c.size_t) -> [^]byte --- +} + + +/* }====================================================== */ + + + + +/* +** {============================================================== +** some useful macros +** =============================================================== +*/ + +pop :: #force_inline proc "c" (L: ^State, n: c.int) { + settop(L, -n-1) +} +newtable :: #force_inline proc "c" (L: ^State) { + createtable(L, 0, 0) +} +register :: #force_inline proc "c" (L: ^State, n: cstring, f: CFunction) { + pushcfunction(L, f) + setglobal(L, n) +} + +pushcfunction :: #force_inline proc "c" (L: ^State, f: CFunction) { + pushcclosure(L, f, 0) +} + + +isfunction :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .FUNCTION } +istable :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .TABLE } +islightuserdata :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .LIGHTUSERDATA } +isnil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NIL } +isboolean :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .BOOLEAN } +isthread :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .THREAD } +isnone :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NONE } +isnoneornil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) <= .NIL } + + +pushliteral :: pushstring +pushglobaltable :: #force_inline proc "c" (L: ^State) { + rawgeti(L, REGISTRYINDEX, RIDX_GLOBALS) +} +tostring :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return tolstring(L, i, nil) +} + +L_newlibtable :: #force_inline proc "c" (L: ^State, l: []L_Reg) { + createtable(L, 0, c.int(builtin.len(l) - 1)) +} + +L_newlib :: proc(L: ^State, l: []L_Reg) { + L_newlibtable(L, l) + L_setfuncs(L, raw_data(l), 0) +} + +L_argcheck :: #force_inline proc "c" (L: ^State, cond: bool, numarg: c.int, extramsg: cstring) { + if cond { + L_argerror(L, numarg, extramsg) + } +} + +L_typename :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return typename(L, type(L, i)) +} +L_dofile :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadfile(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_dostring :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadstring(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_getmetatable :: #force_inline proc "c" (L: ^State, n: cstring) { + getfield(L, REGISTRYINDEX, n) +} +L_opt :: #force_inline proc "c" (L: ^State, f: $F, n: c.int, d: $T) -> T where intrinsics.type_is_proc(F) { + return d if isnoneornil(L, n) else f(L, n) +} + + + +/* }============================================================== */ diff --git a/vendor/lua/5.2/windows/lua52.dll b/vendor/lua/5.2/windows/lua52.dll new file mode 100644 index 0000000000000000000000000000000000000000..b7e15d585a02969328c99aa499b6a526ccb2e3ab GIT binary patch literal 300544 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

    wGvM#3<_GKB$_8`N~+{C`-eN!ar2YD$8vx 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 R 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 W&+IP7qL1w9-*b#F8UDZX_kRKJOTPX9 literal 0 HcmV?d00001 diff --git a/vendor/lua/5.2/windows/lua52dll.lib b/vendor/lua/5.2/windows/lua52dll.lib new file mode 100644 index 0000000000000000000000000000000000000000..0d6ffb7517dd68371568c79d4171a770b8260326 GIT binary patch literal 29546 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 h`TNWFkhk* Date: Wed, 5 Apr 2023 16:52:27 +0100 Subject: [PATCH 44/50] Minor fixes --- vendor/lua/5.3/lua.odin | 6 +++--- vendor/lua/5.4/lua.odin | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vendor/lua/5.3/lua.odin b/vendor/lua/5.3/lua.odin index d7884e852..8f519c7ab 100644 --- a/vendor/lua/5.3/lua.odin +++ b/vendor/lua/5.3/lua.odin @@ -343,9 +343,9 @@ foreign lib { typename :: proc(L: ^State, tp: Type) -> cstring --- @(link_name="lua_tonumberx") - tonumber :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Number --- + tonumber :: proc(L: ^State, idx: c.int, isnum: ^b32 = nil) -> Number --- @(link_name="lua_tointegerx") - tointeger :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Integer --- + tointeger :: proc(L: ^State, idx: c.int, isnum: ^b32 = nil) -> Integer --- toboolean :: proc(L: ^State, idx: c.int) -> b32 --- tolstring :: proc(L: ^State, idx: c.int, len: ^c.size_t) -> cstring --- rawlen :: proc(L: ^State, idx: c.int) -> c.size_t --- @@ -369,7 +369,7 @@ foreign lib { pushnil :: proc(L: ^State) --- pushnumber :: proc(L: ^State, n: Number) --- pushinteger :: proc(L: ^State, n: Integer) --- - pushlstring :: proc(L: ^State, s: cstring, len: cstring) -> cstring --- + pushlstring :: proc(L: ^State, s: cstring, len: c.size_t) -> cstring --- pushstring :: proc(L: ^State, s: cstring) -> cstring --- pushvfstring :: proc(L: ^State, fmt: cstring, argp: c.va_list) -> cstring --- pushfstring :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> cstring --- diff --git a/vendor/lua/5.4/lua.odin b/vendor/lua/5.4/lua.odin index df02076ba..afadb3857 100644 --- a/vendor/lua/5.4/lua.odin +++ b/vendor/lua/5.4/lua.odin @@ -357,9 +357,9 @@ foreign lib { typename :: proc(L: ^State, tp: Type) -> cstring --- @(link_name="lua_tonumberx") - tonumber :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Number --- + tonumber :: proc(L: ^State, idx: c.int, isnum: ^b32 = nil) -> Number --- @(link_name="lua_tointegerx") - tointeger :: proc(L: ^State, idx: c.int, isnum: ^c.int = nil) -> Integer --- + tointeger :: proc(L: ^State, idx: c.int, isnum: ^b32 = nil) -> Integer --- toboolean :: proc(L: ^State, idx: c.int) -> b32 --- tolstring :: proc(L: ^State, idx: c.int, len: ^c.size_t) -> cstring --- rawlen :: proc(L: ^State, idx: c.int) -> Unsigned --- @@ -383,7 +383,7 @@ foreign lib { pushnil :: proc(L: ^State) --- pushnumber :: proc(L: ^State, n: Number) --- pushinteger :: proc(L: ^State, n: Integer) --- - pushlstring :: proc(L: ^State, s: cstring, len: cstring) -> cstring --- + pushlstring :: proc(L: ^State, s: cstring, len: c.size_t) -> cstring --- pushstring :: proc(L: ^State, s: cstring) -> cstring --- pushvfstring :: proc(L: ^State, fmt: cstring, argp: c.va_list) -> cstring --- pushfstring :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> cstring --- From c5af69ffa6085ee307ab7140f674c9e147185688 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 17:25:30 +0100 Subject: [PATCH 45/50] Add `vendor:lua/5.1` --- examples/all/all_vendor.odin | 1 + vendor/lua/5.1/include/lauxlib.h | 174 ++++++ vendor/lua/5.1/include/lua.h | 388 +++++++++++++ vendor/lua/5.1/include/lua.hpp | 9 + vendor/lua/5.1/include/luaconf.h | 766 ++++++++++++++++++++++++++ vendor/lua/5.1/include/lualib.h | 53 ++ vendor/lua/5.1/linux/liblua5.1.a | Bin 0 -> 347548 bytes vendor/lua/5.1/linux/liblua5.1.so | Bin 0 -> 212314 bytes vendor/lua/5.1/lua.odin | 659 ++++++++++++++++++++++ vendor/lua/5.1/windows/lua5.1.dll | Bin 0 -> 247296 bytes vendor/lua/5.1/windows/lua5.1.dll.lib | Bin 0 -> 25478 bytes vendor/lua/5.2/lua.odin | 4 +- 12 files changed, 2052 insertions(+), 2 deletions(-) create mode 100644 vendor/lua/5.1/include/lauxlib.h create mode 100644 vendor/lua/5.1/include/lua.h create mode 100644 vendor/lua/5.1/include/lua.hpp create mode 100644 vendor/lua/5.1/include/luaconf.h create mode 100644 vendor/lua/5.1/include/lualib.h create mode 100644 vendor/lua/5.1/linux/liblua5.1.a create mode 100644 vendor/lua/5.1/linux/liblua5.1.so create mode 100644 vendor/lua/5.1/lua.odin create mode 100644 vendor/lua/5.1/windows/lua5.1.dll create mode 100644 vendor/lua/5.1/windows/lua5.1.dll.lib diff --git a/examples/all/all_vendor.odin b/examples/all/all_vendor.odin index 8ba141e8f..e550e600c 100644 --- a/examples/all/all_vendor.odin +++ b/examples/all/all_vendor.odin @@ -26,6 +26,7 @@ import NS "vendor:darwin/Foundation" import MTL "vendor:darwin/Metal" import CA "vendor:darwin/QuartzCore" +// NOTE(bill): only one can be checked at a time import lua_5_4 "vendor:lua/5.4" _ :: botan diff --git a/vendor/lua/5.1/include/lauxlib.h b/vendor/lua/5.1/include/lauxlib.h new file mode 100644 index 000000000..34258235d --- /dev/null +++ b/vendor/lua/5.1/include/lauxlib.h @@ -0,0 +1,174 @@ +/* +** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lauxlib_h +#define lauxlib_h + + +#include +#include + +#include "lua.h" + + +#if defined(LUA_COMPAT_GETN) +LUALIB_API int (luaL_getn) (lua_State *L, int t); +LUALIB_API void (luaL_setn) (lua_State *L, int t, int n); +#else +#define luaL_getn(L,i) ((int)lua_objlen(L, i)) +#define luaL_setn(L,i,j) ((void)0) /* no op! */ +#endif + +#if defined(LUA_COMPAT_OPENLIB) +#define luaI_openlib luaL_openlib +#endif + + +/* extra error code for `luaL_load' */ +#define LUA_ERRFILE (LUA_ERRERR+1) + + +typedef struct luaL_Reg { + const char *name; + lua_CFunction func; +} luaL_Reg; + + + +LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname, + const luaL_Reg *l, int nup); +LUALIB_API void (luaL_register) (lua_State *L, const char *libname, + const luaL_Reg *l); +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname); +LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg); +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg, + size_t *l); +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg, + const char *def, size_t *l); +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg); +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def); + +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg); +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg, + lua_Integer def); + +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); +LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t); +LUALIB_API void (luaL_checkany) (lua_State *L, int narg); + +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); + +LUALIB_API void (luaL_where) (lua_State *L, int lvl); +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); + +LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def, + const char *const lst[]); + +LUALIB_API int (luaL_ref) (lua_State *L, int t); +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); + +LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename); +LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, + const char *name); +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); + +LUALIB_API lua_State *(luaL_newstate) (void); + + +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, + const char *r); + +LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx, + const char *fname, int szhint); + + + + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + +#define luaL_argcheck(L, cond,numarg,extramsg) \ + ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) + +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) + +#define luaL_dofile(L, fn) \ + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_dostring(L, s) \ + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) + +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + + +typedef struct luaL_Buffer { + char *p; /* current position in buffer */ + int lvl; /* number of strings in the stack (level) */ + lua_State *L; + char buffer[LUAL_BUFFERSIZE]; +} luaL_Buffer; + +#define luaL_addchar(B,c) \ + ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \ + (*(B)->p++ = (char)(c))) + +/* compatibility only */ +#define luaL_putchar(B,c) luaL_addchar(B,c) + +#define luaL_addsize(B,n) ((B)->p += (n)) + +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); +LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B); +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); + + +/* }====================================================== */ + + +/* compatibility with ref system */ + +/* pre-defined references */ +#define LUA_NOREF (-2) +#define LUA_REFNIL (-1) + +#define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \ + (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0)) + +#define lua_unref(L,ref) luaL_unref(L, LUA_REGISTRYINDEX, (ref)) + +#define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, (ref)) + + +#define luaL_reg luaL_Reg + +#endif + + diff --git a/vendor/lua/5.1/include/lua.h b/vendor/lua/5.1/include/lua.h new file mode 100644 index 000000000..a4b73e743 --- /dev/null +++ b/vendor/lua/5.1/include/lua.h @@ -0,0 +1,388 @@ +/* +** $Id: lua.h,v 1.218.1.7 2012/01/13 20:36:20 roberto Exp $ +** Lua - An Extensible Extension Language +** Lua.org, PUC-Rio, Brazil (http://www.lua.org) +** See Copyright Notice at the end of this file +*/ + + +#ifndef lua_h +#define lua_h + +#include +#include + + +#include "luaconf.h" + + +#define LUA_VERSION "Lua 5.1" +#define LUA_RELEASE "Lua 5.1.5" +#define LUA_VERSION_NUM 501 +#define LUA_COPYRIGHT "Copyright (C) 1994-2012 Lua.org, PUC-Rio" +#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" + + +/* mark for precompiled code (`Lua') */ +#define LUA_SIGNATURE "\033Lua" + +/* option for multiple returns in `lua_pcall' and `lua_call' */ +#define LUA_MULTRET (-1) + + +/* +** pseudo-indices +*/ +#define LUA_REGISTRYINDEX (-10000) +#define LUA_ENVIRONINDEX (-10001) +#define LUA_GLOBALSINDEX (-10002) +#define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i)) + + +/* thread status; 0 is OK */ +#define LUA_YIELD 1 +#define LUA_ERRRUN 2 +#define LUA_ERRSYNTAX 3 +#define LUA_ERRMEM 4 +#define LUA_ERRERR 5 + + +typedef struct lua_State lua_State; + +typedef int (*lua_CFunction) (lua_State *L); + + +/* +** functions that read/write blocks when loading/dumping Lua chunks +*/ +typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); + +typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); + + +/* +** prototype for memory-allocation functions +*/ +typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); + + +/* +** basic types +*/ +#define LUA_TNONE (-1) + +#define LUA_TNIL 0 +#define LUA_TBOOLEAN 1 +#define LUA_TLIGHTUSERDATA 2 +#define LUA_TNUMBER 3 +#define LUA_TSTRING 4 +#define LUA_TTABLE 5 +#define LUA_TFUNCTION 6 +#define LUA_TUSERDATA 7 +#define LUA_TTHREAD 8 + + + +/* minimum Lua stack available to a C function */ +#define LUA_MINSTACK 20 + + +/* +** generic extra include file +*/ +#if defined(LUA_USER_H) +#include LUA_USER_H +#endif + + +/* type of numbers in Lua */ +typedef LUA_NUMBER lua_Number; + + +/* type for integer functions */ +typedef LUA_INTEGER lua_Integer; + + + +/* +** state manipulation +*/ +LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); +LUA_API void (lua_close) (lua_State *L); +LUA_API lua_State *(lua_newthread) (lua_State *L); + +LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); + + +/* +** basic stack manipulation +*/ +LUA_API int (lua_gettop) (lua_State *L); +LUA_API void (lua_settop) (lua_State *L, int idx); +LUA_API void (lua_pushvalue) (lua_State *L, int idx); +LUA_API void (lua_remove) (lua_State *L, int idx); +LUA_API void (lua_insert) (lua_State *L, int idx); +LUA_API void (lua_replace) (lua_State *L, int idx); +LUA_API int (lua_checkstack) (lua_State *L, int sz); + +LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); + + +/* +** access functions (stack -> C) +*/ + +LUA_API int (lua_isnumber) (lua_State *L, int idx); +LUA_API int (lua_isstring) (lua_State *L, int idx); +LUA_API int (lua_iscfunction) (lua_State *L, int idx); +LUA_API int (lua_isuserdata) (lua_State *L, int idx); +LUA_API int (lua_type) (lua_State *L, int idx); +LUA_API const char *(lua_typename) (lua_State *L, int tp); + +LUA_API int (lua_equal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_lessthan) (lua_State *L, int idx1, int idx2); + +LUA_API lua_Number (lua_tonumber) (lua_State *L, int idx); +LUA_API lua_Integer (lua_tointeger) (lua_State *L, int idx); +LUA_API int (lua_toboolean) (lua_State *L, int idx); +LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); +LUA_API size_t (lua_objlen) (lua_State *L, int idx); +LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); +LUA_API void *(lua_touserdata) (lua_State *L, int idx); +LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); +LUA_API const void *(lua_topointer) (lua_State *L, int idx); + + +/* +** push functions (C -> stack) +*/ +LUA_API void (lua_pushnil) (lua_State *L); +LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); +LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); +LUA_API void (lua_pushlstring) (lua_State *L, const char *s, size_t l); +LUA_API void (lua_pushstring) (lua_State *L, const char *s); +LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, + va_list argp); +LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); +LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); +LUA_API void (lua_pushboolean) (lua_State *L, int b); +LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); +LUA_API int (lua_pushthread) (lua_State *L); + + +/* +** get functions (Lua -> stack) +*/ +LUA_API void (lua_gettable) (lua_State *L, int idx); +LUA_API void (lua_getfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawget) (lua_State *L, int idx); +LUA_API void (lua_rawgeti) (lua_State *L, int idx, int n); +LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); +LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); +LUA_API int (lua_getmetatable) (lua_State *L, int objindex); +LUA_API void (lua_getfenv) (lua_State *L, int idx); + + +/* +** set functions (stack -> Lua) +*/ +LUA_API void (lua_settable) (lua_State *L, int idx); +LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawset) (lua_State *L, int idx); +LUA_API void (lua_rawseti) (lua_State *L, int idx, int n); +LUA_API int (lua_setmetatable) (lua_State *L, int objindex); +LUA_API int (lua_setfenv) (lua_State *L, int idx); + + +/* +** `load' and `call' functions (load and run Lua code) +*/ +LUA_API void (lua_call) (lua_State *L, int nargs, int nresults); +LUA_API int (lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc); +LUA_API int (lua_cpcall) (lua_State *L, lua_CFunction func, void *ud); +LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, + const char *chunkname); + +LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); + + +/* +** coroutine functions +*/ +LUA_API int (lua_yield) (lua_State *L, int nresults); +LUA_API int (lua_resume) (lua_State *L, int narg); +LUA_API int (lua_status) (lua_State *L); + +/* +** garbage-collection function and options +*/ + +#define LUA_GCSTOP 0 +#define LUA_GCRESTART 1 +#define LUA_GCCOLLECT 2 +#define LUA_GCCOUNT 3 +#define LUA_GCCOUNTB 4 +#define LUA_GCSTEP 5 +#define LUA_GCSETPAUSE 6 +#define LUA_GCSETSTEPMUL 7 + +LUA_API int (lua_gc) (lua_State *L, int what, int data); + + +/* +** miscellaneous functions +*/ + +LUA_API int (lua_error) (lua_State *L); + +LUA_API int (lua_next) (lua_State *L, int idx); + +LUA_API void (lua_concat) (lua_State *L, int n); + +LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); +LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud); + + + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#define lua_newtable(L) lua_createtable(L, 0, 0) + +#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) + +#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) + +#define lua_strlen(L,i) lua_objlen(L, (i)) + +#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) +#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) +#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) +#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) +#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) +#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) +#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) +#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) + +#define lua_pushliteral(L, s) \ + lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) + +#define lua_setglobal(L,s) lua_setfield(L, LUA_GLOBALSINDEX, (s)) +#define lua_getglobal(L,s) lua_getfield(L, LUA_GLOBALSINDEX, (s)) + +#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) + + + +/* +** compatibility macros and functions +*/ + +#define lua_open() luaL_newstate() + +#define lua_getregistry(L) lua_pushvalue(L, LUA_REGISTRYINDEX) + +#define lua_getgccount(L) lua_gc(L, LUA_GCCOUNT, 0) + +#define lua_Chunkreader lua_Reader +#define lua_Chunkwriter lua_Writer + + +/* hack */ +LUA_API void lua_setlevel (lua_State *from, lua_State *to); + + +/* +** {====================================================================== +** Debug API +** ======================================================================= +*/ + + +/* +** Event codes +*/ +#define LUA_HOOKCALL 0 +#define LUA_HOOKRET 1 +#define LUA_HOOKLINE 2 +#define LUA_HOOKCOUNT 3 +#define LUA_HOOKTAILRET 4 + + +/* +** Event masks +*/ +#define LUA_MASKCALL (1 << LUA_HOOKCALL) +#define LUA_MASKRET (1 << LUA_HOOKRET) +#define LUA_MASKLINE (1 << LUA_HOOKLINE) +#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) + +typedef struct lua_Debug lua_Debug; /* activation record */ + + +/* Functions to be called by the debuger in specific events */ +typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); + + +LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar); +LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar); +LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n); +LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n); + +LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count); +LUA_API lua_Hook lua_gethook (lua_State *L); +LUA_API int lua_gethookmask (lua_State *L); +LUA_API int lua_gethookcount (lua_State *L); + + +struct lua_Debug { + int event; + const char *name; /* (n) */ + const char *namewhat; /* (n) `global', `local', `field', `method' */ + const char *what; /* (S) `Lua', `C', `main', `tail' */ + const char *source; /* (S) */ + int currentline; /* (l) */ + int nups; /* (u) number of upvalues */ + int linedefined; /* (S) */ + int lastlinedefined; /* (S) */ + char short_src[LUA_IDSIZE]; /* (S) */ + /* private part */ + int i_ci; /* active function */ +}; + +/* }====================================================================== */ + + +/****************************************************************************** +* Copyright (C) 1994-2012 Lua.org, PUC-Rio. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +******************************************************************************/ + + +#endif diff --git a/vendor/lua/5.1/include/lua.hpp b/vendor/lua/5.1/include/lua.hpp new file mode 100644 index 000000000..ec417f594 --- /dev/null +++ b/vendor/lua/5.1/include/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" +} diff --git a/vendor/lua/5.1/include/luaconf.h b/vendor/lua/5.1/include/luaconf.h new file mode 100644 index 000000000..05354175b --- /dev/null +++ b/vendor/lua/5.1/include/luaconf.h @@ -0,0 +1,766 @@ +/* +** $Id: luaconf.h,v 1.82.1.7 2008/02/11 16:25:08 roberto Exp $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef lconfig_h +#define lconfig_h + +#include +#include + + +/* +** ================================================================== +** Search for "@@" to find all configurable definitions. +** =================================================================== +*/ + + +/* +@@ LUA_ANSI controls the use of non-ansi features. +** CHANGE it (define it) if you want Lua to avoid the use of any +** non-ansi feature or library. +*/ +#if defined(__STRICT_ANSI__) +#define LUA_ANSI +#endif + + +#if !defined(LUA_ANSI) && defined(_WIN32) +#define LUA_WIN +#endif + +#if defined(LUA_USE_LINUX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +#define LUA_USE_READLINE /* needs some extra libraries */ +#endif + +#if defined(LUA_USE_MACOSX) +#define LUA_USE_POSIX +#define LUA_DL_DYLD /* does not need extra library */ +#endif + + + +/* +@@ LUA_USE_POSIX includes all functionallity listed as X/Open System +@* Interfaces Extension (XSI). +** CHANGE it (define it) if your system is XSI compatible. +*/ +#if defined(LUA_USE_POSIX) +#define LUA_USE_MKSTEMP +#define LUA_USE_ISATTY +#define LUA_USE_POPEN +#define LUA_USE_ULONGJMP +#endif + + +/* +@@ LUA_PATH and LUA_CPATH are the names of the environment variables that +@* Lua check to set its paths. +@@ LUA_INIT is the name of the environment variable that Lua +@* checks for initialization code. +** CHANGE them if you want different names. +*/ +#define LUA_PATH "LUA_PATH" +#define LUA_CPATH "LUA_CPATH" +#define LUA_INIT "LUA_INIT" + + +/* +@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for +@* Lua libraries. +@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for +@* C libraries. +** CHANGE them if your machine has a non-conventional directory +** hierarchy or if you want to install your libraries in +** non-conventional directories. +*/ +#if defined(_WIN32) +/* +** In Windows, any exclamation mark ('!') in the path is replaced by the +** path of the directory of the executable file of the current process. +*/ +#define LUA_LDIR "!\\lua\\" +#define LUA_CDIR "!\\" +#define LUA_PATH_DEFAULT \ + ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua" +#define LUA_CPATH_DEFAULT \ + ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll;" \ + LUA_CDIR"clibs\\?.dll;" LUA_CDIR"clibs\\loadall.dll;" \ + ".\\?51.dll;" LUA_CDIR"?51.dll;" LUA_CDIR"clibs\\?51.dll" + +#else +#define LUA_ROOT "/usr/local/" +#define LUA_LDIR LUA_ROOT "share/lua/5.1/" +#define LUA_CDIR LUA_ROOT "lib/lua/5.1/" +#define LUA_PATH_DEFAULT \ + "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua" +#define LUA_CPATH_DEFAULT \ + "./?.so;" LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" \ + "./lib?51.so;" LUA_CDIR"lib?51.so" +#endif + + +/* +@@ LUA_DIRSEP is the directory separator (for submodules). +** CHANGE it if your machine does not use "/" as the directory separator +** and is not Windows. (On Windows Lua automatically uses "\".) +*/ +#if defined(_WIN32) +#define LUA_DIRSEP "\\" +#else +#define LUA_DIRSEP "/" +#endif + + +/* +@@ LUA_PATHSEP is the character that separates templates in a path. +@@ LUA_PATH_MARK is the string that marks the substitution points in a +@* template. +@@ LUA_EXECDIR in a Windows path is replaced by the executable's +@* directory. +@@ LUA_IGMARK is a mark to ignore all before it when bulding the +@* luaopen_ function name. +** CHANGE them if for some reason your system cannot use those +** characters. (E.g., if one of those characters is a common character +** in file/directory names.) Probably you do not need to change them. +*/ +#define LUA_PATHSEP ";" +#define LUA_PATH_MARK "?" +#define LUA_EXECDIR "!" +#define LUA_IGMARK "-" + + +/* +@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger. +** CHANGE that if ptrdiff_t is not adequate on your machine. (On most +** machines, ptrdiff_t gives a good choice between int or long.) +*/ +#define LUA_INTEGER ptrdiff_t + + +/* +@@ LUA_API is a mark for all core API functions. +@@ LUALIB_API is a mark for all standard library functions. +** CHANGE them if you need to define those functions in some special way. +** For instance, if you want to create one Windows DLL with the core and +** the libraries, you may want to use the following definition (define +** LUA_BUILD_AS_DLL to get it). +*/ +#if defined(LUA_BUILD_AS_DLL) + +#if defined(LUA_CORE) || defined(LUA_LIB) +#define LUA_API __declspec(dllexport) +#else +#define LUA_API __declspec(dllimport) +#endif + +#else + +#define LUA_API extern + +#endif + +/* more often than not the libs go together with the core */ +#define LUALIB_API LUA_API + + +/* +@@ LUAI_FUNC is a mark for all extern functions that are not to be +@* exported to outside modules. +@@ LUAI_DATA is a mark for all extern (const) variables that are not to +@* be exported to outside modules. +** CHANGE them if you need to mark them in some special way. Elf/gcc +** (versions 3.2 and later) mark them as "hidden" to optimize access +** when Lua is compiled as a shared library. +*/ +#if defined(luaall_c) +#define LUAI_FUNC static +#define LUAI_DATA /* empty */ + +#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ + defined(__ELF__) +#define LUAI_FUNC __attribute__((visibility("hidden"))) extern +#define LUAI_DATA LUAI_FUNC + +#else +#define LUAI_FUNC extern +#define LUAI_DATA extern +#endif + + + +/* +@@ LUA_QL describes how error messages quote program elements. +** CHANGE it if you want a different appearance. +*/ +#define LUA_QL(x) "'" x "'" +#define LUA_QS LUA_QL("%s") + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@* of a function in debug information. +** CHANGE it if you want a different size. +*/ +#define LUA_IDSIZE 60 + + +/* +** {================================================================== +** Stand-alone configuration +** =================================================================== +*/ + +#if defined(lua_c) || defined(luaall_c) + +/* +@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that +@* is, whether we're running lua interactively). +** CHANGE it if you have a better definition for non-POSIX/non-Windows +** systems. +*/ +#if defined(LUA_USE_ISATTY) +#include +#define lua_stdin_is_tty() isatty(0) +#elif defined(LUA_WIN) +#include +#include +#define lua_stdin_is_tty() _isatty(_fileno(stdin)) +#else +#define lua_stdin_is_tty() 1 /* assume stdin is a tty */ +#endif + + +/* +@@ LUA_PROMPT is the default prompt used by stand-alone Lua. +@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua. +** CHANGE them if you want different prompts. (You can also change the +** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.) +*/ +#define LUA_PROMPT "> " +#define LUA_PROMPT2 ">> " + + +/* +@@ LUA_PROGNAME is the default name for the stand-alone Lua program. +** CHANGE it if your stand-alone interpreter has a different name and +** your system is not able to detect that name automatically. +*/ +#define LUA_PROGNAME "lua" + + +/* +@@ LUA_MAXINPUT is the maximum length for an input line in the +@* stand-alone interpreter. +** CHANGE it if you need longer lines. +*/ +#define LUA_MAXINPUT 512 + + +/* +@@ lua_readline defines how to show a prompt and then read a line from +@* the standard input. +@@ lua_saveline defines how to "save" a read line in a "history". +@@ lua_freeline defines how to free a line read by lua_readline. +** CHANGE them if you want to improve this functionality (e.g., by using +** GNU readline and history facilities). +*/ +#if defined(LUA_USE_READLINE) +#include +#include +#include +#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL) +#define lua_saveline(L,idx) \ + if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ + add_history(lua_tostring(L, idx)); /* add it to history */ +#define lua_freeline(L,b) ((void)L, free(b)) +#else +#define lua_readline(L,b,p) \ + ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ + fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */ +#define lua_saveline(L,idx) { (void)L; (void)idx; } +#define lua_freeline(L,b) { (void)L; (void)b; } +#endif + +#endif + +/* }================================================================== */ + + +/* +@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles +@* as a percentage. +** CHANGE it if you want the GC to run faster or slower (higher values +** mean larger pauses which mean slower collection.) You can also change +** this value dynamically. +*/ +#define LUAI_GCPAUSE 200 /* 200% (wait memory to double before next GC) */ + + +/* +@@ LUAI_GCMUL defines the default speed of garbage collection relative to +@* memory allocation as a percentage. +** CHANGE it if you want to change the granularity of the garbage +** collection. (Higher values mean coarser collections. 0 represents +** infinity, where each step performs a full collection.) You can also +** change this value dynamically. +*/ +#define LUAI_GCMUL 200 /* GC runs 'twice the speed' of memory allocation */ + + + +/* +@@ LUA_COMPAT_GETN controls compatibility with old getn behavior. +** CHANGE it (define it) if you want exact compatibility with the +** behavior of setn/getn in Lua 5.0. +*/ +#undef LUA_COMPAT_GETN + +/* +@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib. +** CHANGE it to undefined as soon as you do not need a global 'loadlib' +** function (the function is still available as 'package.loadlib'). +*/ +#undef LUA_COMPAT_LOADLIB + +/* +@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature. +** CHANGE it to undefined as soon as your programs use only '...' to +** access vararg parameters (instead of the old 'arg' table). +*/ +#define LUA_COMPAT_VARARG + +/* +@@ LUA_COMPAT_MOD controls compatibility with old math.mod function. +** CHANGE it to undefined as soon as your programs use 'math.fmod' or +** the new '%' operator instead of 'math.mod'. +*/ +#define LUA_COMPAT_MOD + +/* +@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting +@* facility. +** CHANGE it to 2 if you want the old behaviour, or undefine it to turn +** off the advisory error when nesting [[...]]. +*/ +#define LUA_COMPAT_LSTR 1 + +/* +@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name. +** CHANGE it to undefined as soon as you rename 'string.gfind' to +** 'string.gmatch'. +*/ +#define LUA_COMPAT_GFIND + +/* +@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib' +@* behavior. +** CHANGE it to undefined as soon as you replace to 'luaL_register' +** your uses of 'luaL_openlib' +*/ +#define LUA_COMPAT_OPENLIB + + + +/* +@@ luai_apicheck is the assert macro used by the Lua-C API. +** CHANGE luai_apicheck if you want Lua to perform some checks in the +** parameters it gets from API calls. This may slow down the interpreter +** a bit, but may be quite useful when debugging C code that interfaces +** with Lua. A useful redefinition is to use assert.h. +*/ +#if defined(LUA_USE_APICHECK) +#include +#define luai_apicheck(L,o) { (void)L; assert(o); } +#else +#define luai_apicheck(L,o) { (void)L; } +#endif + + +/* +@@ LUAI_BITSINT defines the number of bits in an int. +** CHANGE here if Lua cannot automatically detect the number of bits of +** your machine. Probably you do not need to change this. +*/ +/* avoid overflows in comparison */ +#if INT_MAX-20 < 32760 +#define LUAI_BITSINT 16 +#elif INT_MAX > 2147483640L +/* int has at least 32 bits */ +#define LUAI_BITSINT 32 +#else +#error "you must define LUA_BITSINT with number of bits in an integer" +#endif + + +/* +@@ LUAI_UINT32 is an unsigned integer with at least 32 bits. +@@ LUAI_INT32 is an signed integer with at least 32 bits. +@@ LUAI_UMEM is an unsigned integer big enough to count the total +@* memory used by Lua. +@@ LUAI_MEM is a signed integer big enough to count the total memory +@* used by Lua. +** CHANGE here if for some weird reason the default definitions are not +** good enough for your machine. (The definitions in the 'else' +** part always works, but may waste space on machines with 64-bit +** longs.) Probably you do not need to change this. +*/ +#if LUAI_BITSINT >= 32 +#define LUAI_UINT32 unsigned int +#define LUAI_INT32 int +#define LUAI_MAXINT32 INT_MAX +#define LUAI_UMEM size_t +#define LUAI_MEM ptrdiff_t +#else +/* 16-bit ints */ +#define LUAI_UINT32 unsigned long +#define LUAI_INT32 long +#define LUAI_MAXINT32 LONG_MAX +#define LUAI_UMEM unsigned long +#define LUAI_MEM long +#endif + + +/* +@@ LUAI_MAXCALLS limits the number of nested calls. +** CHANGE it if you need really deep recursive calls. This limit is +** arbitrary; its only purpose is to stop infinite recursion before +** exhausting memory. +*/ +#define LUAI_MAXCALLS 20000 + + +/* +@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function +@* can use. +** CHANGE it if you need lots of (Lua) stack space for your C +** functions. This limit is arbitrary; its only purpose is to stop C +** functions to consume unlimited stack space. (must be smaller than +** -LUA_REGISTRYINDEX) +*/ +#define LUAI_MAXCSTACK 8000 + + + +/* +** {================================================================== +** CHANGE (to smaller values) the following definitions if your system +** has a small C stack. (Or you may want to change them to larger +** values if your system has a large C stack and these limits are +** too rigid for you.) Some of these constants control the size of +** stack-allocated arrays used by the compiler or the interpreter, while +** others limit the maximum number of recursive calls that the compiler +** or the interpreter can perform. Values too large may cause a C stack +** overflow for some forms of deep constructs. +** =================================================================== +*/ + + +/* +@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and +@* syntactical nested non-terminals in a program. +*/ +#define LUAI_MAXCCALLS 200 + + +/* +@@ LUAI_MAXVARS is the maximum number of local variables per function +@* (must be smaller than 250). +*/ +#define LUAI_MAXVARS 200 + + +/* +@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function +@* (must be smaller than 250). +*/ +#define LUAI_MAXUPVALUES 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +#define LUAL_BUFFERSIZE BUFSIZ + +/* }================================================================== */ + + + + +/* +** {================================================================== +@@ LUA_NUMBER is the type of numbers in Lua. +** CHANGE the following definitions only if you want to build Lua +** with a number type different from double. You may also need to +** change lua_number2int & lua_number2integer. +** =================================================================== +*/ + +#define LUA_NUMBER_DOUBLE +#define LUA_NUMBER double + +/* +@@ LUAI_UACNUMBER is the result of an 'usual argument conversion' +@* over a number. +*/ +#define LUAI_UACNUMBER double + + +/* +@@ LUA_NUMBER_SCAN is the format for reading numbers. +@@ LUA_NUMBER_FMT is the format for writing numbers. +@@ lua_number2str converts a number to a string. +@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion. +@@ lua_str2number converts a string to a number. +*/ +#define LUA_NUMBER_SCAN "%lf" +#define LUA_NUMBER_FMT "%.14g" +#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) +#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ +#define lua_str2number(s,p) strtod((s), (p)) + + +/* +@@ The luai_num* macros define the primitive operations over numbers. +*/ +#if defined(LUA_CORE) +#include +#define luai_numadd(a,b) ((a)+(b)) +#define luai_numsub(a,b) ((a)-(b)) +#define luai_nummul(a,b) ((a)*(b)) +#define luai_numdiv(a,b) ((a)/(b)) +#define luai_nummod(a,b) ((a) - floor((a)/(b))*(b)) +#define luai_numpow(a,b) (pow(a,b)) +#define luai_numunm(a) (-(a)) +#define luai_numeq(a,b) ((a)==(b)) +#define luai_numlt(a,b) ((a)<(b)) +#define luai_numle(a,b) ((a)<=(b)) +#define luai_numisnan(a) (!luai_numeq((a), (a))) +#endif + + +/* +@@ lua_number2int is a macro to convert lua_Number to int. +@@ lua_number2integer is a macro to convert lua_Number to lua_Integer. +** CHANGE them if you know a faster way to convert a lua_Number to +** int (with any rounding method and without throwing errors) in your +** system. In Pentium machines, a naive typecast from double to int +** in C is extremely slow, so any alternative is worth trying. +*/ + +/* On a Pentium, resort to a trick */ +#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \ + (defined(__i386) || defined (_M_IX86) || defined(__i386__)) + +/* On a Microsoft compiler, use assembler */ +#if defined(_MSC_VER) + +#define lua_number2int(i,d) __asm fld d __asm fistp i +#define lua_number2integer(i,n) lua_number2int(i, n) + +/* the next trick should work on any Pentium, but sometimes clashes + with a DirectX idiosyncrasy */ +#else + +union luai_Cast { double l_d; long l_l; }; +#define lua_number2int(i,d) \ + { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; } +#define lua_number2integer(i,n) lua_number2int(i, n) + +#endif + + +/* this option always works, but may be slow */ +#else +#define lua_number2int(i,d) ((i)=(int)(d)) +#define lua_number2integer(i,d) ((i)=(lua_Integer)(d)) + +#endif + +/* }================================================================== */ + + +/* +@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment. +** CHANGE it if your system requires alignments larger than double. (For +** instance, if your system supports long doubles and they must be +** aligned in 16-byte boundaries, then you should add long double in the +** union.) Probably you do not need to change this. +*/ +#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; } + + +/* +@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling. +** CHANGE them if you prefer to use longjmp/setjmp even with C++ +** or if want/don't to use _longjmp/_setjmp instead of regular +** longjmp/setjmp. By default, Lua handles errors with exceptions when +** compiling as C++ code, with _longjmp/_setjmp when asked to use them, +** and with longjmp/setjmp otherwise. +*/ +#if defined(__cplusplus) +/* C++ exceptions */ +#define LUAI_THROW(L,c) throw(c) +#define LUAI_TRY(L,c,a) try { a } catch(...) \ + { if ((c)->status == 0) (c)->status = -1; } +#define luai_jmpbuf int /* dummy variable */ + +#elif defined(LUA_USE_ULONGJMP) +/* in Unix, try _longjmp/_setjmp (more efficient) */ +#define LUAI_THROW(L,c) _longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#else +/* default handling with long jumps */ +#define LUAI_THROW(L,c) longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#endif + + +/* +@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern +@* can do during pattern-matching. +** CHANGE it if you need more captures. This limit is arbitrary. +*/ +#define LUA_MAXCAPTURES 32 + + +/* +@@ lua_tmpnam is the function that the OS library uses to create a +@* temporary name. +@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam. +** CHANGE them if you have an alternative to tmpnam (which is considered +** insecure) or if you want the original tmpnam anyway. By default, Lua +** uses tmpnam except when POSIX is available, where it uses mkstemp. +*/ +#if defined(loslib_c) || defined(luaall_c) + +#if defined(LUA_USE_MKSTEMP) +#include +#define LUA_TMPNAMBUFSIZE 32 +#define lua_tmpnam(b,e) { \ + strcpy(b, "/tmp/lua_XXXXXX"); \ + e = mkstemp(b); \ + if (e != -1) close(e); \ + e = (e == -1); } + +#else +#define LUA_TMPNAMBUFSIZE L_tmpnam +#define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); } +#endif + +#endif + + +/* +@@ lua_popen spawns a new process connected to the current one through +@* the file streams. +** CHANGE it if you have a way to implement it in your system. +*/ +#if defined(LUA_USE_POPEN) + +#define lua_popen(L,c,m) ((void)L, fflush(NULL), popen(c,m)) +#define lua_pclose(L,file) ((void)L, (pclose(file) != -1)) + +#elif defined(LUA_WIN) + +#define lua_popen(L,c,m) ((void)L, _popen(c,m)) +#define lua_pclose(L,file) ((void)L, (_pclose(file) != -1)) + +#else + +#define lua_popen(L,c,m) ((void)((void)c, m), \ + luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0) +#define lua_pclose(L,file) ((void)((void)L, file), 0) + +#endif + +/* +@@ LUA_DL_* define which dynamic-library system Lua should use. +** CHANGE here if Lua has problems choosing the appropriate +** dynamic-library system for your platform (either Windows' DLL, Mac's +** dyld, or Unix's dlopen). If your system is some kind of Unix, there +** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for +** it. To use dlopen you also need to adapt the src/Makefile (probably +** adding -ldl to the linker options), so Lua does not select it +** automatically. (When you change the makefile to add -ldl, you must +** also add -DLUA_USE_DLOPEN.) +** If you do not want any kind of dynamic library, undefine all these +** options. +** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD. +*/ +#if defined(LUA_USE_DLOPEN) +#define LUA_DL_DLOPEN +#endif + +#if defined(LUA_WIN) +#define LUA_DL_DLL +#endif + + +/* +@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State +@* (the data goes just *before* the lua_State pointer). +** CHANGE (define) this if you really need that. This value must be +** a multiple of the maximum alignment required for your machine. +*/ +#define LUAI_EXTRASPACE 0 + + +/* +@@ luai_userstate* allow user-specific actions on threads. +** CHANGE them if you defined LUAI_EXTRASPACE and need to do something +** extra when a thread is created/deleted/resumed/yielded. +*/ +#define luai_userstateopen(L) ((void)L) +#define luai_userstateclose(L) ((void)L) +#define luai_userstatethread(L,L1) ((void)L) +#define luai_userstatefree(L) ((void)L) +#define luai_userstateresume(L,n) ((void)L) +#define luai_userstateyield(L,n) ((void)L) + + +/* +@@ LUA_INTFRMLEN is the length modifier for integer conversions +@* in 'string.format'. +@@ LUA_INTFRM_T is the integer type correspoding to the previous length +@* modifier. +** CHANGE them if your system supports long long or does not support long. +*/ + +#if defined(LUA_USELONGLONG) + +#define LUA_INTFRMLEN "ll" +#define LUA_INTFRM_T long long + +#else + +#define LUA_INTFRMLEN "l" +#define LUA_INTFRM_T long + +#endif + + + +/* =================================================================== */ + +/* +** Local configuration. You can use this space to add your redefinitions +** without modifying the main part of the file. +*/ + + + +#endif + diff --git a/vendor/lua/5.1/include/lualib.h b/vendor/lua/5.1/include/lualib.h new file mode 100644 index 000000000..469417f67 --- /dev/null +++ b/vendor/lua/5.1/include/lualib.h @@ -0,0 +1,53 @@ +/* +** $Id: lualib.h,v 1.36.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lua standard libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lualib_h +#define lualib_h + +#include "lua.h" + + +/* Key to file-handle type */ +#define LUA_FILEHANDLE "FILE*" + + +#define LUA_COLIBNAME "coroutine" +LUALIB_API int (luaopen_base) (lua_State *L); + +#define LUA_TABLIBNAME "table" +LUALIB_API int (luaopen_table) (lua_State *L); + +#define LUA_IOLIBNAME "io" +LUALIB_API int (luaopen_io) (lua_State *L); + +#define LUA_OSLIBNAME "os" +LUALIB_API int (luaopen_os) (lua_State *L); + +#define LUA_STRLIBNAME "string" +LUALIB_API int (luaopen_string) (lua_State *L); + +#define LUA_MATHLIBNAME "math" +LUALIB_API int (luaopen_math) (lua_State *L); + +#define LUA_DBLIBNAME "debug" +LUALIB_API int (luaopen_debug) (lua_State *L); + +#define LUA_LOADLIBNAME "package" +LUALIB_API int (luaopen_package) (lua_State *L); + + +/* open all previous libraries */ +LUALIB_API void (luaL_openlibs) (lua_State *L); + + + +#ifndef lua_assert +#define lua_assert(x) ((void)0) +#endif + + +#endif diff --git a/vendor/lua/5.1/linux/liblua5.1.a b/vendor/lua/5.1/linux/liblua5.1.a new file mode 100644 index 0000000000000000000000000000000000000000..ce7e09844f809bb9a31cd7b410968b303bf1c52a GIT binary patch literal 347548 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\T7v(t}ahhP? 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%0DO4_`2NJK|KI|7vi1U;Mz}md_T!bHQVV;j`1w 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 literal 0 HcmV?d00001 diff --git a/vendor/lua/5.1/linux/liblua5.1.so b/vendor/lua/5.1/linux/liblua5.1.so new file mode 100644 index 0000000000000000000000000000000000000000..2db7f6f67455b066f28e3624e358a829606c712d GIT binary patch literal 212314 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 literal 0 HcmV?d00001 diff --git a/vendor/lua/5.1/lua.odin b/vendor/lua/5.1/lua.odin new file mode 100644 index 000000000..a92698082 --- /dev/null +++ b/vendor/lua/5.1/lua.odin @@ -0,0 +1,659 @@ +package lua_5_1 + +import "core:intrinsics" +import "core:builtin" + +import c "core:c/libc" + +#assert(size_of(c.int) == size_of(b32)) + +when ODIN_OS == .Windows { + foreign import lib "windows/lua5.1.dll.lib" +} else when ODIN_OS == .Linux { + foreign import lib "linux/liblua5.1.a" +} else { + #panic(`Unsupported platform of "vendor:lua/5.1"`) +} + +VERSION :: "Lua 5.1" +RELEASE :: "Lua 5.1.5" +VERSION_NUM :: 501 +COPYRIGHT :: "Copyright (C) 1994-2012 Lua.org, PUC-Rio" +AUTHORS :: "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" + +/* mark for precompiled code ('Lua') */ +SIGNATURE :: "\x1bLua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +MULTRET :: -1 + +REGISTRYINDEX :: -10000 +ENVIRONINDEX :: -10001 +GLOBALSINDEX :: -10002 + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +** (It must fit into max(size_t)/32.) +*/ +MAXSTACK :: 1000000 when size_of(rawptr) == 4 else 15000 + + +/* +@@ LUA_EXTRASPACE defines the size of a raw memory area associated with +** a Lua state with very fast access. +** CHANGE it if you need a different size. +*/ +EXTRASPACE :: size_of(rawptr) + + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@@ of a function in debug information. +** CHANGE it if you want a different size. +*/ +IDSIZE :: 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +L_BUFFERSIZE :: c.int(16 * size_of(rawptr) * size_of(Number)) + + +MAXALIGNVAL :: max(align_of(Number), align_of(f64), align_of(rawptr), align_of(Integer), align_of(c.long)) + + +Status :: enum c.int { + OK = 0, + YIELD = 1, + ERRRUN = 2, + ERRSYNTAX = 3, + ERRMEM = 4, + ERRERR = 5, + ERRFILE = 6, +} + +/* thread status */ +OK :: Status.OK +YIELD :: Status.YIELD +ERRRUN :: Status.ERRRUN +ERRSYNTAX :: Status.ERRSYNTAX +ERRMEM :: Status.ERRMEM +ERRERR :: Status.ERRERR +ERRFILE :: Status.ERRFILE + +/* +** basic types +*/ + + +Type :: enum c.int { + NONE = -1, + + NIL = 0, + BOOLEAN = 1, + LIGHTUSERDATA = 2, + NUMBER = 3, + STRING = 4, + TABLE = 5, + FUNCTION = 6, + USERDATA = 7, + THREAD = 8, +} + +TNONE :: Type.NONE +TNIL :: Type.NIL +TBOOLEAN :: Type.BOOLEAN +TLIGHTUSERDATA :: Type.LIGHTUSERDATA +TNUMBER :: Type.NUMBER +TSTRING :: Type.STRING +TTABLE :: Type.TABLE +TFUNCTION :: Type.FUNCTION +TUSERDATA :: Type.USERDATA +TTHREAD :: Type.THREAD +NUMTYPES :: 9 + + +CompareOp :: enum c.int { + EQ = 0, + LT = 1, + LE = 2, +} + +OPEQ :: CompareOp.EQ +OPLT :: CompareOp.LT +OPLE :: CompareOp.LE + + +/* minimum Lua stack available to a C function */ +MINSTACK :: 20 + + +/* type of numbers in Lua */ +Number :: distinct (f32 when size_of(uintptr) == 4 else f64) + + +/* type for integer functions */ +Integer :: distinct (i32 when size_of(uintptr) == 4 else i64) + + +/* +** Type for C functions registered with Lua +*/ +CFunction :: #type proc "c" (L: ^State) -> c.int + + + +/* +** Type for functions that read/write blocks when loading/dumping Lua chunks +*/ +Reader :: #type proc "c" (L: ^State, ud: rawptr, sz: ^c.size_t) -> cstring +Writer :: #type proc "c" (L: ^State, p: rawptr, sz: ^c.size_t, ud: rawptr) -> c.int + + +/* +** Type for memory-allocation functions +*/ +Alloc :: #type proc "c" (ud: rawptr, ptr: rawptr, osize, nsize: c.size_t) -> rawptr + + +GCWhat :: enum c.int { + STOP = 0, + RESTART = 1, + COLLECT = 2, + COUNT = 3, + COUNTB = 4, + STEP = 5, + SETPAUSE = 6, + SETSTEPMUL = 7, +} +GCSTOP :: GCWhat.STOP +GCRESTART :: GCWhat.RESTART +GCCOLLECT :: GCWhat.COLLECT +GCCOUNT :: GCWhat.COUNT +GCCOUNTB :: GCWhat.COUNTB +GCSTEP :: GCWhat.STEP +GCSETPAUSE :: GCWhat.SETPAUSE +GCSETSTEPMUL :: GCWhat.SETSTEPMUL + + +/* +** Event codes +*/ + +HookEvent :: enum c.int { + CALL = 0, + RET = 1, + LINE = 2, + COUNT = 3, + TAILRET = 4, +} +HOOKCALL :: HookEvent.CALL +HOOKRET :: HookEvent.RET +HOOKLINE :: HookEvent.LINE +HOOKCOUNT :: HookEvent.COUNT +HOOKTAILRET :: HookEvent.TAILRET + + +/* +** Event masks +*/ +HookMask :: distinct bit_set[HookEvent; c.int] +MASKCALL :: HookMask{.CALL} +MASKRET :: HookMask{.RET} +MASKLINE :: HookMask{.LINE} +MASKCOUNT :: HookMask{.COUNT} + +/* activation record */ +Debug :: struct { + event: HookEvent, + name: cstring, /* (n) */ + namewhat: cstring, /* (n) 'global', 'local', 'field', 'method' */ + what: cstring, /* (S) 'Lua', 'C', 'main', 'tail' */ + source: cstring, /* (S) */ + currentline: c.int, /* (l) */ + nups: c.int, /* (u) number of upvalues */ + linedefined: c.int, /* (S) */ + lastlinedefined: c.int, /* (S) */ + short_src: [IDSIZE]u8 `fmt:"s"`, /* (S) */ + /* private part */ + i_ci: c.int, /* active function */ +} + + +/* Functions to be called by the debugger in specific events */ +Hook :: #type proc "c" (L: ^State, ar: ^Debug) + + +State :: struct {} // opaque data type + + +@(link_prefix="lua_") +@(default_calling_convention="c") +foreign lib { + /* + ** RCS ident string + */ + + ident: [^]u8 // TODO(bill): is this correct? + + + /* + ** state manipulation + */ + + newstate :: proc(f: Alloc, ud: rawptr) -> ^State --- + close :: proc(L: ^State) --- + newthread :: proc(L: ^State) -> ^State --- + + atpanic :: proc(L: ^State, panicf: CFunction) -> CFunction --- + + + /* + ** basic stack manipulation + */ + + gettop :: proc (L: ^State) -> c.int --- + settop :: proc (L: ^State, idx: c.int) --- + pushvalue :: proc (L: ^State, idx: c.int) --- + remove :: proc (L: ^State, idx: c.int) --- + insert :: proc (L: ^State, idx: c.int) --- + replace :: proc (L: ^State, idx: c.int) --- + checkstack :: proc (L: ^State, sz: c.int) -> c.int --- + + xmove :: proc(from, to: ^State, n: c.int) --- + + + /* + ** access functions (stack -> C) + */ + + isnumber :: proc(L: ^State, idx: c.int) -> b32 --- + isstring :: proc(L: ^State, idx: c.int) -> b32 --- + iscfunction :: proc(L: ^State, idx: c.int) -> b32 --- + isinteger :: proc(L: ^State, idx: c.int) -> b32 --- + isuserdata :: proc(L: ^State, idx: c.int) -> b32 --- + type :: proc(L: ^State, idx: c.int) -> Type --- + typename :: proc(L: ^State, tp: Type) -> cstring --- + + equal :: proc(L: ^State, idx1, idx2: c.int) -> b32 --- + rawequal :: proc(L: ^State, idx1, idx2: c.int) -> b32 --- + lessthan :: proc(L: ^State, idx1, idx2: c.int) -> b32 --- + + toboolean :: proc(L: ^State, idx: c.int) -> b32 --- + tolstring :: proc(L: ^State, idx: c.int, len: ^c.size_t) -> cstring --- + objlen :: proc(L: ^State, idx: c.int) -> c.size_t --- + tocfunction :: proc(L: ^State, idx: c.int) -> CFunction --- + touserdata :: proc(L: ^State, idx: c.int) -> rawptr --- + tothread :: proc(L: ^State, idx: c.int) -> ^State --- + topointer :: proc(L: ^State, idx: c.int) -> rawptr --- + + /* + ** push functions (C -> stack) + */ + + pushnil :: proc(L: ^State) --- + pushnumber :: proc(L: ^State, n: Number) --- + pushinteger :: proc(L: ^State, n: Integer) --- + pushlstring :: proc(L: ^State, s: cstring, l: c.size_t) --- + pushstring :: proc(L: ^State, s: cstring) --- + pushvfstring :: proc(L: ^State, fmt: cstring, argp: c.va_list) -> cstring --- + pushfstring :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> cstring --- + pushcclosure :: proc(L: ^State, fn: CFunction, n: c.int) --- + pushboolean :: proc(L: ^State, b: b32) --- + pushlightuserdata :: proc(L: ^State, p: rawptr) --- + pushthread :: proc(L: ^State) -> Status --- + + /* + ** get functions (Lua -> stack) + */ + + gettable :: proc(L: ^State, idx: c.int) --- + getfield :: proc(L: ^State, idx: c.int, k: cstring) --- + geti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawget :: proc(L: ^State, idx: c.int) --- + rawgeti :: proc(L: ^State, idx: c.int, n: Integer) --- + rawgetp :: proc(L: ^State, idx: c.int, p: rawptr) --- + + createtable :: proc(L: ^State, narr, nrec: c.int) --- + newuserdata :: proc(L: ^State, sz: c.size_t) -> rawptr --- + getmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + getfenv :: proc(L: ^State, idx: c.int) --- + + + /* + ** set functions (stack -> Lua) + */ + + settable :: proc(L: ^State, idx: c.int) --- + setfield :: proc(L: ^State, idx: c.int, k: cstring) --- + rawset :: proc(L: ^State, idx: c.int) --- + rawseti :: proc(L: ^State, idx: c.int, n: c.int) --- + rawsetp :: proc(L: ^State, idx: c.int, p: rawptr) --- + setmetatable :: proc(L: ^State, objindex: c.int) -> c.int --- + setfenv :: proc(L: ^State, idx: c.int) -> c.int --- + + + /* + ** 'load' and 'call' functions (load and run Lua code) + */ + + call :: proc(L: ^State, nargs, nresults: c.int) --- + + getctx :: proc(L: ^State, ctx: ^c.int) -> c.int --- + + pcall :: proc(L: ^State, nargs, nresults: c.int, errfunc: c.int) -> c.int --- + cpcall :: proc(L: ^State, func: CFunction, ud: rawptr) -> c.int --- + + load :: proc(L: ^State, reader: Reader, dt: rawptr, + chunkname: cstring) -> Status --- + + dump :: proc(L: ^State, writer: Writer, data: rawptr) -> Status --- + + + /* + ** coroutine functions + */ + + yield :: proc(L: ^State, nresults: c.int) -> Status --- + resume :: proc(L: ^State, narg: c.int) -> Status --- + status :: proc(L: ^State) -> Status --- + + + /* + ** garbage-collection function and options + */ + + + + gc :: proc(L: ^State, what: GCWhat, data: c.int) -> c.int --- + + + /* + ** miscellaneous functions + */ + + error :: proc(L: ^State) -> Status --- + + next :: proc(L: ^State, idx: c.int) -> c.int --- + + concat :: proc(L: ^State, n: c.int) --- + len :: proc(L: ^State, idx: c.int) --- + + getallocf :: proc(L: State, ud: ^rawptr) -> Alloc --- + setallocf :: proc(L: ^State, f: Alloc, ud: rawptr) --- + + /* + ** {====================================================================== + ** Debug API + ** ======================================================================= + */ + + getstack :: proc(L: ^State, level: c.int, ar: ^Debug) -> c.int --- + getinfo :: proc(L: ^State, what: cstring, ar: ^Debug) -> c.int --- + getlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + setlocal :: proc(L: ^State, ar: ^Debug, n: c.int) -> cstring --- + getupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + setupvalue :: proc(L: ^State, funcindex: c.int, n: c.int) -> cstring --- + + sethook :: proc(L: ^State, func: Hook, mask: HookMask, count: c.int) -> c.int --- + gethook :: proc(L: ^State) -> Hook --- + gethookmask :: proc(L: ^State) -> HookMask --- + gethookcount :: proc(L: ^State) -> c.int --- + + /* }============================================================== */ +} + + + +COLIBNAME :: "coroutine" +TABLIBNAME :: "table" +IOLIBNAME :: "io" +OSLIBNAME :: "os" +STRLIBNAME :: "string" +UTF8LIBNAME :: "utf8" +MATHLIBNAME :: "math" +DBLIBNAME :: "debug" +LOADLIBNAME :: "package" + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + open_base :: proc(L: ^State) -> c.int --- + open_table :: proc(L: ^State) -> c.int --- + open_io :: proc(L: ^State) -> c.int --- + open_os :: proc(L: ^State) -> c.int --- + open_string :: proc(L: ^State) -> c.int --- + open_utf8 :: proc(L: ^State) -> c.int --- + open_math :: proc(L: ^State) -> c.int --- + open_debug :: proc(L: ^State) -> c.int --- + open_package :: proc(L: ^State) -> c.int --- + + /* open all previous libraries */ + + L_openlibs :: proc(L: ^State) --- +} + + + +GNAME :: "_G" + +L_Reg :: struct { + name: cstring, + func: CFunction, +} + +/* predefined references */ +NOREF :: -2 +REFNIL :: -1 + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + L_openlib :: proc(L: ^State, libname: cstring, l: [^]L_Reg, nup: c.int) --- + L_register :: proc(L: ^State, libname: cstring, l: ^L_Reg) --- + L_getmetafield :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + L_callmeta :: proc(L: ^State, obj: c.int, e: cstring) -> c.int --- + L_typeerror :: proc(L: ^State, narg: c.int, tname: cstring) -> c.int --- + L_argerror :: proc(L: ^State, numarg: c.int, extramsg: cstring) -> c.int --- + @(link_name="luaL_checklstring") + L_checkstring :: proc(L: ^State, numArg: c.int, l: ^c.size_t = nil) -> cstring --- + @(link_name="luaL_optlstring") + L_optstring :: proc(L: ^State, numArg: c.int, def: cstring, l: ^c.size_t = nil) -> cstring --- + L_checknumber :: proc(L: ^State, numArg: c.int) -> Number --- + L_optnumber :: proc(L: ^State, nArg: c.int, def: Number) -> Number --- + + L_checkinteger :: proc(L: ^State, numArg: c.int) -> Integer --- + L_optinteger :: proc(L: ^State, nArg: c.int, def: Integer) -> Integer --- + + + L_checkstack :: proc(L: ^State, sz: c.int, msg: cstring) --- + L_checktype :: proc(L: ^State, narg: c.int, t: c.int) --- + L_checkany :: proc(L: ^State, narg: c.int) --- + + L_newmetatable :: proc(L: ^State, tname: cstring) -> c.int --- + L_checkudata :: proc(L: ^State, ud: c.int, tname: cstring) -> rawptr --- + + L_where :: proc(L: ^State, lvl: c.int) --- + L_error :: proc(L: ^State, fmt: cstring, #c_vararg args: ..any) -> Status --- + + L_checkoption :: proc(L: ^State, narg: c.int, def: cstring, lst: [^]cstring) -> c.int --- + + + L_ref :: proc(L: ^State, t: c.int) -> c.int --- + L_unref :: proc(L: ^State, t: c.int, ref: c.int) --- + + L_loadfile :: proc (L: ^State, filename: cstring) -> Status --- + + L_loadbuffer :: proc(L: ^State, buff: [^]byte, sz: c.size_t, name: cstring) -> Status --- + L_loadstring :: proc(L: ^State, s: cstring) -> Status --- + + L_newstate :: proc() -> ^State --- + + L_gsub :: proc(L: ^State, s, p, r: cstring) -> cstring --- + + L_findtable :: proc(L: ^State, idx: c.int, fname: cstring, szhint: c.int) -> cstring --- +} +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + +L_Buffer :: struct { + p: [^]byte, /* buffer address */ + lvl: c.int, /* number of strings in the stack (level) */ + L: ^State, + buffer: [L_BUFFERSIZE]byte, /* initial buffer */ +} + +L_addchar :: #force_inline proc "c" (B: ^L_Buffer, c: byte) { + end := ([^]byte)(&B.buffer)[L_BUFFERSIZE:] + if B.p < end { + L_prepbuffer(B) + } + B.p[0] = c + B.p = B.p[1:] +} +L_putchar :: L_addchar + +L_addsize :: #force_inline proc "c" (B: ^L_Buffer, s: c.size_t) -> [^]byte { + B.p = B.p[s:] + return B.p +} + + +@(link_prefix="lua") +@(default_calling_convention="c") +foreign lib { + L_buffinit :: proc(L: ^State, B: ^L_Buffer) --- + L_prepbuffer :: proc(B: ^L_Buffer) -> [^]byte --- + L_addlstring :: proc(B: ^L_Buffer, s: cstring, l: c.size_t) --- + L_addstring :: proc(B: ^L_Buffer, s: cstring) --- + L_addvalue :: proc(B: ^L_Buffer) --- + L_pushresult :: proc(B: ^L_Buffer) --- + L_pushresultsize :: proc(B: ^L_Buffer, sz: c.size_t) --- + L_buffinitsize :: proc(L: ^State, B: ^L_Buffer, sz: c.size_t) -> [^]byte --- +} + +@(link_prefix="lua_") +@(default_calling_convention="c") +foreign lib { + /* hack */ + setlevel :: proc(from, to: ^State) --- +} + + +/* }====================================================== */ + + + + +/* +** {============================================================== +** some useful macros +** =============================================================== +*/ + +pop :: #force_inline proc "c" (L: ^State, n: c.int) { + settop(L, -n-1) +} +newtable :: #force_inline proc "c" (L: ^State) { + createtable(L, 0, 0) +} +register :: #force_inline proc "c" (L: ^State, n: cstring, f: CFunction) { + pushcfunction(L, f) + setglobal(L, n) +} + +pushcfunction :: #force_inline proc "c" (L: ^State, f: CFunction) { + pushcclosure(L, f, 0) +} + +strlen :: #force_inline proc "c" (L: ^State, i: c.int) -> c.size_t { + return objlen(L, i) +} + + +isfunction :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .FUNCTION } +istable :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .TABLE } +islightuserdata :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .LIGHTUSERDATA } +isnil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NIL } +isboolean :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .BOOLEAN } +isthread :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .THREAD } +isnone :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) == .NONE } +isnoneornil :: #force_inline proc "c" (L: ^State, n: c.int) -> bool { return type(L, n) <= .NIL } + + +pushliteral :: pushstring +setglobal :: #force_inline proc "c" (L: ^State, s: cstring) { + setfield(L, GLOBALSINDEX, s) +} +getglobal :: #force_inline proc "c" (L: ^State, s: cstring) { + getfield(L, GLOBALSINDEX, s) +} +tostring :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return tolstring(L, i, nil) +} + +open :: newstate +getregistry :: #force_inline proc "c" (L: ^State) { + pushvalue(L, REGISTRYINDEX) +} + +getgccount :: #force_inline proc "c" (L: ^State) -> c.int { + return gc(L, .COUNT, 0) +} + +Chunkreader :: Reader +Chunkwriter :: Writer + + +L_argcheck :: #force_inline proc "c" (L: ^State, cond: bool, numarg: c.int, extramsg: cstring) { + if cond { + L_argerror(L, numarg, extramsg) + } +} + +L_typename :: #force_inline proc "c" (L: ^State, i: c.int) -> cstring { + return typename(L, type(L, i)) +} +L_dofile :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadfile(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_dostring :: #force_inline proc "c" (L: ^State, s: cstring) -> c.int { + err := L_loadstring(L, s) + return pcall(L, 0, MULTRET, 0) if err == nil else c.int(err) +} +L_getmetatable :: #force_inline proc "c" (L: ^State, n: cstring) { + getfield(L, REGISTRYINDEX, n) +} +L_opt :: #force_inline proc "c" (L: ^State, f: $F, n: c.int, d: $T) -> T where intrinsics.type_is_proc(F) { + return d if isnoneornil(L, n) else f(L, n) +} + + + +ref :: #force_inline proc "c" (L: ^State, lock: bool) -> c.int { + if lock { + return L_ref(L, REGISTRYINDEX) + } + pushstring(L, "unlocked references are obsolete") + error(L) + return 0 +} +unref :: #force_inline proc "c" (L: ^State, ref: c.int) { + L_unref(L,REGISTRYINDEX, ref) +} +getref :: #force_inline proc "c" (L: ^State, ref: Integer) { + rawgeti(L, REGISTRYINDEX, ref) +} + + +/* }============================================================== */ diff --git a/vendor/lua/5.1/windows/lua5.1.dll b/vendor/lua/5.1/windows/lua5.1.dll new file mode 100644 index 0000000000000000000000000000000000000000..353c21940690c97952048492dc557378d5eda6f3 GIT binary patch literal 247296 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¥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 z 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 HlPdoO?Tq4n literal 0 HcmV?d00001 diff --git a/vendor/lua/5.1/windows/lua5.1.dll.lib b/vendor/lua/5.1/windows/lua5.1.dll.lib new file mode 100644 index 0000000000000000000000000000000000000000..6e1497cc1fa508bdf97180c3b4f5c847622df508 GIT binary patch literal 25478 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 z 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 BGaLW_ literal 0 HcmV?d00001 diff --git a/vendor/lua/5.2/lua.odin b/vendor/lua/5.2/lua.odin index 1d1f5ef73..fb37d9833 100644 --- a/vendor/lua/5.2/lua.odin +++ b/vendor/lua/5.2/lua.odin @@ -407,14 +407,14 @@ foreign lib { */ @(link_name="lua_callk") - call :: proc(L: ^State, nargs, nresults: c.int, + call :: proc(L: ^State, nargs, nresults: c.int, ctx: c.int = 0, k: CFunction = nil) --- getctx :: proc(L: ^State, ctx: ^c.int) -> c.int --- @(link_name="lua_pcallk") pcall :: proc(L: ^State, nargs, nresults: c.int, errfunc: c.int, - k: CFunction = nil) -> c.int --- + ctx: c.int = 0, k: CFunction = nil) -> c.int --- load :: proc(L: ^State, reader: Reader, dt: rawptr, chunkname, mode: cstring) -> Status --- From 97b2d1fe5c4e594c01b3e7ccd4e9fc346422aed5 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 17:26:48 +0100 Subject: [PATCH 46/50] Update README.md --- vendor/lua/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vendor/lua/README.md b/vendor/lua/README.md index 6484ab2d1..8f4b0f5a5 100644 --- a/vendor/lua/README.md +++ b/vendor/lua/README.md @@ -2,4 +2,11 @@ ```odin import lua "vendor:lua/5.4" // or whatever version you want -``` \ No newline at end of file +``` + +Lua packages + +* `vendor:lua/5.1` (version 5.1.5) +* `vendor:lua/5.2` (version 5.2.4) +* `vendor:lua/5.3` (version 5.3.6) +* `vendor:lua/5.4` (version 5.4.2) \ No newline at end of file From dcf53236ff62bae8fe94f4c4ed23732a9d607c90 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 17:31:43 +0100 Subject: [PATCH 47/50] Generalize the foreign import for unsupported platforms --- vendor/lua/5.1/lua.odin | 2 +- vendor/lua/5.2/lua.odin | 2 +- vendor/lua/5.3/lua.odin | 2 +- vendor/lua/5.4/lua.odin | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vendor/lua/5.1/lua.odin b/vendor/lua/5.1/lua.odin index a92698082..92660c534 100644 --- a/vendor/lua/5.1/lua.odin +++ b/vendor/lua/5.1/lua.odin @@ -12,7 +12,7 @@ when ODIN_OS == .Windows { } else when ODIN_OS == .Linux { foreign import lib "linux/liblua5.1.a" } else { - #panic(`Unsupported platform of "vendor:lua/5.1"`) + foreign import lib "system:liblua5.1.a" } VERSION :: "Lua 5.1" diff --git a/vendor/lua/5.2/lua.odin b/vendor/lua/5.2/lua.odin index fb37d9833..c71c1925e 100644 --- a/vendor/lua/5.2/lua.odin +++ b/vendor/lua/5.2/lua.odin @@ -12,7 +12,7 @@ when ODIN_OS == .Windows { } else when ODIN_OS == .Linux { foreign import lib "linux/liblua52.a" } else { - #panic(`Unsupported platform of "vendor:lua/5.2"`) + foreign import lib "system:liblua52.a" } VERSION_MAJOR :: "5" diff --git a/vendor/lua/5.3/lua.odin b/vendor/lua/5.3/lua.odin index 8f519c7ab..718d52250 100644 --- a/vendor/lua/5.3/lua.odin +++ b/vendor/lua/5.3/lua.odin @@ -12,7 +12,7 @@ when ODIN_OS == .Windows { } else when ODIN_OS == .Linux { foreign import lib "linux/liblua53.a" } else { - #panic(`Unsupported platform of "vendor:lua/5.3"`) + foreign import lib "system:liblua53.a" } VERSION_MAJOR :: "5" diff --git a/vendor/lua/5.4/lua.odin b/vendor/lua/5.4/lua.odin index afadb3857..06199dee7 100644 --- a/vendor/lua/5.4/lua.odin +++ b/vendor/lua/5.4/lua.odin @@ -12,7 +12,7 @@ when ODIN_OS == .Windows { } else when ODIN_OS == .Linux { foreign import lib "linux/liblua54.a" } else { - #panic(`Unsupported platform of "vendor:lua/5.4"`) + foreign import lib "system:liblua54.a" } VERSION_MAJOR :: "5" From 167b320cddf0ac9adadf806a20adaaf25bf66a30 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 17:35:53 +0100 Subject: [PATCH 48/50] Remove cmark from all_vendor.odin --- examples/all/all_vendor.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/all/all_vendor.odin b/examples/all/all_vendor.odin index e550e600c..f66e3cca1 100644 --- a/examples/all/all_vendor.odin +++ b/examples/all/all_vendor.odin @@ -2,7 +2,7 @@ package all import botan "vendor:botan" import cgltf "vendor:cgltf" -import commonmark "vendor:commonmark" +// import commonmark "vendor:commonmark" import ENet "vendor:ENet" import exr "vendor:OpenEXRCore" import ggpo "vendor:ggpo" @@ -31,7 +31,7 @@ import lua_5_4 "vendor:lua/5.4" _ :: botan _ :: cgltf -_ :: commonmark +// _ :: commonmark _ :: ENet _ :: exr _ :: ggpo From eef44425c3a39f620b18956ee33ea915ac89223e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 17:39:56 +0100 Subject: [PATCH 49/50] Default zlib foreign import --- vendor/zlib/zlib.odin | 63 +++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/vendor/zlib/zlib.odin b/vendor/zlib/zlib.odin index 8a046a401..021449813 100644 --- a/vendor/zlib/zlib.odin +++ b/vendor/zlib/zlib.odin @@ -2,8 +2,13 @@ package vendor_zlib import "core:c" -when ODIN_OS == .Windows { foreign import zlib "libz.lib" } -when ODIN_OS == .Linux { foreign import zlib "system:z" } +when ODIN_OS == .Windows { + foreign import zlib "libz.lib" +} else when ODIN_OS == .Linux { + foreign import zlib "system:z" +} else { + foreign import zlib "system:z" +} VERSION :: "1.2.12" VERNUM :: 0x12c0 @@ -41,39 +46,39 @@ gzFile_s :: struct { gzFile :: ^gzFile_s z_stream_s :: struct { - next_in: ^Bytef, - avail_in: uInt, - total_in: uLong, - next_out: ^Bytef, - avail_out: uInt, - total_out: uLong, - msg: [^]c.char, - state: rawptr, - zalloc: alloc_func, - zfree: free_func, - opaque: voidpf, - data_type: c.int, - adler: uLong, - reserved: uLong, + next_in: ^Bytef, + avail_in: uInt, + total_in: uLong, + next_out: ^Bytef, + avail_out: uInt, + total_out: uLong, + msg: [^]c.char, + state: rawptr, + zalloc: alloc_func, + zfree: free_func, + opaque: voidpf, + data_type: c.int, + adler: uLong, + reserved: uLong, } z_stream :: z_stream_s z_streamp :: ^z_stream gz_header_s :: struct { - text: c.int, - time: uLong, - xflags: c.int, - os: c.int, - extra: [^]Bytef, - extra_len: uInt, - extra_max: uInt, - name: [^]Bytef, - name_max: uInt, - comment: [^]Bytef, - comm_max: uInt, - hcrc: c.int, - done: c.int, + text: c.int, + time: uLong, + xflags: c.int, + os: c.int, + extra: [^]Bytef, + extra_len: uInt, + extra_max: uInt, + name: [^]Bytef, + name_max: uInt, + comment: [^]Bytef, + comm_max: uInt, + hcrc: c.int, + done: c.int, } gz_header :: gz_header_s From d7cc166eabe29be751367640a7dbe88b9bf0d095 Mon Sep 17 00:00:00 2001 From: Karl Zylinski Date: Wed, 5 Apr 2023 22:37:05 +0200 Subject: [PATCH 50/50] Fix for skip_alphanum in JSON tokenizer not checking if first character is non-alphanum. This broke any single-character key when using SJSON specification in combination with not using quoted strings. --- core/encoding/json/tokenizer.odin | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/encoding/json/tokenizer.odin b/core/encoding/json/tokenizer.odin index 567600b90..a406a73a5 100644 --- a/core/encoding/json/tokenizer.odin +++ b/core/encoding/json/tokenizer.odin @@ -163,8 +163,9 @@ get_token :: proc(t: ^Tokenizer) -> (token: Token, err: Error) { skip_alphanum :: proc(t: ^Tokenizer) { for t.offset < len(t.data) { - switch next_rune(t) { + switch t.r { case 'A'..='Z', 'a'..='z', '0'..='9', '_': + next_rune(t) continue }

!@KdDo*{d&zEOP-0Z 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 z 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�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 L!y*2kEdPH1h=+qp literal 0 HcmV?d00001 diff --git a/vendor/lua/5.4/linux/liblua54.so b/vendor/lua/5.4/linux/liblua54.so new file mode 100644 index 0000000000000000000000000000000000000000..d7a0cf0753546b20f56eba8704ffb503fc938247 GIT binary patch literal 309576 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 E3w=`@Q~&?~ literal 0 HcmV?d00001 diff --git a/vendor/lua/5.4/lua.odin b/vendor/lua/5.4/lua.odin index 6b3179670..edfc2db5f 100644 --- a/vendor/lua/5.4/lua.odin +++ b/vendor/lua/5.4/lua.odin @@ -9,6 +9,10 @@ import c "core:c/libc" when ODIN_OS == .Windows { foreign import lib "windows/lua54dll.lib" +} else when ODIN_OS == .Linux { + foreign import lib "linux/liblua54.a" +} else { + #panic(`Unsupported platform of "vendor:lua/5.4"`) } VERSION_MAJOR :: "5" From 4dcf253330f47d7bb5b52364a113945842ca490a Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 5 Apr 2023 16:30:08 +0100 Subject: [PATCH 41/50] Add `vendor:lua/5.3` --- vendor/lua/5.3/include/lauxlib.h | 264 ++++++++++ vendor/lua/5.3/include/lua.h | 485 +++++++++++++++++ vendor/lua/5.3/include/lua.hpp | 9 + vendor/lua/5.3/include/luaconf.h | 792 ++++++++++++++++++++++++++++ vendor/lua/5.3/include/lualib.h | 61 +++ vendor/lua/5.3/linux/liblua53.a | Bin 0 -> 463532 bytes vendor/lua/5.3/linux/liblua53.so | Bin 0 -> 273536 bytes vendor/lua/5.3/lua.odin | 759 ++++++++++++++++++++++++++ vendor/lua/5.3/windows/lua53.dll | Bin 0 -> 302592 bytes vendor/lua/5.3/windows/lua53dll.lib | Bin 0 -> 28930 bytes 10 files changed, 2370 insertions(+) create mode 100644 vendor/lua/5.3/include/lauxlib.h create mode 100644 vendor/lua/5.3/include/lua.h create mode 100644 vendor/lua/5.3/include/lua.hpp create mode 100644 vendor/lua/5.3/include/luaconf.h create mode 100644 vendor/lua/5.3/include/lualib.h create mode 100644 vendor/lua/5.3/linux/liblua53.a create mode 100644 vendor/lua/5.3/linux/liblua53.so create mode 100644 vendor/lua/5.3/lua.odin create mode 100644 vendor/lua/5.3/windows/lua53.dll create mode 100644 vendor/lua/5.3/windows/lua53dll.lib diff --git a/vendor/lua/5.3/include/lauxlib.h b/vendor/lua/5.3/include/lauxlib.h new file mode 100644 index 000000000..9857d3a83 --- /dev/null +++ b/vendor/lua/5.3/include/lauxlib.h @@ -0,0 +1,264 @@ +/* +** $Id: lauxlib.h,v 1.131.1.1 2017/04/19 17:20:42 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lauxlib_h +#define lauxlib_h + + +#include +#include + +#include "lua.h" + + + +/* extra error code for 'luaL_loadfilex' */ +#define LUA_ERRFILE (LUA_ERRERR+1) + + +/* key, in the registry, for table of loaded modules */ +#define LUA_LOADED_TABLE "_LOADED" + + +/* key, in the registry, for table of preloaded loaders */ +#define LUA_PRELOAD_TABLE "_PRELOAD" + + +typedef struct luaL_Reg { + const char *name; + lua_CFunction func; +} luaL_Reg; + + +#define LUAL_NUMSIZES (sizeof(lua_Integer)*16 + sizeof(lua_Number)) + +LUALIB_API void (luaL_checkversion_) (lua_State *L, lua_Number ver, size_t sz); +#define luaL_checkversion(L) \ + luaL_checkversion_(L, LUA_VERSION_NUM, LUAL_NUMSIZES) + +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); +LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len); +LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg); +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int arg, + size_t *l); +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int arg, + const char *def, size_t *l); +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int arg); +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int arg, lua_Number def); + +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int arg); +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int arg, + lua_Integer def); + +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); +LUALIB_API void (luaL_checktype) (lua_State *L, int arg, int t); +LUALIB_API void (luaL_checkany) (lua_State *L, int arg); + +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); +LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname); +LUALIB_API void *(luaL_testudata) (lua_State *L, int ud, const char *tname); +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); + +LUALIB_API void (luaL_where) (lua_State *L, int lvl); +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); + +LUALIB_API int (luaL_checkoption) (lua_State *L, int arg, const char *def, + const char *const lst[]); + +LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname); +LUALIB_API int (luaL_execresult) (lua_State *L, int stat); + +/* predefined references */ +#define LUA_NOREF (-2) +#define LUA_REFNIL (-1) + +LUALIB_API int (luaL_ref) (lua_State *L, int t); +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); + +LUALIB_API int (luaL_loadfilex) (lua_State *L, const char *filename, + const char *mode); + +#define luaL_loadfile(L,f) luaL_loadfilex(L,f,NULL) + +LUALIB_API int (luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, + const char *name, const char *mode); +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); + +LUALIB_API lua_State *(luaL_newstate) (void); + +LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx); + +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, + const char *r); + +LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup); + +LUALIB_API int (luaL_getsubtable) (lua_State *L, int idx, const char *fname); + +LUALIB_API void (luaL_traceback) (lua_State *L, lua_State *L1, + const char *msg, int level); + +LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname, + lua_CFunction openf, int glb); + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + + +#define luaL_newlibtable(L,l) \ + lua_createtable(L, 0, sizeof(l)/sizeof((l)[0]) - 1) + +#define luaL_newlib(L,l) \ + (luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) + +#define luaL_argcheck(L, cond,arg,extramsg) \ + ((void)((cond) || luaL_argerror(L, (arg), (extramsg)))) +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) + +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) + +#define luaL_dofile(L, fn) \ + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_dostring(L, s) \ + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) + +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) + +#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL) + + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + +typedef struct luaL_Buffer { + char *b; /* buffer address */ + size_t size; /* buffer size */ + size_t n; /* number of characters in buffer */ + lua_State *L; + char initb[LUAL_BUFFERSIZE]; /* initial buffer */ +} luaL_Buffer; + + +#define luaL_addchar(B,c) \ + ((void)((B)->n < (B)->size || luaL_prepbuffsize((B), 1)), \ + ((B)->b[(B)->n++] = (c))) + +#define luaL_addsize(B,s) ((B)->n += (s)) + +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); +LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz); +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresultsize) (luaL_Buffer *B, size_t sz); +LUALIB_API char *(luaL_buffinitsize) (lua_State *L, luaL_Buffer *B, size_t sz); + +#define luaL_prepbuffer(B) luaL_prepbuffsize(B, LUAL_BUFFERSIZE) + +/* }====================================================== */ + + + +/* +** {====================================================== +** File handles for IO library +** ======================================================= +*/ + +/* +** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and +** initial structure 'luaL_Stream' (it may contain other fields +** after that initial structure). +*/ + +#define LUA_FILEHANDLE "FILE*" + + +typedef struct luaL_Stream { + FILE *f; /* stream (NULL for incompletely created streams) */ + lua_CFunction closef; /* to close stream (NULL for closed streams) */ +} luaL_Stream; + +/* }====================================================== */ + + + +/* compatibility with old module system */ +#if defined(LUA_COMPAT_MODULE) + +LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname, + int sizehint); +LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname, + const luaL_Reg *l, int nup); + +#define luaL_register(L,n,l) (luaL_openlib(L,(n),(l),0)) + +#endif + + +/* +** {================================================================== +** "Abstraction Layer" for basic report of messages and errors +** =================================================================== +*/ + +/* print a string */ +#if !defined(lua_writestring) +#define lua_writestring(s,l) fwrite((s), sizeof(char), (l), stdout) +#endif + +/* print a newline and flush the output */ +#if !defined(lua_writeline) +#define lua_writeline() (lua_writestring("\n", 1), fflush(stdout)) +#endif + +/* print an error message */ +#if !defined(lua_writestringerror) +#define lua_writestringerror(s,p) \ + (fprintf(stderr, (s), (p)), fflush(stderr)) +#endif + +/* }================================================================== */ + + +/* +** {============================================================ +** Compatibility with deprecated conversions +** ============================================================= +*/ +#if defined(LUA_COMPAT_APIINTCASTS) + +#define luaL_checkunsigned(L,a) ((lua_Unsigned)luaL_checkinteger(L,a)) +#define luaL_optunsigned(L,a,d) \ + ((lua_Unsigned)luaL_optinteger(L,a,(lua_Integer)(d))) + +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) + +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) + +#endif +/* }============================================================ */ + + + +#endif + + diff --git a/vendor/lua/5.3/include/lua.h b/vendor/lua/5.3/include/lua.h new file mode 100644 index 000000000..9394c5ef8 --- /dev/null +++ b/vendor/lua/5.3/include/lua.h @@ -0,0 +1,485 @@ +/* +** Lua - A Scripting Language +** Lua.org, PUC-Rio, Brazil (http://www.lua.org) +** See Copyright Notice at the end of this file +*/ + + +#ifndef lua_h +#define lua_h + +#include +#include + + +#include "luaconf.h" + + +#define LUA_VERSION_MAJOR "5" +#define LUA_VERSION_MINOR "3" +#define LUA_VERSION_NUM 503 +#define LUA_VERSION_RELEASE "6" + +#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR +#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE +#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2020 Lua.org, PUC-Rio" +#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" + + +/* mark for precompiled code ('Lua') */ +#define LUA_SIGNATURE "\x1bLua" + +/* option for multiple returns in 'lua_pcall' and 'lua_call' */ +#define LUA_MULTRET (-1) + + +/* +** Pseudo-indices +** (-LUAI_MAXSTACK is the minimum valid index; we keep some free empty +** space after that to help overflow detection) +*/ +#define LUA_REGISTRYINDEX (-LUAI_MAXSTACK - 1000) +#define lua_upvalueindex(i) (LUA_REGISTRYINDEX - (i)) + + +/* thread status */ +#define LUA_OK 0 +#define LUA_YIELD 1 +#define LUA_ERRRUN 2 +#define LUA_ERRSYNTAX 3 +#define LUA_ERRMEM 4 +#define LUA_ERRGCMM 5 +#define LUA_ERRERR 6 + + +typedef struct lua_State lua_State; + + +/* +** basic types +*/ +#define LUA_TNONE (-1) + +#define LUA_TNIL 0 +#define LUA_TBOOLEAN 1 +#define LUA_TLIGHTUSERDATA 2 +#define LUA_TNUMBER 3 +#define LUA_TSTRING 4 +#define LUA_TTABLE 5 +#define LUA_TFUNCTION 6 +#define LUA_TUSERDATA 7 +#define LUA_TTHREAD 8 + +#define LUA_NUMTAGS 9 + + + +/* minimum Lua stack available to a C function */ +#define LUA_MINSTACK 20 + + +/* predefined values in the registry */ +#define LUA_RIDX_MAINTHREAD 1 +#define LUA_RIDX_GLOBALS 2 +#define LUA_RIDX_LAST LUA_RIDX_GLOBALS + + +/* type of numbers in Lua */ +typedef LUA_NUMBER lua_Number; + + +/* type for integer functions */ +typedef LUA_INTEGER lua_Integer; + +/* unsigned integer type */ +typedef LUA_UNSIGNED lua_Unsigned; + +/* type for continuation-function contexts */ +typedef LUA_KCONTEXT lua_KContext; + + +/* +** Type for C functions registered with Lua +*/ +typedef int (*lua_CFunction) (lua_State *L); + +/* +** Type for continuation functions +*/ +typedef int (*lua_KFunction) (lua_State *L, int status, lua_KContext ctx); + + +/* +** Type for functions that read/write blocks when loading/dumping Lua chunks +*/ +typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); + +typedef int (*lua_Writer) (lua_State *L, const void *p, size_t sz, void *ud); + + +/* +** Type for memory-allocation functions +*/ +typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); + + + +/* +** generic extra include file +*/ +#if defined(LUA_USER_H) +#include LUA_USER_H +#endif + + +/* +** RCS ident string +*/ +extern const char lua_ident[]; + + +/* +** state manipulation +*/ +LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); +LUA_API void (lua_close) (lua_State *L); +LUA_API lua_State *(lua_newthread) (lua_State *L); + +LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); + + +LUA_API const lua_Number *(lua_version) (lua_State *L); + + +/* +** basic stack manipulation +*/ +LUA_API int (lua_absindex) (lua_State *L, int idx); +LUA_API int (lua_gettop) (lua_State *L); +LUA_API void (lua_settop) (lua_State *L, int idx); +LUA_API void (lua_pushvalue) (lua_State *L, int idx); +LUA_API void (lua_rotate) (lua_State *L, int idx, int n); +LUA_API void (lua_copy) (lua_State *L, int fromidx, int toidx); +LUA_API int (lua_checkstack) (lua_State *L, int n); + +LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); + + +/* +** access functions (stack -> C) +*/ + +LUA_API int (lua_isnumber) (lua_State *L, int idx); +LUA_API int (lua_isstring) (lua_State *L, int idx); +LUA_API int (lua_iscfunction) (lua_State *L, int idx); +LUA_API int (lua_isinteger) (lua_State *L, int idx); +LUA_API int (lua_isuserdata) (lua_State *L, int idx); +LUA_API int (lua_type) (lua_State *L, int idx); +LUA_API const char *(lua_typename) (lua_State *L, int tp); + +LUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum); +LUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); +LUA_API int (lua_toboolean) (lua_State *L, int idx); +LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); +LUA_API size_t (lua_rawlen) (lua_State *L, int idx); +LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); +LUA_API void *(lua_touserdata) (lua_State *L, int idx); +LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); +LUA_API const void *(lua_topointer) (lua_State *L, int idx); + + +/* +** Comparison and arithmetic functions +*/ + +#define LUA_OPADD 0 /* ORDER TM, ORDER OP */ +#define LUA_OPSUB 1 +#define LUA_OPMUL 2 +#define LUA_OPMOD 3 +#define LUA_OPPOW 4 +#define LUA_OPDIV 5 +#define LUA_OPIDIV 6 +#define LUA_OPBAND 7 +#define LUA_OPBOR 8 +#define LUA_OPBXOR 9 +#define LUA_OPSHL 10 +#define LUA_OPSHR 11 +#define LUA_OPUNM 12 +#define LUA_OPBNOT 13 + +LUA_API void (lua_arith) (lua_State *L, int op); + +#define LUA_OPEQ 0 +#define LUA_OPLT 1 +#define LUA_OPLE 2 + +LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_compare) (lua_State *L, int idx1, int idx2, int op); + + +/* +** push functions (C -> stack) +*/ +LUA_API void (lua_pushnil) (lua_State *L); +LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); +LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); +LUA_API const char *(lua_pushlstring) (lua_State *L, const char *s, size_t len); +LUA_API const char *(lua_pushstring) (lua_State *L, const char *s); +LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, + va_list argp); +LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); +LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); +LUA_API void (lua_pushboolean) (lua_State *L, int b); +LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); +LUA_API int (lua_pushthread) (lua_State *L); + + +/* +** get functions (Lua -> stack) +*/ +LUA_API int (lua_getglobal) (lua_State *L, const char *name); +LUA_API int (lua_gettable) (lua_State *L, int idx); +LUA_API int (lua_getfield) (lua_State *L, int idx, const char *k); +LUA_API int (lua_geti) (lua_State *L, int idx, lua_Integer n); +LUA_API int (lua_rawget) (lua_State *L, int idx); +LUA_API int (lua_rawgeti) (lua_State *L, int idx, lua_Integer n); +LUA_API int (lua_rawgetp) (lua_State *L, int idx, const void *p); + +LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); +LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); +LUA_API int (lua_getmetatable) (lua_State *L, int objindex); +LUA_API int (lua_getuservalue) (lua_State *L, int idx); + + +/* +** set functions (stack -> Lua) +*/ +LUA_API void (lua_setglobal) (lua_State *L, const char *name); +LUA_API void (lua_settable) (lua_State *L, int idx); +LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_seti) (lua_State *L, int idx, lua_Integer n); +LUA_API void (lua_rawset) (lua_State *L, int idx); +LUA_API void (lua_rawseti) (lua_State *L, int idx, lua_Integer n); +LUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); +LUA_API int (lua_setmetatable) (lua_State *L, int objindex); +LUA_API void (lua_setuservalue) (lua_State *L, int idx); + + +/* +** 'load' and 'call' functions (load and run Lua code) +*/ +LUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, + lua_KContext ctx, lua_KFunction k); +#define lua_call(L,n,r) lua_callk(L, (n), (r), 0, NULL) + +LUA_API int (lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc, + lua_KContext ctx, lua_KFunction k); +#define lua_pcall(L,n,r,f) lua_pcallk(L, (n), (r), (f), 0, NULL) + +LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, + const char *chunkname, const char *mode); + +LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data, int strip); + + +/* +** coroutine functions +*/ +LUA_API int (lua_yieldk) (lua_State *L, int nresults, lua_KContext ctx, + lua_KFunction k); +LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg); +LUA_API int (lua_status) (lua_State *L); +LUA_API int (lua_isyieldable) (lua_State *L); + +#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) + + +/* +** garbage-collection function and options +*/ + +#define LUA_GCSTOP 0 +#define LUA_GCRESTART 1 +#define LUA_GCCOLLECT 2 +#define LUA_GCCOUNT 3 +#define LUA_GCCOUNTB 4 +#define LUA_GCSTEP 5 +#define LUA_GCSETPAUSE 6 +#define LUA_GCSETSTEPMUL 7 +#define LUA_GCISRUNNING 9 + +LUA_API int (lua_gc) (lua_State *L, int what, int data); + + +/* +** miscellaneous functions +*/ + +LUA_API int (lua_error) (lua_State *L); + +LUA_API int (lua_next) (lua_State *L, int idx); + +LUA_API void (lua_concat) (lua_State *L, int n); +LUA_API void (lua_len) (lua_State *L, int idx); + +LUA_API size_t (lua_stringtonumber) (lua_State *L, const char *s); + +LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); +LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); + + + +/* +** {============================================================== +** some useful macros +** =============================================================== +*/ + +#define lua_getextraspace(L) ((void *)((char *)(L) - LUA_EXTRASPACE)) + +#define lua_tonumber(L,i) lua_tonumberx(L,(i),NULL) +#define lua_tointeger(L,i) lua_tointegerx(L,(i),NULL) + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#define lua_newtable(L) lua_createtable(L, 0, 0) + +#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) + +#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) + +#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) +#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) +#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) +#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) +#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) +#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) +#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) +#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) + +#define lua_pushliteral(L, s) lua_pushstring(L, "" s) + +#define lua_pushglobaltable(L) \ + ((void)lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS)) + +#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) + + +#define lua_insert(L,idx) lua_rotate(L, (idx), 1) + +#define lua_remove(L,idx) (lua_rotate(L, (idx), -1), lua_pop(L, 1)) + +#define lua_replace(L,idx) (lua_copy(L, -1, (idx)), lua_pop(L, 1)) + +/* }============================================================== */ + + +/* +** {============================================================== +** compatibility macros for unsigned conversions +** =============================================================== +*/ +#if defined(LUA_COMPAT_APIINTCASTS) + +#define lua_pushunsigned(L,n) lua_pushinteger(L, (lua_Integer)(n)) +#define lua_tounsignedx(L,i,is) ((lua_Unsigned)lua_tointegerx(L,i,is)) +#define lua_tounsigned(L,i) lua_tounsignedx(L,(i),NULL) + +#endif +/* }============================================================== */ + +/* +** {====================================================================== +** Debug API +** ======================================================================= +*/ + + +/* +** Event codes +*/ +#define LUA_HOOKCALL 0 +#define LUA_HOOKRET 1 +#define LUA_HOOKLINE 2 +#define LUA_HOOKCOUNT 3 +#define LUA_HOOKTAILCALL 4 + + +/* +** Event masks +*/ +#define LUA_MASKCALL (1 << LUA_HOOKCALL) +#define LUA_MASKRET (1 << LUA_HOOKRET) +#define LUA_MASKLINE (1 << LUA_HOOKLINE) +#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) + +typedef struct lua_Debug lua_Debug; /* activation record */ + + +/* Functions to be called by the debugger in specific events */ +typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); + + +LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar); +LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar); +LUA_API const char *(lua_getlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_setlocal) (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *(lua_getupvalue) (lua_State *L, int funcindex, int n); +LUA_API const char *(lua_setupvalue) (lua_State *L, int funcindex, int n); + +LUA_API void *(lua_upvalueid) (lua_State *L, int fidx, int n); +LUA_API void (lua_upvaluejoin) (lua_State *L, int fidx1, int n1, + int fidx2, int n2); + +LUA_API void (lua_sethook) (lua_State *L, lua_Hook func, int mask, int count); +LUA_API lua_Hook (lua_gethook) (lua_State *L); +LUA_API int (lua_gethookmask) (lua_State *L); +LUA_API int (lua_gethookcount) (lua_State *L); + + +struct lua_Debug { + int event; + const char *name; /* (n) */ + const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ + const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ + const char *source; /* (S) */ + int currentline; /* (l) */ + int linedefined; /* (S) */ + int lastlinedefined; /* (S) */ + unsigned char nups; /* (u) number of upvalues */ + unsigned char nparams;/* (u) number of parameters */ + char isvararg; /* (u) */ + char istailcall; /* (t) */ + char short_src[LUA_IDSIZE]; /* (S) */ + /* private part */ + struct CallInfo *i_ci; /* active function */ +}; + +/* }====================================================================== */ + + +/****************************************************************************** +* Copyright (C) 1994-2020 Lua.org, PUC-Rio. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +******************************************************************************/ + + +#endif diff --git a/vendor/lua/5.3/include/lua.hpp b/vendor/lua/5.3/include/lua.hpp new file mode 100644 index 000000000..ec417f594 --- /dev/null +++ b/vendor/lua/5.3/include/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" +} diff --git a/vendor/lua/5.3/include/luaconf.h b/vendor/lua/5.3/include/luaconf.h new file mode 100644 index 000000000..f95555689 --- /dev/null +++ b/vendor/lua/5.3/include/luaconf.h @@ -0,0 +1,792 @@ +/* +** $Id: luaconf.h,v 1.259.1.1 2017/04/19 17:29:57 roberto Exp $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef luaconf_h +#define luaconf_h + +#include +#include + + +/* +** =================================================================== +** Search for "@@" to find all configurable definitions. +** =================================================================== +*/ + + +/* +** {==================================================================== +** System Configuration: macros to adapt (if needed) Lua to some +** particular platform, for instance compiling it with 32-bit numbers or +** restricting it to C89. +** ===================================================================== +*/ + +/* +@@ LUA_32BITS enables Lua with 32-bit integers and 32-bit floats. You +** can also define LUA_32BITS in the make file, but changing here you +** ensure that all software connected to Lua will be compiled with the +** same configuration. +*/ +/* #define LUA_32BITS */ + + +/* +@@ LUA_USE_C89 controls the use of non-ISO-C89 features. +** Define it if you want Lua to avoid the use of a few C99 features +** or Windows-specific features on Windows. +*/ +/* #define LUA_USE_C89 */ + + +/* +** By default, Lua on Windows use (some) specific Windows features +*/ +#if !defined(LUA_USE_C89) && defined(_WIN32) && !defined(_WIN32_WCE) +#define LUA_USE_WINDOWS /* enable goodies for regular Windows */ +#endif + + +#if defined(LUA_USE_WINDOWS) +#define LUA_DL_DLL /* enable support for DLL */ +#define LUA_USE_C89 /* broadly, Windows is C89 */ +#endif + + +#if defined(LUA_USE_LINUX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +#define LUA_USE_READLINE /* needs some extra libraries */ +#endif + + +#if defined(LUA_USE_MACOSX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* MacOS does not need -ldl */ +#define LUA_USE_READLINE /* needs an extra library: -lreadline */ +#endif + + +/* +@@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for +** C89 ('long' and 'double'); Windows always has '__int64', so it does +** not need to use this case. +*/ +#if defined(LUA_USE_C89) && !defined(LUA_USE_WINDOWS) +#define LUA_C89_NUMBERS +#endif + + + +/* +@@ LUAI_BITSINT defines the (minimum) number of bits in an 'int'. +*/ +/* avoid undefined shifts */ +#if ((INT_MAX >> 15) >> 15) >= 1 +#define LUAI_BITSINT 32 +#else +/* 'int' always must have at least 16 bits */ +#define LUAI_BITSINT 16 +#endif + + +/* +@@ LUA_INT_TYPE defines the type for Lua integers. +@@ LUA_FLOAT_TYPE defines the type for Lua floats. +** Lua should work fine with any mix of these options (if supported +** by your C compiler). The usual configurations are 64-bit integers +** and 'double' (the default), 32-bit integers and 'float' (for +** restricted platforms), and 'long'/'double' (for C compilers not +** compliant with C99, which may not have support for 'long long'). +*/ + +/* predefined options for LUA_INT_TYPE */ +#define LUA_INT_INT 1 +#define LUA_INT_LONG 2 +#define LUA_INT_LONGLONG 3 + +/* predefined options for LUA_FLOAT_TYPE */ +#define LUA_FLOAT_FLOAT 1 +#define LUA_FLOAT_DOUBLE 2 +#define LUA_FLOAT_LONGDOUBLE 3 + +#if defined(LUA_32BITS) /* { */ +/* +** 32-bit integers and 'float' +*/ +#if LUAI_BITSINT >= 32 /* use 'int' if big enough */ +#define LUA_INT_TYPE LUA_INT_INT +#else /* otherwise use 'long' */ +#define LUA_INT_TYPE LUA_INT_LONG +#endif +#define LUA_FLOAT_TYPE LUA_FLOAT_FLOAT + +#elif defined(LUA_C89_NUMBERS) /* }{ */ +/* +** largest types available for C89 ('long' and 'double') +*/ +#define LUA_INT_TYPE LUA_INT_LONG +#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE + +#endif /* } */ + + +/* +** default configuration for 64-bit Lua ('long long' and 'double') +*/ +#if !defined(LUA_INT_TYPE) +#define LUA_INT_TYPE LUA_INT_LONGLONG +#endif + +#if !defined(LUA_FLOAT_TYPE) +#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE +#endif + +/* }================================================================== */ + + + + +/* +** {================================================================== +** Configuration for Paths. +** =================================================================== +*/ + +/* +** LUA_PATH_SEP is the character that separates templates in a path. +** LUA_PATH_MARK is the string that marks the substitution points in a +** template. +** LUA_EXEC_DIR in a Windows path is replaced by the executable's +** directory. +*/ +#define LUA_PATH_SEP ";" +#define LUA_PATH_MARK "?" +#define LUA_EXEC_DIR "!" + + +/* +@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for +** Lua libraries. +@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for +** C libraries. +** CHANGE them if your machine has a non-conventional directory +** hierarchy or if you want to install your libraries in +** non-conventional directories. +*/ +#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR +#if defined(_WIN32) /* { */ +/* +** In Windows, any exclamation mark ('!') in the path is replaced by the +** path of the directory of the executable file of the current process. +*/ +#define LUA_LDIR "!\\lua\\" +#define LUA_CDIR "!\\" +#define LUA_SHRDIR "!\\..\\share\\lua\\" LUA_VDIR "\\" +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" \ + LUA_SHRDIR"?.lua;" LUA_SHRDIR"?\\init.lua;" \ + ".\\?.lua;" ".\\?\\init.lua" +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.dll;" \ + LUA_CDIR"..\\lib\\lua\\" LUA_VDIR "\\?.dll;" \ + LUA_CDIR"loadall.dll;" ".\\?.dll;" \ + LUA_CDIR"?53.dll;" ".\\?53.dll" + +#else /* }{ */ + +#define LUA_ROOT "/usr/local/" +#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" +#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" +#define LUA_PATH_DEFAULT \ + LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \ + "./?.lua;" "./?/init.lua" +#define LUA_CPATH_DEFAULT \ + LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so;" \ + LUA_CDIR"lib?53.so;" "./lib?53.so" +#endif /* } */ + + +/* +@@ LUA_DIRSEP is the directory separator (for submodules). +** CHANGE it if your machine does not use "/" as the directory separator +** and is not Windows. (On Windows Lua automatically uses "\".) +*/ +#if defined(_WIN32) +#define LUA_DIRSEP "\\" +#else +#define LUA_DIRSEP "/" +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Marks for exported symbols in the C code +** =================================================================== +*/ + +/* +@@ LUA_API is a mark for all core API functions. +@@ LUALIB_API is a mark for all auxiliary library functions. +@@ LUAMOD_API is a mark for all standard library opening functions. +** CHANGE them if you need to define those functions in some special way. +** For instance, if you want to create one Windows DLL with the core and +** the libraries, you may want to use the following definition (define +** LUA_BUILD_AS_DLL to get it). +*/ +#if defined(LUA_BUILD_AS_DLL) /* { */ + +#if defined(LUA_CORE) || defined(LUA_LIB) /* { */ +#define LUA_API __declspec(dllexport) +#else /* }{ */ +#define LUA_API __declspec(dllimport) +#endif /* } */ + +#else /* }{ */ + +#define LUA_API extern + +#endif /* } */ + + +/* more often than not the libs go together with the core */ +#define LUALIB_API LUA_API +#define LUAMOD_API LUALIB_API + + +/* +@@ LUAI_FUNC is a mark for all extern functions that are not to be +** exported to outside modules. +@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables +** that are not to be exported to outside modules (LUAI_DDEF for +** definitions and LUAI_DDEC for declarations). +** CHANGE them if you need to mark them in some special way. Elf/gcc +** (versions 3.2 and later) mark them as "hidden" to optimize access +** when Lua is compiled as a shared library. Not all elf targets support +** this attribute. Unfortunately, gcc does not offer a way to check +** whether the target offers that support, and those without support +** give a warning about it. To avoid these warnings, change to the +** default definition. +*/ +#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ + defined(__ELF__) /* { */ +#define LUAI_FUNC __attribute__((visibility("hidden"))) extern +#else /* }{ */ +#define LUAI_FUNC extern +#endif /* } */ + +#define LUAI_DDEC LUAI_FUNC +#define LUAI_DDEF /* empty */ + +/* }================================================================== */ + + +/* +** {================================================================== +** Compatibility with previous versions +** =================================================================== +*/ + +/* +@@ LUA_COMPAT_5_2 controls other macros for compatibility with Lua 5.2. +@@ LUA_COMPAT_5_1 controls other macros for compatibility with Lua 5.1. +** You can define it to get all options, or change specific options +** to fit your specific needs. +*/ +#if defined(LUA_COMPAT_5_2) /* { */ + +/* +@@ LUA_COMPAT_MATHLIB controls the presence of several deprecated +** functions in the mathematical library. +*/ +#define LUA_COMPAT_MATHLIB + +/* +@@ LUA_COMPAT_BITLIB controls the presence of library 'bit32'. +*/ +#define LUA_COMPAT_BITLIB + +/* +@@ LUA_COMPAT_IPAIRS controls the effectiveness of the __ipairs metamethod. +*/ +#define LUA_COMPAT_IPAIRS + +/* +@@ LUA_COMPAT_APIINTCASTS controls the presence of macros for +** manipulating other integer types (lua_pushunsigned, lua_tounsigned, +** luaL_checkint, luaL_checklong, etc.) +*/ +#define LUA_COMPAT_APIINTCASTS + +#endif /* } */ + + +#if defined(LUA_COMPAT_5_1) /* { */ + +/* Incompatibilities from 5.2 -> 5.3 */ +#define LUA_COMPAT_MATHLIB +#define LUA_COMPAT_APIINTCASTS + +/* +@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'. +** You can replace it with 'table.unpack'. +*/ +#define LUA_COMPAT_UNPACK + +/* +@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'. +** You can replace it with 'package.searchers'. +*/ +#define LUA_COMPAT_LOADERS + +/* +@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall. +** You can call your C function directly (with light C functions). +*/ +#define lua_cpcall(L,f,u) \ + (lua_pushcfunction(L, (f)), \ + lua_pushlightuserdata(L,(u)), \ + lua_pcall(L,1,0,0)) + + +/* +@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library. +** You can rewrite 'log10(x)' as 'log(x, 10)'. +*/ +#define LUA_COMPAT_LOG10 + +/* +@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base +** library. You can rewrite 'loadstring(s)' as 'load(s)'. +*/ +#define LUA_COMPAT_LOADSTRING + +/* +@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library. +*/ +#define LUA_COMPAT_MAXN + +/* +@@ The following macros supply trivial compatibility for some +** changes in the API. The macros themselves document how to +** change your code to avoid using them. +*/ +#define lua_strlen(L,i) lua_rawlen(L, (i)) + +#define lua_objlen(L,i) lua_rawlen(L, (i)) + +#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) +#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) + +/* +@@ LUA_COMPAT_MODULE controls compatibility with previous +** module functions 'module' (Lua) and 'luaL_register' (C). +*/ +#define LUA_COMPAT_MODULE + +#endif /* } */ + + +/* +@@ LUA_COMPAT_FLOATSTRING makes Lua format integral floats without a +@@ a float mark ('.0'). +** This macro is not on by default even in compatibility mode, +** because this is not really an incompatibility. +*/ +/* #define LUA_COMPAT_FLOATSTRING */ + +/* }================================================================== */ + + + +/* +** {================================================================== +** Configuration for Numbers. +** Change these definitions if no predefined LUA_FLOAT_* / LUA_INT_* +** satisfy your needs. +** =================================================================== +*/ + +/* +@@ LUA_NUMBER is the floating-point type used by Lua. +@@ LUAI_UACNUMBER is the result of a 'default argument promotion' +@@ over a floating number. +@@ l_mathlim(x) corrects limit name 'x' to the proper float type +** by prefixing it with one of FLT/DBL/LDBL. +@@ LUA_NUMBER_FRMLEN is the length modifier for writing floats. +@@ LUA_NUMBER_FMT is the format for writing floats. +@@ lua_number2str converts a float to a string. +@@ l_mathop allows the addition of an 'l' or 'f' to all math operations. +@@ l_floor takes the floor of a float. +@@ lua_str2number converts a decimal numeric string to a number. +*/ + + +/* The following definitions are good for most cases here */ + +#define l_floor(x) (l_mathop(floor)(x)) + +#define lua_number2str(s,sz,n) \ + l_sprintf((s), sz, LUA_NUMBER_FMT, (LUAI_UACNUMBER)(n)) + +/* +@@ lua_numbertointeger converts a float number to an integer, or +** returns 0 if float is not within the range of a lua_Integer. +** (The range comparisons are tricky because of rounding. The tests +** here assume a two-complement representation, where MININTEGER always +** has an exact representation as a float; MAXINTEGER may not have one, +** and therefore its conversion to float may have an ill-defined value.) +*/ +#define lua_numbertointeger(n,p) \ + ((n) >= (LUA_NUMBER)(LUA_MININTEGER) && \ + (n) < -(LUA_NUMBER)(LUA_MININTEGER) && \ + (*(p) = (LUA_INTEGER)(n), 1)) + + +/* now the variable definitions */ + +#if LUA_FLOAT_TYPE == LUA_FLOAT_FLOAT /* { single float */ + +#define LUA_NUMBER float + +#define l_mathlim(n) (FLT_##n) + +#define LUAI_UACNUMBER double + +#define LUA_NUMBER_FRMLEN "" +#define LUA_NUMBER_FMT "%.7g" + +#define l_mathop(op) op##f + +#define lua_str2number(s,p) strtof((s), (p)) + + +#elif LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE /* }{ long double */ + +#define LUA_NUMBER long double + +#define l_mathlim(n) (LDBL_##n) + +#define LUAI_UACNUMBER long double + +#define LUA_NUMBER_FRMLEN "L" +#define LUA_NUMBER_FMT "%.19Lg" + +#define l_mathop(op) op##l + +#define lua_str2number(s,p) strtold((s), (p)) + +#elif LUA_FLOAT_TYPE == LUA_FLOAT_DOUBLE /* }{ double */ + +#define LUA_NUMBER double + +#define l_mathlim(n) (DBL_##n) + +#define LUAI_UACNUMBER double + +#define LUA_NUMBER_FRMLEN "" +#define LUA_NUMBER_FMT "%.14g" + +#define l_mathop(op) op + +#define lua_str2number(s,p) strtod((s), (p)) + +#else /* }{ */ + +#error "numeric float type not defined" + +#endif /* } */ + + + +/* +@@ LUA_INTEGER is the integer type used by Lua. +** +@@ LUA_UNSIGNED is the unsigned version of LUA_INTEGER. +** +@@ LUAI_UACINT is the result of a 'default argument promotion' +@@ over a lUA_INTEGER. +@@ LUA_INTEGER_FRMLEN is the length modifier for reading/writing integers. +@@ LUA_INTEGER_FMT is the format for writing integers. +@@ LUA_MAXINTEGER is the maximum value for a LUA_INTEGER. +@@ LUA_MININTEGER is the minimum value for a LUA_INTEGER. +@@ lua_integer2str converts an integer to a string. +*/ + + +/* The following definitions are good for most cases here */ + +#define LUA_INTEGER_FMT "%" LUA_INTEGER_FRMLEN "d" + +#define LUAI_UACINT LUA_INTEGER + +#define lua_integer2str(s,sz,n) \ + l_sprintf((s), sz, LUA_INTEGER_FMT, (LUAI_UACINT)(n)) + +/* +** use LUAI_UACINT here to avoid problems with promotions (which +** can turn a comparison between unsigneds into a signed comparison) +*/ +#define LUA_UNSIGNED unsigned LUAI_UACINT + + +/* now the variable definitions */ + +#if LUA_INT_TYPE == LUA_INT_INT /* { int */ + +#define LUA_INTEGER int +#define LUA_INTEGER_FRMLEN "" + +#define LUA_MAXINTEGER INT_MAX +#define LUA_MININTEGER INT_MIN + +#elif LUA_INT_TYPE == LUA_INT_LONG /* }{ long */ + +#define LUA_INTEGER long +#define LUA_INTEGER_FRMLEN "l" + +#define LUA_MAXINTEGER LONG_MAX +#define LUA_MININTEGER LONG_MIN + +#elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */ + +/* use presence of macro LLONG_MAX as proxy for C99 compliance */ +#if defined(LLONG_MAX) /* { */ +/* use ISO C99 stuff */ + +#define LUA_INTEGER long long +#define LUA_INTEGER_FRMLEN "ll" + +#define LUA_MAXINTEGER LLONG_MAX +#define LUA_MININTEGER LLONG_MIN + +#elif defined(LUA_USE_WINDOWS) /* }{ */ +/* in Windows, can use specific Windows types */ + +#define LUA_INTEGER __int64 +#define LUA_INTEGER_FRMLEN "I64" + +#define LUA_MAXINTEGER _I64_MAX +#define LUA_MININTEGER _I64_MIN + +#else /* }{ */ + +#error "Compiler does not support 'long long'. Use option '-DLUA_32BITS' \ + or '-DLUA_C89_NUMBERS' (see file 'luaconf.h' for details)" + +#endif /* } */ + +#else /* }{ */ + +#error "numeric integer type not defined" + +#endif /* } */ + +/* }================================================================== */ + + +/* +** {================================================================== +** Dependencies with C99 and other C details +** =================================================================== +*/ + +/* +@@ l_sprintf is equivalent to 'snprintf' or 'sprintf' in C89. +** (All uses in Lua have only one format item.) +*/ +#if !defined(LUA_USE_C89) +#define l_sprintf(s,sz,f,i) snprintf(s,sz,f,i) +#else +#define l_sprintf(s,sz,f,i) ((void)(sz), sprintf(s,f,i)) +#endif + + +/* +@@ lua_strx2number converts an hexadecimal numeric string to a number. +** In C99, 'strtod' does that conversion. Otherwise, you can +** leave 'lua_strx2number' undefined and Lua will provide its own +** implementation. +*/ +#if !defined(LUA_USE_C89) +#define lua_strx2number(s,p) lua_str2number(s,p) +#endif + + +/* +@@ lua_pointer2str converts a pointer to a readable string in a +** non-specified way. +*/ +#define lua_pointer2str(buff,sz,p) l_sprintf(buff,sz,"%p",p) + + +/* +@@ lua_number2strx converts a float to an hexadecimal numeric string. +** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that. +** Otherwise, you can leave 'lua_number2strx' undefined and Lua will +** provide its own implementation. +*/ +#if !defined(LUA_USE_C89) +#define lua_number2strx(L,b,sz,f,n) \ + ((void)L, l_sprintf(b,sz,f,(LUAI_UACNUMBER)(n))) +#endif + + +/* +** 'strtof' and 'opf' variants for math functions are not valid in +** C89. Otherwise, the macro 'HUGE_VALF' is a good proxy for testing the +** availability of these variants. ('math.h' is already included in +** all files that use these macros.) +*/ +#if defined(LUA_USE_C89) || (defined(HUGE_VAL) && !defined(HUGE_VALF)) +#undef l_mathop /* variants not available */ +#undef lua_str2number +#define l_mathop(op) (lua_Number)op /* no variant */ +#define lua_str2number(s,p) ((lua_Number)strtod((s), (p))) +#endif + + +/* +@@ LUA_KCONTEXT is the type of the context ('ctx') for continuation +** functions. It must be a numerical type; Lua will use 'intptr_t' if +** available, otherwise it will use 'ptrdiff_t' (the nearest thing to +** 'intptr_t' in C89) +*/ +#define LUA_KCONTEXT ptrdiff_t + +#if !defined(LUA_USE_C89) && defined(__STDC_VERSION__) && \ + __STDC_VERSION__ >= 199901L +#include +#if defined(INTPTR_MAX) /* even in C99 this type is optional */ +#undef LUA_KCONTEXT +#define LUA_KCONTEXT intptr_t +#endif +#endif + + +/* +@@ lua_getlocaledecpoint gets the locale "radix character" (decimal point). +** Change that if you do not want to use C locales. (Code using this +** macro must include header 'locale.h'.) +*/ +#if !defined(lua_getlocaledecpoint) +#define lua_getlocaledecpoint() (localeconv()->decimal_point[0]) +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Language Variations +** ===================================================================== +*/ + +/* +@@ LUA_NOCVTN2S/LUA_NOCVTS2N control how Lua performs some +** coercions. Define LUA_NOCVTN2S to turn off automatic coercion from +** numbers to strings. Define LUA_NOCVTS2N to turn off automatic +** coercion from strings to numbers. +*/ +/* #define LUA_NOCVTN2S */ +/* #define LUA_NOCVTS2N */ + + +/* +@@ LUA_USE_APICHECK turns on several consistency checks on the C API. +** Define it as a help when debugging C code. +*/ +#if defined(LUA_USE_APICHECK) +#include +#define luai_apicheck(l,e) assert(e) +#endif + +/* }================================================================== */ + + +/* +** {================================================================== +** Macros that affect the API and must be stable (that is, must be the +** same when you compile Lua and when you compile code that links to +** Lua). You probably do not want/need to change them. +** ===================================================================== +*/ + +/* +@@ LUAI_MAXSTACK limits the size of the Lua stack. +** CHANGE it if you need a different limit. This limit is arbitrary; +** its only purpose is to stop Lua from consuming unlimited stack +** space (and to reserve some numbers for pseudo-indices). +*/ +#if LUAI_BITSINT >= 32 +#define LUAI_MAXSTACK 1000000 +#else +#define LUAI_MAXSTACK 15000 +#endif + + +/* +@@ LUA_EXTRASPACE defines the size of a raw memory area associated with +** a Lua state with very fast access. +** CHANGE it if you need a different size. +*/ +#define LUA_EXTRASPACE (sizeof(void *)) + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@@ of a function in debug information. +** CHANGE it if you want a different size. +*/ +#define LUA_IDSIZE 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +** CHANGE it if it uses too much C-stack space. (For long double, +** 'string.format("%.99f", -1e4932)' needs 5034 bytes, so a +** smaller buffer would force a memory allocation for each call to +** 'string.format'.) +*/ +#if LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE +#define LUAL_BUFFERSIZE 8192 +#else +#define LUAL_BUFFERSIZE ((int)(0x80 * sizeof(void*) * sizeof(lua_Integer))) +#endif + +/* }================================================================== */ + + +/* +@@ LUA_QL describes how error messages quote program elements. +** Lua does not use these macros anymore; they are here for +** compatibility only. +*/ +#define LUA_QL(x) "'" x "'" +#define LUA_QS LUA_QL("%s") + + + + +/* =================================================================== */ + +/* +** Local configuration. You can use this space to add your redefinitions +** without modifying the main part of the file. +*/ + + + + + +#endif + diff --git a/vendor/lua/5.3/include/lualib.h b/vendor/lua/5.3/include/lualib.h new file mode 100644 index 000000000..f5304aa0d --- /dev/null +++ b/vendor/lua/5.3/include/lualib.h @@ -0,0 +1,61 @@ +/* +** $Id: lualib.h,v 1.45.1.1 2017/04/19 17:20:42 roberto Exp $ +** Lua standard libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lualib_h +#define lualib_h + +#include "lua.h" + + +/* version suffix for environment variable names */ +#define LUA_VERSUFFIX "_" LUA_VERSION_MAJOR "_" LUA_VERSION_MINOR + + +LUAMOD_API int (luaopen_base) (lua_State *L); + +#define LUA_COLIBNAME "coroutine" +LUAMOD_API int (luaopen_coroutine) (lua_State *L); + +#define LUA_TABLIBNAME "table" +LUAMOD_API int (luaopen_table) (lua_State *L); + +#define LUA_IOLIBNAME "io" +LUAMOD_API int (luaopen_io) (lua_State *L); + +#define LUA_OSLIBNAME "os" +LUAMOD_API int (luaopen_os) (lua_State *L); + +#define LUA_STRLIBNAME "string" +LUAMOD_API int (luaopen_string) (lua_State *L); + +#define LUA_UTF8LIBNAME "utf8" +LUAMOD_API int (luaopen_utf8) (lua_State *L); + +#define LUA_BITLIBNAME "bit32" +LUAMOD_API int (luaopen_bit32) (lua_State *L); + +#define LUA_MATHLIBNAME "math" +LUAMOD_API int (luaopen_math) (lua_State *L); + +#define LUA_DBLIBNAME "debug" +LUAMOD_API int (luaopen_debug) (lua_State *L); + +#define LUA_LOADLIBNAME "package" +LUAMOD_API int (luaopen_package) (lua_State *L); + + +/* open all previous libraries */ +LUALIB_API void (luaL_openlibs) (lua_State *L); + + + +#if !defined(lua_assert) +#define lua_assert(x) ((void)0) +#endif + + +#endif diff --git a/vendor/lua/5.3/linux/liblua53.a b/vendor/lua/5.3/linux/liblua53.a new file mode 100644 index 0000000000000000000000000000000000000000..67b462b1baaba9e2f509c36c1961cd11c65202ca GIT binary patch literal 463532 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