Downloads Products Documents Community

REBOL 3 Change Log: 2010

Core and Host-Kit 2.100.111 20-Feb-2011

Various changes made to QUIT mechanism:

  1. The exit code should be returned properly in all cases now, and we've tested it.
  2. The catch/quit at the top level has been removed and the C code layer at the top level has been fixed to handle the possible exception and exit code.
  3. A new function will send the QUIT command to all devices for normal or quit exiting. Implementations that need to cleanup resources can now do so.

Host-kit changes:

Cure Code fixes:

OS X Host-Kit Library 2.100.110 9-Nov-2010

The first test release of the Host-Kit's for OS X has been posted on the github site listed below. (Actually, it is an OS X dynamic-lib, not officially a shared object in the "so" way.)

For right now, in the lib directory, the file is what you need. Rename it to in the search path for libs, as noted in the r3/docs/concepts/host-kit.html doc.

It has been tested to verify that the host-kit builds and runs fine on OS X using this library, so please tell us if you run into any problems.

BTW: You can thank Andreas Bolka for developing the required dynamic lib building technique. It's not a simple -dynamiclib method, but requires two ld passes over the library objects.

Host-Kit 2.100.110 2-Nov-2010

The Host-Kit source code is now stored on

Do not distribute the URLs below because they are temporary.
This is a testing area on github... until reviewed, and various changes are made.

Read: r3/docs/git.html

Core 2.100.110 2-Nov-2010

Core 2.100.109 21-Oct-2010

Fixes various bugs and A108 problems. Also adds improvements to the module system.

Core 2.100.108 19-Oct-2010

This is a highly experimental release, meaning it contains substantial changes that need further validation and testing.

Note: Many thanks go to Brian Hawley as a major contributor to the A108 module-related function changes. The module system resides within various functions of the new sys context, and you can view those functions with help sys at the command line. It's a powerful module mechanism with many features. We will be updating the related docs.

Curecode tickets:

Core 2.100.107 10-Sep-2010


Host Kit 2.100.107 10-Sep-2010

Host Kit 2.100.106 8-Sep-2010

Host Kit 2.100.105 1-Sep-2010

Host Kit 2.100.104 26-Aug-2010

Host Kit 2.100.103 20-Aug-2010

Host Kit 2.100.102(B) 29-July-2010

Note: for Linux is also available. See R3 chat.

AS-PAIR has gone native

The AS-PAIR function is used quite often in graphics code, so has been optimized to a native in this release.

Image Datatype/Argument added

Images can now be passed to commands and returned as a result. They can also be accessed in blocks.

RXT_IMAGE now maps images to this struct in the arg union:

