GithubHelp home page GithubHelp logo

isabella232 / libraries Goto Github PK

View Code? Open in Web Editor NEW

This project forked from stlab/libraries

0.0 0.0 0.0 15.27 MB

ASL libraries will be migrated here in the stlab namespace, new libraries will be created here.

Home Page: https://stlab.cc

License: Boost Software License 1.0

C++ 93.65% CMake 4.18% Shell 0.58% Batchfile 0.16% Python 1.43%

libraries's Introduction

This is the source code repository of the Software Technology Lab (stlab).

ASL libraries will be migrated here in the stlab namespace, new libraries will be created here.

Branch states

  • main: Main status AppVeyor Code Coverage Coverty Scan

Content

Concurrency

This library provides futures and channels, high level abstractions for implementing algorithms that eases the use of multiple CPU cores while minimizing contention. This library solves several problems of the C++11 and C++17 TS futures.

Documentation

The complete documentation is available on the stlab home page.

Release changelogs are listed in CHANGES.md.

Supported Platforms

  • All OS that have a C++14 compliant compiler

Requirements

  • C++14 Compiler -- Visual Studio 2017 (>= 15.9.0), Visual Studio 2019 -- gcc (>= 7) -- clang (>= 6)
  • boost.optional and boost.variant if the compiler's library does not provide them
  • boost.test only for the unit tests

Building

First, you will need the following tools:

conan and cmake are available on the Mac via Homebrew. cmake is available on Windows via scoop.

Once they're set up, run either setup_xcode.sh or setup_msvc.bat for the platform of your choice. It will setup all necessary library dependencies and create the platform-specific project file in the ./build/ directory.

Microsoft Windows Platform Build Notes:

  • If you are using conan for the first time, add --build missing to conan command call in setup_msvc.bat script
  • Use administrator command prompt if you get issues in manifest creation during setup_msvc.bat run (ex: mt : general error c101008d)

Upcomming Changes in Version 2

  • Currently we are redesigning the interface of the future class. We will make the associated executor of a task more explicit by removing the implicit "inheritance" of the executors from the previous future. So a continuation will not get automatically the same executor from its predecessor. If non is provided, then it will be automatically be executed via the immediate_executor.
  • As well we will remove all .then() and .recover() functions from the future interface. Only the operator|() and operator^() will remain. So the pipe notation, as it is comming with C++20 ranges, will become the only choice. Obviously this will be a breaking change.
  • In parallel we think about changing the then former recover() function signature, see issue #263.

libraries's People

Contributors

aaronalbers avatar apmccartney avatar dixlorenz avatar felixpetriconi avatar fernandopff avatar fosterbrereton avatar fpelliccioni avatar frans-willem avatar friendlyanon avatar jaredadobe avatar kypp avatar manu343726 avatar neil-ca-moore avatar nickpdemarco avatar olnrao avatar rwols avatar sdebionne avatar sean-parent avatar superfunc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.