|
4 | 4 |
|
5 | 5 | ### Dependences:
|
6 | 6 |
|
7 |
| - * scala 2.11.7 + |
8 |
| - * akka 2.4.2 + |
9 |
| - * scala-async 0.9.5 |
| 7 | + * scala 2.12.1 or 2.11.8 |
| 8 | + * akka 2.4.14 + |
| 9 | + * scala-async 0.9.6 |
10 | 10 |
|
11 | 11 | #### Download:
|
12 | 12 |
|
13 |
| - libraryDependencies += "com.github.rssh" %% "scala-gopher" % "0.99.7" |
| 13 | + libraryDependencies += "com.github.rssh" %% "scala-gopher" % "0.99.8" |
14 | 14 |
|
15 |
| -(or `0.99.8-SNAPSHOT` for development version). |
| 15 | +(or `0.99.9-SNAPSHOT` for development version). |
16 | 16 |
|
17 | 17 | Scala-gopher is open source (license is Apache2); binaries are available from the maven-central repository.
|
18 | 18 |
|
@@ -105,7 +105,7 @@ val s = goScope{
|
105 | 105 |
|
106 | 106 | `go[T](body: =>T)(implicit ex:ExecutionContext):Future[T]` starts asynchronous execution of `body` in provided execution context. Inside go we can use `defer`/`recover` clauses and blocked read/write channel operations.
|
107 | 107 |
|
108 |
| - Go implemented on top of [SIP-22](http://docs.scala-lang.org/sips/pending/async.html) async and share the same limitations. |
| 108 | + Go implemented on top of [SIP-22](http://docs.scala-lang.org/sips/pending/async.html) async and share the same limitations. In addition to async/await transfoirm `go` provide lifting up asynchronous expressions inside some well-known hight-order functions (i.e. it is possible to use async operations inside for loops). Details are available in the tech report: https://arxiv.org/abs/1611.00602 . |
109 | 109 |
|
110 | 110 | ## Channels
|
111 | 111 |
|
@@ -223,7 +223,7 @@ val consumer = gopherApi.select.forever{
|
223 | 223 | Await.ready(consumer, 5.second)
|
224 | 224 | ~~~
|
225 | 225 |
|
226 |
| - Combination of variable and select loop better modeled with help 'fold over select' construction: |
| 226 | + A combination of variable and select loop better modeled with help 'fold over select' construction: |
227 | 227 |
|
228 | 228 | ~~~ scala
|
229 | 229 | val sum = gopherApi.select.afold(0) { (state, selector) =>
|
@@ -508,6 +508,8 @@ r.inA.duplicate()
|
508 | 508 | * presentations:
|
509 | 509 | * Odessa Java/Scala Labs; Kiev Scala Meetup: Oct. 2014: http://www.slideshare.net/rssh1/scala-gopher2014
|
510 | 510 | * Wix R&D meetup. Mart 2016: http://www.slideshare.net/rssh1/csp-scala-wixmeetup2016
|
| 511 | + * Scala Symposium. Oct. 2016. Amsterdam. http://http://www.slideshare.net/rssh1/scalagopher-cspstyle-programming-techniques-with-idiomatic-scala |
| 512 | +* techreport: http://www.slideshare.net/rssh1/scalagopher-cspstyle-programming-techniques-with-idiomatic-scala |
511 | 513 |
|
512 | 514 |
|
513 | 515 | Some related links:
|
|
0 commit comments