<?xml version="1.0"?>
<rss version="2.0">
 <channel>
  <title>REBOL Update News</title>
  <link>http://www.rebol.net/cgi-bin/upnews.r</link>
  <description>Release news and notes for REBOL updates.</description>
  <language>en-us</language>
  <copyright>Carl Sassenrath 2008</copyright>
  <generator>REBOL Messaging Language</generator>
  <item>
   <title>Post REBOL 2.7.6 compatibility problems here</title>
   <link>http://www.rebol.net/upnews/0028.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Mon, 17 Mar 2008 21:52:29 -0400</pubDate>
   <description>This blog is for posting any compatibility problems you have found in 2.7.* relative to 2.6.*.

The purpose of doing this is to help other coders who might be searching for some answers.

For example, using 2.7, the script that builds REBOL stopped working. It is a complex script, and I finally tracked it down to this little change that came from the new SWITCH added back in 2.7.2:

In 2.6.*:

  &#062;&#062; switch [x] [y [1] x [2]]
  == 2

In 2.7.6:

  &#062;&#062; switch [x] [y [1] x [2]]
  == none

It make sense because 'x is not the same thing as [x]. The problem is the result of the 2.6 SWITCH code which used SELECT and that allows this kind of selection. (Search for a value or a block sequence of values.) But, in 2.7, SWITCH is a native function and does not have that subtle effect.

And, if you are asking &#034;is this a good coding practice&#034; in general (to use a block with a word as a switch value), the answer is no. It is not good practice, and I avoid that in my own code. (Note: I did not write the above build script.)

</description>
  </item>
  <item>
   <title>New Core and View for Linux LibC6</title>
   <link>http://www.rebol.net/upnews/0027.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Sun, 16 Mar 2008 13:38:08 -0400</pubDate>
   <description>A few people report problems with the 2.7.6 Linux Core and View executables that we built under Fedora. So, we've built them again, this time under Debian. The downloads are on the main REBOL.com site (not the SDK yet).

Please let us know how they work on your systems, and we can rebuild the SDK under Debian.</description>
  </item>
  <item>
   <title>REBOL 2.7.6 Released - Changes</title>
   <link>http://www.rebol.net/upnews/0026.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Fri, 14 Mar 2008 18:34:42 -0400</pubDate>
   <description>REBOL 2.7.6 has been released!

Various packages are available for download from:

*REBOL/View: REBOL.com View downloads area

*REBOL/Core: REBOL.com Core downloads area

*REBOL/SDK: REBOL Releases area.

\note And thanks to...

Thank you to the entire V2.7 team for their efforts. I would like to especially thank Brent for project supervision and BrianH for coordinating DevBase and making the V3.0 compatible mezzanine changes.

/note

===Enhancements and Additions

The following outlines the addition of new functions as well as enhancements of existing functions for 2.7.6.

---Bit shift on integers and binaries

Added the SHIFT function, which performs a bit shift operation. Right shift (decreasing) is default. SHIFT is a native value. 

USAGE: 
    SHIFT data bits /left /logical /part length

ARGUMENTS: 
    data -- (Type: integer binary)
    bits -- Number of bits to shift (Type: integer)

REFINEMENTS:
    /left -- Shift bits to the left (increasing)
    /logical -- Use logical shift (unsigned, fill with zero)
    /part -- Shift only part of a series.
        length -- (Type: integer)

---Release /library Component for Free

The /library component is now included in the free distribution of REBOL.

---Backported FIRST+ Mezzanine from REBOL 3

FIRST+ is a function added in REBOL 3 as a native, and has been implemented as a mezzanine in REBOL 2.7.6 for forwards compatibility and use with backported code.

USAGE:
    FIRST+ 'word

DESCRIPTION:
    Return the first of a series, and increment the series index. FIRST+ is a function value.

ARGUMENTS: 
    word -- word must be a series. (Type: word)

(SPECIAL ATTRIBUTES)
    catch

---Backported ALSO Mezzanine from REBOL 3

ALSO is a function added in REBOL 3 as a native, and has been implemented as a mezzanine in REBOL 2.7.6 for forwards compatibility and use with backported code.

USAGE:
    ALSO value1 value2

DESCRIPTION:
     Returns the first value, but also evaluates the second.
     ALSO is a function value.

ARGUMENTS:
     value1 -- (Type: any-type)
     value2 -- (Type: any-type)

---Backported IN-DIR Mezzanine from REBOL 3

IN-DIR is a mezzanine used in REBOL 3, and has been implemented in REBOL 2.7.6 for forwards compatibility and use with backported code.

