Fedor Isakov
b7f4d227a4
Rebuild project
2021-02-04 09:16:10 +01:00
Fedor Isakov
676645fad2
Refactor DataForm presentation mechanism, drop unused code
...
Rewrite most of DataFormPrinter for simplicity.
Reformat presentation of terms, so that the specification comes at the beginning.
2021-02-04 09:16:10 +01:00
Fedor Isakov
e06916b184
Refactor TypecheckingService: move logic into Request
...
Straighten up the code organization by consolidating logic
implementing a request within the corresponding Request
instance.
2021-02-04 09:16:09 +01:00
Fedor Isakov
ecf7eec55a
SModel types: fix type of isSubtypeExpression
2021-02-04 08:51:00 +01:00
Fedor Isakov
2f0f2e5b13
BL types: support coerce to target type query kind
2021-02-04 08:51:00 +01:00
Fedor Isakov
0e50b0e1b4
Support coerce query to specified (pattern) type
...
Coerce with pattern expects resulting type to be matched with a node
specified in the pattern.
2021-02-04 08:51:00 +01:00
Fedor Isakov
4d1cdacfe2
BL types: avoid failure on typechecking BaseMethodCall
...
BaseMethodCall doesn't always have an enclosing classifier.
2021-02-04 08:51:00 +01:00
Fedor Isakov
be156a5d31
Throw NPE in case an argument or symbol is null in term
2021-02-04 08:51:00 +01:00
Fedor Isakov
ad269bb6b5
Ensure typechecking state is properly disposed of on reload
2021-02-04 08:51:00 +01:00
Grigorii Kirgizov
7c0f8682ed
Add site docs for incremental algorithm
2021-01-29 16:22:08 +03:00
Grigorii Kirgizov
b1d81ef683
Fix apparent type in DataFormPrinter test
2021-01-29 16:21:57 +03:00
Grigorii Kirgizov
40a93d5ba9
Temporarily disable one failing test in IncrClassHierarchy; Preamble tests
...
Preamble tests should be reviewed. It's also unclear
whether preamble feature is effective and needed at all.
2021-01-29 16:21:57 +03:00
Grigorii Kirgizov
aaa6e5e2f9
Refactoring: simplify RewindStage & related logic (MPSCR-21). Add docs, some renames.
...
ProcessingSession -> SessionManager
RewindVolatileOccurrencesStage -> RewindStage
2021-01-29 13:39:35 +03:00
Grigorii Kirgizov
64762bf100
Fix bl tests (several test were failing after some of changes)
2021-01-29 13:39:35 +03:00
Grigorii Kirgizov
4dac9e794a
Fix assignment of 'null' ret type in closures with insufficient infer info. Add require.
2021-01-29 13:39:35 +03:00
Grigorii Kirgizov
148223a842
Add incremental tests for lambda calc. Enable ignored tests for closures.
2021-01-29 13:39:35 +03:00
Grigorii Kirgizov
d1b5c5b477
minor fix in tests: propely hack finding needed aspect clique. allow custom type matchers (for lc)
2021-01-29 13:39:35 +03:00
Grigorii Kirgizov
ccecb50fc2
Fix handling of invalidated feedback for effects of Rewind Stage to be visible (MPSCR-67, MPSCR-21)
2021-01-29 13:39:35 +03:00
Grigorii Kirgizov
2504b354f0
Implement fallback from incremental to default processing on unhandled cases (MPSCR-67)
2021-01-29 13:39:31 +03:00
Grigorii Kirgizov
98ee9f4da2
Add new incr stage for rewinding logical unification (MPSCR-67 & MPSCR-21)
...
For this several notions are introduced.
Logical variable is called "principal" if it is used in principal
occurrences and at some point during evaluation is unified or bound.
Principal occurrence is called "volatile" if it uses principal logicals.
PrincipalObserverDispatcher's task is to track volatile occurrences
by enabling uni observers on all free logicals in principal occ-s.
RewindVolatileOccurrencesStage then on events of incremental usage
of volatile occurrences (e.g. match on it, or continued activation)
resets journal cursor to the position of initial occurrence activation,
where it can be re-evaluated with fresh, unaffected, logicals.
It's the only stage that goes backwards in journal.
So in this way unification is incrementally cancelled.
link to MPSCR-62 (docs)
2021-01-29 13:39:31 +03:00
Grigorii Kirgizov
eb1e646cd4
Minor refactoring: move OccurrenceContractObserver from ConstraintsProcessing into ProcessingStrategy
...
Rename NonIncrementalProcessing -> DefaultProcessing
Add GroundProcessing as common superclass to handle OccurrenceContractObserver
Add another test for this occurrence contract logic.
2021-01-29 13:39:31 +03:00
Grigorii Kirgizov
273d4dc4db
Change a bit behavior of MatchJournal.reset* methods
...
Now after MatchJournal.reset(pos) cursor points before
the `pos`, not at it. So cursor.next will return 'pos'
It's required for MPSCR-67
2021-01-29 13:39:31 +03:00
Fedor Isakov
2b46ab0413
BL types: ensure any type converts to Type
2021-01-23 16:59:46 +01:00
Fedor Isakov
240fed8f63
Drop Finders feature: unused
2021-01-23 16:59:46 +01:00
Fedor Isakov
c450462fa5
Drop "final" flag on term feature: unused
2021-01-23 16:59:45 +01:00
Fedor Isakov
2ab8d41b0c
Minor refactoring: move term specication to the end of feature list
...
It's only natural to have the specification to come after
all upper-level features have been specified in a term.
2021-01-23 16:59:45 +01:00
Fedor Isakov
536e1aa1c2
Introduce helper methods to factor out creation of terms
2021-01-23 16:59:45 +01:00
Fedor Isakov
b3c57465fc
Minor refactoring: extract constants for building terms
2021-01-23 16:59:45 +01:00
Fedor Isakov
52725b4826
Minor refactoring in TermNode: simplify API
2021-01-23 16:59:43 +01:00
Fedor Isakov
4991536db1
Fix diff view showing insertion wrongly, dont assume vertical layout
2021-01-23 16:59:42 +01:00
Fedor Isakov
2b6de60ebc
BL types: Drop runtimeType term and its usages
2021-01-23 16:59:42 +01:00
Fedor Isakov
2c3bcf04ea
Auto-updated files
2021-01-18 10:59:03 +01:00
Fedor Isakov
13627568df
Ensure input is processed for fresh cache by setting invalidated to false
2021-01-18 10:59:03 +01:00
Fedor Isakov
acc9477512
Drop invalidated flag from cache (unused)
2021-01-18 10:59:02 +01:00
Fedor Isakov
dc7a06c685
Ensure typechecking queries get appropriately disposed of for editor session
2021-01-18 10:59:00 +01:00
Fedor Isakov
4be723c09e
Introduce programEvaluated flag to strategy, only display traces for real programs
2021-01-18 10:59:00 +01:00
Fedor Isakov
89ae2d2003
Use UpdatesRecorder to control whether to apply templates
...
Invalidated and introduced nodes are collected by UpdatesRecorder.
If either set is not empty, a walk of the input is triggered.
Also, drop invalidated flag in RulesPlanHandler.
2021-01-18 10:58:58 +01:00
Fedor Isakov
3a5c5dcec4
Avoid keeping cached data by aspect+query kind
...
This optimization doesn't have any tangible effect.
2021-01-13 17:32:23 +01:00
Fedor Isakov
397e1efc0c
Fix dropped rules erroneously marked as validated
2021-01-13 17:32:21 +01:00
Fedor Isakov
c9f2a34b53
Ensure shared state for basic queries, fix performance of model checker
2021-01-12 22:55:42 +01:00
Fedor Isakov
baae5c5bf0
Several interconnected changes to optimize performance in incremental mode
...
Introduce invalidated flag to program producer to control whether to
only process invalidated nodes in incremental mode.
Update validated flag in RulesPlanHandler to reflect the finalized
state, after the plan has been built.
Refactor ProgramProducer/Factory to avoid enumerating the source
root in case no changes have been detected (in incremental mode).
Avoid relaunching program in case the producer did nothing.
2021-01-12 22:55:42 +01:00
Fedor Isakov
d88acbe0f4
Introduce trivial result state
2021-01-12 22:55:40 +01:00
Fedor Isakov
93cbb90fec
Avoid aborting execution of helpers in case of error
...
BlockingExecutor must not block other helpers from being executed
if a error is detected by one of them.
Since helpers are built in unpredictable order, there can be situations
when an (unrelated) error causes intermittent failures.
2021-01-12 22:55:40 +01:00
Fedor Isakov
1389f9429f
Rebuild project
2021-01-08 11:00:02 +01:00
Fedor Isakov
62e8e7d013
Switch to MPS 2020.3 release.
2021-01-08 11:00:02 +01:00
Fedor Isakov
a7ae376cd5
Use latest build from 2020.3 for build
2021-01-08 11:00:02 +01:00
Fedor Isakov
bdb50793ee
Add product-workspace.xml to .gitignore
2021-01-08 11:00:02 +01:00
Fedor Isakov
603787ab2b
Fix test that expects same type to be returned from cache, no longer true
2021-01-07 17:04:27 +01:00
Fedor Isakov
abb76e68b5
Refactor changes tracking in UpdatesRecorder, use model instead of a ref
...
Using a model reference require resolving via a repository, which
is unnecessary in case model objects are stored directly.
2021-01-07 13:31:37 +01:00
Fedor Isakov
77b02a4e0e
Drop tracking unit cache, rely on UpdatesRecorder to provide incrementality
...
The idea to use "tracking" cache to save on typechecking operations is obsolete.
There is conflict of responsibilities with UpdatesRecorder,
which is to be solely relied upon for all things related to tracking changes.
2021-01-07 13:31:37 +01:00