Clone or download
Permalink
Failed to load latest commit information.
.paket Move bootstrapper as magic mode paket Sep 21, 2018
.vscode [infra] compiles on .Net Core Sep 9, 2016
Benchmarks A few missing ServerGC elements and new FsiRefGen Sep 19, 2018
Docs Add escape for pipe characters Jun 22, 2017
Examples Use FAKE to build Sep 21, 2018
FsiRefGen @ f88f9b2 Latest FsiRefGen Sep 20, 2018
Libs Use FAKE to build Sep 21, 2018
Tests/AdHocTests Update README.md, remove xml header from two projects Sep 19, 2018
.env Upgrade to .Net 4.7.1, add .env file for quick compilation on non-Win… Sep 19, 2018
.gitattributes Set line endings for MS files Aug 15, 2016
.gitignore Use FAKE to build Sep 21, 2018
.gitmodules Workin on fuller automation Jul 24, 2016
.travis.yml Upgrade .travis.yml monos Sep 21, 2018
Hopac.fsx Correcting #r lines in Hopac.fsx Sep 19, 2018
Hopac.sln Try docs with updated token interpreter supporting access modifiers Sep 19, 2018
Hopac.snk [infra] adding snk file May 3, 2016
Hopac.snk.pub [infra] compiling succeeds, running fails May 4, 2016
LICENSE.md Update years in LICENSE.md Sep 19, 2018
README.md Use FAKE to build Sep 21, 2018
RELEASE_NOTES.md Use FAKE to build Sep 21, 2018
Todo.sln Use FAKE to build Sep 21, 2018
appveyor.yml VS2017 image Mar 23, 2018
build.fsx Update clone URI for gh-pages Sep 21, 2018
build.fsx.lock Use FAKE to build Sep 21, 2018
fake.cmd Use FAKE to build Sep 21, 2018
fake.sh Use FAKE to build Sep 21, 2018
global.json Pin .net sdk to 2.1.402 Sep 20, 2018
paket.dependencies Use FAKE to build Sep 21, 2018
paket.lock Use FAKE to build Sep 21, 2018
run.complete Added `watch` Aug 11, 2016

README.md

ReferenceGuideDocs

Hopac is a Concurrent ML style concurrent programming library for F#.

NuGet version AppVeyor Build status Travis Build Status

Development

Here is a Bash script to get started:

git clone --recursive https://github.com/Hopac/Hopac.git
cd Hopac && source .env
./run tests

Note the use of --recursive option above. Or if you didn't, you can later do

git submodule update --init

This project is only used to build our docs. You can skip it if you're just testing Hopac.

run

The Bash run script provides build automation. You invoke run like any other Bash command:

[VARIABLE=value] ./run [COMMAND]

Multiple commands can be specified. For example,

USE=netcore ./run clean build

performs a clean build using the .NET Core stack.

run variables

  • CONFIGS specifies the configuration(s) to operate on:

    • CONFIGS='Debug Release' is the default to build and run both Debug and Release configs.
    • CONFIGS=Debug to build and run only Debug config.
    • CONFIGS=Release to build and run only Release config.
  • USE specifies the stack, which is auto detected by default, to build and run with:

    • USE=mono to use Mono.
    • USE=net to use .NET Framework (only on Windows).
    • USE=netcore to use .NET Core.

run commands

  • benchmarks runs all benchmarks. This may take a very long time!
  • build builds all the subprojects.
  • clean removes generated files.
  • tests runs tests.
  • repl starts the F# interactive with Hopac libs opened. (Only works with Mono and .NET at the moment.)
  • restore restores dependencies required to build the project. To build from an IDE like Visual Studio or Xamarin, you need to ./run restore manually.
  • generate_docs generates the Reference manual under .gh-pages.

You can run source run.complete to get auto completion of run commands in Bash.

Usage

When you've followed the links at the top of this README, and you've read the programming guide, you can use ./run repl as well as the file Hopac.fsx to play around with.

Furthermore, you'll find a large number of examples in (./Examples)[./Examples].

Release / publish

USE=netcore ./run publish