USAGE:
    IN-DIR dir block

DESCRIPTION:
     Evaluate a block while in a directory.
     IN-DIR is a function value.

ARGUMENTS:
     dir -- Directory to change to (changed back after) (Type: file none)
     block -- Block to evaluate (Type: block)

---Backport TO-RELATIVE-FILE Mezzanine from REBOL 3

TO-RELATIVE-FILE is a mezzanine used in REBOL 3, and has been implemented in REBOL 2.7.6 for forwards compatibility and use with backported code.

USAGE:
    TO-RELATIVE-FILE file /no-copy /as-rebol /as-local

DESCRIPTION:
     Returns the relative portion of a file if in a subdirectory, or the original if not.
     TO-RELATIVE-FILE is a function value.

ARGUMENTS:
     file -- File to check (local if string!) (Type: file string)

REFINEMENTS:
     /no-copy -- Don't copy, just reference
     /as-rebol -- Convert to REBOL-style filename if not
     /as-local -- Convert to local-style filename if not

---Backport TAKE Mezzanine from REBOL 3

TAKE is a function added in REBOL 3 as a native, and has been implemented as a mezzanine in REBOL 2.7.6 for forwards compatibility and use with backported code.

USAGE:
    TAKE value /part length /last

DESCRIPTION:
     Copies and removes from series. (Modifies)
     TAKE is a function value.

ARGUMENTS:
     value -- (Type: series port none)

REFINEMENTS:
     /part -- Limits to a given length or position
         length -- (Type: number series port pair)
     /last -- Take it from the tail end

(SPECIAL ATTRIBUTES)
     catch

---Backport MOVE Mezzanine from REBOL 3

MOVE is a mezzanine used in REBOL 3, and has been implemented in REBOL 2.7.6 for forwards compatibility and use with backported code. Its features have been carefully restricted to prevent aliasing and overlap errors. It is useful for rearranging elements in GUI code, structure manipulation, etc.

USAGE:
    MOVE source offset /part length /skip size /to

DESCRIPTION:
     Move a value or span of values in a series.
     MOVE is a function value.

ARGUMENTS:
     source -- Source series (Type: series)
     offset -- Offset to move by, or index to move to (Type: integer)

REFINEMENTS:
     /part -- Move part of a series
         length -- The length of the part to move (Type: integer)
     /skip -- Treat the series as records of fixed size
         size -- Size of each record (Type: integer)
     /to -- Move to an index relative to the head of the series

---EXTRACT is Now Faster.

EXTRACT (a mezzanine function) was rewritten in REBOL 3 to be faster through preallocation, safer through better error screening, to handle missing values better when extracting from strings, to optionally specifiy an alternate default value, and to handle types other than block! better. Note that EXTRACT now returns a series of the same type as the source series.

---ARRAY Supports Function Values

ARRAY now supports function values for the initialization value. This allows advanced block generation through function composition. When a function is used as an initial value, it will be called for each value to be inserted, with the return value of that call inserted instead. The function should take no arguments. 

---REPLACE Supports Function Values

REPLACE now allows function values to be used to generate the replacement values. When a function is used as the replace argument it will be called at every position in the source, with the return value of the call used as the replacement value at that position. The function can take one argument, the source series at the position of the replacement before the replacement has occurred - this allows you to generate your replacement values based on the value being replaced or its position, or to make other changes to the source series. The function could also take no arguments, but not more than one. 

---REPLACE Now Has a /tail Refinement

REPLACE now has a /tail refinement that causes it to return the series at the position after the last replacement. Otherwise it returns the series at the original position.

---ALTER Return Value Is More Useful

ALTER now returns true if the value was added by ALTER, and false if it wasn't. 

===General Bug Fixes

