Skip to content
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

Merged
merged 30 commits into from
Oct 12, 2017

Conversation

dipinhora
Copy link
Contributor

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 new Makefile conventions.

jtfmumm and others added 27 commits October 5, 2017 18:53
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.
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`.
As part of #1125, `_wb.reserve` calls were added to Runner in order
to avoid a data/memory corruption bug in the WallarooLabs ponyc
compiler. As part of the update to ponylang ponyc, the workaround
is no longer required.

Resolves #1612
@jtfmumm
Copy link
Contributor

jtfmumm commented Oct 12, 2017

@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.

@JONBRWN
Copy link
Contributor

JONBRWN commented Oct 12, 2017

@jtfmumm wanted to bring up a few things with @SeanTAllen in a meeting I have with him today before merging, will merge after that.

@jtfmumm
Copy link
Contributor

jtfmumm commented Oct 12, 2017

@JONBRWN Ok sounds good.

.travis.yml Outdated
fi;
- if [ "${TRAVIS_OS_NAME}" = "linux" ];
then
sudo apt-get -fy install cpuset;
Copy link
Contributor

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;
Copy link
Contributor

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";
Copy link
Contributor

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"
@JONBRWN JONBRWN force-pushed the ponyc-update-0.19.next_release branch from 89ce9b8 to 4ae7990 Compare October 12, 2017 16:49
@JONBRWN JONBRWN merged commit 24112c2 into master Oct 12, 2017
@JONBRWN JONBRWN deleted the ponyc-update-0.19.next_release branch October 12, 2017 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Switch Wallaroo to mainline ponyc (0.19.2)
4 participants