Uh oh!
There was an error while loading. Please reload this page.
update FsLexYacc to 8.0.1 source (by direct copy) - #6355
Conversation
dsyme
commented
Mar 21, 2019
@KevinRansom We should consider how we keep the |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
dsyme
commented
Mar 21, 2019
This is ready. |
As soon as this merges I'll start flowing a new build/release of FCS/FSAC so that we can test the fix in editor tooling on nonwindows |
| actions |> Seq.iteri (fun i (code,pos) -> | ||
| cfprintfn os " | %d -> ( " i; | ||
| cfprintfn os "# %d \"%s\"" pos.Line pos.FileName; | ||
| cfprintfn os "// Rule %s" ident |
There was a problem hiding this comment.
This must be the change where it fixes the issue.
dsyme
commented
Mar 28, 2019
@TIHan Can we have an approve on this please? Thanks |
alfonsogarciacaro
commented
Mar 28, 2019
I tried cherry-picking e5fcd48 into the FCS fork we're using, did a clean build and copied the FSharp.Compiler.Service.dll to Fable. But I'm still getting SO exceptions when compiling big projects (FCS+Fable itself) on macOS :/ |
dsyme
commented
Mar 28, 2019
Right, but is it the same SO stack? If fewer tailcalls are being taken then that will always cause problems on bigger projects. This rooted out one specific problem, but I expect you'll see other ones. We can possibly make progress one by one, but it would be much better to have the CLR honour the tailcall attributes consistently. |
alfonsogarciacaro
commented
Mar 28, 2019
Not sure, don't know how to get the dump on macOS (I don't see the error on Windows). It happens when calling ParseAndCheckProject so I assume this is coming from FCS. On the Fable side, @ncave added a trampoline some time ago to avoid excessive recursion and it's been working so far. I've been switching the last months between mac and Windows for Fable development so I cannot recall when this started to happen. In CI, Fable only builds itself in Appveyor (Windows) so we haven't seen the issue. |
I believe this should fix bug #6346, as discussed in the comments there. It gets rid of the reliance on .NET taking all mutually-recursive tailcalls for basic lexing. It should also improve the performance of the lexer a bit.
Note this is a direct-copy update of the files in "buildtools" to match FsLexYacc 8.0.1