• Stars
    star
    146
  • Rank 244,312 (Top 5 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

experimental CPS transformer for dotty

πŸ‡ΊπŸ‡¦ HELP UKRAINE

I'm the creator of this project. My country, Ukraine, is being invaded by the Russian Federation, right now. If you want to help my country to fight, consider donating to charity supporting Ukrainian army. More options is described on support ukraine site.

dotty-cps-async

This is the implementation of async/await transformation for Scala 3 (Dotty), based on an optimized version of CPS (Continuation Passing Style) transformation, where the continuation is β€˜pushed’ to the monad.

Highlights

  • Full support of all Scala language constructs in async/await block.
  • Pluggable monad interface:
    • An await monad can be any trait for which it is possible to implement CpsAsyncMonad type class. You can provide those methods for your favorite monad.
  • Limited support of high-order functions:
    • urls.map(fetchData(_))(await _ ) is an idiomatic way to fetch data for all items in parallel.
    • An application developer or library author can provide 'shifted' implementation of the own high-order functions.
  • Optional features, which enhance ergonomics in some cases, such as automatic coloring and handling discarded values
  • Optional SIP-22 compatible API.

For more details, please, read the documentation at https://rssh.github.io/dotty-cps-async/.

Presentations

More Repositories

1

scala-gopher

Implementation of CSP constructions (Communication Sequence Process, i.e. go-like channels) in scala
Scala
201
star
2

dou_pl_questionare

row data and some R scripts for work with questionare.
R
29
star
3

trackedfuture

small runtime + java-agent, which brings back full stacktrace for exceptions, generated inside Future callbacks (like apply, map, flatMap, etc..)
Scala
29
star
4

cps-async-connect

Scala
16
star
5

notes

just place for some random notes about programming
Scala
7
star
6

stermware

termware next generation
Scala
3
star
7

fixture-state-management

extension to scalatest for testing with fixture states (such as relational databases)
Scala
3
star
8

termware2

termware2 - java based system for term rewriting
Java
3
star
9

JPE

Java Partial Evaluator
Java
2
star
10

dotty-loom

Proof of concept implementation of async/await over JDK Loom Continuations.
Scala
2
star
11

scala-training-materials

Matherials for scala training - project templates.
Scala
2
star
12

shim--scala-async--dotty-cps-async

shim which allows to compile scala program which use scala-async on dotty with dotty-cps-async
Scala
2
star
13

jungle.public

javaee framework
Java
1
star
14

gtugio

gtugio
Groovy
1
star
15

javachecker2

framework for java source code analysis
Java
1
star
16

rlm_protobuf

protol buffers module for freeradius
C
1
star
17

scala-language-import

compiler plugin and runtime, which allow
Scala
1
star
18

wifi-sharing---desktop

desktop part of wi-sharing application
C++
1
star
19

codespace-scala-training

codespace-scala-training-1
Scala
1
star
20

google-buzz-client-complete

fork of google buzz client, which is more complete, than existent. (Hope, it will be merged with origin in feature)
Java
1
star