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

v4.8.0+ fails to compile Feliz.MaterialUI or/and Feliz.MuiX.DatePickers #3752

Open
ArtemyB opened this issue Feb 11, 2024 · 4 comments
Open

Comments

@ArtemyB
Copy link

ArtemyB commented Feb 11, 2024

Description

When compiling a project that references Feliz.MaterialUI, Fable throws a very bloated error. Fable versions <4.8.0 compile everything fine.

Repro code

So far, I've seen the error only when I tried to compile a project that references Feliz.MaterialUI or Feliz.MuiX.DatePickers. As a ready example, the docs project in the Feliz.MaterialUI repo could be used. The steps to run it, via console, with the repo root as a working directory:

  1. dotnet restore
  2. cd ./docs-app/
  3. pnpm install
  4. pnpm start

Then, somewhere during Feliz.MaterialUI or Feliz.MuiX.DatePickers compilation, a kind of looping error will occur and clog the output. Here is a gist to the full output.

Expected and actual results

Just compile a project as it happens with Fable <=4.7.0.

Related information

  • Fable version: >= 4.8.0
  • Operating system: Windows 10 22H2
@ArtemyB
Copy link
Author

ArtemyB commented Feb 14, 2024

I suppose the issue relates to the FCS update made in v4.8.0. Although I don't know what could provoke the error. I've checked Feliz.MaterialUI projects for the omission of the member keyword in static member definitions, and so for haven't found any.

ArtemyB added a commit to ArtemyB/Feliz.MaterialUI that referenced this issue Aug 14, 2024
… FCS bug

Resolves (as a workaround) the following Fable issue: fable-compiler/Fable#3752
The solution is to make all the big modules (with a lot of bindings) recursive (i.e., mark them with `rec` modifier). The workaround is taken from the originating F# issue: dotnet/fsharp#17415

Update Fable .NET tool version to `4.19.3`.

Bump package versions:
- Feliz.MaterialUI to v5.11.0-beta.4
- Feliz.MaterialUI.Icons to v5.10.0-beta.3
- Feliz.MuiX.DatePickers to v5.0.0-beta.3
- Feliz.MuiX.DatePickersPro to v5.0.0-beta.3

closes #7
@ArtemyB
Copy link
Author

ArtemyB commented Aug 14, 2024

Seems like the origin of the problem is in that F# issue: dotnet/fsharp#17415. For now, in case of Feliz.MaterialUI packages, worked around the problem by making all the big modules (with a lot of definitions) recursive, as proposed in the mentioned issue description. But in general, for other similar cases, the issue remains unsolved as long as the originating F# issue exists.

@MangelMaxime
Copy link
Member

Thanks for the information.

We will need to wait for F# team to fix the issue before we can include it in Fable. Hopefully, it will be done for F# 9

@ArtemyB
Copy link
Author

ArtemyB commented Aug 14, 2024

Not a problem, it's already a great relief to know an actual reason and have such a simple workaround available 🙌 It was quite a luck to stumble upon the F# issue, basically a random coincidence

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

No branches or pull requests

2 participants