From: Brian Harring <ferringb@gmail.com>
To: Zac Medico <zmedico@gentoo.org>
Cc: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] RFD: EAPI specification in ebuilds
Date: Sun, 11 Mar 2012 19:03:44 -0700 [thread overview]
Message-ID: <20120312020344.GE7579@localhost> (raw)
In-Reply-To: <4F5A4246.8080605@gentoo.org>
On Fri, Mar 09, 2012 at 09:47:50AM -0800, Zac Medico wrote:
> On 03/09/2012 09:31 AM, Michael Orlitzky wrote:
> > On 03/09/12 12:11, Ulrich Mueller wrote:
> >>>>>>> On Fri, 09 Mar 2012, Michael Orlitzky wrote:
> >>
> >>>> What if bash starts to parse the script completely and barfs at
> >>>> 'syntax error' before it starts executing stuff?
> >>
> >>> It doesn't parse the script completely, it executes line-by-line, so
> >>> we can bail out early.
> >>
> >> How can you tell that this behaviour won't be changed in a future bash
> >> version?
> >>
> >
> > Who's to say that in the future my computer won't be made out of
> > delicious ice cream, eliminating the need for EAPIs entirely?
> >
> > Chances are, this would break thousands of scripts, so we hope they
> > wouldn't do it. If it does happen, we either deal with it then, or don't
> > upgrade to that version of bash -- the same as we would do with any
> > other massive breaking change.
>
> Ulrich is talking about extensions which require a newer version of
> bash. These kinds of extensions are quite common and don't cause
> "massive breaking" because people simply have to upgrade bash in order
> to use the new extensions, and their old scripts continue to run because
> the new extensions don't interfere with backward compatibility.
>
> Your eapi() function proposal is especially fragile in this context
> because it assumes that the installed version of bash will be able to
> execute a script that may target a newer version of bash. This is a
> special case that is typically not a problem, although it is a major
> problem under the specific conditions that your eapi() function approach
> induces.
Pragmatic reality, the eapi function actually would work fine. As
pointed out elsewhere, bash parses as it goes- which isn't going to
change.
If someone invokes 'eapi happy-meal' and it's not supported,
the sourcing is stopped immediately, cache gets -happy-meal for the
EAPI, and the pm continues to ignore the ebuild till either the
ebuilds mtime changes (which case it redoes the metadata regen) or the
PM now supports that EAPI, and... you guessed it, redoes the metadata
regen. The cache behaviour is basically the same regardless of the
EAPI mechanism.
Now, this isn't to say everyone views the function as *optimal*.
People can argue about that as much as they'd like.
The point however is that it *would* work. Anyone claiming
fragility/otherwise needs to put forth actual code examples.
> Anyway, lets focus on our main goal, which is to decide on a way to
> obtain the EAPI _without_ sourcing the ebuild.
Nitpicking, but the point needs be made; this is *your* requirement.
The requirement is to be able to deploy new globals/bash
requirements/whatever.
There is a difference.
~brian
next prev parent reply other threads:[~2012-03-12 2:04 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-07 20:41 [gentoo-dev] RFD: EAPI specification in ebuilds Ulrich Mueller
2012-03-07 20:44 ` Ciaran McCreesh
2012-03-07 21:07 ` Alexis Ballier
2012-03-07 22:04 ` David Leverton
2012-03-07 22:14 ` Michael Orlitzky
2012-03-08 0:17 ` Ulrich Mueller
2012-03-08 12:03 ` Michał Górny
2012-03-08 15:56 ` Michael Orlitzky
2012-03-08 17:28 ` Michał Górny
2012-03-08 17:48 ` Michael Orlitzky
2012-03-08 17:53 ` Ciaran McCreesh
2012-03-08 18:37 ` Michael Orlitzky
2012-03-08 18:48 ` Ciaran McCreesh
2012-03-08 21:35 ` Michael Orlitzky
2012-03-08 23:31 ` Alec Warner
2012-03-09 3:05 ` Michael Orlitzky
2012-03-09 5:04 ` Michał Górny
2012-03-09 5:35 ` Michael Orlitzky
2012-03-09 5:51 ` Zac Medico
2012-03-09 14:42 ` Michael Orlitzky
2012-03-09 15:05 ` Zac Medico
2012-03-09 15:21 ` Michael Orlitzky
2012-03-09 15:41 ` Zac Medico
2012-03-09 15:51 ` Alexis Ballier
2012-03-09 15:58 ` Zac Medico
2012-03-09 16:49 ` Michael Orlitzky
2012-03-09 16:57 ` Zac Medico
2012-03-09 19:20 ` Ciaran McCreesh
2012-03-10 16:06 ` Zac Medico
2012-03-12 1:55 ` Brian Harring
2012-03-12 4:08 ` Zac Medico
2012-03-12 8:36 ` Brian Harring
2012-03-12 15:35 ` Ciaran McCreesh
2012-03-12 16:05 ` Zac Medico
2012-03-12 16:12 ` Ciaran McCreesh
2012-03-12 16:28 ` Zac Medico
2012-03-14 2:01 ` Brian Harring
2012-03-14 2:16 ` Zac Medico
2012-03-09 15:52 ` Ian Stakenvicius
2012-03-09 16:15 ` Zac Medico
2012-03-09 16:33 ` Eray Aslan
2012-03-09 16:43 ` Zac Medico
2012-03-09 16:29 ` Michał Górny
2012-03-09 16:57 ` Michael Orlitzky
2012-03-09 17:11 ` Ulrich Mueller
2012-03-09 17:31 ` Michael Orlitzky
2012-03-09 17:47 ` Zac Medico
2012-03-09 18:03 ` Michael Orlitzky
2012-03-09 19:08 ` Rich Freeman
2012-03-12 2:03 ` Brian Harring [this message]
2012-03-12 2:20 ` Rich Freeman
2012-03-12 2:24 ` Alec Warner
2012-03-12 6:57 ` Kent Fredric
2012-03-12 6:50 ` Kent Fredric
2012-03-12 7:08 ` Zac Medico
2012-03-12 7:39 ` Kent Fredric
2012-03-12 8:27 ` Michał Górny
2012-03-12 8:30 ` Ciaran McCreesh
2012-03-12 9:09 ` Michał Górny
2012-03-12 9:16 ` Kent Fredric
2012-03-12 9:48 ` Ulrich Mueller
2012-03-12 10:12 ` Kent Fredric
2012-03-12 15:20 ` Rich Freeman
2012-03-12 17:01 ` Zac Medico
2012-03-12 17:30 ` Rich Freeman
2012-03-12 17:46 ` Zac Medico
2012-03-12 19:20 ` Rich Freeman
2012-03-12 8:39 ` Kent Fredric
2012-03-12 9:10 ` Michał Górny
2012-03-12 3:55 ` Zac Medico
2012-03-09 17:52 ` Michał Górny
2012-03-12 1:00 ` Brian Harring
2012-03-09 18:02 ` James Broadhead
2012-03-09 18:24 ` Alexis Ballier
2012-03-09 18:29 ` Zac Medico
2012-03-09 18:33 ` Michael Orlitzky
2012-03-09 18:56 ` Zac Medico
2012-03-09 19:23 ` Ciaran McCreesh
2012-03-09 20:09 ` Michael Orlitzky
2012-03-19 1:12 ` [gentoo-dev] " Steven J Long
2012-03-19 1:36 ` Kent Fredric
2012-03-19 3:21 ` Brian Harring
2012-03-24 13:24 ` [gentoo-dev] " Steven J Long
2012-03-07 22:36 ` [gentoo-dev] " Alexandre Rostovtsev
2012-03-08 2:22 ` Jeroen Roovers
2012-03-08 16:14 ` [gentoo-dev] Ebb (eb) was: " Todd Goodman
2012-03-08 4:12 ` [gentoo-dev] " Alec Warner
2012-03-08 7:27 ` Ulrich Mueller
2012-03-08 8:13 ` Alec Warner
2012-03-08 15:27 ` Zac Medico
2012-03-08 16:11 ` David Leverton
2012-03-08 16:21 ` Zac Medico
2012-03-08 16:29 ` Ciaran McCreesh
2012-03-08 16:50 ` Zac Medico
2012-03-08 16:59 ` Alexandre Rostovtsev
2012-03-08 17:03 ` Ciaran McCreesh
2012-03-08 19:17 ` Ulrich Mueller
2012-03-08 19:31 ` Ciaran McCreesh
2012-03-08 19:48 ` Alexis Ballier
2012-03-08 9:42 ` Marc Schiffbauer
2012-03-08 16:30 ` Zac Medico
2012-03-08 16:35 ` Ciaran McCreesh
2012-03-08 17:07 ` Zac Medico
2012-03-08 17:14 ` Ciaran McCreesh
2012-03-08 17:30 ` Jeroen Roovers
2012-03-08 17:37 ` Ciaran McCreesh
2012-03-10 1:06 ` Kent Fredric
2012-03-10 13:53 ` Ciaran McCreesh
2012-03-09 11:28 ` Marc Schiffbauer
2012-03-08 12:06 ` Michał Górny
2012-03-08 15:58 ` Michael Orlitzky
2012-03-08 16:51 ` Ulrich Mueller
2012-03-08 17:03 ` Rich Freeman
2012-03-08 16:47 ` Mike Gilbert
2012-03-08 17:52 ` Michał Górny
2012-03-08 17:56 ` Ciaran McCreesh
2012-03-08 18:22 ` Zac Medico
2012-03-08 19:04 ` Ulrich Mueller
2012-03-08 19:38 ` Alexis Ballier
2012-03-09 0:50 ` Walter Dnes
2012-03-18 7:23 ` Ralph Sennhauser
2012-03-18 11:18 ` Rich Freeman
2012-03-18 11:27 ` Ulrich Mueller
2012-04-12 19:53 ` [gentoo-dev] " Ulrich Mueller
2012-04-12 20:19 ` Mike Frysinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120312020344.GE7579@localhost \
--to=ferringb@gmail.com \
--cc=gentoo-dev@lists.gentoo.org \
--cc=zmedico@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox