Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib: expanding_array.concat uses expand #4766

Draft
wants to merge 34 commits into
base: main
Choose a base branch
from

Conversation

fridis
Copy link
Member

@fridis fridis commented Feb 10, 2025

Still experimental since this depends on new DFA optimizations.

fridis added 28 commits December 4, 2024 13:35
- For certain clazzes, do not create ValueSet but, in case of a set, use one
  global set for all sets.

- For cetain clazzes, do not create separate Instances depending on context, but
  create only one single instance

- Do not create ValueSets of RefValue of the same clazz, but instead create
  RefValue of ValueSet, i.e., instead of

    {boxed(v1), boxed(v2)}

  create

    boxed({v1,v2})

All these can be enabled by static fields in DFA

  static boolean ONLY_ONE_VALUE_SET = false;
  static boolean ONLY_ONE_INSTANCE  = false;
  static boolean NO_SET_OF_REFS     = false;
_universe is used only to hold fields of the universe.
First time I see HelloWorld <800ms
Many calls used to be created due to many different environments, even if
effects form those different environments were never used.

For a simle HelloWorld, this redecues the number of calls form 965 to 546. I
expect a higher reduction for larger examples.
This currently results in endless runtime of DFA due to changes to
`Sequence.concat`.
There are two possible traces at this point.
This should collapse environments that are essentially redundant for the desired call context.

One big caveat: Recursive creation and instation of effects requires special handling to avoid endless recursion .
This was so far disabled since DFA could not handle this.
@fridis fridis added enhancement New feature or request base library related to the Fuzion base library labels Feb 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
base library related to the Fuzion base library enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant