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

make regen-all triggers wholesale rebuild #75717

Closed
pitrou opened this issue Sep 20, 2017 · 12 comments
Closed

make regen-all triggers wholesale rebuild #75717

pitrou opened this issue Sep 20, 2017 · 12 comments
Labels
3.7 (EOL) end of life build The build process and cross-build type-feature A feature request or enhancement

Comments

@pitrou
Copy link
Member

pitrou commented Sep 20, 2017

BPO 31536
Nosy @Yhg1s, @pitrou, @vstinner, @zware, @serhiy-storchaka
PRs
  • bpo-31536: Avoid wholesale rebuild after make regen-opcode #3677
  • bpo-31536: Avoid wholesale rebuild after make regen-all #3678
  • [3.6] bpo-31536: Avoid wholesale rebuild after make regen-all (GH-3678) #3797
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2017-09-28.11:21:50.898>
    created_at = <Date 2017-09-20.18:37:37.574>
    labels = ['type-feature', '3.7', 'build']
    title = '`make regen-all` triggers wholesale rebuild'
    updated_at = <Date 2017-09-28.11:21:50.869>
    user = 'https://github.com/pitrou'

    bugs.python.org fields:

    activity = <Date 2017-09-28.11:21:50.869>
    actor = 'pitrou'
    assignee = 'none'
    closed = True
    closed_date = <Date 2017-09-28.11:21:50.898>
    closer = 'pitrou'
    components = ['Build']
    creation = <Date 2017-09-20.18:37:37.574>
    creator = 'pitrou'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 31536
    keywords = ['patch']
    message_count = 12.0
    messages = ['302649', '302651', '302652', '302653', '302654', '302662', '302663', '302665', '302670', '303203', '303204', '303222']
    nosy_count = 5.0
    nosy_names = ['twouters', 'pitrou', 'vstinner', 'zach.ware', 'serhiy.storchaka']
    pr_nums = ['3677', '3678', '3797']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue31536'
    versions = ['Python 3.6', 'Python 3.7']

    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 20, 2017

    make regen-opcode always writes the destination unconditionally, after which make thinks it has to rebuild everything.

    @pitrou pitrou added 3.7 (EOL) end of life build The build process and cross-build type-feature A feature request or enhancement labels Sep 20, 2017
    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 20, 2017

    Note that at least make regen-ast will also need to be changed in order to reduce build times on Travis-CI.

    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 20, 2017

    Looks like pgen will also have to be changed, which is more annoying as it's written in C...

    Perhaps another approach can be used that will use a separate utility to do the copying if the contents changed?

    @pitrou pitrou changed the title make regen-opcode triggers wholesale rebuild make regen-all triggers wholesale rebuild Sep 20, 2017
    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 20, 2017

    Posted #3678 which uses a separate utility. It seems to save 1 minute off the build step on Travis-CI.

    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 20, 2017

    Note that GNU install (install -C) would probably do the trick, but is not necessarily installed on the build system.

    @vstinner
    Copy link
    Member

    New changeset b091bec by Victor Stinner (Antoine Pitrou) in branch 'master':
    bpo-31536: Avoid wholesale rebuild after make regen-all (bpo-3678)
    b091bec

    @pitrou pitrou closed this as completed Sep 20, 2017
    @vstinner
    Copy link
    Member

    If it works well, maybe it's worth it to backport the change to the 3.6 branch. We still backport a lot of changes to 3.6. But maybe wait until 3.6.3 final is released?

    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 20, 2017

    If it works well, maybe it's worth it to backport the change to the 3.6 branch. We still backport a lot of changes to 3.6. But maybe wait until 3.6.3 final is released?

    Fair enough. Does someone want to do the backport? :-)

    @vstinner
    Copy link
    Member

    I may do the backport, or ask the bot to do it. Right now I prefer to check if everything is fine on all CI.

    @vstinner vstinner reopened this Sep 21, 2017
    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 28, 2017

    Victor, are the buildbots fine now?

    @vstinner
    Copy link
    Member

    Victor, are the buildbots fine now?

    I didn't see anything wrong on buildbots, nor Travis CI/AppVeyor on PRs. So we can now backport the "optimization". Do you want to do it, Antoine?

    @pitrou
    Copy link
    Member Author

    pitrou commented Sep 28, 2017

    New changeset ec3d34c by Antoine Pitrou (Miss Islington (bot)) in branch '3.6':
    [3.6] bpo-31536: Avoid wholesale rebuild after make regen-all (GH-3678) (bpo-3797)
    ec3d34c

    @pitrou pitrou closed this as completed Sep 28, 2017
    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    3.7 (EOL) end of life build The build process and cross-build type-feature A feature request or enhancement
    Projects
    None yet
    Development

    No branches or pull requests

    2 participants