Commit Graph

502 Commits

Author SHA1 Message Date
Ara Adkins
2c5ed028aa
Band-aid the "template pattern segment" error (#1509) 2021-02-25 09:46:03 +00: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
Radosław Waśko
8d7315758d
Change Graal Version from SemVer to String (#1493) 2021-02-19 12:56:27 +01:00
Dmitry Bushev
5ba3b5d13f
Abandon Terminating Language Server (#1463)
Wait for the LS shutdown, spawn the new one,
and only then reply to the client.
2021-02-11 15:44:50 +03:00
Dmitry Bushev
379d17fe3d
Return Engine Version Used in Opened Project (#1454)
add `engineVersion` field with the required Enso version
2021-02-09 13:55:32 +03:00
Maciej Mikołajek
5e309bddcb
Fix code docs, add new tags to doc parser, fix Tag.unrecognized and parens in text. (#1452) 2021-02-09 09:47:29 +01:00
Marcin Kostrzewa
c4a0772190
Polyglot JS Definitions (#1451) 2021-02-08 18:14:54 +01:00
Ara Adkins
e83b18f828
Improve the handling of dataflow errors (#1433) 2021-01-27 13:41:19 +00:00
Sylwia Brodacka
c741f1a095
Update Main.enso (#1419)
* Update lib/scala/pkg/src/main/resources/Main.enso
2021-01-20 13:19:49 +01:00
Łukasz Olczak
d257615ef1
Fix for SQLite DB busy error on Azure (#1395)
depending on an environmental variable is used either 
default locking mode or a mode that uses flock syscall
2021-01-19 12:07:17 +03:00
Radosław Waśko
10bccf6b56
Better component handling in the project manager (#1399) 2021-01-15 15:26:51 +00:00
Ara Adkins
a7bd90ab8f
Document the runtime's builtin functionality (#1397) 2021-01-14 15:31:15 +00:00
Radosław Waśko
d30a80eedc
Fix the project manager reflection configuration (#1394) 2021-01-14 10:46:01 +00: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
Maciej Mikołajek
03f3c2b661
Fix doc parser's tags and unrecognized characters. (#1380)
* add chars

* tag fixes

* tag fixes

* IMPORTANT : Removal of '#' because of scala parser breaking the doc string. To be reverted in the future.

* Remove links (TO BE READDED)

* back

* le petit refacteur

* fix

* fix
2021-01-08 19:43:23 +01:00
Radosław Waśko
cc24b6f366
Download releases from the main repo (#1387) 2021-01-05 14:14:08 +00:00
Radosław Waśko
322a967cda
Fix Logging Service Preventing Normal Shutdown (#1377) 2020-12-30 12:49:56 +01:00
Łukasz Olczak
291cbfa6ee
Runtime Containerisation (#1345) 2020-12-23 18:56:30 +01:00
Radosław Waśko
6075c1e765
Implement LocalReleaseProvider (#1370) 2020-12-21 23:30:59 +01:00
Ara Adkins
4cc36e8c81
Preparation for more parser work (#1363) 2020-12-18 14:25:30 +00:00
Łukasz Olczak
4c1e7a4319
Readiness and liveness probes for Language Server (#1359) 2020-12-16 17:05:37 +01:00
Radosław Waśko
2e6a5af4fb
Split Installer Versions in Manifest (#1355) 2020-12-16 12:34:33 +01:00
Maciej Mikołajek
6e90464e8a
Enso Docs: Fix inline scripts. (#1300) 2020-12-15 22:25:04 +01:00
Radosław Waśko
de817af655
Finish Logging Service Integration (#1346) 2020-12-15 09:49:58 +01:00
Radosław Waśko
25561e4c8c
Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
Dmitry Bushev
a6b2415188
Add JSON-RPC Timeout Error (#1332)
Add a separate timeout error to distinguish between
the request timeouts and other service errors.
2020-12-09 15:53:00 +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
Radosław Waśko
9e1b49d245
Forking Language Server in the Project Manager (#1305) 2020-12-02 16:56:47 +01:00
Ara Adkins
cf9be4ff29
Add Number.noise to the standard library (#1295) 2020-11-18 13:03:28 +00:00
Radosław Waśko
4d5f794122
Integrating Runtime Version Manager with Project Manager (#1285)
Related to #1153, implements the first part of the integration, without the
parts that use the runner which will be done next.
Temporarily there are two logger implementations - this will be alleviated with
the next part - when and the direct classpath dependency on the language server
is removed.
2020-11-16 18:49:59 +01:00
Maciej Mikołajek
2c3f2014b2
Enso Docs: Proper indentation in HTML render of code block and copy button. (#1288) 2020-11-13 15:36:47 +01: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
Radosław Waśko
c3b2059a6b
Make Locking Thread-Safe (#1267) 2020-11-06 13:53:45 +01:00
Radosław Waśko
5701db6d89
Update Project Manager Protocol (#1240) 2020-11-02 09:58:33 +01:00
Ara Adkins
e5695e6f5d
Complete the implementation of the Enso lexer (#1177) 2020-10-30 14:06:24 +00:00
Radosław Waśko
35efd8ea55
Separate ComponentManager from Launcher (#1248) 2020-10-30 12:31:31 +01:00
Radosław Waśko
79b718e28b
Make Legal Review Required For PRs (#1246) 2020-10-28 18:12:12 +01: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
Marcin Kostrzewa
8668079337
Opt-in TCO (#1219) 2020-10-15 16:52:26 +02:00
Marcin Kostrzewa
a2be12c3e9
Allow Underscores in Project Names (#1209) 2020-10-09 15:23:44 +02:00
Maciej Mikołajek
91346a41fc
Remove documentation style sheet, fix code blocks (#1202) 2020-10-08 13:59:18 +01:00
Ara Adkins
f00b187438
Extract common libraries to rust-lib (#1191) 2020-10-06 10:54:30 +01: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
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
Radosław Waśko
5cd977e904
Add Locks to the Launcher (#1147)
Adds file-based locks that synchronize access and modification of
components by various launcher instances.
2020-09-18 17:37:22 +02:00
Dmitry Bushev
9666d9065e
Fix project manager projects loading (#1145)
Fix loading of Enso projects in the enso/projects directory
2020-09-14 15:17:54 +03:00
Dmitry Bushev
033ccd5aec
Setup Runtime logging (#1128)
Configure logging of the Runtime context.
2020-09-09 18:16:59 +03:00
Radosław Waśko
044a0fa664
Implement Launcher Self-Update (#1125) 2020-09-09 15:37:26 +02:00
Dmitry Bushev
e92b9d0fc0
Store Project Manager Metadata in Project Directory (#1120)
Project Manager to stores its metadata inside the project directory, 
instead of maintaining the global index. This will allow users to move 
and modify files inside the ~/enso directory.
2020-09-07 12:25:14 +03:00
Radosław Waśko
2da720b1a9
Improve CLI Parameters Parsing (#1117) 2020-09-03 12:44:21 +02:00
Radosław Waśko
60d0c2ae45
Use Runner to Create Projects in Launcher (#1116) 2020-09-01 13:23:27 +02:00
Marcin Kostrzewa
4e337840cf
No Implicit Builtins (#1114) 2020-09-01 11:21:26 +02:00
Radosław Waśko
eea08a9fca
Configuration Management in the Launcher (#1112)
Names of fields `author` and `maintainer` in the `package.yaml` file
have been changed to `authors` and `maintainers` respectively, and their
format has been modified.
Projects created in older versions may not be compatible.
2020-08-31 15:53:33 +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
Dmitry Bushev
8e764f957b
Add Log Level Options to Project Manager (#1092)
Set the project manager log level from the CLI options
2020-08-21 13:02:52 +03: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
Radosław Waśko
a6b0a96f97
Add uninstallation functionality to the launcher (#1089) 2020-08-20 12:50:26 +01:00
Radosław Waśko
c979938527
Run components through the launcher (#1073) 2020-08-19 13:24:31 +01:00
Josef
5345bdcb3e
Stub Out the Parser Interface (#1065) 2020-08-14 11:10:52 +02:00
Ara Adkins
43f7b838f9
Implement code generation for the flexer (#1058) 2020-08-13 13:23:01 +01:00
Radosław Waśko
11868cb528
Enso Version Management in the Launcher (#1059)
- Adds support for downloading engine and runtime versions in the launcher.
- Adds functionality to install, list and uninstall engine components.
2020-08-10 12:14:39 +02: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
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
Ara Adkins
37cdd60fea
Refactor the flexer to enable code generation (#1040) 2020-08-03 18:26:10 +01:00
Dmitry Bushev
ef165e4f23
Emit value updates only on change (#1051) 2020-08-03 15:38:39 +01:00
Josef
359a768d2b
Integrate the Scala AST Generation with SBT (#1047) 2020-08-03 16:00:12 +02:00
Josef
8bb583df5e
Generate Scala Classes From The Stub AST (#1044) 2020-07-31 07:31:12 +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
93c4453299
Update ExpressionValueUpdate Notification API (#1033)
ExpressionValueUpdate notification contains information about the
executed object. To have the full information about this object, IDE
needs the id of the corresponding suggestion. PR updates the
notification adding the suggestion id of the executed object.

- update: public API for ExpressionValueUpdate notification
- update: ContextEventsListener groups ExpressionValueUpdates and sends
  them in a batch
- update: ContextRegistry listens to the notifications from runtime and
  routes them to the corresponding listener.
- test: add ContextEventsListenerSpec
2020-07-28 23:24:04 +03:00
Radosław Waśko
7dcfef0503
Add Installation Mechanism in the Launcher
1. Implements the `enso install distribution` command.
2. Implements a DistributionManager which is used for managing installation
   layout in the launcher.

PR #1034
Resolves #1010
2020-07-28 14:57:52 +02:00
Radosław Waśko
e8e44f68ad
[Feat, Tool] Add CLI Parser for the Launcher
1.  This commit adds an extensive library for parsing commandline
    arguments and formatting output.
2.  It implements the expected CLI for the launcher.
3.  It turns off parallel execution on the CI in hopes of making it
    more stable.
4.  It implements plugin support in the launcher.
2020-07-22 19:28:03 +02:00
Dmitry Bushev
45d75536aa
Wait for Suggestions Database Initialization (#1025) 2020-07-22 17:12:52 +03:00
Josef
cf79d99f3f
Create a stub AST for the parser (#1019) 2020-07-22 12:45:08 +01:00
Marcin Kostrzewa
6137c6559b
Method naming fixes (#1024) 2020-07-22 12:01:35 +02:00
Josef
9fcd4e2f3a
Add a lazy input reader for flexer (#1014) 2020-07-21 16:25:02 +01:00
Maciej Mikołajek
84e565e8bc
Add function to generate doc HTML from text (#1023) 2020-07-21 14:43:49 +01:00
Ara Adkins
f5ffbe8fa7
Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
Dmitry Bushev
b8ff893840
Enable FlakySpec only on Windows (#1015) 2020-07-20 17:13:37 +03:00
Maciej Mikołajek
157582b81e
Create documentation generator websocket wrapper (#1017) 2020-07-20 15:05:27 +02:00
Dmitry Bushev
30d136a141
Integration with the Searcher Database (#994) 2020-07-20 11:00:49 +03:00
Maciej Mikołajek
2801f58ba9
Expose connection with Documentation parser and generator in ScalaJS artifact (#1002)
* Get string of HTML-code from generator

* Export doc parser generator to JS

* test

* ren
2020-07-17 11:25:09 +02:00
Marcin Kostrzewa
40f44b5b9e
Test Framework for Enso (#998) 2020-07-16 15:53:27 +02:00
Josef
f068509b2e
Automate the Rust Code Generation (#990) 2020-07-15 11:29:13 +02:00
Dmitry Bushev
01217d036c
Increase timeouts on Windows CI (#988) 2020-07-14 14:44:40 +03:00
Josef
2626bf21f2
Flexer Tests (#983) 2020-07-13 13:15:40 +02:00
Radosław Waśko
610a38df9a
Launcher Native Image Build (#970) 2020-07-10 12:57:42 +02:00
Łukasz Olczak
728fe2e6ed
Move project dirs on project close (#979) 2020-07-08 20:30:16 +02:00
Radosław Waśko
0c33d5d841
Launcher Design (#963) 2020-07-08 15:54:41 +02:00
Ara Adkins
fd3e3df92c
Refactor the Flexer (#972) 2020-07-08 14:20:00 +01:00
Dmitry Bushev
6ba038c800
Implement Search Requests API (#953) 2020-07-06 16:55:21 +03:00
Ara Adkins
919ffbdfac
Refactor the crate structure (#967) 2020-07-03 14:42:45 +01:00
Radosław Waśko
7c7352fa72
Fix logger warnings in tests (#965) 2020-07-03 13:02:27 +01:00
Łukasz Olczak
ce538aafa4
Bugfix for project path collisions (#962) 2020-07-03 13:11:35 +02:00
Radosław Waśko
001509b3b8
Fix missing warning for unused arguments (#960) 2020-07-02 13:39:42 +02:00
Łukasz Olczak
b990f39784
Version option for Project Manager (#935) 2020-07-02 12:11:51 +02:00
Radosław Waśko
c3a0d249b1
Fix testOnly after Java 11 migration (#958) 2020-07-01 17:48:03 +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
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
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
Łukasz Olczak
5101840dae
Bugfix for text/applyEdit Reports Trailing Empty Line to be an Invalid Position (#934) 2020-06-24 18:47:40 +02:00
Ara Adkins
94c7e77e03
Update references to Luna to be Enso (#931) 2020-06-24 12:07:24 +01:00
Dmitry Bushev
9ba1aa6d34
Implement the Suggestions Database (#846) 2020-06-23 11:26:05 +03:00
Łukasz Olczak
a59f82b821
Support for Listing All Available Projects (#842) 2020-06-19 11:37:35 +02: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
Dmitry Bushev
e1077e0389
Add RetrySpec to tests (#828)
Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-06-16 10:20:51 +01: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
Ara Adkins
d1ab83b4f1
Update the configuration for new default branch 2020-06-15 14:25:55 +01:00
Łukasz Olczak
214cf164c5
Robust stoppage of the Language Server (#826) 2020-06-10 15:51:38 +02:00
Dmitry Bushev
2a3ec07c87
Runtime Cache Integration Part 2 (#800) 2020-06-04 20:25:23 +03:00
Michał Wawrzyniec Urbańczyk
b105bc1f01
Fix AST.Block inconsistency between reprBlock and ozipBlock. (#808) 2020-06-04 14:52:14 +02:00
Marcin Kostrzewa
e2bac23e26
Handles disable and doc comments (#780) 2020-05-27 14:59:23 +02: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
Dmitry Bushev
5be8ec20bc
Add FlakySpec Test Suite (#768) 2020-05-20 19:05:09 +03:00
Marcin Kostrzewa
64e3f07903
Auto-imported Std Lib and File Operations Cleanup (#771) 2020-05-20 17:05:22 +02: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
Łukasz Olczak
a42495a68e
Project Manager package (#745) 2020-05-15 13:05:44 +02:00
Łukasz Olczak
7d82b1abee
Fix Flatbuffers Issues for IDE (#741) 2020-05-13 14:21:33 +02: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
Dmitry Bushev
0d12d98b9d
Update Language Server Spec (#726)
* doc: update executionContext/fork API

* doc: qualified name

* doc: add execution context example

* update: executionContext/create

* doc: cleanup

* doc: add Main.enso contents

* update: init execution context

* doc: update executionContext/push

* debug: clean

* Revert "debug: clean"

This reverts commit 1c71f0b678192363a61d6ac5d7509bd234d2a697.

* test: disable flaky ProjectManagerApiSpec
2020-05-08 20:30:47 +03:00
Ara Adkins
50e307e6ee
Bump scalac version to 2.13.2 (#703) 2020-04-30 20:30:55 +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
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
Łukasz Olczak
413962df92
Implementation of The Visualisation Binary Protocol (#665) 2020-04-23 12:42:59 +02:00
Marcin Kostrzewa
e2d901fb68
Module file operations through execution server (#660) 2020-04-20 14:33:51 +02:00
Dmitry Bushev
86fdc07ce0
Run scalafmt after updating its version (#661) 2020-04-17 17:05:56 +01:00
Łukasz Olczak
50e6072b41
Flatbuffers integration (#655) 2020-04-17 15:47:58 +02:00
Michał Wawrzyniec Urbańczyk
839967d2ac
Fixed an issue where traversing AST with offset yielded wrong results for a code Block. (#647) 2020-04-15 17:09:15 +02:00
Łukasz Olczak
d296ac1ef8
Implementation of session initialisation (#649) 2020-04-15 12:56:11 +02:00
Ara Adkins
8a99415a30
Fix warnings, docs, and repo structure (#651) 2020-04-14 17:00:51 +01:00
Ara Adkins
bfe81a731f
Reorganise repo for further development (#308) 2019-11-08 17:32:48 +00:00
Josef
59bcabeb21
Remove Runtime Reflection In Parser. (#267) 2019-10-31 14:50:27 +01:00
Wojciech Daniło
457a8128e8 Parser (#172) 2019-09-12 16:47:25 +02:00