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

precompile: fix the slowness #18191

Merged
merged 4 commits into from
Aug 24, 2016
Merged

precompile: fix the slowness #18191

merged 4 commits into from
Aug 24, 2016

Conversation

vtjnash
Copy link
Member

@vtjnash vtjnash commented Aug 22, 2016

fix the bug in handling the LambdaInfo Expr(:invoke), and optimize some other common cases, such that precompile is much faster for some packages (such as any that uses Compat).

@kshyatt kshyatt added performance Must go faster compiler:precompilation Precompilation of modules labels Aug 22, 2016
@@ -422,6 +422,14 @@ A few other points to be aware of:
4. WeakRef objects and finalizers are not currently handled properly by the serializer
(this will be fixed in an upcoming release).

5. It is usually be to avoid capturing references to instances of internal metadata objects such as
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

best?

this works to avoid having `Expr(:invoke)` creating
unintentional copies of LambdaInfo objects when they show
up in the system image

fix #18184
@vtjnash vtjnash force-pushed the jn/precompile-fix-fast branch from 52d292a to a4bf6b8 Compare August 23, 2016 17:34
assert(*bp != (uintptr_t)HT_NOTFOUND);
*bp |= 1; assert(((uintptr_t)HT_NOTFOUND)|1);
}
// this'll need need a uid and unique-ing later
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this'll need need a

vtjnash and others added 3 commits August 23, 2016 15:35
…_list

many types are easy to compute during deserialization,
and don't need the full complexity of the flagref list to handle them
some of these are easy to detect ahead-of-time,
saving a small amount of deserialization effort
@vtjnash vtjnash force-pushed the jn/precompile-fix-fast branch from a4bf6b8 to 2a8e892 Compare August 23, 2016 19:36
@vtjnash vtjnash merged commit 3e65d68 into master Aug 24, 2016
@vtjnash vtjnash deleted the jn/precompile-fix-fast branch August 24, 2016 16:00
@ufechner7
Copy link

Will this be part of the 0.5 release?

@KristofferC
Copy link
Member

Look at the labels :)

tkelman pushed a commit that referenced this pull request Aug 29, 2016
this works to avoid having `Expr(:invoke)` creating
unintentional copies of LambdaInfo objects when they show
up in the system image

fix #18184

(cherry picked from commit b0e692a)
ref #18191
tkelman pushed a commit that referenced this pull request Aug 29, 2016
…_list

many types are easy to compute during deserialization,
and don't need the full complexity of the flagref list to handle them
some of these are easy to detect ahead-of-time,
saving a small amount of deserialization effort

(cherry picked from commit 649ce88)
ref #18191
tkelman pushed a commit that referenced this pull request Aug 29, 2016
tkelman pushed a commit that referenced this pull request Aug 29, 2016
Fixes a crash while loading ASTInterpreter

(cherry picked from commit 2a8e892)
ref #18191
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:precompilation Precompilation of modules performance Must go faster
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants