Commit Graph

616 Commits

Author SHA1 Message Date
Marcin Kostrzewa
f298fbd3cf
R Interop (#1559) 2021-03-09 16:19:05 +01:00
Marcin Kostrzewa
03fa549daf
Python interop (#1541) 2021-03-05 12:18:37 +01:00
Ara Adkins
2b4f0ef2ad
Bump scalac to 2.13.5 (#1531) 2021-03-01 16:35:57 +00:00
Dmitry Bushev
2bba2ccfca
Fix Invalidation of Dynamic Dependencies (#1532)
Revert change from #1495, where dynamic 
dependencies come with external ids.
2021-03-01 18:23:04 +03:00
Marcin Kostrzewa
3a88be543f
Make panic messages short (#1528) 2021-03-01 14:46:05 +01:00
Ara Adkins
fea8856970
Additional fixes for parser crashes (#1523) 2021-02-26 13:17:53 +00:00
Dmitry Bushev
0c5a36283b
fix: lambda locations (#1522)
Reattach original locations during
the lambda desugaring
2021-02-26 12:59:21 +03:00
Dmitry Bushev
3bf566fdee
feat: invalidate method dependencies (#1516)
When the edit changes the method body, invalidate 
all the method usages, and the corresponding 
dependencies
2021-02-26 08:26:34 +03:00
Ara Adkins
37a64dd098
Desugar blanks in function position (#1512) 2021-02-25 11:44:13 +00:00
Dmitry Bushev
b79d5f95a6
Always Send Panic Updates (#1508)
Always send panic updates
2021-02-25 13:43:21 +03:00
Ara Adkins
2c5ed028aa
Band-aid the "template pattern segment" error (#1509) 2021-02-25 09:46:03 +00:00
Dmitry Bushev
51d5c5ebde
Analyze compiled modules (#1507)
PR changes the logic of EnsureCompiledJob to analyze 
all compiled modules, disregarding its previous 
compilation stage.
2021-02-25 11:29:23 +03:00
Marcin Kostrzewa
299c59826e
Fix the type of Type_Error's name field (#1504) 2021-02-24 14:53:11 +01:00
Marcin Kostrzewa
d1c127531e
Error message representations (#1498) 2021-02-22 17:25:53 +01:00
Ara Adkins
8ec2a92b77
Upgrade GraalVM to 21.0 (#1487) 2021-02-22 13:32:55 +00:00
Dmitry Bushev
dced7b96f6
Fix Dependency Analysis (#1495)
PR fixes dependency analysis on IR.Error nodes.
2021-02-19 19:38:13 +03:00
Dmitry Bushev
ad4d6286d5
Set Correct Payload for Dataflow Errors (#1484)
Set DataflowError payload for dataflow error updates.
2021-02-18 15:05:20 +03:00
Radosław Waśko
ef539b6ddf
Add Stack Traces in Tests (#1482)
Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2021-02-15 18:41:54 +01:00
Marcin Kostrzewa
c4a0772190
Polyglot JS Definitions (#1451) 2021-02-08 18:14:54 +01:00
Ara Adkins
af1aab35aa
Improve dataflow errors in the standard library (#1446) 2021-02-02 12:31:33 +00:00
Dmitry Bushev
f0115587b0
Handle PanicSentinel in Interpreter (#1436)
PR adds the ability to handle runtime exceptions 
in the interpreter and continue the execution 
passing the PanicSentinel value.
2021-02-02 12:02:00 +03:00
Marcin Kostrzewa
f2775176f7
Fluent Java Interop & Method Dispatch Refactor (#1443) 2021-02-01 15:56:20 +01:00
Ara Adkins
e83b18f828
Improve the handling of dataflow errors (#1433) 2021-01-27 13:41:19 +00:00
Ara Adkins
8c2f4652a0
Split up method resolution (#1428) 2021-01-25 17:53:37 +00:00
Dmitry Bushev
2515721799
Add API for dataflow errors (#1422) 2021-01-25 14:41:20 +00:00
Dmitry Bushev
4770e72734
Resolve Expression Ids for Errors (#1405)
PR adds the new executionContext/expressionUpdates
API that replaces executionContext/expressionValueUpdates
notification, and in the future will be extended to support
the dataflow errors.
2021-01-21 17:10:21 +03:00
Dmitry Bushev
e03e5315ff
Fix Dataflow Analysis of Undefined Variables (#1421)
* fix: dataflow analysis

* test: unefined variable
2021-01-20 18:08:54 +03:00
Dmitry Bushev
36480113d0
Add Null Check when Executing Host Values (#1413)
add: extra null check, because isNull doesn't allow
null arguments
2021-01-19 22:04:24 +03:00
Ara Adkins
b5b4dfa155
Add support for profiling information in the protocol (#1407) 2021-01-19 10:41:39 +00:00
Marcin Kostrzewa
197190ceeb
Remove UFCS (#1398) 2021-01-14 21:53:04 +01:00
Ara Adkins
a7bd90ab8f
Document the runtime's builtin functionality (#1397) 2021-01-14 15:31:15 +00:00
Marcin Kostrzewa
b751dfb3ec
Table: grouping (#1392) 2021-01-11 17:05:06 +01:00
Dmitry Bushev
7fd11847a4
Use Qualified Names in Runtime Updates (#1376)
Changelog:
- update: execution logic to use qualified names
- update: populate runtime updates with qualified names
- update: suggestions builder to use qualified names
2021-01-11 18:13:08 +03:00
Dmitry Bushev
e2b583c64a
Return Correct Name for the Module in AtomConstructor (#1375)
return the module name if it's the atom constructor of the module.
2021-01-11 14:29:50 +03:00
Dmitry Bushev
9083b90c52
Use Cached Value when Computing Visualizations (#1378)
PR adds an optimization to the visualization computing logic
2020-12-29 14:48:46 +03:00
Marcin Kostrzewa
0840ff546b
safepoint without invalidation (#1367) 2020-12-18 13:55:02 +01:00
Radosław Waśko
2e6a5af4fb
Split Installer Versions in Manifest (#1355) 2020-12-16 12:34:33 +01:00
Ara Adkins
2c12a18b25
Implement sorting for Vector (#1349) 2020-12-15 14:20:59 +00:00
Dmitry Bushev
c1369ad044
Fix EditFileCmd and locking (#1343)
Run actions outside of Future to utilize locking
2020-12-14 16:06:45 +03:00
Dmitry Bushev
75e3136221
dispose runtime listener (#1338)
Dispose the runtime listener on exception
2020-12-09 19:54:53 +03:00
Dmitry Bushev
95a345ee26
Misc Visualization Fixes (#1328)
add: missing to_json conversions
fix: NPE in instrumentation
fix: EditFileCmd scheduling
fix: send visualization errors to the text endpoint
fix: preserve original location in the VectorLiterals pass
2020-12-09 13:44:03 +03:00
Dmitry Bushev
d80089ab69
Fix Runtime Jobs Scheduling (#1319)
- fix the issue when duplicate execution jobs were never canceled.
- fix the issue in the file edit handler, when the edits can be received
  in a different order.
2020-12-04 08:07:01 +03:00
Ara Adkins
bc09aafe7b
Add bitwise operations on Integer (#1311) 2020-12-03 10:41:21 +00:00
Dmitry Bushev
07190a729c
Add search/import command (#1310)
Add `search/import` request returning the info
required for module import.
2020-11-26 18:44:35 +03:00
Ara Adkins
e62f6796fe
Add the ability to split Text on word boundaries (#1302) 2020-11-20 13:29:34 +00:00
Ara Adkins
fbe1f4c439
Implement better splitting for Text (#1298) 2020-11-19 13:28:03 +00:00
Marcin Kostrzewa
ab2c5ed097
Tables: column mapping & masking (#1297) 2020-11-18 15:09:43 +01:00
Ara Adkins
cf9be4ff29
Add Number.noise to the standard library (#1295) 2020-11-18 13:03:28 +00:00
Ara Adkins
bc8a22e279
Add further standard library improvements (#1290) 2020-11-16 12:56:31 +00:00
Dmitry Bushev
670cffb380
Fix Storing the Runtime Types (#1271)
A bunch of improvements to the suggestions
system. Suggestions are extracted to the tree data
structure. The tree allows producing better diffs
between the file versions. And better diffs reduce
the number of updates that are sent to the IDE
after a file change, and consequently fix the
issue when the runtime type got overwritten with
the compile-time type.
2020-11-10 14:50:37 +03:00
Marcin Kostrzewa
f420dd3702
Rename Unit to Nothing (#1269) 2020-11-06 12:44:11 +01:00
Dmitry Bushev
36694e2496
Restructure the Standard Library (#1245)
Split std-lib into two libraries: Base and Test.
2020-10-29 08:48:48 +03:00
Dmitry Bushev
11e4241921
HTTP Library (#1220)
Add `Base.Net.Http` library
2020-10-27 14:45:10 +03:00
Marcin Kostrzewa
c0de753d95
JSON Library (#1241) 2020-10-23 14:16:48 +02:00
Ara Adkins
746521f8b2
Bump SBT and Scalafmt (#1203)
Co-authored-by: Radosław Waśko <radoslaw.wasko@enso.org>
Co-authored-by: Dmitry Bushev <bushevdv@gmail.com>
2020-10-22 16:12:28 +02:00
Marcin Kostrzewa
207aaaccf5
Map Implementation (#1222) 2020-10-20 13:43:04 +02:00
Radosław Waśko
989aa4b7d7
Initial Legal Review (#1210)
The reports will now be sent to the legal team for review.
2020-10-19 10:50:12 +02:00
Marcin Kostrzewa
8668079337
Opt-in TCO (#1219) 2020-10-15 16:52:26 +02:00
Dmitry Bushev
1feec8388d
Localize Interpreter Errors (#1212)
Add new `executionContext/executionStatus`
notification returning a list of diagnostic
messages containing localized (linked to the
location in the code) information about
compilation errors and warnings, as well as
runtime errors with stack traces.
2020-10-15 16:03:45 +03:00
Marcin Kostrzewa
2a44a858a7
Implement Generic Programming Facilities (#1216) 2020-10-13 13:45:58 +02:00
Marcin Kostrzewa
2783d5e706
Fix source locations in Enso files (#1208) 2020-10-09 14:45:41 +02:00
Marcin Kostrzewa
05f4cc2e7c
Files API (#1204) 2020-10-09 14:05:22 +02:00
Marcin Kostrzewa
73c748c4e9
Fix bugs in TCO and test library (#1205) 2020-10-09 12:41:16 +02:00
Dmitry Bushev
72bf87c648
Implement Enso Time Library (#1171)
Add `Base.Time` module. The module wraps `java.time`
data types and provides utility Enso methods to work
with them.
2020-10-09 10:40:54 +03:00
Dmitry Bushev
1fbf3ad692
Catch Polyglot Exceptions (#1200)
`Panic.recover` catches host exceptions wrapping them in
`Polyglot_Error` atom constructor.
2020-10-07 23:43:12 +03:00
Dmitry Bushev
a2d3b9fe01
Fix Documentation Comments (#1199)
`TypeFunctions` and `TypeSignature` passes preserve documentation 
comments
2020-10-07 20:42:40 +03:00
Marcin Kostrzewa
2a6dbf0eda
Managed Resources Engine (#1194) 2020-10-06 15:47:06 +02:00
Dmitry Bushev
3d65ffd3cd
Fix the Suggestions Database Updates Handling (#1161)
Misc updates to the Suggestions database updates handling
algorithm
2020-10-05 17:22:13 +03:00
Marcin Kostrzewa
8e07e0347f
Defining Methods for Operators (#1189) 2020-10-05 11:32:32 +02:00
Radosław Waśko
c824c1cb7b
Logging Service in the Launcher (#1169)
Migrate launcher's HTTP backend from Apache HTTP to Akka.
2020-10-02 18:17:21 +02:00
Marcin Kostrzewa
e5defa703f
Missing specializations for MethodResolverNode (#1173) 2020-10-01 17:10:48 +02:00
Marcin Kostrzewa
3eee990429
Polyglot Import Renaming (#1179) 2020-10-01 16:27:40 +02:00
Marcin Kostrzewa
a1748c3978
Enso's Text Type (#1166) 2020-09-30 13:33:57 +02:00
Dmitry Bushev
5ea7615bb4
Populate the Suggestions Database with Imported Modules (#1155)
During the compilation, the runtime will analyze
all modules in scope and send the appropriate
suggestion updates to the server.
2020-09-21 15:05:58 +03:00
Marcin Kostrzewa
cb8277c3a2
Rename the int64 package (#1148) 2020-09-15 16:09:44 +01:00
Marcin Kostrzewa
e38d1ab521
Decimal Numbers (#1146) 2020-09-15 15:05:21 +02:00
Marcin Kostrzewa
7373da2f1f
Unbounded Integers (#1134) 2020-09-10 15:02:47 +02:00
Marcin Kostrzewa
6301542546
Vector Type (#1133) 2020-09-09 14:49:08 +02:00
Dmitry Bushev
a2accd3444
Fix imports resolution (#1129)
Fix the ImportResolver issue when the module was 
compiled the second time and refactor the logic 
into tail-recursive function.
2020-09-09 13:56:39 +03:00
Marcin Kostrzewa
4e337840cf
No Implicit Builtins (#1114) 2020-09-01 11:21:26 +02:00
Radosław Waśko
125af6b7fe
Bump GraalVM Version to 20.2.0 (#1094) 2020-08-28 13:03:09 +02:00
Ara Adkins
e64c0384b0
Implement part of the Enso lexer in rust (#1109) 2020-08-27 13:27:22 +01:00
Dmitry Bushev
6b2356cf13
Add Base.Process library (#1106) 2020-08-27 09:44:27 +01:00
Marcin Kostrzewa
5b6ce5b31f
Implement imports and exports for Main.enso (#1098) 2020-08-21 16:30:13 +01:00
Marcin Kostrzewa
6bbb499a18
Module re-exports (#1095)
Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-08-20 18:42:58 +02:00
Dmitry Bushev
416a7f60b0
Resolve here References when Building Suggestions (#1093)
Resolve `here` method references when building a suggestion
2020-08-20 18:05:16 +03:00
Radosław Waśko
c979938527
Run components through the launcher (#1073) 2020-08-19 13:24:31 +01:00
Dmitry Bushev
6da3b9252f
Add DISABLE_PARALLEL_EXECUTION runtime option (#1087)
Add runtime option for sequential command execution
2020-08-19 08:00:21 +03:00
Dmitry Bushev
4ccfa5d410
Fix Method Pointer Update Notifications (#1084)
Update the implementation to send the full update containing both,
new type and method pointer, when one of them is changed.
2020-08-18 17:43:29 +03:00
Dmitry Bushev
5fcd80d4d0
Return Error When the Method Pointer Not Found (#1083)
Enable explicit error notifications when the execution
of the stack frame has failed.
2020-08-17 15:26:54 +03:00
Marcin Kostrzewa
da3b2bbe31
Fix a bug in error pattern matching (#1081) 2020-08-13 18:26:57 +02:00
Dmitry Bushev
65dec91bc0
Handle TailCallException in Runtime Instrument (#1068)
PR implements TailCallException handler
in the IdExecutionInstrument sending
correct value updates.

- implement onReturnExceptional of the 
  runtime instrument
- add onExceptionalCallback to the 
  runtime instrument
2020-08-07 20:00:32 +03:00
Marcin Kostrzewa
b2fbf1a848
New Import Syntax (#1070) 2020-08-07 15:42:24 +02:00
Marcin Kostrzewa
0e5a20d8ad
Proper Imports Syntax (#1067) 2020-08-06 17:55:02 +02:00
Marcin Kostrzewa
ddb43af5a2
Qualified names & uppercase name resolution (#1062) 2020-08-05 22:16:44 +02:00
Dmitry Bushev
c64298cb8e
Send Method Call Updates After Popping the Frame (#1060)
PR introduces the MetodCallsCache created per frame execution, meaning
that it is not persisted in between the runs. The cache tracks which
calls have been fired during the program execution (and sent as a
notification to the user). When the program finishes, we compute the set
of calls that have not been executed and send them to the user as well.

- add: MethodCallsCache temporary storage tracking the executed method
  calls
- add: sendMethodCallUpdates flag enabling sending all the method calls
  of the frame as a value updates
2020-08-05 13:07:26 +03:00
Dmitry Bushev
467d13a9e7
Update Runtime Notifications API (#1055)
Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-08-04 12:31:56 +02:00
Dmitry Bushev
ef165e4f23
Emit value updates only on change (#1051) 2020-08-03 15:38:39 +01:00
Marcin Kostrzewa
bd027e46bc
Early constructor resolution & import-loops immune compiler (#1048) 2020-07-31 21:20:43 +02:00
Dmitry Bushev
cd6858a01e
Revert expressionId removal from value update (#1043) 2020-07-30 10:26:14 +01:00
Dmitry Bushev
2f9e7f51af
Handle Rename Command Properly (#1041)
In the current workflow, at first, the default Unnamed project is
created, and the Suggestions database is populated with entries from the
Unnamed.* modules. When the user changes the name of the project, we
should update all modules in the Suggestion Database with the new
project name.

This PR implements module renaming in the Suggestions database and fixes
the initialization issues.

- add: search/invalidateSuggestionsDatabase JSON-RPC command that resets
  the corrupted Suggestions database
- update: SuggestionsHandler to rename the modules in the
  SuggestionsDatabase when the project is renamed
- fix: MainModule initialization
2020-07-29 14:51:00 +03:00
Dmitry Bushev
45d75536aa
Wait for Suggestions Database Initialization (#1025) 2020-07-22 17:12:52 +03:00
Marcin Kostrzewa
6137c6559b
Method naming fixes (#1024) 2020-07-22 12:01:35 +02:00
Dmitry Bushev
ded61865a4
Fix the search/getSuggestionsDatabase API (#1021) 2020-07-21 23:15:14 +03:00
Ara Adkins
f5ffbe8fa7
Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
Dmitry Bushev
30d136a141
Integration with the Searcher Database (#994) 2020-07-20 11:00:49 +03:00
Marcin Kostrzewa
40f44b5b9e
Test Framework for Enso (#998) 2020-07-16 15:53:27 +02:00
Marcin Kostrzewa
be43737a34
Layered State Monad (#991) 2020-07-13 17:00:15 +02:00
Dmitry Bushev
6ba038c800
Implement Search Requests API (#953) 2020-07-06 16:55:21 +03:00
Radosław Waśko
001509b3b8
Fix missing warning for unused arguments (#960) 2020-07-02 13:39:42 +02:00
Łukasz Olczak
a8293eb3a0
Support for Project Renaming (#929) 2020-07-01 15:55:50 +02:00
Radosław Waśko
cf0c735e91
Java 11 Migration (#928) 2020-07-01 13:21:13 +02:00
Marcin Kostrzewa
510d9e4a2d
Implement Interop Library for Unresolved Symbols (#952) 2020-06-30 11:33:31 +02:00
Ara Adkins
e9b676834b
Bump the SBT and Scala versions (#948)
1.  This PR also re-enables windows CI.
2020-06-29 18:24:41 +01:00
Marcin Kostrzewa
b135615670
Benchmarking Utilities (#951) 2020-06-29 17:01:20 +02:00
Radosław Waśko
595003e965
Fix documentation metadata getting lost (#946) 2020-06-29 16:36:44 +02:00
Marcin Kostrzewa
368a1547bb
Interpreter Performance Improvements (#950) 2020-06-29 16:11:03 +02:00
Radosław Waśko
0e139ee42a
Fix unbalanced parentheses parse error (#937) 2020-06-25 16:32:05 +02:00
Marcin Kostrzewa
0b9558d962
Standard Library Nodes DSL (#932) 2020-06-24 19:02:42 +02:00
Dmitry Bushev
9ba1aa6d34
Implement the Suggestions Database (#846) 2020-06-23 11:26:05 +03:00
Marcin Kostrzewa
af786bb1de
Booleans support (#856) 2020-06-19 16:27:41 +02:00
Marcin Kostrzewa
1b1d465bd7
Fix uncached versions of the function call flow. (#844) 2020-06-19 15:15:43 +02:00
Ara Adkins
478ade7cd6
Update the scalafmt version (#854)
1.  This new version will automatically format documentation comments.
2020-06-19 13:45:01 +01:00
Ara Adkins
2f404b7f08
Fix a bug with compiler metadata (#838)
1.  The metadata objects weren't being duplicated when duplicating
    the IR. This meant that the later passes would write metadata
    multiples times into one store (reference), causing wrong
    behaviour at codegen time.
2020-06-16 13:52:11 +01:00
Łukasz Olczak
1f46a3f9a1
Introduce Threaded Executions to the Runtime Server Instrument (#807) 2020-06-16 13:16:07 +02:00
Ara Adkins
dd0f93c328
Add support for writing type signatures (#833)
1.  Adds support for type signature syntax.
2.  Lifts the type operators into metdata.
3.  Uses the signatures to determine arg suspension.
2020-06-15 17:45:14 +01:00
Radosław Waśko
1a6449d329
Migrate the REPL to the New Server (#827)
Also add language stack traces to the REPL.
2020-06-15 13:06:20 +02:00
Radosław Waśko
af8b5f88cf
Implement debbuger server in the instrument (#822) 2020-06-09 16:23:52 +02:00
Dmitry Bushev
2a3ec07c87
Runtime Cache Integration Part 2 (#800) 2020-06-04 20:25:23 +03:00
Dmitry Bushev
7f1f484ada
Runtime Cache Integration (#788)
* add: CachePreferenceAnalysis

* add: enable runtime cache

* doc: update commands

* misc: scalafmt

* misc: reword changeset warning

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>

* misc: extra line

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>

* misc: dot

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>

* misc: redundant newline

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>

* misc: redundant newline

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>

* doc: update CacheInvalidation

* update: IRPass

* misc: scalafmt

* doc: remove inheritdoc

* update: simplify cache preference pass

* doc: scaladoc

* doc: typo

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>

* update: assign weights to all nodes

* add: update visualisations without recomputing

* remove: cache preference metadata from local scope

* add: execute frame with own cache

* doc: typo

* add: store enterables in cache

* Revert "add: store enterables in cache"

This reverts commit eb6a6c7b657bff0c5489822ec1d56356c5458ab9.

* add: instrument return after capture function call

* misc: refactoring

* refactor: rename stackTop

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-06-04 19:00:59 +03:00
Ara Adkins
918bf18b9c
Support nested patterns in pattern matches (#803) 2020-06-04 13:16:33 +01:00
Marcin Kostrzewa
cd8726c2b5
Fix interrupts test for CI (#806) 2020-06-04 13:51:25 +02:00
Marcin Kostrzewa
7e7e3da7b4
Add safepoint manager for tracking thread interrupts (#805) 2020-06-03 21:41:48 +02:00
Marcin Kostrzewa
e2bac23e26
Handles disable and doc comments (#780) 2020-05-27 14:59:23 +02:00
Ara Adkins
2fdd053fd3
Register and verify dependencies between passes (#786) 2020-05-27 10:24:32 +01:00
Dmitry Bushev
d68b3414b0
Implement the Runtime Cache (#778) 2020-05-26 21:37:08 +03:00
Łukasz Olczak
806bf9dcb7
Introduce Threaded Executions to the Runtime Server Instrument - Part 1 (#781) 2020-05-26 17:37:54 +02:00
Ara Adkins
5420ca9482
Bump GraalVM to 20.1 (#775) 2020-05-21 11:46:06 +01:00
Ara Adkins
9a59c80e8b
Support complex type definitions (#773) 2020-05-20 16:42:23 +01:00
Marcin Kostrzewa
64e3f07903
Auto-imported Std Lib and File Operations Cleanup (#771) 2020-05-20 17:05:22 +02:00
Ara Adkins
a2fe01d399
Add syntax sugar for method/function defs (#765) 2020-05-19 15:43:36 +01:00
Ara Adkins
ad9eb285fa
Implement print_err and readln (#754) 2020-05-15 16:21:39 +01:00
Josef
81bde28589
Assign a UUID to Each AST Node (#738) 2020-05-15 13:43:07 +02:00
Dmitry Bushev
4c3b80cfe3
Add Error Handling to Execution Context (#742)
* add: error handling to execution context

* update: error handling

* add: logging

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-05-14 18:48:44 +03:00
Ara Adkins
3fcffc77e2
Add hacky syntactic support for unary negation (#746) 2020-05-14 13:03:09 +01:00
Ara Adkins
89706e2969
Analyse dependencies for external idents (#743) 2020-05-13 16:33:42 +01:00
Dmitry Bushev
e3e38c6b15
Use the Text Diff to Work Out the Changeset (#736)
* add: compute diff changeset

* test: try fixing windows

* fix: lines warning

* upd: operate on CharSequence

* misc: cleanup
2020-05-12 18:48:20 +03:00
Marcin Kostrzewa
e8ede5114e
Syntactic Java integration (#739) 2020-05-12 16:40:03 +02:00
Marcin Kostrzewa
dd5993d7ff
List Literals (#728) 2020-05-12 13:34:16 +02:00
Marcin Kostrzewa
40d62c882d
Java and Polyglot utility functions (#723) 2020-05-07 15:38:21 +02:00
Dmitry Bushev
ded8d22f43
refactor: fix typo interpeter (#718) 2020-05-07 07:56:04 +03:00
Ara Adkins
ea23cf6fbc
Add sections, underscore args and ignores (#716) 2020-05-06 19:00:03 +01:00
Łukasz Olczak
29190f8339
Truffle Integration for the Binary Protocol (#711) 2020-05-06 14:23:00 +02:00
Dmitry Bushev
7c7bd3e6ae
Add PoC of Caching Injection to IdExecutionInstrument (#709)
* add: impl setOverride

* rem: ValueOverrideInstrument

* debug: clean CI cache

* Revert "debug: clean CI cache"

This reverts commit ad08edd7456a74f210e5544fb5e6e1723cc649bb.

* upd: remove binding from IdExecutionListener

* update: val instrument

* remove: global value from instrument

* cleanup

* Revert "cleanup"

This reverts commit 329822d7d853d808e0869517992ea810f2d1784d.

* Revert "remove: global value from instrument"

This reverts commit 4cff1abe84eade5ae8c4e126c2324d6e942e0be8.

* add: cache to Handler
2020-05-05 18:34:21 +03:00
Marcin Kostrzewa
1c8600e53f
Fix polymorphic frame slot writes (#710) 2020-05-05 14:28:58 +02:00
Ara Adkins
a68c59344b
Fix miscellaneous bugs, refactoring (#705) 2020-05-01 21:25:48 +01:00
Ara Adkins
50e307e6ee
Bump scalac version to 2.13.2 (#703) 2020-04-30 20:30:55 +01:00
Ara Adkins
90d85fc810
Implement lambda consolidation (#701) 2020-04-30 15:58:45 +01:00
Dmitry Bushev
7e48e82dbc
Send Information About Function Calls (#696)
* Add Module reference to ModuleScope

* add: function call info

* add: impl getQualifiedName

* misc: cleanup

* add qualifiedName field

* upd: extend ClosureRootNode constructor

* misc: simplify
2020-04-29 18:56:03 +03:00
Marcin Kostrzewa
1254920482
fix double-eval of this arguments (#700) 2020-04-29 16:59:07 +02:00
Marcin Kostrzewa
d03a5a9dde
Stopgap JSON serialization for Enso objects (#698) 2020-04-29 11:23:46 +02:00
Marcin Kostrzewa
4ba26a3034
Compile Error Handling (#687) 2020-04-28 14:03:33 +02:00
Ara Adkins
92d8393495
Remove non-working caches from CI (#674) 2020-04-24 17:33:27 +01:00
Ara Adkins
9013407091
Implement dataflow analysis for Enso (#673) 2020-04-23 16:25:39 +01:00
Dmitry Bushev
9fcef233a8
Add: executionContext/recompute command (#669)
* add: executionContext/recompute

* doc: review comments
2020-04-23 15:13:02 +03:00
Dmitry Bushev
a10e37342b
Execution Context Integration with Text Change Events (#668)
* add: notifications to CollaborativeBuffer

* impl: trigger re-execution on file notifications

* add: file notifications test

* doc: update

* update: don't re-execute on file open

* fix: typo

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-04-22 21:11:30 +03:00
Marcin Kostrzewa
9020008bc2
String concat and string conversion functions (#667) 2020-04-21 16:27:05 +02:00
Marcin Kostrzewa
e2d901fb68
Module file operations through execution server (#660) 2020-04-20 14:33:51 +02:00
Dmitry Bushev
75f25b66db
Integrate the LS with context management (#657) 2020-04-17 17:31:12 +01:00
Dmitry Bushev
86fdc07ce0
Run scalafmt after updating its version (#661) 2020-04-17 17:05:56 +01:00
Ara Adkins
16b24d58e7
Implement demand analysis (#658) 2020-04-17 12:12:28 +01:00
Ara Adkins
8a99415a30
Fix warnings, docs, and repo structure (#651) 2020-04-14 17:00:51 +01:00
Ara Adkins
875190d7a9
Remove some compilation warnings 2020-04-14 11:56:13 +01:00
Dmitry Bushev
76faaaabcd
Add executionContext push & pop commands (#637)
* add: executionContext/push

* add: executionContext/pop

* add: stack to engine handler

* misc: cleanup

* misc: update error handling

* misc: cleanup
2020-04-09 16:29:14 +03:00
Marcin Kostrzewa
23f7797632
Language Execution Service (#642)
* Execution service

* fix language server

* cr feedbakz

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-04-09 15:02:12 +03:00
Dmitry Bushev
dc58fc6b2a
Add executionContext/destroy (#634)
* add: executionContext/destroy

* remove: ExecutionProtocol

* refactor: UnhandledLogging

* add: custom errors

* refactor: runtime errors
2020-04-06 14:15:50 +03:00
Dmitry Bushev
a0d68eca37
Add executionContext/create command (#632)
* WIP Context

* test: executionContext/create

* misc: scalafmt

* add: requestId

* doc: update

* update: routing

* misc: cleanup

* doc: update

* fix: runtime

* fix: runtime tests

* add: message envelope

* refactor: remove ContextManager

* refactor: correlationId
2020-04-02 16:58:32 +03:00
Marcin Kostrzewa
bf758ebc6d
Thread IDs through the compiler pipelines (#627) 2020-03-26 11:59:50 +01:00
Ara Adkins
2c1d967dd6
Extract remaining analyses from codegen (#616) 2020-03-24 10:28:03 +00:00
Ara Adkins
b6221e519a
Implement explicit alias analysis (#613) 2020-03-20 08:01:03 +00:00
Marcin Kostrzewa
ed7c7c75f9
Execution context management (#611) 2020-03-19 12:29:11 +01:00
Marcin Kostrzewa
4b3943ce9b
Create a server instrument for language server <> runtime communications (#602) 2020-03-12 18:32:21 +01:00
Josef
c2df4e7957
Store idmap with metadata in source file. (#586) 2020-03-11 21:13:23 +01:00
Ara Adkins
23d33c4438
Desugar operators to functions (#581) 2020-03-06 15:23:39 +00:00
Rostyslav Zatserkovnyi
dfb4ec43ac
Update GraalVM to 20.0.0 (#576) 2020-03-06 13:40:29 +00:00
Ara Adkins
fa845ee4c6
Convert the compiler pipeline to scala (#563) 2020-03-02 12:33:28 +00:00
Ara Adkins
e8fcb445be
Clean up the stopgap IR (#521) 2020-02-19 14:41:17 +00:00
Ara Adkins
adf5fe7db2
Add more in-depth tests to core (#489) 2020-02-14 16:29:24 +00:00
Dmitry Bushev
8d8e95e14a
Update to scala 2.13.1 (#481) 2020-02-13 14:33:39 +00:00
Ara Adkins
9dee1911f8
Add smart constructors for the core nodes (#480) 2020-02-13 09:52:05 +00:00
Ara Adkins
ba84ee7e6e
Implement the primitive core entities (#463) 2020-01-31 16:58:35 +00:00
Marcin Kostrzewa
a2703bb296
Language Server files interface (#462) 2020-01-29 16:17:36 +01:00
Ara Adkins
053df2ac2b
Upgrade the graph macros (#456) 2020-01-24 18:56:52 +00:00
Marcin Kostrzewa
3b29bc3483 Add value caching for nodes (#438) 2020-01-22 17:04:55 +00:00
Marcin Kostrzewa
e80667a487
Function call instrumentation (#433) 2020-01-21 15:01:52 +01:00
Marcin Kostrzewa
37e383b430
Polyglot API & module-level expression eval (#424) 2020-01-10 15:53:46 +01:00
Marcin Kostrzewa
05118016e1
Implement value extraction from scopes (#419) 2020-01-07 17:38:49 +01:00
Marcin Kostrzewa
4f177aa0f5
Fix uncached flows, refactor and document the function call flow (#417) 2020-01-07 13:39:07 +01:00
Marcin Kostrzewa
1eed651728
Interpreter lifecycle & Module changes (#414) 2019-12-20 16:02:34 +01:00
Ara Adkins
c3acc5c615
Complete AST to AstExpression translation (#374) 2019-12-06 19:22:20 +00:00
Marcin Kostrzewa
2b8af07148
Fix jupyter & tweak stacktrace elements & pretty printer (#373) 2019-12-06 12:58:20 +01:00
Ara Adkins
db4cbacec3
Add suspended blocks, fix thunk performance (#371)
This commit adds support for suspended blocks in the interpreter and also fixes 
a major performance issue with nested thunks that was causing quadratic 
evaluation time.
2019-12-04 16:00:53 +00:00
Marcin Kostrzewa
c7b3d31415
Source locations in Truffle nodes (#368) 2019-12-02 19:41:46 +01:00
Michał Wawrzyniec Urbańczyk
47f9a4889c
Scala AST refactoring (#360)
A new implementation of Scala AST, as described in #352.
2019-12-02 14:30:37 +01:00
Ara Adkins
ed5786d99e
Add pattern matching and lazy arguments (#365)
Add new syntax support for the above constructs.
2019-12-02 11:59:45 +00:00
Marcin Kostrzewa
6bc14a3b9f Add a tiny subset of nodelocs (#364) 2019-11-29 12:36:48 +00:00
Ara Adkins
9a4332108f
Add lambdas, types, and methods support to new syntax (#358) 2019-11-27 11:32:36 +00:00
Marcin Kostrzewa
85272edcb0
Graal upgrade to 19.3.0 (#350) 2019-11-22 16:38:31 +01:00
Ara Adkins
b91ab25fdb
Translate arith expressions using the new parser (#346) 2019-11-20 09:18:53 +00:00
Marcin Kostrzewa
427e784663
Repl & Debugger (#345) 2019-11-19 16:16:58 +01:00
Marcin Kostrzewa
51d66cdef6
Jupyter bindings (#335) 2019-11-18 14:36:03 +01:00
Ara Adkins
22aa4efda8
Add a low-level graph library (#334) 2019-11-18 11:18:16 +00:00
Marcin Kostrzewa
0ec41b5bbd
String literals, caller frame access, eval function (#333) 2019-11-15 15:49:57 +01:00
Josef
8da25bec2d
Text AST Reimplementation. (#327) 2019-11-14 13:55:45 +01:00
Marcin Kostrzewa
3929b3f72c
Implement call strategy controls and a functional if statement. (#328) 2019-11-13 12:27:52 +01:00
Ara Adkins
bfe81a731f
Reorganise repo for further development (#308) 2019-11-08 17:32:48 +00:00