-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to mainline ponyc 0.19.next_release #1615
Conversation
We used our own helper methods for AsioEvent in our version of ponyc. Now that we're moving over to mainline ponyc, I've broken these out into a helper primitive in wallaroo_labs.
ponyc 0.10.0 changed behaviors to return None instead of the actor. This means that in multiple places throughout the code we need to now use the chaining notation or directly return the actor when we expect a tag as a return type instead of None.
This is required for mainline ponyc
In order to upgrade to mainline ponyc, we need to use the new approach to chaining.
We don't need wrapper methods for the FFI calls `@pony_asio_event_set_readable` and `@pony_asio_event_set_writeable`. Call them directly as in mainline ponyc.
ponyc 0.16.0 requires that partial calls are explicit, using x()? instead of x()
Simplifies transformation of missing files into String by removing use of Iter that is not compatible with ponyc 0.18.0.
Before one-shot changes to ponyc, we followed a different approach for Linux and OSX, but now we can follow our Linux approach for both given our switch to ponyc 0.19.1.
Update docs and .travis.yml to reflect the fact that we are now using mainline ponyc.
Update to use new partial call syntax.
Update Sender and Receiver to use new approach to chaining and explicit partial call syntax.
A number FFI signatures needed to be updated for compatibility with ponyc 0.19.1.
Now that we're switching to mainline ponyc, we no longer need to instruct users to install llvm and related dependencies.
We do not currently support the C++ language bindings, so this removes C++ test builds from CI.
Added explicit partial calls.
A few of the example Pony apps used helper applications that needed updates to use explicit partial calls.
We need pony-kakfa 0.2.0 for machida and celsius-kafka in order to build with ponyc 0.19.2.
C++ API is no longer supported and C++ apps no longer build.
Outputs to stdout did not distinguish between control and data channels when reporting that all workers had identified their channels.
When we initialize control connections, we need to make sure we don't try to write to the TCPConnection until it's connected. The ControlConnection wrapper buffers data until the connection is ready.
A few WallarooLabs libs not used by Wallaroo itself still needed updates for explicit partial calls and new chaining approach.
Topology Layout test Pony programs needed to use new explicit partial calls.
Wesley tests needed explicit partial calls and new approach to chaining.
Backport ponylang/ponyc#1578 and ponylang/ponyc#1626 to net actors because the help resolve edge cases around the networking code with direct impacts to the stability of the network tests.
Previously, as part of commit 2feeb40, we switched from sending `Array[ByteSeq] val` to `Array[ByteSeq] iso` to work around a `val` tracing bug. As part of the update to the latest ponylang ponyc, that workaround is no longer required and this commit changes the `Array[ByteSeq] iso` back to `Array[ByteSeq] val`.
@JONBRWN @dipinhora Are we still waiting on something before merging this PR? My understanding from the sync meeting was that we accept the performance regression and there are no changes to documentation required. |
@jtfmumm wanted to bring up a few things with @SeanTAllen in a meeting I have with him today before merging, will merge after that. |
@JONBRWN Ok sounds good. |
.travis.yml
Outdated
fi; | ||
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; | ||
then | ||
sudo apt-get -fy install cpuset; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this shouldnt be removed
.travis.yml
Outdated
git clone https://github.com/WallarooLabs/ponyc.git; | ||
cd ponyc; | ||
make CC=$CC1 CXX=$CXX1; | ||
sudo make install; | ||
- echo "Installing pony-stable"; | ||
cd /tmp; | ||
git clone https://github.com/ponylang/pony-stable; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be installed via apt-get
.travis.yml
Outdated
@@ -48,55 +48,30 @@ install: | |||
# return to our starting directory, then our `script` step will fail because | |||
# its in the wrong directory. | |||
- export INSTALL_STARTED_AT=`pwd` | |||
- echo "Installing WallarooLabs/ponyc"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we dont install our ponyc. this can be changed.
Updates pony-stable to be installed via brew and apt-get. Re-inserts cpuset installation on linux. Changes output to only say "Installing ponyc"
89ce9b8
to
4ae7990
Compare
Switch to mainline ponyc 0.19.next_release (because it includes a critical bugfix).
Closes #1605
Note: this PR is the same as @jtfmumm's PR #1542 but rebased onto the latest
master
with updates for the newMakefile
conventions.