Number | 3
|
Category | errata
|
Synopsis | 10.3.5: Inconsistent restrictions on system tasks in constant functions
|
State | lrmdraft
|
Class | errata-discuss
|
Arrival-Date | Jul 21 2001
|
Originator | Shalom Bresticker, Motorola
|
Release | 2001b: 10.3.5
|
Environment |
|
Description |
In Section 10.3.5 ("Use of constant functions"), the following constraints appear: - All system tasks within a constant function shall be ignored. - The only system task that may be invoked is $display, and it shall be ignored when invoked at elaboration time. The two appear inconsistent. Only one should appear. |
Fix |
Delete 5th bullet: - The only system task that may be invoked is $display, and it shall be ignored when invoked at elaboration time. If there is a another issue regarding constant functions, a new erratum entry should be filed. |
Audit-Trail |
From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: btf-bugs@boyd.com Cc: Subject: Re: errata/3: Inconsistent restrictions on system tasks in constant functions Date: Thu, 11 Oct 2001 17:06:42 +0200 --------------2451956E7969EEA5157A258B Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit The first is correct. The second should be deleted. I found this in a mail from Yatin that accompanied Draft 6. The change was not done properly. Shalom Shalom.Bresticker@motorola.com wrote: > In Section 10.3.5 ("Use of constant functions"), > the following constraints appear: > > - All system tasks within a constant function shall be ignored. > > - The only system task that may be invoked is $display, > and it shall be ignored when invoked at elaboration time. > > The two appear inconsistent. Only one should appear. -- ************************************************************************** Shalom Bresticker Shalom.Bresticker@motorola.com Motorola Semiconductor Israel, Ltd. Tel #: +972 9 9522268 P.O.B. 2208, Herzlia 46120, ISRAEL Fax #: +972 9 9522890 ************************************************************************** --------------2451956E7969EEA5157A258B Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> The first is correct. The second should be deleted. I found this in a mail from Yatin that accompanied Draft 6. The change was not done properly. Shalom
Shalom.Bresticker@motorola.com wrote:
- All system tasks within a constant function shall be ignored.
- The only system task that may be invoked is $display,
The two appear inconsistent. Only one should appear.
-- ************************************************************************** Shalom Bresticker Shalom.Bresticker@motorola.com Motorola Semiconductor Israel, Ltd. Tel #: +972 9 9522268 P.O.B. 2208, Herzlia 46120, ISRAEL Fax #: +972 9 9522890 ************************************************************************** --------------2451956E7969EEA5157A258B-- From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: etf-bugs@boyd.com Cc: Subject: Re: errata/3: Inconsistent restrictions on system tasks in constant functions Date: Tue, 27 Aug 2002 11:51:16 +0300 Update from ETF meeting 2002-08-12: 1. The original erratum entry refers to section 10.3.5. It says, "Constant functions ... shall meet the following constraints:" Bullet 3 then says, "All system tasks .. shall be ignored." Bullet 5 says, "The only system task that may be invoked is $display, and it shall be ignored when invoked at elaboration time." These two bullets are contradictory. 2. The source of the problem was traced to an improper correction from Draft 5 to Draft 6. Draft 5 was the original ballot version. In that version, bullets 3 and 4 did not exist. Draft 6's bullet 5 was bullet 3 in Draft 5. Cadence objected to that bullet in ballot comment CDS09, "What is special about $display?". The WG resolution to that comment was supposed to be replacing that bullet with two new bullets, which appear as bullets 3 and 4 in Draft 6, allowing, but ignoring, all system tasks. This was documented in a mail from Yatin Trivedi to 1364 WG on 2000-12-04, containing all ballot comments and their resolutions in an .xls file. It was not to the BTF, so it is not in BTF archives. I have a copy of the mail and the .xls file. The correction was incorrectly made. The two new bullets were added, but the original bullet referencing $display was not deleted. 3. If we had left the WG ballot resolution as is, it would be a simple erratum. However, in the ETF meeting on 2002-08-12, the entire subject came up for reconsideration. I understood the issues as follows: Should system tasks be allowed at all in constant functions? How can the compiler distinguish between constant functions and regular functions, and thereby apply different rules to them? Shalom From: Shalom.Bresticker@motorola.com To: etf-bugs@boyd.com Cc: Subject: Re: errata/3: Inconsistent restrictions on system tasks in constant functions (fwd) Date: Sun, 27 Apr 2003 18:40:03 +0300 (IDT) Considering that we are not currently working on this issue, and there is an open contradiction in the LRM, and it is known that the VSG once decided on a particular resolution and that the contradiction is a result of a mistake in editing the LRM, and that we are about to start publishing drafts, and we have a chance to quickly issue a revision of 1364-2001 with errata corrections, THEREFORE I propose that we accept for now the past decision of the VSG (to delete bullet 5), and simultaneously open a new issue for re-examination of the constant function issue. Shalom ---------- Forwarded message ---------- Date: Tue, 27 Aug 2002 11:51:16 +0300 Update from ETF meeting 2002-08-12: 1. The original erratum entry refers to section 10.3.5. It says, "Constant functions ... shall meet the following constraints:" Bullet 3 then says, "All system tasks .. shall be ignored." Bullet 5 says, "The only system task that may be invoked is $display, and it shall be ignored when invoked at elaboration time." These two bullets are contradictory. 2. The source of the problem was traced to an improper correction from Draft 5 to Draft 6. Draft 5 was the original ballot version. In that version, bullets 3 and 4 did not exist. Draft 6's bullet 5 was bullet 3 in Draft 5. Cadence objected to that bullet in ballot comment CDS09, "What is special about $display?". The WG resolution to that comment was supposed to be replacing that bullet with two new bullets, which appear as bullets 3 and 4 in Draft 6, allowing, but ignoring, all system tasks. This was documented in a mail from Yatin Trivedi to 1364 WG on 2000-12-04, containing all ballot comments and their resolutions in an .xls file. It was not to the BTF, so it is not in BTF archives. I have a copy of the mail and the .xls file. The correction was incorrectly made. The two new bullets were added, but the original bullet referencing $display was not deleted. 3. If we had left the WG ballot resolution as is, it would be a simple erratum. However, in the ETF meeting on 2002-08-12, the entire subject came up for reconsideration. I understood the issues as follows: Should system tasks be allowed at all in constant functions? How can the compiler distinguish between constant functions and regular functions, and thereby apply different rules to them? Shalom From: Steven Sharp <sharp@cadence.com> To: etf-bugs@boyd.com, Shalom.Bresticker@motorola.com Cc: Subject: Re: errata/3: Inconsistent restrictions on system tasks in constant functions (fwd) Date: Mon, 28 Apr 2003 21:38:59 -0400 (EDT) > I understood the issues as follows: > Should system tasks be allowed at all in constant functions? > How can the compiler distinguish between constant functions > and regular functions, and thereby apply different rules to them? This second question isn't a problem, though the text may be confusing. It is a use of the function in an expression that is required to be a constant expression that creates the requirement that the function follow those different rules. The text isn't very clear about whether the term "constant function" refers to a function used in such a context, or a function eligible to be used in such a context. However, it is clear what the behavior needs to be. Any function used in such a context must meet the restrictions. Any other function doesn't have to. The compiler can check the restrictions and mark each function as eligible or not when it parses them, and then produce an error later when it processes constant expressions and finds an ineligible function. Or it can wait until it sees the function used in a constant expression and then go do the checks and produce an error if it doesn't satisfy the restrictions. Different approaches may give better compile speed versus better errors, but it can be implemented. Constant functions have some problems, but this isn't one of the serious ones. Steven Sharp sharp@cadence.com From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: Steven Sharp <sharp@cadence.com> Cc: etf-bugs@boyd.com Subject: Re: errata/3: Inconsistent restrictions on system tasks in constant functions (fwd) Date: Wed, 30 Apr 2003 12:40:45 +0300 I agree with you, but that was how I understood the discussion. My understanding of compilers is limited, so maybe I did not understand correctly. My proposal still stands, to correct the existing contradiction according to what was SUPPOSED to be in Draft 6, and open a new issue on constant functions, if needed. Shalom Steven Sharp wrote: > > I understood the issues as follows: > > Should system tasks be allowed at all in constant functions? > > How can the compiler distinguish between constant functions > > and regular functions, and thereby apply different rules to them? > > This second question isn't a problem, though the text may be confusing. > > It is a use of the function in an expression that is required to be a > constant expression that creates the requirement that the function follow > those different rules. The text isn't very clear about whether the term > "constant function" refers to a function used in such a context, or a > function eligible to be used in such a context. However, it is clear what > the behavior needs to be. Any function used in such a context must meet > the restrictions. Any other function doesn't have to. > > The compiler can check the restrictions and mark each function as eligible > or not when it parses them, and then produce an error later when it processes > constant expressions and finds an ineligible function. Or it can wait until > it sees the function used in a constant expression and then go do the checks > and produce an error if it doesn't satisfy the restrictions. Different > approaches may give better compile speed versus better errors, but it can be > implemented. > > Constant functions have some problems, but this isn't one of the serious ones. > > Steven Sharp > sharp@cadence.com -- Shalom Bresticker Shalom.Bresticker@motorola.com Design & Reuse Methodology Tel: +972 9 9522268 Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478 |
Unformatted |
|
Hosted by Boyd Technology