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.
Files changed (66) hide show
  1. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/CHANGELOG.md +11 -0
  2. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/PKG-INFO +1 -1
  3. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/mojo_ir_printer.py +9 -9
  4. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/normalize_mojo_module.py +1 -1
  5. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/pyproject.toml +1 -1
  6. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/.gitignore +0 -0
  7. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/LICENSE +0 -0
  8. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/README.md +0 -0
  9. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/__init__.py +0 -0
  10. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/__init__.py +0 -0
  11. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/__init__.py +0 -0
  12. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/cir_canonicalizer.py +0 -0
  13. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/reachability.py +0 -0
  14. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/reference_validation.py +0 -0
  15. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/cir/validate_ir.py +0 -0
  16. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/common.py +0 -0
  17. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/__init__.py +0 -0
  18. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/alias_classification.py +0 -0
  19. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/bitfield_layout.py +0 -0
  20. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/context.py +0 -0
  21. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/dependency_graph.py +0 -0
  22. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/indexes.py +0 -0
  23. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/record_layout.py +0 -0
  24. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/record_storage.py +0 -0
  25. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/facts/type_layout.py +0 -0
  26. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/__init__.py +0 -0
  27. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/alias_mapping.py +0 -0
  28. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/const_expr_mapping.py +0 -0
  29. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/const_value_mapping.py +0 -0
  30. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/decl_mapping.py +0 -0
  31. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/macro_mapping.py +0 -0
  32. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/mapping_support.py +0 -0
  33. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/mojo_emit_options.py +0 -0
  34. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/record_policies.py +0 -0
  35. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/struct_mapping.py +0 -0
  36. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/type_mapping.py +0 -0
  37. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/union_mapping.py +0 -0
  38. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/mojo/unit_mapping.py +0 -0
  39. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/pipeline.py +0 -0
  40. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/traversal.py +0 -0
  41. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/analysis/type_walk.py +0 -0
  42. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/cli.py +0 -0
  43. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/__init__.py +0 -0
  44. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/codegen/mojo_support_templates.py +0 -0
  45. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/ir.py +0 -0
  46. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/layout_tests/__init__.py +0 -0
  47. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/layout_tests/generator.py +0 -0
  48. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/orchestrator.py +0 -0
  49. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/__init__.py +0 -0
  50. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/diagnostics.py +0 -0
  51. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/doc_comments.py +0 -0
  52. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/frontend.py +0 -0
  53. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/__init__.py +0 -0
  54. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/const_expr.py +0 -0
  55. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/decl_lowering.py +0 -0
  56. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/literal_resolver.py +0 -0
  57. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/macro_env.py +0 -0
  58. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/primitive.py +0 -0
  59. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/record_lowering.py +0 -0
  60. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/lowering/type_lowering.py +0 -0
  61. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/parser.py +0 -0
  62. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/registry.py +0 -0
  63. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/parsing/target_abi.py +0 -0
  64. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/py.typed +0 -0
  65. {mojo_bindgen-0.3.3 → mojo_bindgen-0.3.4}/mojo_bindgen/serde.py +0 -0
  66. {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
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 is_little_endian():")
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
- little_shift,
433
+ big_shift,
434
434
  bitfield,
435
435
  )
436
436
  b.dedent()
437
- b.add("elif is_big_endian():")
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
- big_shift,
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 is_little_endian():")
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
- little_shift,
489
+ big_shift,
490
490
  bitfield,
491
491
  )
492
492
  b.dedent()
493
- b.add("elif is_big_endian():")
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
- big_shift,
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", "is_little_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)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mojo-bindgen"
7
- version = "0.3.3"
7
+ version = "0.3.4"
8
8
  description = "Generate Mojo FFI bindings from C headers using libclang"
9
9
  readme = "README.md"
10
10
  license = "MIT"
File without changes
File without changes
File without changes