fsharp icon indicating copy to clipboard operation
fsharp copied to clipboard

Testing fslexyacc caching + update devguide

Open vzarytovskii opened this issue 2 years ago • 1 comments

Just testing the waters here, not entirely sure it's a good idea yet, maybe we should stick with some custom task to check the cache validity.

Parser and lexer outputs are cached in the repository and are regenerated automatically every time fslexyacc input files are changed (checked by fslexyacc itself).

However, they will not be regenerated if any dependent compiler libraries are changed. If you are making changes to the latter, and do not see your changes in the parser/lexer, you will need to manually regenerate the outputs. This can be done by removing src\.autogenerated\fslexyacc directory, and running build again.

Previously, it was enough to just clean your git folder (git clean -xdf of similar) or remove obj directory (or freshly clone the repo).

On my machine, this change saves roughly 20-25 seconds when building the compiler, if no changes were made to the lexer/parser.

Any thoughts about this? An alternative would be a custom task which hashes fslexyacc itself, its inputs and dependant compiler files and skips invoking fslexyacc alltogether if nothing changes, this will allow to save even more (by not invoking fslexyacc at all).

vzarytovskii avatar Apr 03 '23 13:04 vzarytovskii

:heavy_exclamation_mark: Release notes required

@vzarytovskii,

[!CAUTION] No release notes found for the changed paths (see table below).

Please make sure to add an entry with an informative description of the change as well as link to this pull request, issue and language suggestion if applicable. Release notes for this repository are based on Keep A Changelog format.

The following format is recommended for this repository:

* <Informative description>. ([PR #XXXXX](https://github.com/dotnet/fsharp/pull/XXXXX))

See examples in the files, listed in the table below or in th full documentation at https://fsharp.github.io/fsharp-compiler-docs/release-notes/About.html.

If you believe that release notes are not necessary for this PR, please add NO_RELEASE_NOTES label to the pull request.

You can open this PR in browser to add release notes: open in github.dev

Change path Release notes path Description
src/Compiler docs/release-notes/.FSharp.Compiler.Service/8.0.300.md No release notes found or release notes format is not correct

github-actions[bot] avatar Feb 24 '24 12:02 github-actions[bot]