REBOL3 tracker
  0.9.12 beta
Ticket #0002127 User: anonymous

Project:

Previous Next
rss
TypeIssue Statussubmitted Date6-Mar-2014 22:42
Versionr3 master CategoryEvaluation Submitted byBrianH
PlatformAll Severityminor Prioritynormal

Summary [Epic] Holes in our evaluation model
Description For Rebol 3 we have done a lot to clean up our semantics, and build a much cleaner, more uniform, more intentionally designed evaluation model. Between the rebalancing of error triggering, or of none propagation, or of type conversions, we're well on our way to making a much more solid base for us to build on going forward.

However, we still have some holes in the new model that need fixing or filling in. This is a list of the minor changes, fixes or additions that we should do before 3.0, at least ones that aren't referenced in the other epics (though a few of those too). Limited to semantic model or API changes - we can fix bugs while we're at it, but semantic model changes need to go in before the 3.0 release sets an expectation of continuing compatibility.

Related tickets in the first comment, to make linking easier. Status will be updated there.
Example code

			

Assigned ton/a Fixed in- Last Update6-Mar-2014 22:55


Comments
(0004324)
BrianH
6-Mar-2014 22:55

Missing functions:
- TO-VALUE #2003 - The last bit of the "unset is only erroneous when you need it to be" principle.
- IDENTITY #1987 - The noop value filter function, for when you have to provide a filter but don't need to do anything. Evaluating version of QUOTE.
- WRAP #2119 - Missing part of the new locals model (like #1973): The locals-gathering equivalent of USE.
- ANY-OF and ALL-OF #637 - *EACH conditional functions, data-processing ANY and ALL.
- DO-COMPARE #2110 - Uniform record-oriented function behavior for functions written in Rebol, to promote the uniformity.
- EXPR #2120 - We need an answer to shut down complaints about our precedence rules (a common issue with new users). Fast mezzanine is fine (except #539), unless we use it a lot.

Breaks in the model:
- DO/next non-block #1951 - expected modification doesn't happen, doesn't trigger error either.
- REDUCE/into non-block #2061 - breaks the /into model, making code that uses it not work.
- COMPOSE/into non-block #2062 - breaks the /into model, making code that uses it not work.
- SPLIT misnames /into #2051 - breaks the /into model, and it's not a good name for this either.
- TRANSCODE/error triggers construction syntax errors #1857 - This breaks an invariant that LOAD depends on.
- REDUCE/no-set sets set-words #2122 - no-set means no setting.
- No error for REDUCE/only [unset-word] #1771 - unset-tolerant code should require get-words or GET/any, so you can tell.
- Crash on REDUCE REDUCE [:self] #1756 - bigger issue: get-word evaluation of 'self keyword doesn't convert from frame to object, like word evaluation does.

Filling in the coverage gaps (some not as critical):
- Set operations on map! #1984 - Increase the coverage of the set functions like UNION.
- FIRST+, ++ and -- for ports #559 - Let ports that support series-like actions act like series. Only if it's efficient enough.

More will links be added later.

#637, #1951, #2003 and #2119 have PRs.

Date User Field Action Change
7-Mar-2014 17:10 BrianH Comment : 0004324 Modified -
7-Mar-2014 16:57 BrianH Comment : 0004324 Modified -
7-Mar-2014 10:05 BrianH Comment : 0004324 Modified -
7-Mar-2014 09:54 BrianH Comment : 0004324 Modified -
7-Mar-2014 09:31 BrianH Comment : 0004324 Modified -
7-Mar-2014 09:22 BrianH Comment : 0004324 Modified -
7-Mar-2014 08:57 BrianH Comment : 0004324 Modified -
7-Mar-2014 08:44 BrianH Comment : 0004324 Modified -
7-Mar-2014 08:14 BrianH Comment : 0004324 Modified -
6-Mar-2014 22:55 BrianH Comment : 0004324 Added -
6-Mar-2014 22:42 BrianH Ticket Added -