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

Update to lxml 3.6.0 #1215

Open
wants to merge 4,511 commits into
base: master
Choose a base branch
from
Open

Update to lxml 3.6.0 #1215

wants to merge 4,511 commits into from

Conversation

undingen
Copy link
Contributor

No description provided.

undingen and others added 30 commits April 18, 2016 11:44
add refcounting annotation that make test_long pass
Some minor fixing which found in numpy tests
- mark a few more things as reffail
- disable "force-llvm" tests for now since a lot of those are failing
- fix a couple misc issues
- turn off the gcc build for now (compilation error)
- turn off the release build for now (lots of tests fail in debug mode but
  pass in release, and I don't want to bother annotating that)
Turn on CI for the refcounting branch again
Misc refcounting leaks encountered while fixing the generator abandonment tests
To silence results for passing tests.  We have a lot of
tests and most of them are passing and are crowding out the
failing ones.

Also, turn it on when testing on travis-ci
we need this map to know which object refcounter we have to decrement in case an exception gets throwen inside an IC or the bjit.
in addition fix all bjit related problems
Need a 'refUsed()' function like we have in the llvm jit, for when we pass args
through an args array.
A kind-of hacky way of identifying places that do unsafe (for refcounting)
setattrs.  When calling RewriterVar::setattr() with an owned reference,
you need to either promise to call refUsed() or refConsumed() afterwards.
They might be ok if we allowed allocating callee-save registers, but
since we don't, they mean we are asking the unwinder to restore a
clobbered register.

This was happening in some places where we didn't call setupCall()
before calling a function.  This was previously ok since those cases would
always throw an exception and nothing would want the values of the
then-clobbered registers.
Our convention is that on deopt, the callee is responsible for calling deinitFrame().
This is tricky, since for OSR our convention is the opposite, that the caller calls deinitFrame().

This means that if we OSR and then deopt(), the top and bottom frames both think they should call
deinitFrame() (since one is the caller of an OSR and the other is the callee of a deopt).

This commit fixes + extends the "disable deinitFrame for this frame" approach we kind of had.
For performance, deinitFrame() stays the same, but any site that might have its deinitFrame disabled
(namely, in the interpreter), it should call deinitFrameMaybe() instead.
Also fix the is_live handling and make the get and set
cases look more similar to each other.
I think I don't quite understand the existing optimization so just
turn my new one off for now.
Cherry-pick some tester improvements from the refcounting branch
…g keys with same hashes

we have to insert the elements in reverse in order to replicate cpythons behaviour.
cpython is pushing the temps on it's value stack and than inserting them ona after another by poping them from the stack
fix set.add() for existing keys and fix set ast node when encountering keys with same hashes
- I think I've finally convinced myself that a refConsumed() annotation
  automatically includes a refUsed annotation as well.  Or rather, that if you
  call refConsumed, the refcounter won't try to add a decref anyway.
- emitCallWithAllocatedArgs already does the equivalent of refUsed() on its `additional_uses`
  argument.
@kmod
Copy link
Collaborator

kmod commented May 25, 2016

lgtm, though was the second commit supposed to be part of #1223?

kmod and others added 24 commits May 25, 2016 16:52
update list of failing cpython tests
exec, input: if globals has no __builtins__ add it as a dictwrapper
since we were installing it from the LLVM APT repo, which they
took down since it was getting too expensive.  I guess we can
just run with the gcc build until that situation gets resolved.
Fix std::move error on temporary object
Somehow this PR is taking longer to build, I assume from somehow missing
the build cache.

Assuming that it's a caching issue, bump up the time to satisfy un-cached builds.
If build times continue to increase we will run into this problem again (can only
regenerate the cache with a successful build but a successful build needs the cache),
but this will let us defer it a bit longer :)  Travis-CI builds are max 120 minutes.
Temporarily disable the clang build on travis-CI
also fix a build error when ICs are disabled
also add a option to pass MAP_32BIT to mmap
this also workarounds the problem we were having on ubuntu 16.04 where we have to use std::isinf instead of isinf()
float.cpp: now that we have float.c use some of the functions directly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants