| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| Expand Up | @@ -783,6 +783,7 @@ _Py_uop_sym_get_type(JitOptRef ref) | |
| case JIT_SYM_NON_NULL_TAG: | ||
| case JIT_SYM_UNKNOWN_TAG: | ||
| case JIT_SYM_RECORDED_TYPE_TAG: | ||
| case JIT_SYM_RECORDED_GEN_FUNC_TAG: | ||
| return NULL; | ||
| case JIT_SYM_RECORDED_VALUE_TAG: | ||
| if (sym->recorded_value.known_type) { | ||
| Expand All | @@ -804,8 +805,6 @@ _Py_uop_sym_get_type(JitOptRef ref) | |
| return &PyBool_Type; | ||
| case JIT_SYM_COMPACT_INT: | ||
| return &PyLong_Type; | ||
| case JIT_SYM_RECORDED_GEN_FUNC_TAG: | ||
| return &PyGen_Type; | ||
| } | ||
| Py_UNREACHABLE(); | ||
| } | ||
| Expand All | @@ -830,7 +829,7 @@ _Py_uop_sym_get_probable_type(JitOptRef ref) | |
| case JIT_SYM_KNOWN_VALUE_TAG: | ||
| return _Py_uop_sym_get_type(ref); | ||
| case JIT_SYM_RECORDED_GEN_FUNC_TAG: | ||
| return NULL; | ||
| return &PyGen_Type; | ||
| case JIT_SYM_RECORDED_VALUE_TAG: | ||
| return Py_TYPE(sym->recorded_value.value); | ||
| case JIT_SYM_RECORDED_TYPE_TAG: | ||
| Expand Down Expand Up | @@ -2211,21 +2210,24 @@ _Py_uop_symbols_test(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored)) | |
| /* Test that recorded type aren't treated as known values*/ | ||
| JitOptRef rg1 = _Py_uop_sym_new_unknown(ctx); | ||
| _Py_uop_sym_set_recorded_gen_func(ctx, rg1, func); | ||
| TEST_PREDICATE(_Py_uop_sym_matches_type(rg1, &PyGen_Type), "recorded gen func not treated as generator"); | ||
| TEST_PREDICATE(!_Py_uop_sym_matches_type(rg1, &PyGen_Type), "recorded gen func treated as generator"); | ||
| TEST_PREDICATE(_Py_uop_sym_get_probable_type(rg1) == &PyGen_Type, "recorded gen func not treated as generator"); | ||
| TEST_PREDICATE(_Py_uop_sym_get_const(ctx, rg1) == NULL, "recorded gen func is treated as known value"); | ||
|
|
||
| /* Test that setting type narrows correctly */ | ||
|
|
||
| JitOptRef rg2 = _Py_uop_sym_new_unknown(ctx); | ||
| _Py_uop_sym_set_recorded_gen_func(ctx, rg2, func); | ||
| _Py_uop_sym_set_type(ctx, rg2, &PyGen_Type); | ||
| TEST_PREDICATE(_Py_uop_sym_matches_type(rg1, &PyGen_Type), "recorded gen func not treated as generator"); | ||
| TEST_PREDICATE(!_Py_uop_sym_matches_type(rg2, &PyGen_Type), "recorded gen func treated as generator"); | ||
|
Comment thread
Copy link
Copy Markdown
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualityPlease add for this test and below the converse as well TEST_PREDICATE(_Py_uop_sym_get_probable_type(rg2) == &PyGen_Type, "recorded gen func not treated as generator");
Sorry, something went wrong.
All reactions
Copy link
Copy Markdown
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Qualityadded 👍
Sorry, something went wrong.
All reactions
|
||
| TEST_PREDICATE(_Py_uop_sym_get_probable_type(rg2) == &PyGen_Type, "recorded gen func not treated as generator"); | ||
| TEST_PREDICATE(_Py_uop_sym_get_const(ctx, rg2) == NULL, "known type is treated as known value"); | ||
|
|
||
| JitOptRef rg3 = _Py_uop_sym_new_unknown(ctx); | ||
| _Py_uop_sym_set_recorded_gen_func(ctx, rg3, func); | ||
| _Py_uop_sym_set_type_version(ctx, rg3, PyGen_Type.tp_version_tag); | ||
| TEST_PREDICATE(_Py_uop_sym_matches_type(rg1, &PyGen_Type), "recorded gen func not treated as generator"); | ||
| TEST_PREDICATE(!_Py_uop_sym_matches_type(rg3, &PyGen_Type), "recorded gen func treated as generator"); | ||
| TEST_PREDICATE(_Py_uop_sym_get_probable_type(rg3) == &PyGen_Type, "recorded gen func not treated as generator"); | ||
| TEST_PREDICATE(_Py_uop_sym_get_const(ctx, rg3) == NULL, "recorded value with type is treated as known"); | ||
|
|
||
| /* Test contradictions */ | ||
| Expand Down | ||
| Back | FazBrowse Home | New Git URL |
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.
Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualitySeems like the test is failing. Not sure why. can you do some debugging please and check what type returns? You can do something like printf("TYPE: %s\n", rg1->tp_name); (assuming rg1 is not NULL).
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
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.
Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualityI thought it was due to this test?
I have to go for a bit now, I'll upload the debug prints when i'm back
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
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.
Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualityOkay, I think I understand what's going on.
Also, it seems like all the tests use rg1. Is that intended?
JitOptRef doesn't seem to have a tp_name member I'm guessing you meant something else?
In the meantime, I did this instead:
Output:
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
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.
Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low QualityOh yeah you're right. Please amend the other tests.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.