Bug 718

Summary: PartitionedSignal __r*__ functions need review
Product: Libre-SOC's first SoC Reporter: Luke Kenneth Casson Leighton <lkcl>
Component: Source CodeAssignee: Luke Kenneth Casson Leighton <lkcl>
Status: CONFIRMED ---    
Severity: enhancement CC: libre-soc-bugs
Priority: ---    
Version: unspecified   
Hardware: Other   
OS: Linux   
NLnet milestone: NLnet.2019.02.012 total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0 parent task for budget allocation:
child tasks for budget allocation: The table of payments (in EUR) for this task; TOML format:
Bug Depends on:    
Bug Blocks: 132    

Description Luke Kenneth Casson Leighton 2021-10-02 17:21:06 BST
reverse-operator functions have completely different behaviour
for non-commutative operators when the rhs is not also a
PartitionedSignal.

the obvious one is shift:

    Signal << PartitionedSignal

is not the same as:

    PartitionedSignal << Signal

yet they both (obviously) return a PartitionedSignal.

__rsub__ is also non-commutative and needs to behave very differently.

there may be others, the full list to be evaluated and added here:

* __rsub__