@jhlagado/azm 0.2.11 → 0.2.13

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 (52) hide show
  1. package/dist/src/api-compile.d.ts +7 -1
  2. package/dist/src/api-compile.js +17 -5
  3. package/dist/src/api-register-contracts.js +69 -2
  4. package/dist/src/api-tooling.d.ts +1 -1
  5. package/dist/src/assembly/import-visibility.js +108 -33
  6. package/dist/src/cli/artifact-files.d.ts +1 -0
  7. package/dist/src/cli/artifact-files.js +5 -0
  8. package/dist/src/cli/parse-args.d.ts +6 -1
  9. package/dist/src/cli/parse-args.js +59 -0
  10. package/dist/src/cli/run.js +2 -2
  11. package/dist/src/cli/usage.js +5 -0
  12. package/dist/src/cli/write-artifacts.d.ts +1 -1
  13. package/dist/src/cli/write-artifacts.js +15 -2
  14. package/dist/src/core/compile.js +1 -0
  15. package/dist/src/expansion/op-expand-selected.js +8 -1
  16. package/dist/src/expansion/op-expansion.d.ts +3 -0
  17. package/dist/src/expansion/op-expansion.js +12 -1
  18. package/dist/src/index.d.ts +1 -1
  19. package/dist/src/node/source-host.js +5 -2
  20. package/dist/src/outputs/types.d.ts +13 -1
  21. package/dist/src/register-contracts/analyze-helpers.d.ts +6 -1
  22. package/dist/src/register-contracts/analyze-helpers.js +67 -0
  23. package/dist/src/register-contracts/analyze.d.ts +8 -1
  24. package/dist/src/register-contracts/analyze.js +353 -16
  25. package/dist/src/register-contracts/interfaceContracts.js +45 -0
  26. package/dist/src/register-contracts/liveness.js +23 -0
  27. package/dist/src/register-contracts/policy.d.ts +2 -0
  28. package/dist/src/register-contracts/policy.js +54 -0
  29. package/dist/src/register-contracts/programModel-boundaries.d.ts +5 -1
  30. package/dist/src/register-contracts/programModel-boundaries.js +20 -5
  31. package/dist/src/register-contracts/programModel-routines.js +37 -6
  32. package/dist/src/register-contracts/ratchet.d.ts +3 -0
  33. package/dist/src/register-contracts/ratchet.js +88 -0
  34. package/dist/src/register-contracts/report.d.ts +8 -1
  35. package/dist/src/register-contracts/report.js +174 -0
  36. package/dist/src/register-contracts/smartCommentParsing.js +22 -0
  37. package/dist/src/register-contracts/summary-boundary.js +9 -2
  38. package/dist/src/register-contracts/tooling.d.ts +2 -1
  39. package/dist/src/register-contracts/tooling.js +2 -0
  40. package/dist/src/register-contracts/types.d.ts +157 -0
  41. package/dist/src/source/logical-lines.d.ts +1 -0
  42. package/dist/src/source/source-span.d.ts +1 -0
  43. package/dist/src/syntax/parse-layout-declarations.js +1 -0
  44. package/dist/src/syntax/parse-line.js +4 -0
  45. package/docs/codebase/02-source-loading-and-parsing.md +10 -6
  46. package/docs/codebase/04-ops-and-register-contracts.md +49 -4
  47. package/docs/codebase/05-interfaces-and-output-artifacts.md +56 -6
  48. package/docs/codebase/06-verification-and-maintenance.md +10 -2
  49. package/docs/codebase/appendices/a-directory-file-reference.md +3 -1
  50. package/docs/codebase/appendices/b-compile-flow-reference.md +7 -5
  51. package/docs/codebase/appendices/c-public-surface-reference.md +19 -5
  52. package/package.json +1 -1
@@ -44,6 +44,16 @@ want one import path.
44
44
  Use this path for build tools, Debug80 integration and scripts that need bytes
45
45
  or artifacts.
46
46
 
47
+ Compile consumers should treat these register-contract options as public when
48
+ they use that subsystem:
49
+
50
+ - `registerContractsPolicy`
51
+ - `registerContractsReportFormat`
52
+ - `registerContractsBaseline`
53
+ - `registerContractsRatchet`
54
+ - `emitRegisterInference`
55
+ - `registerContractsInferenceFormat`
56
+
47
57
  ## Tooling Exports
48
58
 
49
59
  `@jhlagado/azm/tooling` exposes:
@@ -62,9 +72,10 @@ Use this path for editors, linters and language tooling.
62
72
  `analyzeRegisterCareForTools` remains as a deprecated compatibility export.
63
73
 
64
74
  Tooling consumers should treat parsed item spans as provenance-bearing data.
65
- When present, `sourceUnit` names the owning source unit and `sourceRelation`
66
- records whether that unit entered the load through `entry`, `include` or
67
- `import`.
75
+ When present, `sourceUnit` names the owning source unit, `sourceRelation`
76
+ records whether the physical file edge was `entry`, `include` or `import`, and
77
+ `sourceUnitRelation` records whether the owning unit entered the load through
78
+ `entry` or `import`.
68
79
 
69
80
  ## CLI Export
70
81
 
@@ -95,12 +106,15 @@ Treat these as public contracts:
95
106
  - `D8mSymbol`
96
107
  - `LoadedProgramNext`
97
108
  - `AnalyzeProgramNextResult`
109
+ - `RegisterContractsFinding`
110
+ - `RegisterContractsFindingKind`
111
+ - `RegisterContractsInferenceModel`
98
112
  - `RegisterContractsCandidateDiagnostic`
99
113
  - `RegisterContractsCodeAction`
100
114
 
101
115
  For tooling consumers, this contract also includes the optional
102
- `SourceSpan.sourceUnit` and `SourceSpan.sourceRelation` fields carried on parsed
103
- items.
116
+ `SourceSpan.sourceUnit`, `SourceSpan.sourceRelation` and
117
+ `SourceSpan.sourceUnitRelation` fields carried on parsed items.
104
118
 
105
119
  When these shapes change, update package tests, TypeScript type tests, README
106
120
  examples, repo-local reference docs and this manual.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jhlagado/azm",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
4
4
  "description": "AZM assembler for the Z80 family (Node.js CLI)",
5
5
  "license": "GPL-3.0-only",
6
6
  "engines": {