Luncliff Coroutine Versions Save

C++ 20 Coroutines in Action (Helpers + Test Code Examples)

1.5.0

4 years ago

TBA

1.4.3

4 years ago

Glad to be registered in the C++ links: Coroutines !

Features

Note that this version is not compatible with 1.4.2 or before.
Detailed descriptions are in the wiki.

#include <coroutine/frame.h>      // This header includes/overrides <experimental/coroutine>
#include <coroutine/yield.hpp>    // enumerable<T> & sequence<T>
#include <coroutine/return.h>     // return type for resumable functions
#include <coroutine/concrt.h>     // concurrency utilities over system API
#include <coroutine/channel.hpp>  // channel<T> with Lockable
#include <coroutine/net.h>        // Awaitable I/O operations and some helpers

Changes

Type Rename

There was type renaming in the network code.

#include <coroutine/net.h>

Change of the test framework

Catch2 is removed from the test codes.
The work spent time more than expected, but it was necessary to detect compilers' problem correctly and make ease of reproducing the issue.

Support

Tool/Platform support is just like the 1.4.2 release.

Known Issues

1.4.2

5 years ago

I had a presentation in C++ Korea Facebook Group's Seminar. You can download and share it :)
Exploring The C++ Coroutine: Approach, Compiler, and Issues (+ 한국어 버전)

Features

Note that this version is not compatible with 1.4.1 or before.

  • Removed <coroutine/suspend.h>.
  • <coroutine/frame.h> now works with VC++ header <experimental/resumable>

Detailed descriptions are in the wiki.

#include <coroutine/frame.h>      // This header includes/overrides <experimental/coroutine>
#include <coroutine/yield.hpp>    // enumerable<T> & sequence<T>
#include <coroutine/return.h>     // return type examples for convenience
#include <coroutine/concrt.h>     // concurrency utilities over system API
#include <coroutine/channel.hpp>  // channel<T, Lockable>
#include <coroutine/net.h>        // async i/o for sockets

Support

Tool

Android NDK build is now available. It took tool long. Sorry! :(

  • Visual Studio 2017, 2019
  • CMake (3.14 or later)
  • Android Studio (see the build.gradle)

Platform

From the CI Env

  • Windows 10
    • SDK 10.0.14393.0
  • MacOS
    • Darwin-18.5.0 Xcode 10.1
  • Ubuntu 16.04
    • Linux-4.15.0-1028-gcp

From the developer's Env

  • Windows Subsystem for Linux (Ubuntu 18.04)
    • Linux 4.4.0-17763-Microsoft
      379-Microsoft Wed Mar 06 19:16:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

Compiler

  • msvc: vc141, vc142
  • clang-cl: 7.0.1, 8.0
  • clang: 6.0.1, 7.0
  • AppleClang: 10.0.1.10010046

1.4.1

5 years ago

The feature is same with Release 1.4.

Changes

  • Build related issue
  • Updated some wrong test codes

1.4

5 years ago

Wiki is now available.

Features

Interface header files

  • coroutine frame
  • suspend helper types
  • channel
  • generator / async generator
  • socket I/O

Build Support

Build Status Build status Build Status

Tool

  • Visual Studio
  • CMake

Package Manager

  • vcpkg

Platform

  • Windows 10 - SDK 10.0.14393.0 (or later)
  • MacOS - Darwin-17.7 Xcode 10.0
  • Ubuntu Xenial(16.04) - Linux-4.15.0-1026-gcp

Requires latest libc++(6.0.0 or later) installation.

Compiler

  • MSVC (v141)
  • AppleClang 10.0.0.10001145
  • Clang 6.0, 7
  • clang-cl (7.0 : build is available, but test is broken)

1.3

5 years ago

Features

Interface header files

  • coroutine frame
  • thread switching
  • channel
  • generator / async generator

Build Support

Build Status Build status Build Status

Tool

  • Visual Studio
  • CMake

Platform

  • Windows 10 - SDK 10.0.14393.0 (or later)
  • MacOS - Darwin-17.4.0 Xcode 9.4
  • Ubuntu Xenial(16.04) - Linux-4.15.0-1023-gcp
  • Ubuntu Bionic(18.04) - Linux-4.15.0-1023-gcp

Requires latest libc++(6.0.0 or later) installation. There is a support script for the purpose

Compiler

  • MSVC (v141)
  • AppleClang 9.1.0.9020039
  • Clang 6.0
  • Clang 7