Skip to content

Commit

Permalink
Release 0.35.0 (#567)
Browse files Browse the repository at this point in the history
  • Loading branch information
SeanTAllen committed May 11, 2020
1 parent e4a8ec0 commit b1f519b
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions content/blog/0.35.0-released.md
@@ -0,0 +1,72 @@
+++
draft = false
author = "seantallen"
categories = [
"Release",
]
date = "2020-05-11T16:44:53-04:00"
title = "0.35.0 released"
+++
Pony version 0.35.0 is now available. If you are running Pony on an ARM based CPU, we recommend updating as soon as possible.
<!--more-->

Check it out!

We've fixed a bug in the Pony runtime that would impact on ARM based CPUs and have undetermined, but definitely not good results. If you use Pony on ARM, update now.

Otherwise, there's not a ton that's new in Pony 0.35.0. We've fixed a bug in the CommandParser package and introduced a breaking change to the ProcessMonitor package. Details are below...

## Correctly report process exit status

Processes spawned with `ProcessMonitor` that have been terminated by signals have been reported as exited with exit-code 0. Now `ProcessNotify.dispose` receives a `ProcessExitStatus`, which is either an instance of `Exited` containing the exit-code, if the process terminated _normally_, or an instance of `Signaled` containing the signal number which terminated the process e.g. `9` if it has been terminated by `KILL`.

Before (ponyc <= 0.34.1):
```pony
class MyNewProcessNotify
...
fun ref dispose(process_monitor: ProcessMonitor ref, child_exit_code: I32) =>
if child_exit_code != 0 then
out_stream.print("non-successful run, terminated normally with " + child_exit_code.string())
else
out_stream.print(
"""
factually either all good, terminated normally with 0,
or killed by signal, we simply dont know.
""")
end
```

After (0.35.0 and onwards):

```pony
class MyNewProcessNotify
...
fun ref dispose(process_monitor: ProcessMonitor ref, child_exit_status: ProcessExitStatus) =>
match child_exit_status
| let e: Exited if e.exit_code() != 0 => out_stream.print("terminated normally with " + e.exit_code().string())
| let s: Signaled => out_stream.print("killed by signal " + s.signal().string())
else
out_stream.print("exited with 0, all good")
end
```

## Fix CommandParser incorrectly handling multiple end-of-option delimiters

Fixed an issue where CommandParser was incorrectly handling cases when arguments contain multiple end-of-option delimiters. For example, `corral exec -- lldb ponyc -- $(ponyc) -V=0 -o ./build/`.

## [0.35.0] - 2020-05-11

### Fixed

- Fix CommandParser incorrectly handling multiple end-of-option delimiters ([PR #3541](https://github.com/ponylang/ponyc/pull/3541))
- Correctly report process termination status in ProcessNotify.dispose() ([PR #3419](https://github.com/ponylang/ponyc/pull/3419))
- Ensure non-blocking process wait and correctly report process exit status ([PR #3419](https://github.com/ponylang/ponyc/pull/3419))
- Fix atomics usage related to actor muting for ARM ([PR #3552](https://github.com/ponylang/ponyc/pull/3552))

### Added

- Add Ubuntu18.04 builds ([PR #3545](https://github.com/ponylang/ponyc/pull/3545))

### Changed

- Ensure that waiting on a child process when using ProcessMonitor is non-blocking ([PR #3419](https://github.com/ponylang/ponyc/pull/3419))

0 comments on commit b1f519b

Please sign in to comment.