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

Error tracing ParTs #393

Closed
kikofernandez opened this issue Apr 21, 2016 · 0 comments · Fixed by #461
Closed

Error tracing ParTs #393

kikofernandez opened this issue Apr 21, 2016 · 0 comments · Fixed by #461
Assignees
Milestone

Comments

@kikofernandez
Copy link
Contributor

I see spurious errors when tracing the ParT abstraction in development.
Currently, general.enc under src/test/encore/par fails sporadically with the following error:

./general
true
true
true
true
true
Assertion failed: (obj), function gc_sendobject, file libponyrt/gc/gc.c, line 165.
[2]    47606 abort      ./general

I am not sure yet if this is related only to the use of the join combinator:

-- line that produces the error
(join (join (liftf c.checkP()))) >> show;

or if some other combinators are affected as well.

@kikofernandez kikofernandez self-assigned this Apr 21, 2016
@kikofernandez kikofernandez added this to the May'16 Sprint milestone May 5, 2016
EliasC pushed a commit that referenced this issue Jun 16, 2016
* fix tracing ParT types

the tracing function for the ParT types was not correctly generated and
caused runtime errors. The issues that have been fixed are shown below
and this closes #393:

- fix >> combinator with correct trace function
  the generated trace function was not correct, causing runtime crashes

- fix trace function for extract combinator was not correct and was
  tracing array_types. the trace function of the extract combinator was
  always set to be an array; this is not the case, as that trace
  function is used to indicate the trace function of the returned array.
  the function function gets the runtime base type of party, e.g. `Par
  t` has runtime type `t` and a `Par (Par t)` has runtime type `Par t`,
  since the array will contain `Par t`s.

- fix join combinator. removed assertion. In the following scenario
  (P p1 p2), an assertion tests that the tracing function of p1 and p2
  should be the same. this is not true, as p1 may be a (V 32) and p2 may
  be a (F f), which should have different tracing functions.

* refactor tests to not-used `extract`

refactor tests in ParT to avoid the use of the `extract` function. this
is due to an issue (#434) related to futures. the sequence test omits
the use of extract, and the liftf test has been re-written to avoid that
as well. tests that cannot avoid the use of `extract` have been disabled
and will be re-enable as soon as this works.

* remove `extract` from the language

* remove `extract` from documentation
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 a pull request may close this issue.

2 participants