Skip to content

Commit 0121069

Browse files
authored
Add instructions on pharo compatible versions
1 parent 2882e2f commit 0121069

File tree

1 file changed

+48
-43
lines changed

1 file changed

+48
-43
lines changed

README.md

+48-43
Original file line numberDiff line numberDiff line change
@@ -6,62 +6,67 @@ OSSubprocess allows users to spawn Operating System processes from within Pharo
66

77
An important part of OSSubprocess is how to manage standard streams (`stdin`, `stdout` and `stderr`) and how to provide an API for reading and writing from them at the language level.
88

9-
> It was decided together with Pharo Consortium that as a first step, we should concentrate on making it work on OSX and Unix. If the tool proves to be good and accepted, we could, at a second step, try to add Windows support.
9+
> It was decided together with Pharo Consortium that as a first step, we should concentrate on making it work on OSX and Unix. If the tool proves to be good and accepted, we could, at a second step, try to add Windows support. If you need Windows support, you can take a look at the https://github.com/pharo-contributions/OSWinSubprocess project.
1010
1111
## Table of Contents
12-
* [Installation](#installation)
13-
* [Getting Started](#getting-started)
14-
* [API Reference](#api-reference)
15-
* [Child exit status](#child-exit-status)
16-
* [OSSVMProcess and it's child watcher](#ossvmprocess-and-its-child-watcher)
17-
* [Accessing child status and interpreting it](#accessing-child-status-and-interpreting-it)
18-
* [Streams management](#streams-management)
19-
* [Handling pipes within Pharo](#handling-pipes-within-pharo)
20-
* [Regular files vs pipes](#regular-files-vs-pipes)
21-
* [Customizing streams creation](#customizing-streams-creation)
22-
* [Stdin example](#stdin-example)
23-
* [Synchronism and how to read streams](#synchronism-and--how-to-read-streams)
24-
* [Synchronism vs asynchronous runs](#synchronism-vs-asynchronous-runs)
25-
* [When to process streams](#when-to-process-streams)
26-
* [Streams processing at the end](#streams-processing-at-the-end)
27-
* [Semaphore-based SIGCHLD waiting](#semaphore-based-sigchld-waiting)
28-
* [Delay-based polling waiting](#delay-based-polling-waiting)
29-
* [Which waiting to use?](#which-waiting-to-use)
30-
* [Processing streams while running](#processing-streams-while-running)
31-
* [Asynchronous runs](#asynchronous-runs)
32-
* [Sending signals to processes](#sending-signals-to-processes)
33-
* [System shutdown](#system-shutdown)
34-
* [Environment variables](#environment-variables)
35-
* [Setting environment variables](#setting-environment-variables)
36-
* [Variables are not expanded](#variables-are-not-expanded)
37-
* [Accessing environment variables](#accessing-environment-variables)
38-
* [Inherit variables from parent](#inherit-variables-from-parent)
39-
* [Shell commands](#shell-commands)
40-
* [Setting working directory](#setting-working-directory)
41-
* [Running the tests](#running-the-tests)
42-
* [Contributing](#contributing)
43-
* [History](#history)
44-
* [Future work](#future-work)
45-
* [Authors](#authors)
46-
* [License](#license)
47-
* [Acknowledgments](#acknowledgments)
48-
* [Funding](#funding)
49-
50-
12+
* [Installation](#installation)
13+
* [Getting Started](#getting-started)
14+
* [API Reference](#api-reference)
15+
* [Child exit status](#child-exit-status)
16+
* [OSSVMProcess and it's child watcher](#ossvmprocess-and-its-child-watcher)
17+
* [Accessing child status and interpreting it](#accessing-child-status-and-interpreting-it)
18+
* [Streams management](#streams-management)
19+
* [Handling pipes within Pharo](#handling-pipes-within-pharo)
20+
* [Regular files vs pipes](#regular-files-vs-pipes)
21+
* [Customizing streams creation](#customizing-streams-creation)
22+
* [Stdin example](#stdin-example)
23+
* [Synchronism and how to read streams](#synchronism-and--how-to-read-streams)
24+
* [Synchronism vs asynchronous runs](#synchronism-vs-asynchronous-runs)
25+
* [When to process streams](#when-to-process-streams)
26+
* [Streams processing at the end](#streams-processing-at-the-end)
27+
* [Semaphore-based SIGCHLD waiting](#semaphore-based-sigchld-waiting)
28+
* [Delay-based polling waiting](#delay-based-polling-waiting)
29+
* [Which waiting to use?](#which-waiting-to-use)
30+
* [Processing streams while running](#processing-streams-while-running)
31+
* [Asynchronous runs](#asynchronous-runs)
32+
* [Sending signals to processes](#sending-signals-to-processes)
33+
* [System shutdown](#system-shutdown)
34+
* [Environment variables](#environment-variables)
35+
* [Setting environment variables](#setting-environment-variables)
36+
* [Variables are not expanded](#variables-are-not-expanded)
37+
* [Accessing environment variables](#accessing-environment-variables)
38+
* [Inherit variables from parent](#inherit-variables-from-parent)
39+
* [Shell commands](#shell-commands)
40+
* [Setting working directory](#setting-working-directory)
41+
* [History](#history)
42+
* [Future work](#future-work)
43+
* [License](#license)
44+
* [Acknowledgments and Funding](#acknowledgments-and-funding)
5145

5246
## Installation
5347
OSSubprocess only works in Pharo >= 5.0 with Spur VM.
5448

49+
> Important: Do not load OSProcess project in the same image of OSSubprocess because the latter won't work.
50+
51+
### Pharo 5.0 to 8.0
52+
Use the latest compatible version: `v1.3.0`.
5553
```Smalltalk
5654
Metacello new
5755
baseline: 'OSSubprocess';
58-
repository: 'github://pharo-contributions/OSSubprocess:master/repository';
56+
repository: 'github://pharo-contributions/OSSubprocess:v1.3.0/repository';
5957
load.
6058
```
59+
> Important2: If you are installing under Linux, then you must use a threaded heartbeat VM (not the itimer one). For Pharo 5.0 and 6.0 you can search for "cog_linux32x86_pharo.cog.spur_XXXXXXXXXXXX.tar.gz" i32 [Pharo static file server](http://files.pharo.org/vm/pharo-spur32/linux/). Since Pharo 7.0, threaded heartbeat VM has become the default installation, so you shouldn't have to explicitly download a specific VM.
6160
62-
> Important: Do not load OSProcess project in the same image of OSSubprocess because the latter won't work.
61+
### Pharo 9.0 or above
62+
You need to use the `master` branch or a version `> v1.3.0` (API changes).
6363

64-
> Important2: If you are installing under Linux, then you must use a threaded heartbeat VM (not the itimer one). For Pharo 5.0 and 6.0 you can search for "cog_linux32x86_pharo.cog.spur_XXXXXXXXXXXX.tar.gz" i32 [Pharo static file server](http://files.pharo.org/vm/pharo-spur32/linux/). Since Pharo 7.0, threaded heartbeat VM has become the default installation, so you shouldn't have to explicitly download a specific VM.
64+
```Smalltalk
65+
Metacello new
66+
baseline: 'OSSubprocess';
67+
repository: 'github://pharo-contributions/OSSubprocess:master/repository';
68+
load.
69+
```
6570

6671
## Getting Started
6772
OSSubprocess is quite easy to use but depending on the user needs, there are different parts of the API that could be used. We start with a basic example and later we show more complicated scenarios.

0 commit comments

Comments
 (0)