I've just updated Spoofax from https://github.com/metaborg/spoofax-releng/commit/f5509c142dffac64aeb7e5695f72028cda80b761 to https://github.com/metaborg/spoofax-releng/commit/9b846405aa6276f8f87b7ad8d8eb16b3195a59ca.

The Stratego editor is almost unusably slow to update. After a single whitespace change Spoofax is "Updating Spoofax editor..." for a long time.

  • on 16 LOC: 2 s
  • on 150 LOC: 43s
  • on 1100 LOC: 44s

Progress freezes at 72%.

The files i'm referring to are:
- https://github.com/metaborg/dynsem/blob/master/dynsem/trans/outline.str
- https://github.com/metaborg/dynsem/blob/master/dynsem/trans/lib-ds.str
- https://github.com/metaborg/dynsem/blob/master/dynsem/trans/backend/interpreter/lang-ast.str

A stack dump of the Eclipse process during one of these update operations is at http://pastebin.com/qjaU0PYM.

The problem seems related to parsing.

Submitted by Vlad Vergu on 13 September 2016 at 11:02

On 13 September 2016 at 12:54 Gabriël Konat commented:

This was caused by the new parse primitive not parsing Stratego files with concrete syntax extensions properly, which is fixed in https://github.com/metaborg/spoofax/commit/3b99416ed1e249703da8bd93e6669906a4d4c8e2. The first time an editor is opened it will still be slow, because the Stratego editor parses and caches all Stratego files, but after that it should be relatively fast.


On 13 September 2016 at 12:54 Gabriël Konat closed this issue.

On 13 September 2016 at 12:54 Gabriël Konat tagged stratego

On 13 September 2016 at 12:54 Gabriël Konat tagged performance

Log in to post comments