The following sections outline bug fixes implemented in the 2.6.7 release common to all platforms. RAMBO numbers (http://www.rebol.net/cgi-bin/rambo.r) are included for reference.

---Fixed SORT bug list! datatype. RAMBO #4314 

Sort was adding the unset! and end! datatypes to list! data. LIST! was removed from SORT for now. 

---Fixed Missing 307 HTTP response. Rambo #4260

There is now a 307 response (Temporary Redirect) in the http and https schemes.

---Fixed do load tail ['a] crash. RAMBO #4238

A crash used to happen with do load tail ['a] with corrupt datatype: 62 at 101. This is fixed.

---Fixed b: first to block! {'thing} get b causes crash. RAMBO #4286

---Fixed index? #[block! [] 2] causes crash. RAMBO #4155

---Fixed reduce/only nonblockdata [] crashes. RAMBO #4319

Various situations with reduce/only such as reduce/only &#034;bye&#034; [] would dump and crash. This has been fixed.

---Fixed Enbase ignores index offset. RAMBO #4259

Enbase was not working correctly with a series which has index &#062; 0. This has been correctd.

---Fixed AGG crash RAMBO #4010

AGG crash no longer occurs when used in the following situation: 

    view layout [ box effect [ draw [ pen radial red line 10x10 100x100]]] 

---Fixed SEEK Bug. RAMBO #3598

Previously, after opening a text file with OPEN/SEEK and copying the content, every first byte after a newline is replaced by a second newline. /SEEK now implies /BINARY in 2.7.6.

---Fixed Encap crash when &#034;title&#034; is in the header.

A binary that crashed was produced when the word &#034;title&#034; was in the encap header in the non-view versions of encap. This has been fixed.

===Windows Platform Bug Fixes

The following sections outline bug fixes specific to the Windows platform.

---Fixed Missing Win32 Registry Functions in SDK Runtimes. RAMBO #4064

The Windows Registry Functions were being loaded by /Pro, /Face, and /Command but were not referenced at runtime. This has been fixed.

---Fixed Do Not Set Master Sound Level by Default. RAMBO #4239

Setting sound/volume to NONE or to &#060;0.0 will now keep the master volume as it has been set by the user.

---Fixed Black Console Window Appearing. RAMBO #3763, #4113

During each shell CALL on Windows, the black Windows console would appear. It no longer appears. Use the /show option to see it. 

===Posix Platform Bug Fixes

The following sections outline bug fixes specific to Posix platforms. 

---Fixed Segfault on mold/all/flat [] in Posix RAMBO #4267

---Fixed Function Keys Bug in Linux. RAMBO #4263

In Linux, any function related keys crashed VIEW in 2.7.5. They now operate as expected.

---Fixed Call was returning wrong value in 2.7.5. RAMBO #4054

Call would return random values in the 2.7.5 build for Linux. This has been resolved. 


</description>
  </item>
  <item>
   <title>CALLBACK vs CALLBACK!</title>
   <link>http://www.rebol.net/upnews/0025.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Thu, 13 Mar 2008 18:45:33 -0400</pubDate>
   <description>The document on callback functions shows them specified two ways:

    example: make routine! [
        c [callback! [int int return: [int]]]
        return: [int]
    ] test-lib &#034;test&#034;

and

    example: make routine! [
        c [callback [int int return: [int]]]
        return: [int]
    ] test-lib &#034;test&#034;

Obviously, both cannot be correct.

Also, rarely do we use a word with ! for non-datatypes, although in this case it is &#034;kind of&#034; a datatype.

I need your input on which name you prefer. Thanks.</description>
  </item>
  <item>
   <title>V2.7.6 Frozen, TBR</title>
   <link>http://www.rebol.net/upnews/0024.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Mon, 10 Mar 2008 13:50:16 -0400</pubDate>
   <description>Changes and fixes to the 2.7.6 build are frozen, and it is now pending final testing for release.

The plan is to release 2.7.6 this week, depending on test results.

If somehow you missed submitting your favorite bug or enhancement, you'll get another chance, as we are starting to make plans for 2.7.7.
</description>
  </item>
  <item>
   <title>REBOL V2.7.6 Prelim Test Release</title>
   <link>http://www.rebol.net/upnews/0023.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Sat, 8 Mar 2008 12:42:33 -0500</pubDate>
   <description>7-Mar-2008, we released a test version of 2.7.6 for Win32. This exe is a beta for developers to test out.

We are still working on Linux and OSX changes and fixes, but want to have them out today.

Schedule for 2.7.6 release is later today -- however, if necessary we will delay it by a day.
</description>
  </item>
  <item>
   <title>Remember: Only tested changes get put in 2.7.6</title>
   <link>http://www.rebol.net/upnews/0022.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Tue, 4 Mar 2008 14:35:46 -0500</pubDate>
   <description>There's a lot of talk about what should and should not be added for in 2.7.6.

\note So here's the rule

Since the primary goal is to get it out by this Friday, we can only accept well-tested changes.

/note

:What's in: - functions or features that you've tested and used yourself or a lot by others and you know it's 100% reliable.

:What's out: - functions or features that you have not tested, or only just wrote &#034;yesterday&#034; and really have no good history of testing.

Also, if the function has been added to 3.0, in order to add it to 2.7, it must have identical specs and behavior to 3.0. At this stage, we don't want to create new incompatibilities with 3.0.
</description>
  </item>
  <item>
   <title>REBOL/Core 2.7 Beta for Mac OSX Intel Architecture</title>
   <link>http://www.rebol.net/upnews/0021.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Tue, 4 Mar 2008 14:32:33 -0500</pubDate>
   <description>As you may know, we are planning a release for REBOL and SDK 2.7.6 for this Friday.

Some of you who use Apple OSX systems with Intel CPUs have been interested in trying an Intel native (not PPC) build of REBOL/Core.  A test version has been built and uploaded to the REBOL Test Builds area of this website. Go to the OSX (024) directory and sort by date. You will find rebol2705024i, the binary executable (not a tar or gzip) file.

Note that this release is fresh from the oven so has had very little testing. But, again, that's why you want to try it out, right? Not because it's more than 300% faster on your Mac. No, that's not why, is it?

If you find bugs, report them by Thursday, and we can try to get them fixed for the 2.7.6 release on Friday. But, no promises, as we've got quite a bit to do by then (along with our current R3.0 Unicode builds).</description>
  </item>
  <item>
   <title>REBOL V 2.7.6 -- Last call for changes</title>
   <link>http://www.rebol.net/upnews/0020.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Tue, 4 Mar 2008 14:31:50 -0500</pubDate>
   <description>REBOL 2.7.6 release is scheduled Friday, 7-Mar-2008.

If you have fixes or other changes for REBOL 2.7, now is the time to get them to us.

The 2.7.6 project is being managed on the R2-Beta AltME world. If you want to be involved, you can ask BrianH, Henrik, or Gabriele for an account.

If all you want to do is ask for a specific bug to be fixed, or better yet, provide the code to fix a specific bug, you can contact them as well.

Also, we are providing an AltME web feed for the R2-Beta world.

And, we also plan to add a little web-form for anyone to post comments to the R2-Beta world (from the web directly).</description>
  </item>
  <item>
   <title>Bringing upnews back online</title>
   <link>http://www.rebol.net/upnews/0019.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Tue, 4 Mar 2008 14:29:48 -0500</pubDate>
   <description>After last year's server crash, this upnews blog was pretty much abandoned and no longer updated.

However, with the 2.7.6 update project, it's time to bring it back. So, voila.</description>
  </item>
  <item>
   <title>Version 2.7.5 - FreeBSD 6.0</title>
   <link>http://www.rebol.net/upnews/0018.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Sat, 31 Mar 2007 17:41:47 -0400</pubDate>
   <description>A full SDK build for FreeBSD 6.0.  Minor testing done, so let me know how well it works.</description>
  </item>
  <item>
   <title>The plan for 2.7.6</title>
   <link>http://www.rebol.net/upnews/0017.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Wed, 21 Mar 2007 13:36:31 -0400</pubDate>
   <description>The 2.7.5 release serves as a baseline toward fixing a few bugs that are listed in RAMBO. Once those are included, we will release a 2.7.6 to verify the fixes work properly. If so, then 2.7.6 will become the new official release (non-beta). If not, then we'll keep hammering away at those bugs with a 2.7.7.

\note What gets fixed?

We are not aware of all bugs that are problematic to specific developers. So...

If you have a critical bug that needs fixing please make sure that Gabriele Santilli (contact is: gabriele at rebol, or altme) knows of it. He is in charge of selecting what bugs get fixed.

Also, if you have a suggested fix or patch, please make sure Gabriele is aware of that code. It is often better for us to use code that you know works, rather than design the fix again ourselves (which can greatly delay the fix). And, thanks!

/note</description>
  </item>
  <item>
   <title>2.7.5 SDK Releases</title>
   <link>http://www.rebol.net/upnews/0016.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Wed, 21 Mar 2007 13:25:30 -0400</pubDate>
   <description>This week we released new versions of the SDK, including tools and current source code. A minor degree of testing was done to confirm that these releases run, but more extensive testing must be done by developers. The releases are found here.

As with all test releases, use this code with caution and at your own risk. Do not put it online for your websites or current customers until you know for certain that it works without problems.
</description>
  </item>
  <item>
   <title>REBOL release update news restored</title>
   <link>http://www.rebol.net/upnews/0015.html</link>
   <author>Carl Sassenrath &lt;no-spam@rebol.com&gt;</author>
   <pubDate>Wed, 21 Mar 2007 13:22:16 -0400</pubDate>
   <description>This release news page has been restored.

Note that we are still in the process of restoring comments to prior messages. We will merge older comments with newer ones.</description>
  </item>
 </channel>
</rss>
