mojo-bindgen 0.3.3__tar.gz → 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/CHANGELOG.md +11 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/PKG-INFO +1 -1
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/mojo_ir_printer.py +9 -9
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/normalize_mojo_module.py +1 -1
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/pyproject.toml +1 -1
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/.gitignore +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/LICENSE +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/README.md +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/cir_canonicalizer.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/reachability.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/reference_validation.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/validate_ir.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/common.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/alias_classification.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/bitfield_layout.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/context.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/dependency_graph.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/indexes.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/record_layout.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/record_storage.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/type_layout.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/alias_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/const_expr_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/const_value_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/decl_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/macro_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/mapping_support.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/mojo_emit_options.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/record_policies.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/struct_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/type_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/union_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/unit_mapping.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/pipeline.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/traversal.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/type_walk.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/cli.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/mojo_support_templates.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/ir.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/layout_tests/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/layout_tests/generator.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/orchestrator.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/diagnostics.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/doc_comments.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/frontend.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/__init__.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/const_expr.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/decl_lowering.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/literal_resolver.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/macro_env.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/primitive.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/record_lowering.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/type_lowering.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/parser.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/registry.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/target_abi.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/py.typed +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/serde.py +0 -0
- {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/utils.py +0 -0
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.3.4] - 2026-06-27
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Escape backslashes in generated Mojo docstrings so C documentation comments
|
|
10
|
+
containing text such as `\@PG`, `\param`, paths, or literal escape-looking
|
|
11
|
+
snippets do not produce invalid Mojo escape sequences.
|
|
12
|
+
|
|
5
13
|
## [0.3.3] - 2026-06-27
|
|
6
14
|
|
|
7
15
|
### Changed
|
|
@@ -10,6 +18,9 @@ All notable changes to this project are documented in this file.
|
|
|
10
18
|
package version directly from the CLI.
|
|
11
19
|
- Make `mojo-bindgen` with no arguments print the help message instead of
|
|
12
20
|
failing on the missing header argument.
|
|
21
|
+
- Emit bitfield accessors with a `comptime if is_big_endian()` branch and an
|
|
22
|
+
`else` little-endian path, avoiding invalid Mojo functions with no fallback
|
|
23
|
+
return path.
|
|
13
24
|
|
|
14
25
|
## [0.3.2] - 2026-06-23
|
|
15
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mojo-bindgen
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: Generate Mojo FFI bindings from C headers using libclang
|
|
5
5
|
Project-URL: Homepage, https://github.com/MoSafi2/mojo_bindgen
|
|
6
6
|
Project-URL: Repository, https://github.com/MoSafi2/mojo_bindgen
|
|
@@ -170,7 +170,7 @@ def _dedent_doc_lines(lines: list[str]) -> list[str]:
|
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
def _escape_docstring_line(line: str) -> str:
|
|
173
|
-
return line.replace('"""', '\\"\\"\\"')
|
|
173
|
+
return line.replace("\\", "\\\\").replace('"""', '\\"\\"\\"')
|
|
174
174
|
|
|
175
175
|
|
|
176
176
|
class CodeBuilder:
|
|
@@ -422,7 +422,7 @@ class MojoIRPrinter:
|
|
|
422
422
|
mask_text: str,
|
|
423
423
|
) -> None:
|
|
424
424
|
little_shift, big_shift = self._bitfield_shifts(group, bitfield)
|
|
425
|
-
b.add("comptime if
|
|
425
|
+
b.add("comptime if is_big_endian():")
|
|
426
426
|
b.indent()
|
|
427
427
|
self._render_bitfield_accessor_read_branch(
|
|
428
428
|
b,
|
|
@@ -430,11 +430,11 @@ class MojoIRPrinter:
|
|
|
430
430
|
logical_type,
|
|
431
431
|
storage_type,
|
|
432
432
|
mask_text,
|
|
433
|
-
|
|
433
|
+
big_shift,
|
|
434
434
|
bitfield,
|
|
435
435
|
)
|
|
436
436
|
b.dedent()
|
|
437
|
-
b.add("
|
|
437
|
+
b.add("else:")
|
|
438
438
|
b.indent()
|
|
439
439
|
self._render_bitfield_accessor_read_branch(
|
|
440
440
|
b,
|
|
@@ -442,7 +442,7 @@ class MojoIRPrinter:
|
|
|
442
442
|
logical_type,
|
|
443
443
|
storage_type,
|
|
444
444
|
mask_text,
|
|
445
|
-
|
|
445
|
+
little_shift,
|
|
446
446
|
bitfield,
|
|
447
447
|
)
|
|
448
448
|
b.dedent()
|
|
@@ -479,25 +479,25 @@ class MojoIRPrinter:
|
|
|
479
479
|
mask_text: str,
|
|
480
480
|
) -> None:
|
|
481
481
|
little_shift, big_shift = self._bitfield_shifts(group, bitfield)
|
|
482
|
-
b.add("comptime if
|
|
482
|
+
b.add("comptime if is_big_endian():")
|
|
483
483
|
b.indent()
|
|
484
484
|
self._render_bitfield_accessor_write_branch(
|
|
485
485
|
b,
|
|
486
486
|
group.storage_name,
|
|
487
487
|
storage_type,
|
|
488
488
|
mask_text,
|
|
489
|
-
|
|
489
|
+
big_shift,
|
|
490
490
|
bitfield,
|
|
491
491
|
)
|
|
492
492
|
b.dedent()
|
|
493
|
-
b.add("
|
|
493
|
+
b.add("else:")
|
|
494
494
|
b.indent()
|
|
495
495
|
self._render_bitfield_accessor_write_branch(
|
|
496
496
|
b,
|
|
497
497
|
group.storage_name,
|
|
498
498
|
storage_type,
|
|
499
499
|
mask_text,
|
|
500
|
-
|
|
500
|
+
little_shift,
|
|
501
501
|
bitfield,
|
|
502
502
|
)
|
|
503
503
|
b.dedent()
|
|
@@ -471,7 +471,7 @@ class NormalizeMojoModulePass:
|
|
|
471
471
|
if isinstance(member, StoredMember):
|
|
472
472
|
self._collect_type_imports(member.type)
|
|
473
473
|
elif isinstance(member, BitfieldGroupMember):
|
|
474
|
-
self._record_import("std.sys.info", "is_big_endian"
|
|
474
|
+
self._record_import("std.sys.info", "is_big_endian")
|
|
475
475
|
self._collect_type_imports(member.storage_type)
|
|
476
476
|
for field in member.fields:
|
|
477
477
|
self._collect_type_imports(field.logical_type)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/alias_classification.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|