Fedor Isakov
52bca36d32
Rebuild project.
2020-04-13 17:58:33 +02:00
Fedor Isakov
6a431fcb49
Rebuild project.
2020-03-31 18:44:07 +02:00
Fedor Isakov
538632a8a3
Migrate lambdacalc sample to new expand/call macros.
2020-03-31 11:43:30 +02:00
Grigorii Kirgizov
6a53d15a21
Refactor: move logic related to tracking parent match from ControllerImpl to MatchJournal
...
Relates to machinery introduced in MPSCR-47.
Previously parent match was maintained in Controller on Java call stack.
Now this stack of parent matches is maintained manually in MatchJournal.
So MatchJournal gains new invariant: parentChunk()
returns correct parent after each logMatch() call.
Several tests fail, also need to maintain this
invariant after logActivation() calls.
2020-03-26 13:40:41 +03:00
Grigorii Kirgizov
b6aaec8870
Revert temporary workaround for MPSCR-51 from 16e39a93
2020-03-23 14:39:54 +03:00
Grigorii Kirgizov
16e39a9345
Check applicable scope for certain checking rules in BL (workaround for BL for MPSCR-51). Fix SubclassingUtil.
...
Modified TYPECHECK query to include "checkingScope" query parameter:
it is a root node for which program is generated (for local typechecking it's local node).
Rules additionally match on a constraint `checkDecls(node<>)` bearing this node,
so while rules will be generated for all scopes, only those in applicable scopes will run.
Also split rule for EnumConstantDeclaration on declration checking and just typing rule.
2020-03-17 17:54:38 +03:00
Fedor Isakov
f2bb87e1b0
Apply migration to replace deprecated concept.
2020-02-26 15:03:31 +01:00
Fedor Isakov
7ba7c983cb
Apply migration to use logical variable ref expression.
2020-02-24 22:57:05 +01:00
Fedor Isakov
e1c5f68e3e
Typechecking templates: minor refactoring, optimizing code.
...
Replace node-ptr<> type with node<> where applicable.
Use node<> type is ok in constraint arguments.
Replace instances of LateExpressionItem $() with ExpressionItem.
2020-02-20 14:52:28 +01:00
Fedor Isakov
2c43762f93
Replace all instances of .pointer in constraints to node reference.
...
SNode is supported now directly as an argument to constraint/predicate.
Pointer operation is no longer necessary, as is node-ptr<> type for logical vars.
2020-02-20 11:59:28 +01:00
Fedor Isakov
796ad9ad2c
Apply migration to drop ValueOfExpression.
2020-02-12 12:26:09 +01:00
Fedor Isakov
1a6b107a76
Apply migration to replace condition block with if statement.
2020-02-07 13:14:46 +01:00
Fedor Isakov
4a84ebce5f
Apply migration to switch to BodyBlock.
2020-02-06 12:55:32 +01:00
Fedor Isakov
c353f89ea0
Apply migration to drop ParameterContainer.
2020-02-05 17:02:32 +01:00
Fedor Isakov
3f51c1e5c1
Apply migration that replaces empty logical type with term type.
2020-02-05 12:34:20 +01:00
Fedor Isakov
391c9053b5
Apply migrations after switch to MPS 193. Regenerate project.
2020-02-03 11:24:22 +01:00
Fedor Isakov
c384785b12
Apply automatic migration.
2020-01-20 16:54:38 +01:00
Fedor Isakov
b182cf60d7
Revert "Temporarily ignore failing tests."
...
This reverts commit 7776f97fe7 .
2019-11-26 23:09:40 +01:00
Fedor Isakov
85674ef077
Add explicit "test" facets to test solutions.
2019-11-24 17:58:15 +01:00
Fedor Isakov
7776f97fe7
Temporarily ignore failing tests.
...
The tests presumably fail because of a broken contract that is used
in the typesystem implementation, namey that a logical variable
contained by an constraint argument-term (as opposed to being an
argument itself) reactivates the constraint on ground/parent change
event. This assumption is false, thereby the implementation needs
to be adjusted keep compatibility with the contract.
2019-11-24 13:34:59 +01:00
Fedor Isakov
69bc34e8f9
Drop language j.m.l.smodel.types containing SNodeTypeOp that is no longer used.
2019-11-11 14:37:41 +01:00
Fedor Isakov
ecd2594fed
Drop deprecated Reporting interface and all its usages.
...
Remove runtime solution that contained only Reporting.
2019-11-11 13:53:41 +01:00
Fedor Isakov
96f45c6e37
Drop commented out code.
2019-11-11 12:20:12 +01:00
Fedor Isakov
3f1b65ada2
Fix the structural errors introduced by a badly run migration.
2019-11-06 12:05:18 +01:00
Fedor Isakov
ad90a4cb77
Apply migration that replaces all instances of NodeAnchor with .pointer op.
2019-11-06 11:21:57 +01:00
Fedor Isakov
daa1bdceb6
Update default jvm options for running tests to "-Xmx2048m".
2019-11-05 20:53:01 +01:00
Fedor Isakov
3092fa3635
Fix all templates with broken scopes for logical variables.
2019-10-25 22:45:55 +02:00
Fedor Isakov
f8dcf127db
Extend typechecking query TYPECHECK with a parameter to report types.
...
Reporting of calculated types is to be more explicit.
The not-so-obvious _type_.set() operation is to be phased out.
2019-10-10 17:30:11 +02:00
Fedor Isakov
49518e0704
Switch to reactor version 0.9.14.
2019-09-30 16:44:36 +02:00
Grigorii Kirgizov
cdfe1f2c0c
Update language version after migrations from mps.logic lang
2019-09-11 13:24:02 +03:00
Grigorii Kirgizov
9a782fc619
Run 'list literal -> cons list constructor' migration on samples
2019-09-11 13:24:02 +03:00
Grigorii Kirgizov
39fa007310
Run Splice migration on samples
2019-09-11 13:24:02 +03:00
Grigorii Kirgizov
618524bdff
Fix Forall term in lambdacalc with recent changes
2019-09-11 13:24:01 +03:00
Fedor Isakov
5b5798dcad
Switch to reactor lib 0.9.13.
2019-09-10 18:37:11 +02:00
Fedor Isakov
5eed118be0
Replace usages of deprecated reporting with error constraint.
...
Having to specify the target for reported messages is a redundancy.
It's better to rely on the built-in feedback mechanism and handle the
messages at the supervisor level.
2019-09-02 17:55:46 +02:00
Fedor Isakov
0db213725e
fixup! Swith to using reactor lib 0.9.12.
2019-09-02 17:55:46 +02:00
Fedor Isakov
d786ff43b9
Re-save all models, language name updated in .mpl files.
2019-08-20 23:11:19 +02:00
Fedor Isakov
973b9c35d5
Rebuild project.
2019-08-14 13:29:22 +02:00
Fedor Isakov
2ef8adfe5e
Switch to reactor 0.9.11
2019-07-30 13:48:08 +02:00
Fedor Isakov
6384085b17
Rebuild project.
2019-07-30 12:24:25 +02:00
Fedor Isakov
3a48c47880
Migration: "update versions in descriptors".
2019-07-30 11:49:26 +02:00
Fedor Isakov
66c9222a95
Run migrations with MPS 2019.2 EAP3.
2019-07-26 17:27:18 +02:00
Fedor Isakov
4e4e1f68ef
Fix buildscript dependencies.
2019-07-26 17:14:48 +02:00
Fedor Isakov
79b08c6f83
Revert "Apply migrations from EAP3 and rebuild project."
...
This reverts commit 9c5bf858c3 .
2019-07-26 15:30:30 +02:00
Fedor Isakov
9c5bf858c3
Apply migrations from EAP3 and rebuild project.
2019-07-19 12:28:27 +02:00
Fedor Isakov
a0b5acaa62
Rebuild project.
2019-06-07 09:16:21 +02:00
Fedor Isakov
947f9523bd
Fix language imports.
2019-06-07 09:16:21 +02:00
Fedor Isakov
cd37daaa07
Apply migrations after switching to the latest EAP build of MPS.
2019-06-07 09:16:21 +02:00
Fedor Isakov
17ed4642ae
Apply all available automatic migrations.
2019-06-05 16:16:00 +02:00
Fedor Isakov
57de11c3fe
Rename all modules/models having prefix j.m.typechecking to j.m.coderules.typechecking. The former is reserved.
2019-06-05 16:15:59 +02:00
Fedor Isakov
fe505792c6
A bunch of refactorings and renames in typechecking plugin.
...
Remove unused interfaces, merge classes with similar functionality, reduce the number of used classes.
2019-06-05 16:14:27 +02:00
Fedor Isakov
d0ffcb66ef
Regenerated project.
2019-06-05 16:14:27 +02:00
Fedor Isakov
3e1c9d6e89
Rebuild project.
2019-06-04 18:59:53 +02:00
Fedor Isakov
bd1c56d9d0
Rename concept Handler -> RulesList
2019-05-09 17:30:14 +02:00
Fedor Isakov
ed6f7a07c2
Remove instances of obsolete concept containingLink, replace with link.
2019-04-24 22:14:24 +02:00
Fedor Isakov
99ea2a7b71
Switch to the latest revision of reactor lib (0.9.9).
2019-04-24 21:21:03 +02:00
Fedor Isakov
55940d2e16
Remove Kotlin libs from reactor module and from distrib. Rebuild project.
...
Kotlin runtime is available from the platform.
2019-04-11 11:10:00 +02:00
Fedor Isakov
ab006cc8d9
Fix missing dependency.
2019-04-10 09:45:47 +02:00
Fedor Isakov
ca0524599d
Switch to latest 2019.1 EAP and rebuild.
2019-04-09 16:51:31 +02:00
Fedor Isakov
396b1fdad3
Move all classes from j.m.typechecking to j.m.typechecking.service. This package name is reserved.
2019-03-22 11:40:32 +01:00
Fedor Isakov
f6374635bb
Rebuild project.
2019-03-22 11:10:08 +01:00
Fedor Isakov
671194c9c3
Switch to the latest EAP of MPS 2019.1. Re-save all models.
2019-03-22 11:09:39 +01:00
Fedor Isakov
255b7061f7
Reorganize models/packages, restructure code components responsible for program building/evaluation.
2019-02-15 17:15:17 +01:00
Fedor Isakov
83e5ce8c26
Switch to the latest conreactor version.
2019-02-15 17:15:16 +01:00
grigorii.kirgizov
e87c9654c1
lc: minor: Fix missed condition in guard on merging type constraints rule. Could have possibly led to bug in somewhere.
2019-02-06 16:00:31 +03:00
Fedor Isakov
0fcff76308
Re-save all models updated resolve info.
2019-02-06 13:22:32 +01:00
Fedor Isakov
b42d7553c8
Temporarily comment out an instance of let clause that produces different result in local inference.
2019-02-06 12:59:38 +01:00
Fedor Isakov
aa1a29a318
Make all tests in lambdacalc subproject pass including local inference.
2019-02-06 12:58:46 +01:00
grigorii.kirgizov
0cd29c5729
lc: Add type inference dependencies ('require' things) to output the same types for local type inf. Some renames.
...
Types from local & non-local type inf differ in 2 cases:
- different type variables names
- non-local typecheck fails, but some types still get to output
2019-02-05 13:03:51 +03:00
Fedor Isakov
fd94f0a249
Straghten up build tasks: assemble to be the default task. Remove superfluous configure_gradle script, use -P switches instead.
2019-02-04 11:32:13 +01:00
Fedor Isakov
0fb0771ad7
Ensure parent of varRef is included into typechecking. This fixes some locally inferred types mismatch.
2019-02-02 16:11:38 +01:00
Fedor Isakov
6e85a2c4fa
Use custom matching strategy in lambdacalc tests.
2019-02-02 16:10:35 +01:00
Fedor Isakov
ebada478c6
Replace error annotation with suppress error annotation to indicate an expected constraint violation.
2019-02-01 14:17:57 +01:00
Fedor Isakov
e0b856634c
Add java plugin to all gradle scripts.
2019-02-01 14:15:57 +01:00
Fedor Isakov
38777cda51
Ensure failed test means failed build for all sample projects.
2019-02-01 14:15:04 +01:00
Fedor Isakov
ebd4f82514
Specify the value for ${project_home} macrii in sample subprojects. Fix tests being ignored in CI.
2019-02-01 12:08:29 +01:00
Fedor Isakov
080bb0a448
Fix gradle scripts to get rid of deprecated stuff. Default task to build everything without testing. Update INSTALL.txt.
2019-02-01 00:40:59 +01:00
Fedor Isakov
81ee94c342
Fix gradle scripts to ensure model checker is run after everything else has heen built.
2019-01-31 17:39:39 +01:00
Fedor Isakov
a40e50bc53
Temprorarily suppress errors in two locations due to constraints violation (to be fixed).
2019-01-31 12:05:35 +01:00
Fedor Isakov
767444a5c0
Make LetClause able to suppress errors in its children.
2019-01-31 12:05:35 +01:00
Fedor Isakov
012b8963cb
Fix errors found by model checker in lambdacalc sample.
2019-01-31 12:05:21 +01:00
grigorii.kirgizov
8d7bdcf173
lc: minor: Remove unneeded checkConstraints in subsumption
...
This case is anyhow handled by typeConstraints_discharge rule, when subsumes_leaves fires up,
even before those removed checks repeat this work.
2019-01-28 17:02:55 +03:00
grigorii.kirgizov
172f74b6f8
lc: minor: Add some comments. Some cleanup.
2019-01-28 16:59:05 +03:00
grigorii.kirgizov
a2012219b7
lc: Fix spurious typeConstraints reactivation on forall gen. Fix recursive case in instanceCheck.
...
As a consequence, there's a simplification of produceTypeConstraints rules.
Also add comments and fix some test cases: some of them are actually typeable.
Now tests are correct (checked against Haskell's typechecker) and all pass.
2019-01-28 13:32:32 +03:00
grigorii.kirgizov
0a5a7ec3c6
lc: minor: in 'typeclasses' restructure rule for Typeclass, add few comments, add Doc for failing type output (TypeclassesTest)
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
41e8d3d96e
lc: Fix forgotten typeOf rule for 'fix' operator. Add typeclasses tests to test suite.
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
2a44bb0ef0
lc: Fix absence of type output in some cases -- match in `produceTypeConstraints` rule in a different way
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
d364dc24e4
lc: add type output (with a workaround) for Constraints in 'recover'
...
Workaround: ConstraintRepr SNode is added specifically for outputting types.
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
4044b7f5e8
lc: Split typeConstraints constraint to two, according to its 2 types of usages: as typevar def and as actual Constraints
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
ecc6c4aed2
lc: Add Constraint check for unified terms. Few fixes for typeclasses. Add typecheck deps for typeclasses. Some tests.
...
Some Constraints checks are not covered by 'subsumed', so, need top rule for discharging those.
Fix Constraint set production in 'types', use new set for each type var. Fix 'instance' constraint.
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
20c9e0aae8
lc: add initial version of Constraints check rules, part of subsumption. Add partial recover rules. Other minor changes.
...
Also a fix to typeOf_PrototypeImpl rule, and a fix to instTypeVars: needed to copy Constraint sets.
2019-01-28 11:38:33 +03:00
Fedor Isakov
37b6afa642
Enable back working tests in lambdacalc
2019-01-26 14:15:30 +01:00
Fedor Isakov
f3c2f53fa6
Temporarily disable failing tests in lambdacalc sample
2019-01-25 15:02:26 +01:00
grigorii.kirgizov
5d5a102661
lc: minor: move Cons-list utils to its own handler
2019-01-16 18:19:11 +03:00
grigorii.kirgizov
87cdde5309
lc: 2 fixes for previous commit: walkaround in rules with 'deep' pattern-matching in heads; produce empty typeConstraints on user annos (in types)
2019-01-16 18:16:11 +03:00
grigorii.kirgizov
06623693bf
lc: add rules for Proto & ProtoImpl; modify inst and gen for Constraints in forall; move typeConstraints rule
...
Rule for PrototypeImpl is the heaviest.
Also, it seems that constraint field in Forall DataForm isn't needed.
2019-01-16 17:48:34 +03:00
grigorii.kirgizov
bd8e0ab00c
lc: add handling of Typeclass and Instance clauses, add macro for Constraint collection, add Set for this
2019-01-16 13:27:56 +03:00
grigorii.kirgizov
b0e5edb03a
lc: remove getType rule and translate type annotations to dataforms in macro; also minor changes
2019-01-16 11:48:09 +03:00
grigorii.kirgizov
94659549bc
lc: fix failing test: fix usages of eq rule in subsumption
2019-01-16 11:14:41 +03:00
Fedor Isakov
7f7f290b01
Temporarily comment out two instances of let clause that produced errors in tests
2019-01-13 17:53:06 +01:00
Fedor Isakov
dce532c5c7
Apply automatic migrations in lambdalc project
2019-01-13 17:53:01 +01:00
grigorii.kirgizov
ce34b598c2
lc: minor: add simple Typeclass examples (it's only structure/editor/scopes example); add one test case to DemoScopes
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
c8233c24d7
lc: move to fully nameless representation of type vars; assign names only in recover
...
It is also a necessary step to bidirectional typechecking and can simplify things in other places
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
eb80329a54
lc: change recover_varRef rule, propagate to recover_Var rule instead of duplicating it
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
fb4fe40973
lc: typeclasses: added structure, editor, constraints (mainly concerned with scoping) aspects
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
cf855fc19b
lc: add test case for correct handling of instantiation scopes in forall. fails now.
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
2cc804079a
lc: add test case in DemoScopes for isomorphism between similar forall type
...
It checks that subsumtion relation is actually a richer 'dsk' relation
from Peyton Jones et al. 2007
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
61e282da6c
lc: minor: remove few commented lines, add few comments; add space between typevars in ForallType editor
2019-01-11 19:09:44 +03:00
Fedor Isakov
134fbb5cdb
Add missing dependency to lambdacalc test model
2019-01-09 14:48:21 +01:00
grigorii.kirgizov
4eab15c0a3
lc: add DemoScopes test case, fix one test example; reverse displayed order of user-supplied type annotations
2019-01-09 12:49:34 +03:00
grigorii.kirgizov
583358dc25
lc: modify name assignment to variables in 'forall'
2019-01-09 11:54:27 +03:00
grigorii.kirgizov
9180f16c25
lc: minor: uncomment typeOf_AnnVarRef rule (not fully tested yet), add dummy test rule
2019-01-09 11:18:20 +03:00
grigorii.kirgizov
8da1f51434
lc: move some examples, add error annotations in DemoScopes and test case for annotations
2019-01-09 11:18:20 +03:00
grigorii.kirgizov
1de24dd83c
lc: minor: editor enhancements
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
47130f794d
lc: add proper type var scopes for AnnExpr
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
b727b375ba
lc: disallow nested annotations on variables definitions
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
c407e29ec4
lc: some refactorings nothing special
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
682ed5b90b
lc: refine subsumption rel; add examples in DemoScope; editor enhancements (amend commit)
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
24ce9e73aa
lc: refine subsumption rel; add examples in DemoScope; editor enhancements
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
7f02d10b62
Add expr annotations; add examples
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
440fcf868a
Intermediate commit: add VarType DF with editor; partial work on subsumed relation
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
2fa00cac72
Minor: move annotation rules to its own handler
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
06baa99da8
Add Var term; use it instead of free var-s in forall for subst.
...
Still not finished: can't pass Var name (see forall, freeTypeVars_isFree).
Also add subsumption relation for annotations.
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
58a518af4f
Partially working forall quantified types
...
Substitution (i.e. forall instantiation) doesn't work in this version.
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
084c4581f0
Bounded type vars: add free type var collection (in typeOf), gen, inst, list utils
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
1be19ffe1e
lc: add pair (without accessors) and its typing to lambda calculus (lc)
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
4ed48e2560
add unquantified type annotations to lambda calculus
2019-01-09 11:17:42 +03:00
Fedor Isakov
cc4b335286
Introduce checking for instances of RuntimeErrorType during tests. Refactor test typechecking launcher.
2019-01-04 17:47:44 +01:00
Fedor Isakov
b4693aac3c
Switch to the new conreactor version.
2018-12-28 11:57:27 +01:00
grigorii.kirgizov
54af10dad0
add unquantified type annotations to lambda calculus
2018-12-05 16:38:32 +01:00
Fedor Isakov
debaa390e2
Tests of BL typechecking features. Primitive types.
2018-12-03 16:59:16 +01:00
Fedor Isakov
2205639acf
Add tests to build script for lambdacalc
2018-11-29 13:23:48 +01:00
Fedor Isakov
a1bd3024a5
Tests for lambdacalc sample. Annotate places where errors are expected.
2018-11-29 12:51:33 +01:00
Fedor Isakov
39f7ff6838
Ensure local type inference works in lambdacalc sample. Ensure type variable numbers are unique withing top Clause instance.
2018-11-29 12:16:38 +01:00
Fedor Isakov
f0bb068750
Fix instances of removed concepts and broken API calls after migration to 2018.3. Rebuild project.
2018-11-28 16:48:59 +01:00
Fedor Isakov
19ce84f7ef
Switch to 2018.3 RC. Apply all migrations.
2018-11-28 16:48:59 +01:00
Fedor Isakov
06f95c5870
Update build solution to reflect latest changes.
2018-11-04 13:10:40 +01:00
Fedor Isakov
0819ef0a40
Add a reference to the article on typechecking STLC to readme
2018-08-19 17:32:59 +02:00
Fedor Isakov
8cacd9c326
Ensure terms are copied "properly" without breaking Path's contract. Pending optimization.
2018-08-07 11:50:05 +02:00
Fedor Isakov
98dfe30756
Resaved all models
2018-08-03 11:48:36 +02:00
Fedor Isakov
d26805db7d
Switch to the latest version of reactor lib 0.9.1
2018-08-03 11:48:36 +02:00
Fedor Isakov
e2a68b4012
Fixes necessary for compatibility with MPS 2018.2
2018-07-22 16:51:10 +02:00
Fedor Isakov
a240f129c2
Name solutions and models consistently in samples (lambdacalc)
2018-07-22 11:26:12 +02:00
Fedor Isakov
0bacffb611
Move type setting operation to typechecking lang.
2018-07-22 11:09:49 +02:00
Fedor Isakov
689ae4776c
Give more sensible name to a sample demo solution and model.
2018-07-21 13:49:21 +02:00
Fedor Isakov
c7cc97fffb
Rename reporting runtim solution.
2018-07-21 13:29:40 +02:00
Fedor Isakov
ea9919f38a
Bring the hierarchy of DataForm concepts in line with the runtime.
...
Merge DataForm constructors into logic language.
Repackaging logic runtime.
Drop obsolete code.
2018-07-21 13:29:22 +02:00
Fedor Isakov
814baf4bce
Update readme files.
2018-07-19 15:12:34 +02:00
Fedor Isakov
e29a0576e2
Rename the root project and artifacts to "coderules".
2018-07-18 15:54:52 +02:00
Fedor Isakov
0d4d61d5f9
Change the sample project name to lambdacalc.
2018-07-18 15:54:50 +02:00