public inbox for ecos-maintainers@sourceware.org
 help / color / mirror / Atom feed
From: Jonathan Larmour <jifl@eCosCentric.com>
To: Bart Veer <bartv@ecoscentric.com>
Cc: john@dallaway.org.uk,  ecos-maintainers@ecos.sourceware.org
Subject: Re: Flash subsystem update
Date: Thu, 19 Feb 2009 20:31:00 -0000	[thread overview]
Message-ID: <499DC199.2030206@eCosCentric.com> (raw)
In-Reply-To: <pnk57mk5nn.fsf@delenn.bartv.net>

Bart Veer wrote:
>>>>>>"Jifl" == Jonathan Larmour <jifl@eCosCentric.com> writes:
> 
>     Jifl> I still think you haven't got the point of what is being
>     Jifl> discussed. As I've mentioned a few times now, your concerns
>     Jifl> are to do with initialising by C++ constructor. While I
>     Jifl> think the risks of this change are rather theoretical, the
>     Jifl> effects on setting the printf function are not, and that's
>     Jifl> the source of API breakage when cyg_flash_init disappears in
>     Jifl> future.
> 
> Uh, excuse me. If you look again at the email I sent last Friday, I
> clearly discussed both the constructor priority issue and the API
> issue. I concluded that keeping things exactly as they were did not
> involve any API compatibility issues.

Then how can you retain the semantics of setting the printf function in 
cyg_flash_init if the API for doing so is deprecated? What is the point of 
calling a new API official, telling people to start coding to it, and 
deprecating it immediately?

> The correct thing to do in a future release is to keep
> cyg_flash_init() exactly as it was before your check-in, but marked
> deprecated.
[snip]
> cyg_flash_init() would continue to exist indefinitely and would
> continue to take a printf function pointer. There is no API breakage.
> However people who bother to look at the compiler warnings would
> figure out that they could save a few bytes of code.
> 
> Your change to cyg_flash_init() has broken API compatibility for every
> flash-using application that has used the V2 flash branch since it was
> created.

But as you yourself said, the V2 flash branch is a development branch, and 
rightly so. There has been no release from it, nor has it been 
release-worthy. Anyone working against it faced a large struggle because 
it was interdependent on the rest of the tree which was ancient. And as we 
know from eCosCentric work, a lot of the redboot stuff was broken anyway, 
and we spent a lot of time fixing much of it, which has only gotten 
integrated as part of the merge to trunk.

I have no intention of retaining compatibility with an obsolete -cum- work 
in progress tree. What would be the point of that.

> It has also broken API compatibility for every application
> that has used the V2 flash API since that was merged into the anoncvs
> trunk.

That is measured in days, and the sole object of the import was in order 
to create eCos 3.0. Calling that tiny window significant for the purposes 
of backward compatibility beggars belief. Are we to be compatible with all 
intermediate states of the repository?

> It has also broken API compatibility for every eCosPro release
> for the last four years or so.

I'm only wearing a maintainer hat here. Please do the same.

The flash v2 API has never been released and there are no backward 
compatibility implications. eCos 3.0 is what cements the API. What I am 
concerned about is forward compatibility. I would rather have the API 
completely straight, including removal of cyg_flash_init. But since you 
are resistant to that, I have compromised with something which at least 
allows it to be #define'd away to nothing.

Before now there hasn't _been_ a cyg_flash_init function to be compatible 
with. And I've ensured that the legacy API's flash_init() DTRT.

Jifl
-- 
*See us at Embedded World 2009, Nürnberg, Germany, 3-5 Mar, Stand 11-300*
eCosCentric Limited      http://www.eCosCentric.com/     The eCos experts
Barnwell House, Barnwell Drive, Cambridge, UK.       Tel: +44 1223 245571
Registered in England and Wales: Reg No 4422071.
------["Si fractum non sit, noli id reficere"]------       Opinions==mine

  parent reply	other threads:[~2009-02-19 20:31 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-11  9:07 eCos 3.0 beta 1 punch list #2 John Dallaway
2009-02-13 19:56 ` Bart Veer
2009-02-17  1:29   ` Jonathan Larmour
2009-02-17  9:18     ` Jonathan Larmour
2009-02-17  9:34     ` Flash subsystem update [ was Re: eCos 3.0 beta 1 punch list #2 ] John Dallaway
2009-02-17 22:01       ` Flash subsystem update John Dallaway
2009-02-18 12:47         ` Bart Veer
2009-02-19  0:08           ` Jonathan Larmour
2009-02-19 11:50             ` Bart Veer
2009-02-19 14:40               ` John Dallaway
2009-02-19 15:13                 ` Bart Veer
2009-02-19 20:53                   ` Jonathan Larmour
2009-02-20  9:16                 ` John Dallaway
2009-02-19 20:31               ` Jonathan Larmour [this message]
2009-02-20 12:55                 ` Bart Veer
2009-02-20 21:22                   ` Jonathan Larmour
2009-02-17 21:07     ` eCos 3.0 beta 1 punch list #2 Bart Veer
2009-02-17 23:10       ` Jonathan Larmour
2009-02-19  0:48 ` Jonathan Larmour

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=499DC199.2030206@eCosCentric.com \
    --to=jifl@ecoscentric.com \
    --cc=bartv@ecoscentric.com \
    --cc=ecos-maintainers@ecos.sourceware.org \
    --cc=john@dallaway.org.uk \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).