struct {
  void *image;
  int width:16;
  int height:16;

Use these macros:

RXA_IMAGEfor image series
RXA_IMAGE_BITSfor image bitmap
RXA_IMAGE_WIDTHfor width in pixels
RXA_IMAGE_HEIGHTfor height in lines

Word mapping has changed

Word arrays now store their length in the first element. Thus, word indexes are one based, allowing the zero case to indicate that the word was not found. Adjust your word enums accordingly (and we'll update make-host-ext.r script too.)

Effects: RXI_MAP_WORDS and RXI_FIND_WORDS functions.

Make Image Added

RXI_MAKE_IMAGE(w, h) has been added. The result is an image series. Note that it can get GC'd if you're not careful.

REBSER *img = RXI_MAKE_IMAGE(100, 500);

Or, you can use unsigned 32 bit integers for pixel data.

GC Memory Protection

If you create a series such as a string, block, or image, and you do not store a reference to it within an existing variable, object, or block, it will eventually be deallocated by the garbage collector (GC).

In some cases, where you may be constructing a block or creating multiple strings or images, you need to protect them from GC. You can now use:

RXI_GC_PROTECT(series, protect)

Set the protect arg TRUE to prevent GC, and FALSE to allow GC.

Command Name Changes

The make-host-ext.r script will now insert the module name into the CMD_ name defines. This allows inclusion of multiple module header files that could contain identical command names.

Host Kit 2.100.101 20-July-2010

Major change to the definition of the pair datatype from integer to floating point. Includes changes to all pair actions, the image datatype, the gob datatype, and also events and window management. This is quite experimental, and we're not 100% sure it will work as we need.

Also adds several new functions to the extensions API, including object field access, string-to-word and word-to-string mapping, and more.

Please read Blog about testing before trying it.

Host Kit 2.100.100 11-July-2010

New Host-Kit (limited distribution) that includes a rough draft of the graphics engine powered as an embedded extension. Proves the basic concepts work, although there's a lot more to do (however, it's not bottlenecked anymore with /Core advancements and fixes.) The entire source code for the DRAW graphics engine is available now for developer enhancements.

Core.exe 2.100.99 7-May-2010

Curecode fixes:

0000606 : Ports Have QUERY %file/ return info if %file is not a directory.
0001603 : Native Console output is incomplete for long values
0001584 : Native SELFLESS? function
0001601 : Native FOR with series! start and number! end
0001600 : Native FOR with a series! bump argument makes no sense
0000602 : Mezzanine DIR? incorrect with existing files (not dirs)
0001604 : Mezzanine HELP triggers an error when it searches
0001591 : Unspecified Shared library loading is not working on Linux
0000710 : Unspecified Access error in Linux when using BROWSE
0000632 : Unspecified Access Error when using Why?

Core.exe 2.100.98 6-May-2010

Curecode fixes: (updated 7-May)

0001563 : Extensions COMMAND function takes integer! argument, but chokes on it.
0001528 : Syntax 'self seems to be reserved in closures and funcs
0001569 : Security UNSET 'SELF works, should throw error, provokes system crash
0001001 : Error Handling TO-ERROR on object does not work anymore?
0001535 : Error Handling WORDS-OF TRY [BREAK] crashes
0001579 : Graphics GOB! value FLAGS field does not accept HIDDEN
0001456 : Ports open does not reset the internal file pointer of a previously closed file port
0000321 : Parse BREAK from PARSE
0001476 : Datatype PICK pair! 'x returns the y value
0001534 : Datatype REFLECT datatype! ignores FIELD argument
0001538 : Datatype MAKE vector! with decimal size is not allowed, unlike most other series!
0001567 : Datatype Making very large image! values gives curious result
0001564 : Datatype TO-UTYPE crashes on integer!
0001452 : Datatype INSERT and APPEND into binary! not working with block! value
0001050 : Datatype APPEND object! [self: 1] overrides self
0001377 : Native PICK with a word as selector could work on PAIR! values
0001389 : Native To Binary! [integer] does not work
0001577 : Native BODY-OF treats op! values derived from natives differently from those derived from actions
0001501 : Native Weird native bug in SOURCE mezzanine
0001480 : Native simple parsing does not work for large datasets
0001486 : Native MOLD does not cope with "^(1E)"
0001474 : Native Can't LOOP 100%
0001529 : Native 'self is being bound by For, Repeat, Foreach, Map-each and Remove-each
0001549 : Native Behavior of BIND and IN should be consistent with the binding behavior of the function that created the context
0001499 : Mezzanine REPLACE behaving differently with strings and binary values
0001572 : Mezzanine REPEND's and REMOLD's value arguments shouldn't be any-type!
0001497 : Documentation Reword the docstrings of EQUAL? and STRICT-EQUAL?
0001580 : Documentation DATA field of gob! value has undocumented restrictions
0001493 : Documentation Web pages for datatypes are not returned by HELP/doc

View.exe 2.100.97 7-Feb-2010

0001167 : Syntax to-word "a," needs to be an error
0001415 : Syntax Inconsistency in handling of ^ in file literals
0001414 : Syntax Character literal #"^^" is ambiguous
0001412 : Syntax Time-zone can be specified as full time value, but after hours and minutes rest is ignored.
0001461 : Syntax Cannot lit quote arrow-based words, such as '< or '<> etc.
0001445 : Syntax Whitespace requirements inconsistent with money! and operators
0001429 : Syntax Lexical scan allows serialized value to be directly preceded by any string starting with digit
0001431 : Syntax Binary base indicator may be preceded by zeroes and/or plus sign.
0001432 : Syntax Lexical scan ignores < sign (and others) directly after date
0001443 : Syntax In file literal, % MUST be followed by 2 hex chars, in email and url literal, it MAY occur alone
0001318 : Syntax Different treatment of < > in refinements vs. words
0001319 : Syntax Different treatment of < when following path ending in digit or alpha
0001421 : Syntax More subtleties with < and >
0001446 : Syntax Module EXPORT keyword
0001441 : Syntax A single dollar sign is accepted and interpreted as $0.
0001442 : Syntax A non-quoted file literal can escape a space with ^, shouldn't
0001444 : Security Module header 'type field not screened
0001379 : Error Handling PICK and POKE on GOB! values cannot use word as selector. For PICK there is no error message, just a NONE result.
0001385 : Error Handling Error messages when setting various date components are confusing
0001363 : Error Handling ASSERT/TYPE gives strange error message when testing literals
0001364 : Error Handling ASSERT/TYPE gives strange error message when type(set) is not literal
0000589 : Ports calling system/schemes/xxx/actor crashes r3
0001453 : Ports OPEN? doesn't work for file ports
0001418 : Parse PARSE CHANGE ignores undefined words
0001459 : Datatype EQUAL? and other comparison actions of binary! are case-insensitive
0001450 : Datatype Using AND, OR or XOR with bitsets could cause a crash
0001359 : Datatype NOW/date result has time field
0001413 : Datatype Time overflow/underflow on date literals is not always correctly computed
0001398 : Datatype Cannot set bitset components with index 65536 and over
0001352 : Datatype Specification of bitset with empty binary! value treated inconsistently
0001365 : Datatype Truncating tuple! values using NONE
0001354 : Native POKE on bitsets should allow NONE value (treated the same as FALSE)
0001423 : Native map-event returns incorrect gob! with many keystrokes
0001355 : Native PICK and POKE behave inconsistently on bitsets specified with NOT
0001357 : Native All equality operators except SAME? ignore that a bitset is complemented
0001439 : Native Incorrect newline break after MOLD/only of block
0001427 : Native URL and FILE path get-word concat does not remove extra slash
0001396 : Native checksum/hash doesn't work as expected (probably not yet implemented)
0001406 : Mezzanine LOAD directory with single file
0001448 : Mezzanine Startup output in A96 even with --quiet and --cgi
0001366 : Mezzanine SPLIT-PATH on string
0001454 : Mezzanine Descriptive platform/variation for current executable (changed)
0001374 : Documentation END! crops up in HELP SYSTEM/PORTS/SYSTEM
About | Contact | Support | Privacy | LicenseREBOL Technologies 2016