doc: update COMPAT_SUMMARY to reflect actual status.
authorwhitequark <cz@m-labs.hk>
Sat, 15 Dec 2018 12:04:52 +0000 (12:04 +0000)
committerwhitequark <cz@m-labs.hk>
Sat, 15 Dec 2018 12:04:52 +0000 (12:04 +0000)
doc/COMPAT_SUMMARY.md

index 2c7051eba240fed3b29bb8e98136510cd1c40344..0a7dae4e33d8c9734e13cf783f31bba24129442f 100644 (file)
@@ -19,172 +19,169 @@ API change legend:
 When describing renames or replacements, `mod` refers to a 3rd-party package `mod` (no nMigen implementation provided), `.mod.item` refers to `nmigen.mod.item`, and "(import `.item`)" means that, while `item` is provided under `nmigen.mod.item`, it is aliased to, and should be imported from a shorter path for readability.
 
 Status legend:
-  - (×) Intended replacement (the API is decided on)
-  - (−) Implemented replacement (the API and compatibility shim are provided)
-  - (+) Verified replacement and/or compatibility shim (the compatibility shim is manually reviewed and has 100% coverage)
-  - (â\88¼) No direct replacement or compatibility shim is provided
+  - (−) No decision yet, or no replacement implemented
+  - (+) Implemented replacement (the API and/or compatibility shim are provided)
+  - (⊕) Verified replacement and/or compatibility shim (the compatibility shim is manually reviewed and/or has 100% test coverage)
+  - (â\8a\99) No direct replacement or compatibility shim is provided
 
 Compatibility summary
 ---------------------
 
-  - (×) `fhdl`
-    - (×) `bitcontainer` ⇒ `.tools`
-      - (×) `log2_int` id
-      - (×) `bits_for` id
-      - (×) `value_bits_sign` → `Value.shape`
-    - (×) `conv_output` ?
-    - (×) `decorators` ⇒ `.fhdl.xfrm`
+  - () `fhdl`
+    - (+) `bitcontainer` ⇒ `.tools`
+      - (+) `log2_int` id
+      - (+) `bits_for` id
+      - (+) `value_bits_sign` → `Value.shape`
+    - () `conv_output` ?
+    - (+) `decorators` ⇒ `.fhdl.xfrm`
       Note: `transform_*` methods not considered part of public API.
-      - (â\88¼) `ModuleTransformer` **brk**
-      - (â\88¼) `ControlInserter` **brk**
-      - (×) `CEInserter` id, `clock_domains=`→`controls=`
-      - (×) `ResetInserter` id, `clock_domains=`→`controls=`
-      - (×) `ClockDomainsRenamer` → `DomainRenamer`, `cd_remapping=`→`domain_map=`
-    - (â\88¼) `edif` **brk**
-    - (×) `module` **obs** → `.fhdl.dsl`
-      - (×) `FinalizeError` **obs**
-      - (×) `Module` **obs** → `.fhdl.dsl.Module`
-    - (â\88¼) `namer` **brk**
-    - (×) `simplify` ?
-      - (×) `FullMemoryWE` ?
-      - (×) `MemoryToArray` ?
-      - (×) `SplitMemory` ?
-    - (×) `specials` **obs**
-      - (×) `Special` ?
-      - (×) `Tristate` ?
-      - (×) `TSTriple` → `.genlib.io.TSTriple`, `bits_sign=`→`shape=`
-      - (×) `Instance` ?
-      - (×) `READ_FIRST`/`WRITE_FIRST`/`NO_CHANGE` ?
-      - (×) `_MemoryPort` ?
-      - (×) `Memory` ?
-    - (×) `structure` → `.fhdl.ast`
-      - (×) `DUID` id
-      - (×) `_Value` → `Value`
+      - (â\8a\99) `ModuleTransformer` **brk**
+      - (â\8a\99) `ControlInserter` **brk**
+      - (+) `CEInserter` id, `clock_domains=`→`controls=`
+      - (+) `ResetInserter` id, `clock_domains=`→`controls=`
+      - (+) `ClockDomainsRenamer` → `DomainRenamer`, `cd_remapping=`→`domain_map=`
+    - (â\8a\99) `edif` **brk**
+    - (+) `module` **obs** → `.fhdl.dsl`
+      - (+) `FinalizeError` **obs**
+      - (+) `Module` **obs** → `.fhdl.dsl.Module`
+    - (â\8a\99) `namer` **brk**
+    - () `simplify` ?
+      - () `FullMemoryWE` ?
+      - () `MemoryToArray` ?
+      - () `SplitMemory` ?
+    - () `specials` **obs**
+      - () `Special` ?
+      - () `Tristate` ?
+      - (+) `TSTriple` → `.genlib.io.TSTriple`, `bits_sign=`→`shape=`
+      - () `Instance` ?
+      - () `READ_FIRST`/`WRITE_FIRST`/`NO_CHANGE` ?
+      - () `_MemoryPort` ?
+      - () `Memory` ?
+    - () `structure` → `.fhdl.ast`
+      - (+) `DUID` id
+      - (+) `_Value` → `Value`
         Note: values no longer valid as keys in `dict` and `set`; use `ValueDict` and `ValueSet` instead.
