Skip to content

Remove SN GADT in favour of inlinable functions - #348

Merged
turion merged 7 commits into
masterfrom
dev_sn_functions
Nov 29, 2024
Merged

Remove SN GADT in favour of inlinable functions#348
turion merged 7 commits into
masterfrom
dev_sn_functions

Conversation

@turion

@turion turion commented Aug 13, 2024

Copy link
Copy Markdown
Owner

@AndrasKovacs suggested a great performance improvement that would allow more inlining. Instead of a recursive SN type that is erased at runtime, I can "functionalize" signal networks by encoding them directly in their semantic domain. Together with #323, this results in massive speedups.

@turion turion mentioned this pull request Aug 13, 2024
5 tasks
@turion

turion commented Aug 13, 2024

Copy link
Copy Markdown
Owner Author

In fact #323 isn't even needed for some of the speedups, it turns out. The simple rhine sum benchmark shows a >200x speedup with this change.

Comment thread rhine/src/FRP/Rhine/Reactimation/ClockErasure.hs Outdated
Comment thread rhine/src/FRP/Rhine/Reactimation/ClockErasure.hs Outdated
Comment thread rhine/src/FRP/Rhine/Reactimation/ClockErasure.hs Outdated
Comment thread rhine/src/FRP/Rhine/SN/Combinators.hs
@turion
turion enabled auto-merge November 29, 2024 14:58
@turion
turion merged commit 09969fe into master Nov 29, 2024
@turion
turion deleted the dev_sn_functions branch November 29, 2024 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant