Fedor Isakov
efd19aa45b
Implement incremental generation of coderules program.
...
Introduce SessionData, allow to keep arbitrary data with the session.
Extend RulesListTable with support for invalidation based on rule unique tags.
Introduce UpdatesRecorder to keep track of invalidated nodes.
Extend ApplyTemplatesStep with invalidate logic for typechecking.
Simplify design, drop unnecessary fields, minor refactorings.
2020-01-02 17:20:13 +01:00
Fedor Isakov
dbc5154491
Reload and re-generate build scripts.
2019-11-11 15:28:23 +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
daa1bdceb6
Update default jvm options for running tests to "-Xmx2048m".
2019-11-05 20:53:01 +01:00
Fedor Isakov
bb8fffc7ea
Enable to use origin{} block to specify no origin.
...
Rules that are used only as auxiliary resolvers don't have an associated
origin node, even though they are produced from a specific location.
To enable tracking of correct origin to report errors to one can use
origin(no origin){} to override the default behaviour.
2019-11-05 18:46:02 +01:00
Fedor Isakov
3fb8df4af4
Fix CheckProjectModules test. Drop usages of deprecated API.
2019-10-19 11:03:30 +02:00
Fedor Isakov
6c63cb409f
Introduce Config component. Make typechecker pref page nicer. Consolidate all typechecking options.
...
A reusable Config app component to be responsible for all level of configurations: default/system/user/ui.
Swith to Config interface instead of map<string,Object> for options.
Add an UI option to control whether trace is enabled.
2019-10-18 11:58:51 +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
Fedor Isakov
5b5798dcad
Switch to reactor lib 0.9.13.
2019-09-10 18:37:11 +02:00
Fedor Isakov
5478b2e070
Rebuild project.
2019-09-06 11:16:07 +02:00
Fedor Isakov
8b82d7ba4d
Introduce origin block for specifying the constraint rule origin.
2019-09-02 17:55:46 +02:00
Fedor Isakov
17cb4654cf
Introduce message handler parameter to rule application session.
...
In some situations it is unreasonable to fail on missing templates,
it's better to produce a working but perhaps incomplete program
than not to produce anything.
2019-08-26 16:53:04 +02:00
Fedor Isakov
de2bea67bb
Rebuild project.
2019-08-22 15:31:04 +02:00
Grigorii Kirgizov
af2faeb077
Remove dependencies on samples.baseLanguageExt and samples.lambdacalc from tests, fix build. Rebase onto master.
2019-08-22 15:16:18 +02:00
Grigorii Kirgizov
98356f25cc
rebase on master. remove extra deps in coderules generator
2019-08-22 15:16:17 +02:00
Grigorii Kirgizov
906f919e16
Run coderules program analyses at generation stage. Extend Rule with basetag(). Adjust how rule_tag is generated for reuse in generator.
...
basetag() returns name of ConstraintRule without node id.
Check on whether Rule is principal are now done through basetag(), it's sufficient.
Add part of future analysis: CallerTableBuilder.
2019-08-22 15:16:17 +02:00
Fedor Isakov
028683f394
Introduce combinable effects, refactor Step hierarchy to produce effects.
...
Step subclasses are meant to be immutable and stateless.
The state is now encapsulated in Effect subclasses, which can be combined.
Correspondingly, schedule now produces streams of effects.
2019-08-21 11:44:26 +02:00
Fedor Isakov
aef7e4c2ee
Extract the non-UI part of trace view to j.m.coderules solution.
2019-08-20 23:11:19 +02:00
Fedor Isakov
9178e8c913
Coderules-specific MessageViewTool and MessageLog for providing feedback.
...
Certain compromises have to be made: for one, it is assumed there is only one
project open and it is a MPSProject. Feedback is only reported to the messages
view and the view itself is not yet integrated into the main messages view.
2019-08-20 23:11:19 +02:00
Fedor Isakov
973b9c35d5
Rebuild project.
2019-08-14 13:29:22 +02:00
Fedor Isakov
45ae7a6a24
Fix build script imports and rebuild project.
2019-08-12 18:21:38 +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
4e4e1f68ef
Fix buildscript dependencies.
2019-07-26 17:14:48 +02:00
Grigorii Kirgizov
b560bbbd30
Separate incremental tests on testlang and baselang into their own models.
2019-07-26 17:00:30 +02:00
Grigorii Kirgizov
9a22149a5c
Add some debugging info for incremental lang typecheck tests
2019-07-26 17:00:30 +02:00
Grigorii Kirgizov
ce9b91c4a5
Add basic tests for simple program analysis, add test helpers.
2019-07-26 17:00:30 +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
0615c69143
Switch to using MPS 192 EAP2
2019-06-25 11:20:45 +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
478b43ce16
Drop usages of deprecated interfaces.
2019-04-26 00:22:02 +02:00
Fedor Isakov
e1862a4a40
Regenerate build.xml
2019-04-24 21:34:18 +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
ca0524599d
Switch to latest 2019.1 EAP and rebuild.
2019-04-09 16:51:31 +02:00
Fedor Isakov
f6374635bb
Rebuild project.
2019-03-22 11:10:08 +01:00
Fedor Isakov
83e5ce8c26
Switch to the latest conreactor version.
2019-02-15 17:15:16 +01:00
Fedor Isakov
49a381936d
Enable to specify custom matching strategy when asserting that locally inferred types are the same.
2019-02-02 16:09:39 +01:00
Fedor Isakov
dc1965fdc9
Introduce a test for running model checker on all models in the project as a part of CI.
2019-01-31 11:30:02 +01: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
Fedor Isakov
82b409cb86
Fix SubstituteUtil to match pattern using equals() instead of unification. Tests for SubstituteUtil.
2018-12-14 13:35:36 +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
6778fab625
Use index to filter nodes on which FailureHandler should report error and clear failed state.
2018-11-20 22:39:30 +01:00
Fedor Isakov
3aeb5a8863
Fix unnecessary dependencies of coderules generator module.
...
Add missing annotation language to plugin bundle.
2018-11-05 14:49:59 +01:00
Fedor Isakov
06f95c5870
Update build solution to reflect latest changes.
2018-11-04 13:10:40 +01:00
Fedor Isakov
075b34e24d
Replacing usages of deprecated concepts. Minor fixes.
2018-09-11 17:01:45 +02:00
Fedor Isakov
6287a1147e
Fix missing imports
2018-09-11 12:20:50 +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
0bacffb611
Move type setting operation to typechecking lang.
2018-07-22 11:09:49 +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
e29a0576e2
Rename the root project and artifacts to "coderules".
2018-07-18 15:54:52 +02:00
Fedor Isakov
77b578d30c
Add a dependency on workflow.preset to in order to fix command-line build. Rename ant targets when importing to clearly separate tasks.
...
https://youtrack.jetbrains.com/issue/MPS-25921
2018-07-17 15:09:47 +02:00
Fedor Isakov
c12bf0d96a
Ensure extracted baseLanguageExt stuff can be built from command line.
2018-07-17 15:09:47 +02:00
Fedor Isakov
8528876d2a
Include build module into deployed set.
2018-07-16 19:05:17 +02:00
Fedor Isakov
473644e389
Extract baseLanguageExt and its related tests to a separate project.
2018-07-16 18:56:36 +02:00
Fedor Isakov
4f063cd261
Update test language for typechecking. Re-implement all typechecking tests using test language. Drop dependency on baseLanguageExt and samples.
2018-07-16 16:39:13 +02:00
Fedor Isakov
d2de6eea33
Return baseLanguagExt as dependency of test modules in order to fix tests.
2018-07-14 17:22:32 +02:00
Fedor Isakov
79c02d2b00
Cleaning up dependencies in an attempt to produce a workable build.xml that doesn't break gradle.
2018-07-14 17:22:14 +02:00
Fedor Isakov
2b2fa47b57
Extract baselanguageExt sample into separate project.
2018-07-14 17:22:07 +02:00
Fedor Isakov
92c6ba3e12
Restructuring the project: consolidate code, moving samples away.
2018-07-14 17:22:07 +02:00
Fedor Isakov
9f372d1ad6
Fix a build dependency issue.
2018-07-10 14:33:12 +02:00
Fedor Isakov
36cc3753e2
Codeflow analysis for local var live/used status. (alternative implementation, faster).
2018-07-10 14:15:28 +02:00
Fedor Isakov
fb27f1ddf2
Ensure eval() supports void and non-boolean expressions. Allow eval in guard. Fix generation of operations from collections lang.
2018-07-10 14:14:08 +02:00
Fedor Isakov
b048701093
Fix build dependencies.
2018-06-21 11:52:35 +02:00
Fedor Isakov
2cc6d44705
Extract reusable stuff from typechecking UI plugin into coderules UI.
2018-06-16 13:08:24 +02:00
Fedor Isakov
67b9e5a372
Fix build broken after moving baselanguageExt.
2018-06-16 12:45:54 +02:00
Fedor Isakov
b4d0ab73bb
Initial boilerplate support for launching controlflow queries. Some refactorings to further uncouple coderules-related stuff.
2018-06-15 14:55:44 +02:00
Fedor Isakov
db04f57c41
Move baselanguage-related stuff to another location within the project.
2018-06-15 11:09:01 +02:00
Fedor Isakov
a74f00f688
Introduce controlflow language and corresponding solutions as another example of applying code rules in practice.
2018-06-14 16:19:06 +02:00
Fedor Isakov
20c107e428
Introduce j.m.lang.typechecking lang to provide typechecking aspect-related services. Abstract away aspect generation/discovery logic to make it reusable.
2018-06-14 15:02:22 +02:00
Fedor Isakov
fda586c45c
Extract generic support for launching code rules into a separate plugin solution.
2018-06-13 14:34:41 +02:00
Fedor Isakov
c6a3b94f9a
Bump up plugin version to 0.5.
2018-06-12 18:12:05 +02:00
Fedor Isakov
a8e6c565b5
Rename the language and runtime solution: typesystem2 -> coderules. Move typechecking-related stuff to typechecking solution. Reorganize modules, delete obsolete stuck files.
2018-06-12 18:00:30 +02:00
Fedor Isakov
760ec4e736
Fix a dependency problem.
2018-06-12 13:06:30 +02:00
Fedor Isakov
2de4d69781
Introduce QueryKind. Fix the kinds of typechecking queries. Avoid directly linking the queries in types aspect.
2018-06-04 18:45:08 +02:00
Fedor Isakov
49296df88f
Fix the dependencies to avoid breaking the build.
2018-05-24 12:47:25 +02:00
Fedor Isakov
ce688b3672
Refactor ProgramProducer to use query templates.
...
Switch to using queries to launch program stages.
Refactor typesystem2 lang and runtime to break queries into stages.
Rename ChrProgram to LogicProgram.
2018-05-24 11:54:01 +02:00
Fedor Isakov
e056befb4e
Establish module dependencies that make sense.
2018-05-17 12:07:50 +02:00
Fedor Isakov
1b564b3057
Implementing QueryTemplate API and support in the evaluation environment.
2018-05-17 12:07:50 +02:00
Fedor Isakov
c01e1d76c9
Refactoring: moving term-related concepts into a separate language, use dataform nomenclature instead of term where possible. Create migration.
2018-04-19 16:30:23 +02:00
Fedor Isakov
487ddddff3
Switched to MPS 2018.1
2018-04-10 14:22:48 +02:00
Fedor Isakov
bfe74e3c7c
Bumped up plugin version to 0.4
2018-04-05 12:40:17 +02:00
Fedor Isakov
f730641327
Extract "reporting" solution and interface.
2018-04-04 10:52:14 +02:00
Fedor Isakov
e30c5e268b
Extend typesystem2 lang with "assign type" operation. TypecheckingSessionSolver to be used for reporting the calculated type. Manual migration required.
2018-04-03 15:16:14 +02:00
Fedor Isakov
b052790f8c
Switch to latest conreactor, update Kotlin runtime libs.
2018-03-05 15:31:39 +01:00
Fedor Isakov
bd81dfe749
Bump up the release version to 0.3. Default build number set to 9999.
2018-01-23 11:55:13 +01:00
Fedor Isakov
43a823a2b5
Refactorings in the API. Introducing RuleProcessingSession to facilitate all operations with the rule processing. Consolidating all low-level stuff in runtime solution. Preparing for multiple languages support.
2018-01-05 13:58:24 +01:00
Fedor Isakov
c236981fb6
Correct version number of the plugin (0.2).
2017-12-06 18:10:02 +01:00
Fedor Isakov
d3a4e21ca9
Migrated to MPS2017.3.
2017-12-06 16:36:28 +01:00
Fedor Isakov
8c81df5fae
Automating updates file generation and upload using Travis CI.
2017-12-04 20:40:52 +01:00
Fedor Isakov
114f4b8079
Bumped up version in plugin.xml.
2017-12-04 13:34:57 +01:00
Fedor Isakov
2ba4ee5712
Correct plugin version. Create updatePlugins.xml to provide updates.
2017-11-15 14:11:38 +01:00
Fedor Isakov
3ed8d2e375
Switch to latest release of constraints reactor lib. Update the dependency libs.
2017-10-30 19:51:42 +01:00
Fedor Isakov
582c8d32d3
Logic language: introduce ListRole, create a migration to extract ChildRole with single list to ListRole.
2017-10-23 12:08:32 +02:00
Fedor Isakov
e9a35f4fae
Fix module dependencies
2017-10-23 10:23:12 +02:00
Fedor Isakov
12afe4fa9c
Update the distribution zip file name to correspond to the package version (0.2).
2017-10-16 14:32:46 +02:00
Fedor Isakov
e60bfc4158
Typesystem2 lang: Use NodeAnchor to make a reference to a node explicit. Replace LogicalValue with Expression where applicable. Drop the type-dependent hacks, git rid of constructing terms by hand in AnchorUtil. Migrations.
2017-10-13 11:51:18 +02:00
Fedor Isakov
3ce85cac5e
Introduce snapshot history. Activation sink to record all snapshots and allow to refer to snapshot taken at particular instant. This is used in the Store sink in order to correctly represent logical assignments and unions. Snapshot history is reused by the next stage program.
2017-09-26 11:37:35 +02:00
Fedor Isakov
f8c265dcc7
Use PooledThreadExecutor for background scheduling. Ad-hoc support for handling fatal errors during execution, such as StackOverflowError.
2017-09-12 17:11:43 +02:00
Fedor Isakov
78c7f71e9a
Refactoring the code that launches typechecking to better separate concerns.
...
Extract TypeAspectRuntime.
Support building typechecking program for sequence of nodes.
Moving classes/models around to get rid of cyclic deps.
2017-08-16 15:29:23 +02:00
Fedor Isakov
aac95b2b25
Move typesystem2.helper.plugin to typechecking.plugin. Drop typesystem2.helper solution.
2017-07-28 13:58:37 +02:00
Fedor Isakov
757d869cf3
Rewrite tests without using NodeTestCase's header. Update TypeNodeManager and Typechecker to both be initialized async, add a dispose call for Typechecker.
2017-07-27 15:18:20 +02:00
Fedor Isakov
f2710aa8d6
Fix the trace displaying only the first stage. Simplify types in TypecheckingHelper. Refactor LaunchTypechecking to use CollectTypesStep.
2017-07-27 15:17:20 +02:00
Fedor Isakov
e970b2443a
Extract typechecking-related stuff to a separate solution 'j.m.typechecking'
2017-07-25 10:30:29 +02:00
Fedor Isakov
4665aa5623
Rename 'j.m.typechecking' solution to 'j.m.typechecking.ui'. Contains only the plugin model.
2017-07-24 11:29:59 +02:00
Fedor Isakov
20622554f2
Switch to MPS 172 latest RC build. Fix a couple of parent-invariant violations in the type system, remove obsolete intention.
2017-07-19 16:22:59 +02:00
Fedor Isakov
c8b4fff148
Add dependencies on RxJava and rxjava2-swing.
2017-07-18 11:24:38 +02:00
Fedor Isakov
ab408b0c09
Add explicit mapping of library jar locations to reactor module. Fix the plugin.
2017-06-13 20:31:40 +02:00
Fedor Isakov
dab37c39b1
Update the plugin metadata.
2017-06-13 10:17:38 +02:00
Fedor Isakov
0fd6f65591
Rename "sampleplugin" solution to "typechecking". Move build solution to typechecking folder. Rename the plugin to "typechecking".
2017-06-12 21:55:53 +02:00
Fedor Isakov
33bc06e9cc
Rename solutions "typesystem2.sample.*" to "typechecking.sample.*".
2017-06-12 19:10:29 +02:00
Fedor Isakov
0a615c8490
Rename solution "typesystem2.test" to "typechecking.test".
2017-06-12 19:01:49 +02:00
Fedor Isakov
51263e9b8b
Reorganizing the code, optimize the number of solutions. Delete empty solutions.
2017-06-12 18:55:55 +02:00
Fedor Isakov
663c58d880
Delete empty generators. Fix the import errors.
2017-06-12 16:45:00 +02:00
Fedor Isakov
ee0b98f9db
Rename "sampleLang" to "baseLanguageExt"
2017-06-12 16:32:49 +02:00
Fedor Isakov
f9e9e7956a
Import the sample language to the tests model. Fix the test.
2017-06-12 13:22:41 +02:00
Fedor Isakov
aefaf1a499
Add missing test to the build.xml, ensure the build fails on test failure.
2017-06-09 15:14:28 +02:00
Fedor Isakov
7cbef4cf9d
Download and unpack MPS release as a dependency before the build. The root folder "MPS_HOME" to always point to the MPS installation or contain the MPS itself.
2017-06-09 15:14:28 +02:00
Fedor Isakov
2dbd4cec52
New build solution, combine build and test into one, integrate with gradle.
2017-06-09 09:52:20 +02:00
Fedor Isakov
f30710f463
Updated the reactor libs. Adapted to the renamed interfaces in the reactor API.
2017-06-05 14:34:14 +02:00
Fedor Isakov
aacd10cb9d
Update the reactor, unification, collection, and kotlin jars.
2017-06-01 15:11:20 +02:00
Fedor Isakov
24168bf5f8
Rebuilt the project, buildfiles updated.
2017-04-26 14:23:51 +02:00
Fedor Isakov
3136d7bedb
Switched to the latest EAP build, applied the migrations.
2017-03-09 14:36:20 +01:00
Fedor Isakov
012dc6b305
Optimizing imports.
2016-12-23 17:40:05 +01:00
Fedor Isakov
fe5d24ea35
Update all external jars.
2016-12-14 17:08:31 +01:00
Fedor Isakov
98b4a731e6
Fix the build scripts.
2016-11-11 14:22:44 +01:00
Fedor Isakov
7621d73208
Fix running tests out-of-process (bad dependencies causing the classloader to fail)
2016-10-13 16:01:33 +02:00
Fedor Isakov
cb86d9b120
Find applicable templates feature.
2016-10-04 15:59:18 +02:00
Fedor Isakov
dd1f2f28a5
Refactoring and cleaning up type/rule template API, introduce RecoverySession. Type table has recovery feature. Return type terms from the sample typechecking. Simple test.
2016-09-19 12:17:40 +02:00
Fedor Isakov
7d959dc154
Refactor the type templates generation and usage. Enable to use type templates outside of the application session.
2016-09-17 14:57:55 +02:00
Fedor Isakov
9521c6cc53
Rename concepts to match the treeform api names.
2016-09-01 11:03:36 +02:00
Fedor Isakov
414a60fffc
Moving the reactor API to the separate project.
...
Switch to java_stub models for the reactor api.
2016-09-01 11:03:35 +02:00
Fedor Isakov
4b6ac48a41
Merging TreeForm model into the reactor solution.
...
Move unification lib tnd treeform api model to reactor solution.
Remove obsolete solution.
2016-09-01 11:03:35 +02:00
Fedor Isakov
9064c6bbb8
Minor fixes, code restructuring, fixing the dependencies, removing obsolete file.
2016-08-30 17:04:11 +02:00
Fedor Isakov
778f1bf167
Trying to make tests launch from the build file (unsuccessful)
2016-08-26 12:17:10 +02:00
Fedor Isakov
569b1fd082
Build file for making the samplechecker plugin.
2016-08-25 13:55:53 +02:00