-      - (×) `wrap` → `Value.wrap`
-      - (×) `_Operator` → `Operator`
-      - (×) `Mux` → `Mux`
-      - (×) `_Slice` → `Slice`, `stop=`→`end=`, `.stop`→`.end`
-      - (×) `_Part` → `Part`
-      - (×) `Cat` id, `.l`→`.operands`
-      - (×) `Replicate` → `Repl`, `v=`→`value=`, `n=`→`count=`, `.v`→`.value`, `.n`→`.count`
-      - (×) `Constant` → `Const`, `bits_sign=`→`shape=`
-      - (×) `Signal` id, `bits_sign=`→`shape=`, `attr=`→`attrs=`, `name_override=`∼, `related=`, `variable=`∼
-      - (×) `ClockSignal` id, `cd=`→`domain=`
-      - (×) `ResetSignal` id, `cd=`→`domain=`
-      - (×) `_Statement` → `Statement`
-      - (×) `_Assign` → `Assign`, `l=`→`lhs=`, `r=`→`rhs=`
-      - (×) `_check_statement` **obs** → `Statement.wrap`
-      - (×) `If` **obs** → `.fhdl.dsl.Module.If`
-      - (×) `Case` **obs** → `.fhdl.dsl.Module.Switch`
-      - (×) `_ArrayProxy` ?
-      - (×) `Array` ?
-      - (×) `ClockDomain` → `.fhdl.cd.ClockDomain`
-      - (×) `_ClockDomainList` ?
-      - (×) `SPECIAL_INPUT`/`SPECIAL_OUTPUT`/`SPECIAL_INOUT` ?
-      - (∼) `_Fragment` **brk** → `.fhdl.ir.Fragment`
-    - (×) `tools` **brk**
-      - (×) `list_signals` ?
-      - (×) `list_targets` ?
-      - (×) `list_inputs` ?
-      - (×) `group_by_targets` ?
-      - (∼) `list_special_ios` **brk**
-      - (∼) `list_clock_domains_expr` **brk**
-      - (×) `list_clock_domains` ?
-      - (×) `is_variable` ?
-      - (∼) `generate_reset` **brk**
-      - (∼) `insert_reset` **brk**
-      - (∼) `insert_resets` **brk** → `.fhdl.xfrm.ResetInserter`
-      - (∼) `lower_basics` **brk**
-      - (∼) `lower_complex_slices` **brk**
-      - (∼) `lower_complex_parts` **brk**
-      - (∼) `rename_clock_domain_expr` **brk**
-      - (∼) `rename_clock_domain` **brk** → `.fhdl.xfrm.DomainRenamer`
-      - (∼) `call_special_classmethod` **brk**
-      - (∼) `lower_specials` **brk**
-    - (×) `tracer` **brk**
-      - (×) `get_var_name` ?
-      - (×) `remove_underscore` ?
-      - (×) `get_obj_var_name` ?
-      - (×) `index_id` ?
-      - (×) `trace_back` ?
-    - (×) `verilog`
-      - (×) `DummyAttrTranslate` ?
-      - (×) `convert` **obs** → `.back.verilog.convert`
-    - (∼) `visit` **brk** → `.fhdl.xfrm`
-      - (∼) `NodeVisitor` **brk**
-      - (∼) `NodeTransformer` **brk** → `.fhdl.xfrm.ValueTransformer`/`.fhdl.xfrm.StatementTransformer`
-  - (×) `genlib`
-    - (×) `cdc` ?
-      - (×) `MultiRegImpl` ?
-      - (×) `MultiReg` id
-      - (×) `PulseSynchronizer` ?
-      - (×) `BusSynchronizer` ?
-      - (×) `GrayCounter` ?
-      - (×) `GrayDecoder` ?
-      - (×) `ElasticBuffer` ?
-      - (×) `lcm` ?
-      - (×) `Gearbox` ?
-    - (×) `coding` ?
-      - (×) `Encoder` ?
-      - (×) `PriorityEncoder` ?
-      - (×) `Decoder` ?
-      - (×) `PriorityDecoder` ?
-    - (×) `divider` ?
-      - (×) `Divider`
-    - (×) `fifo` ?
-      - (×) `SyncFIFO` ?
-      - (×) `SyncFIFOBuffered` ?
-      - (×) `AsyncFIFO` ?
-      - (×) `AsyncFIFOBuffered` ?
-      - (×) `_FIFOInterface` ?
-    - (×) `fsm` **obs**
-      - (×) `AnonymousState` **obs**
-      - (×) `NextState` **obs**
-      - (×) `NextValue` **obs**
-      - (×) `_LowerNext` **obs**
-      - (×) `FSM` **obs**
-    - (×) `io` ?
-      - (×) `DifferentialInput` ?
-      - (×) `DifferentialOutput` ?
-      - (×) `CRG` ?
-      - (×) `DDRInput` ?
-      - (×) `DDROutput` ?
-    - (×) `misc` ?
-      - (×) `split` ?
-      - (×) `displacer` ?
-      - (×) `chooser` ?
-      - (×) `timeline` ?
-      - (×) `WaitTimer` ?
-      - (×) `BitSlip` ?
-    - (×) `record` ?
-      - (×) `DIR_NONE` ?
-      - (×) `DIR_S_TO_M` ?
-      - (×) `DIR_M_TO_S` ?
-      - (×) `set_layout_parameters` ?
-      - (×) `layout_len` ?
-      - (×) `layout_get` ?
-      - (×) `layout_partial` ?
-      - (×) `Record` ?
-    - (×) `resetsync` ?
-      - (×) `AsyncResetSynchronizer` ?
-    - (×) `roundrobin` ?
-      - (×) `SP_WITHDRAW` ?
-      - (×) `SP_CE` ?
-      - (×) `RoundRobin` ?
-    - (×) `sort` ?
-      - (×) `BitonicSort` ?
-  - (×) `sim` **obs** → `.back.pysim`
-    - (∼) `core` **brk**
-    - (∼) `vcd` **brk** → `vcd`
+      - (+) `wrap` → `Value.wrap`
+      - (+) `_Operator` → `Operator`
+      - (+) `Mux` → `Mux`
+      - (+) `_Slice` → `Slice`, `stop=`→`end=`, `.stop`→`.end`
+      - (+) `_Part` → `Part`
+      - (+) `Cat` id, `.l`→`.operands`
+      - (+) `Replicate` → `Repl`, `v=`→`value=`, `n=`→`count=`, `.v`→`.value`, `.n`→`.count`
+      - (+) `Constant` → `Const`, `bits_sign=`→`shape=`
+      - (+) `Signal` id, `bits_sign=`→`shape=`, `attr=`→`attrs=`, `name_override=`∼, `related=`, `variable=`∼
+      - (+) `ClockSignal` id, `cd=`→`domain=`
+      - (+) `ResetSignal` id, `cd=`→`domain=`
+      - (+) `_Statement` → `Statement`
+      - (+) `_Assign` → `Assign`, `l=`→`lhs=`, `r=`→`rhs=`
+      - (-) `_check_statement` **obs** → `Statement.wrap`
+      - (+) `If` **obs** → `.fhdl.dsl.Module.If`
+      - (+) `Case` **obs** → `.fhdl.dsl.Module.Switch`
+      - (−) `_ArrayProxy` ?
+      - (−) `Array` ?
+      - (+) `ClockDomain` → `.fhdl.cd.ClockDomain`
+      - (−) `_ClockDomainList` ?
+      - (−) `SPECIAL_INPUT`/`SPECIAL_OUTPUT`/`SPECIAL_INOUT` ?
+      - (⊙) `_Fragment` **brk** → `.fhdl.ir.Fragment`
+    - (−) `tools` **brk**
+      - (−) `list_signals` ?
+      - (−) `list_targets` ?
+      - (−) `list_inputs` ?
+      - (−) `group_by_targets` ?
+      - (⊙) `list_special_ios` **brk**
+      - (⊙) `list_clock_domains_expr` **brk**
+      - (−) `list_clock_domains` ?
+      - (−) `is_variable` ?
+      - (⊙) `generate_reset` **brk**
+      - (⊙) `insert_reset` **brk**
+      - (⊙) `insert_resets` **brk** → `.fhdl.xfrm.ResetInserter`
+      - (⊙) `lower_basics` **brk**
+      - (⊙) `lower_complex_slices` **brk**
+      - (⊙) `lower_complex_parts` **brk**
+      - (⊙) `rename_clock_domain_expr` **brk**
+      - (⊙) `rename_clock_domain` **brk** → `.fhdl.xfrm.DomainRenamer`
+      - (⊙) `call_special_classmethod` **brk**
+      - (⊙) `lower_specials` **brk**
+    - (−) `tracer` **brk**
+      - (−) `get_var_name` ?
+      - (−) `remove_underscore` ?
+      - (−) `get_obj_var_name` ?
+      - (−) `index_id` ?
+      - (−) `trace_back` ?
+    - (−) `verilog`
+      - (−) `DummyAttrTranslate` ?
+      - (−) `convert` **obs** → `.back.verilog.convert`
+    - (⊙) `visit` **brk** → `.fhdl.xfrm`
+      - (⊙) `NodeVisitor` **brk**
+      - (⊙) `NodeTransformer` **brk** → `.fhdl.xfrm.ValueTransformer`/`.fhdl.xfrm.StatementTransformer`
+  - (−) `genlib`
+    - (−) `cdc` ?
+      - (−) `MultiRegImpl` ?
+      - (+) `MultiReg` id
+      - (−) `PulseSynchronizer` ?
+      - (−) `BusSynchronizer` ?
+      - (−) `GrayCounter` ?
+      - (−) `GrayDecoder` ?
+      - (−) `ElasticBuffer` ?
+      - (−) `lcm` ?
+      - (−) `Gearbox` ?
+    - (−) `coding` ?
+      - (−) `Encoder` ?
+      - (−) `PriorityEncoder` ?
+      - (−) `Decoder` ?
+      - (−) `PriorityDecoder` ?
+    - (−) `divider` ?
+      - (−) `Divider` ?
+    - (−) `fifo` ?
+      - (−) `SyncFIFO` ?
+      - (−) `SyncFIFOBuffered` ?
+      - (−) `AsyncFIFO` ?
+      - (−) `AsyncFIFOBuffered` ?
+      - (−) `_FIFOInterface` ?
+    - (+) `fsm` **obs**
+      - (+) `AnonymousState` **obs**
+      - (+) `NextState` **obs**
+      - (+) `NextValue` **obs**
+      - (+) `_LowerNext` **obs**
+      - (+) `FSM` **obs**
+    - (−) `io` ?
+      - (−) `DifferentialInput` ?
+      - (−) `DifferentialOutput` ?
+      - (−) `CRG` ?
+      - (−) `DDRInput` ?
+      - (−) `DDROutput` ?
+    - (−) `misc` ?
+      - (−) `split` ?
+      - (−) `displacer` ?
+      - (−) `chooser` ?
+      - (−) `timeline` ?
+      - (−) `WaitTimer` ?
+      - (−) `BitSlip` ?
+    - (−) `record` ?
+      - (−) `DIR_NONE`/`DIR_S_TO_M`/`DIR_M_TO_S` ?
+      - (−) `set_layout_parameters` ?
+      - (−) `layout_len` ?
+      - (−) `layout_get` ?
+      - (−) `layout_partial` ?
+      - (−) `Record` ?
+    - (−) `resetsync` ?
+      - (−) `AsyncResetSynchronizer` ?
+    - (−) `roundrobin` ?
+      - (−) `SP_WITHDRAW`/`SP_CE` ?
+      - (−) `RoundRobin` ?
+    - (−) `sort` ?
+      - (−) `BitonicSort` ?
+  - (-) `sim` **obs** → `.back.pysim`
+    - (⊙) `core` **brk**
+    - (⊙) `vcd` **brk** → `vcd`
     Note: only items directly under `nmigen.compat.sim`, not submodules, are provided.
-    - (×) `Simulator` **brk**
-    - (×) `run_simulation` **obs** → `.back.pysim.Simulator`
-    - (×) `passive` **obs** → `.fhdl.ast.Passive`
-  - (×) `build` ?
-  - (×) `util` **obs**
-    - (×) `misc` ⇒ `.tools`
-      - (×) `flat_iteration` → `.flatten`
-      - (â\88¼) `xdir` **brk**
-      - (â\88¼) `gcd_multiple` **brk**
-    - (â\88¼) `treeviz` **brk**
+    - () `Simulator` **brk**
+    - (+) `run_simulation` **obs** → `.back.pysim.Simulator`
+    - () `passive` **obs** → `.fhdl.ast.Passive`
+  - () `build` ?
+  - (+) `util` **obs**
+    - (+) `misc` ⇒ `.tools`
+      - (+) `flat_iteration` → `.flatten`
+      - (â\8a\99) `xdir` **brk**
+      - (â\8a\99) `gcd_multiple` **brk**
+    - (â\8a\99) `treeviz` **brk**