Skip to content

Commit

Permalink
project version up: 1.4.3
Browse files Browse the repository at this point in the history
* release candidate to release

Misc update in readme.  going to allow cmake 3.8 for this version.
It seems features are enough.
If there are some needs, it will be added in version 1.5.x
  • Loading branch information
luncliff committed Jun 6, 2019
1 parent 771b5a4 commit 74467cb
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 15 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#
cmake_minimum_required(VERSION 3.8) # c++ 17

project(coroutine LANGUAGES CXX VERSION 1.4.2)
project(coroutine LANGUAGES CXX VERSION 1.4.3)

# import cmake code snippets. see `cmake/`
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
Expand Down
23 changes: 12 additions & 11 deletions ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,12 @@ C++ Coroutine in Action.

In that perspective, the library will be maintained as small as possible. Have fun with them. **And try your own coroutines !**

### Signpost
## Developer Note

* Start with the [wiki](https://github.com/luncliff/coroutine/wiki).
You will visit the [test/](./test/) and [interface/](./interface/coroutine) folder while reading the docs.
* This repository has some custom implementation for the C++ Coroutine spec in the [`<coroutine/frame.h>`](./interface/coroutine/frame.h)

## Developer Note

### Architecture

**This library is for x64**.
Expand All @@ -50,7 +48,7 @@ If there is a collision(build issue), please make an issue in this repo so I can
#include <coroutine/frame.h>
```

Generator and async generator
Generator and async generator. Notice that the async generator is experimental. If you are curious with the concept, reference [the kirkshoop's repo](https://github.com/kirkshoop/await).

```c++
#include <coroutine/yield.hpp> // enumerable<T> & sequence<T>
Expand All @@ -59,20 +57,23 @@ Generator and async generator
Utility types are in the following headers

```c++
#include <coroutine/return.h> // return type examples for convenience
#include <coroutine/concrt.h> // concurrency utilities over system API
#include <coroutine/return.h> // return type for resumable functions
#include <coroutine/concrt.h> // concurrency utilities
```

Go language style channel to deliver data between coroutines. Supports awaitable read/write and select operation are possible. But it is slightly differnt from that of Go language.
Go language style channel to deliver data between coroutines. It Supports awaitable read/write and select operation are possible.

But it is slightly differnt from that of the Go language because we don't have a built-in scheduler in C++. Furthermore Goroutine is quite different from the C++ coroutine.
It may not a necessary feature since there are so much of the channel implementation, but I'm sure **breakpointing** this one will **train** you.

```c++
#include <coroutine/channel.hpp> // channel<T, Lockable>
#include <coroutine/channel.hpp> // channel<T> with Lockable
```

Network Asnyc I/O and some helper functions are placed in one header.
Awaitable socket operations using system API are also available. I used `epoll`, `kqueue` and Overlapped I/O of the Windows.

```c++
#include <coroutine/net.h> // async i/o for sockets
#include <coroutine/net.h> // Awaitable I/O operations and some helpers
```

## How To
Expand All @@ -87,7 +88,7 @@ Create an issue if you think another configuration is required.
* Visual Studio 2017 (CMake)
* Ubuntu 16.04 + Clang 6.0
* Mac OS + AppleClang
* Windows + Clang-cl
* Windows + Clang-cl (LLVM 8)
* [`.travis.yml`](./.travis.yml)
* Mac OS + AppleClang
* Ubuntu 16.04 + Clang 7
Expand Down
3 changes: 2 additions & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ for:
compiler: clang
install:
- ps: Write-Host $env:APPVEYOR_BUILD_FOLDER $env:PLATFORM $env:CONFIGURATION
- ps: choco install --no-progress ninja # Download Ninja with chocolaty package manager
- ps: choco install --yes --no-progress ninja # Download Ninja with chocolaty package manager
- ps: choco install --force --yes --no-progress cmake
- ps: choco info llvm # LLVM is already installed. So just show the version info
before_build:
- ps: clang-cl --version # <-- cl.exe for clang
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ android {
targetSdkVersion 27

// Follow native code's verson
versionCode 142
versionName "1.4.2"
versionCode 143
versionName "1.4.3"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

// External Native build: CMake
Expand Down

0 comments on commit 74467cb

Please # to comment.