You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Supervised by [@cvogt](https://github.com/cvogt) and/or [@szeiger](https://github.com/szeiger)
56
57
@@ -60,7 +61,7 @@ There are lots of open tickets in the Slick issue tracker. Some which have long
60
61
be about tackling as many of them as time permits. It will be a good chance to learn about the Slick code base
61
62
and have an impact in this successful project. Some issues may be simple, but many issues may be challenging to fix and will require someone smart, dedicated and persistent enough to learn the details of how Slick works.
Supervised by [@cvogt](https://github.com/cvogt) and/or [@szeiger](https://github.com/szeiger)
66
67
@@ -69,7 +70,7 @@ Supervised by [@cvogt](https://github.com/cvogt) and/or [@szeiger](https://githu
69
70
Super-charged for-comprehensions are an effort to implement an alternative direct-style dyntax for monadic comprehensions in Scala.
70
71
The goals are reduction in syntax, enabling more control flow expressions, inline Monad value extraction and transformer operations on the Monad context (as in Comprehensive Comprehensions). At the time of writing the project is in heavy flux. Depending on its status there will likely be interesting idea how to take the project further. One likely topic would be exploring type changing comprehensive comprehension transformers, such as groupBy or aggregations. The implementation heavily relies on macros and will require learning how to work with Scala's compiler ASTs and make changes to the AST transformation stages.
71
72
72
-
Work in progress: https://github.com/cvogt/flow-comprehensions
73
+
Work in progress: [https://github.com/cvogt/flow-comprehensions](https://github.com/cvogt/flow-comprehensions)
73
74
74
75
Supervised by [@cvogt](https://github.com/cvogt)
75
76
@@ -100,7 +101,7 @@ Supervised by [@axel22](https://github.com/axel22)
100
101
101
102
### Better Scripts in Scala
102
103
103
-
There are several hacky, ad-hoc ways to write scripts in Scala already, e.g. SBT's script-runner, and the Ammonite REPL's script loader. Your task in this project would be to improve the experience writing scripts using Ammonite to be on-par with the experience writing scripts in any other language, as well as on-par with the experience writing Scala code in a large project. This includes:
104
+
There are several hacky, ad-hoc ways to write scripts in Scala already, e.g. SBT's script-runner, and the [Ammonite REPL](https://github.com/lihaoyi/Ammonite)'s script loader. Your task in this project would be to improve the experience writing scripts using Ammonite to be on-par with the experience writing scripts in any other language, as well as on-par with the experience writing Scala code in a large project. This includes:
104
105
105
106
* Improving startup time: SBT is terribly slow, and even Ammonite scripts take 1-2 seconds to boot up, This is speed-up-able.
106
107
* Improved error reporting: Ammonite's scripts currently report line-numbers and file-names based on the mangled compilation-unit. We should report based on the location within the source file a user wrote.
@@ -112,13 +113,13 @@ Supervised by [@lihaoyi](https://github.com/lihaoyi/)
112
113
113
114
### Flexible Fast Parser Combinators
114
115
115
-
The FastParse library is a modern replacement for Scala's old parser combinators library. It provides similar API, drops a lot of redundant operators, and runs 50-100x faster. However, right now it only parses Strings.
116
+
[The FastParse library](https://github.com/lihaoyi/fastparse) is a modern replacement for Scala's old parser combinators library. It provides similar API, drops a lot of redundant operators, and runs 50-100x faster. However, right now it only parses Strings.
116
117
117
118
This project would be to extend FastParse to parse other things. Cases to cover include:
118
119
119
-
* Binary data: Array[Byte], ByteBuffer, ByteString, letting us parse things like binary files, network protocols, or other formats
120
-
* Streaming data: Iterator[String] and Iterator[Char], letting us parse files while not materializing the entire contents in memory
121
-
* Pre-tokenized data: Seq[T] for an arbitrary T, letting you re-use a pre-written lexer before your parser
120
+
* Binary data: `Array[Byte]`, `ByteBuffer`, `ByteString`, letting us parse things like binary files, network protocols, or other formats
121
+
* Streaming data: `Iterator[String]` and `Iterator[Char]`, letting us parse files while not materializing the entire contents in memory
122
+
* Pre-tokenized data: `Seq[T]` for an arbitrary `T`, letting you re-use a pre-written lexer before your parser
122
123
123
124
Using virtual classes, we should be able to extend FastParse to do this while still re-using most of our code. Your task would be to:
124
125
@@ -162,7 +163,8 @@ the REPL experience in Dotty. In this project you're going to expand
162
163
current minimalistic REPL with advanced functionality to improve
0 commit comments