Rebol3/Ren-C Branch Change Logs


#61

Date: 2017-05-30T15:00:20Z
Author: Brian Dickens
Commit: 9ea27794a9c38df2bdc5e2974286df3ef71ad5a7
Message: Fix RESUME

A change in the Android rigorous build to avoid “longjmp clobbering”
warnings was incorrect in using uninitialized variables.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-9ea2779
r3-9ea2779-debug

0.2.40 OSX x64
r3-9ea2779
r3-9ea2779-debug
r3-9ea2779-debug-cpp

0.3.40 Win64 x86
r3-9ea2779-debug-cpp.exe
r3-9ea2779-debug.exe

0.4.4 Linux32 x86
r3-9ea2779

0.4.40 Linux64 x86
r3-9ea2779
r3-9ea2779-debug-cpp


#62

Date: 2017-05-28T04:30:34Z
Author: Shixin Zeng
Commit: 5eea944c38521732b1544559cc7cf1ca6d12457a
Message: Trying to speed up make-embedded-header.r

It could be so slow that Travis thinks it stalled. Travis assumes a task
stalled if no output in 10 minutes.

This mostly happens when R3_ALWAYS_MALLOC = 1, so trying to reduce
the number of append’s


#63

Date: 2017-05-30T18:15:56Z
Author: Shixin Zeng
Commit: ceb6b996c5d241fe772ac8d0da0c5001a99f0102
Message: Fail instead of panicking on bad casting

There is nothing to panic about for a bad casting.

Also turned the generic invalid-argument error to a specific one.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-ceb6b99
r3-ceb6b99-debug

0.2.40 OSX x64
r3-ceb6b99
r3-ceb6b99-debug
r3-ceb6b99-debug-cpp

0.3.40 Win64 x86
r3-ceb6b99-debug-cpp.exe
r3-ceb6b99-debug.exe

0.4.4 Linux32 x86
r3-ceb6b99

0.4.40 Linux64 x86
r3-ceb6b99
r3-ceb6b99-debug-cpp


#64

Date: 2017-05-31T07:00:57Z
Author: Brian Dickens
Commit: c4c6592fb8a363af46a9f5b96b93bf827d241810
Message: Move JPEG and network includes out of core includes, add README

Also gets tabs out of %assert-fixes.h and removes dependency of
windows %dev-clipboard.c on the network header, when it really only
needs the windows header.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-c4c6592
r3-c4c6592-debug

0.2.40 OSX x64
r3-c4c6592
r3-c4c6592-debug
r3-c4c6592-debug-cpp

0.3.40 Win64 x86
r3-c4c6592-debug-cpp.exe
r3-c4c6592-debug.exe

0.4.4 Linux32 x86
r3-c4c6592

0.4.40 Linux64 x86
r3-c4c6592
r3-c4c6592-debug-cpp


#65

Date: 2017-05-31T07:47:01Z
Author: Graham Chiu
Commit: ac32639b4b9f6c3e59c0403c7272dad8d494b387
Message: improve tls fatal alert handling


#66

Date: 2017-05-31T07:48:01Z
Author: Graham Chiu
Commit: efbc4839b2b77bb4acbb52e69cfd3fa7ddec54e6
Message: Improve TLS fatal alert handling and message

This is to elucidate why we were getting an error on read https://forum.rebol.info which turned out to be a handshake_failure but the fatal alert was not being identified and was handled by a generic error handler.

See documentation for the TLS 1.0 Alert Protocol

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-efbc483
r3-efbc483-debug

0.2.40 OSX x64
r3-efbc483
r3-efbc483-debug
r3-efbc483-debug-cpp

0.3.40 Win64 x86
r3-efbc483-debug-cpp.exe
r3-efbc483-debug.exe

0.4.4 Linux32 x86
r3-efbc483

0.4.40 Linux64 x86
r3-efbc483
r3-efbc483-debug-cpp


#67

Date: 2017-05-31T14:09:10Z
Author: Shixin Zeng
Commit: 4dfa0f32af90c9d5b8ddf4fb50254d1ac6329923
Message: Remove OS_Get_Boot_Path

This was not used, and replaced by OS_Get_Current_Exec from commit
98ef5706f6e34ee44dea7d0e5583c7ddec19011d


#68

Date: 2017-05-31T14:11:00Z
Author: Shixin Zeng
Commit: cb687b202bc52872959fabc8006ad08b59ecbead
Message: Increase the debug level to 3

This could include macro expansion, because macros are extensively used,
this could be really helpful when debugging.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-cb687b2
r3-cb687b2-debug

0.2.40 OSX x64
r3-cb687b2

0.3.40 Win64 x86
r3-cb687b2-debug-cpp.exe
r3-cb687b2-debug.exe

0.4.4 Linux32 x86
r3-cb687b2

0.4.40 Linux64 x86
r3-cb687b2


#69

Date: 2017-05-31T14:40:40Z
Author: Shixin Zeng
Commit: 2eba71f688245e3a0e3135b27dbddbcaee48e856
Message: Adding the missing space

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-2eba71f
r3-2eba71f-debug

0.2.40 OSX x64
r3-2eba71f
r3-2eba71f-debug
r3-2eba71f-debug-cpp

0.3.40 Win64 x86
r3-2eba71f-debug-cpp.exe
r3-2eba71f-debug.exe

0.4.4 Linux32 x86
r3-2eba71f

0.4.40 Linux64 x86
r3-2eba71f
r3-2eba71f-debug-cpp


#70

Date: 2017-06-02T21:41:49Z
Author: Brian Dickens
Commit: 2f6cbfac59261c5386c15e7941f6966e0b58c59a
Message: Avoid situations of leaking void-containing blocks to userspace

See also https://github.com/metaeducation/ren-c/issues/526

void cells are not legal in arrays that are seen by the user. This
addresses three ways voids could accidentally leak.

VALUES-OF on an ANY-CONTEXT! which had a void variable would create an
array with a void in it. This is mitigated by failing if this is the
case. Depending on the intention of those using VALUES-OF there may
be other refinements or policies, but this just stops the crash.

MAKE BLOCK! on a variadic argument could create a block with voids in
it if the variadic was <opt>. This adds a type check and error for
that case, while permitting MAKE BLOCK! on non-<opt> variadics.

If an error occurred during a variadic call to the evaluator which
was acting as the equivalent of R3-Alpha’s APPLY/ONLY, voids were
allowed in the va_list. An error or debug trace could potentially
create a WHERE array which contained voids. This substitutes a
placeholder word (--void--) for that.

Also corrects a longstanding bug in object molding which would show
&void. The intention was that the absence of a value in the second
block but presence in the first (spec) would indicate the field is
void.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-2f6cbfa
r3-2f6cbfa-debug

0.2.40 OSX x64
r3-2f6cbfa
r3-2f6cbfa-debug
r3-2f6cbfa-debug-cpp

0.3.40 Win64 x86
r3-2f6cbfa-debug-cpp.exe
r3-2f6cbfa-debug.exe

0.4.4 Linux32 x86
r3-2f6cbfa

0.4.40 Linux64 x86
r3-2f6cbfa
r3-2f6cbfa-debug-cpp


#71

Date: 2017-06-04T23:03:33Z
Author: Brian Dickens
Commit: 9323286827a002e3bf0f94b5fd2211f6007454be
Message: Move CALL and BROWSE into an extension

The division of labor in R3-Alpha for code that required a different
implementation on various OSes was to call OS_XXX functions, that were
linked separately as part of the host’s implementation. These
functions were intended to be C code that did not rely on Rebol types
(e.g. any string parameters to these services would have to be
transformed into the OS-native representation) and memory had to
be explicitly managed by contract, vs leveraging Rebol series.

The consequence of this division was that there would be a native
for a function like CALL, which would need to translate from Rebol
types into non-Rebol structures and flags, which generated overhead…
and then the routine receiving the unpacked data would have to give
back its results to be turned back into Rebol again.

This begins a transition to where CALL itself lives in an extension
which is itself able to use the internal Rebol API. Not only does this
permit builds to omit CALL (e.g. emscripten would not have had any
underlying OS_XXX function for process spawning), but it means the
code can be much more straightforward.

This only does the conversion to an extension–it does not yet make any
significant changes to the code. Being done as a separate commit to
see if Travis can build it.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-9323286
r3-9323286-debug

0.2.40 OSX x64
r3-9323286
r3-9323286-debug
r3-9323286-debug-cpp

0.3.40 Win64 x86
r3-9323286-debug-cpp.exe
r3-9323286-debug.exe

0.4.4 Linux32 x86
r3-9323286

0.4.40 Linux64 x86
r3-9323286
r3-9323286-debug-cpp


#72

Date: 2017-06-05T02:23:09Z
Author: Brian Dickens
Commit: 44c34ae5b87d50c479af49c41e008ba375304cb1
Message: * Move BROWSE into userspace, built upon CALL

Previously, the CALL mechanics were reused by way of a shared C routine
in the BROWSE native. This commit alters the form of reuse to actually
use the CALL native directly, putting BROWSE into userspace.

Because some C code may be necessary to detect what browser(s) are on
the system (e.g. by way of registry key access), this moves just that
part into a native called GET-OS-BROWSERS.

Includes a fix for a bug introduced in Linux builds that was
introduced while extracting to a module.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-44c34ae
r3-44c34ae-debug

0.2.40 OSX x64
r3-44c34ae
r3-44c34ae-debug
r3-44c34ae-debug-cpp

0.3.40 Win64 x86
r3-44c34ae-debug-cpp.exe
r3-44c34ae-debug.exe

0.4.4 Linux32 x86
r3-44c34ae

0.4.40 Linux64 x86
r3-44c34ae
r3-44c34ae-debug-cpp


#73

Date: 2017-06-05T05:50:20Z
Author: Christopher Ross-Gill
Commit: 24cb61b8043a10e8daadaa040d7d162189e83385
Message: Clean up formatting in mezz-help.r


#74

Date: 2017-06-05T05:51:31Z
Author: Christopher Ross-Gill
Commit: a5d5d01adbc1baa59a818496aafe1d243bd72cb3
Message: Add space to output of HELP function


#75

Date: 2017-06-05T05:53:07Z
Author: Christopher Ross-Gill
Commit: 985b33ac7dde44c1e82da8beed358b1ebf0a354f
Message: Print list of words set to given type for HELP on DATATYPE!


#76

Date: 2017-06-05T06:16:20Z
Author: Christopher Ross-Gill
Commit: 2801a9cf0029340568862bdde79d46e415b52400
Message: Search both USER and LIB contexts for HELP on word partials/datatypes


#77

Date: 2017-06-05T08:04:35Z
Author: Brian Dickens
Commit: 29c7f26e781ec48f111de74ddf16970f7c8cd65c
Message: Move SLEEP native from being in the core to the call extension

SLEEP was added as a temporary hack to work around potential issues
with WAIT. However, this created an unwanted OS dependency in the
core itself. Moving the function to an extension which already has
the necessary OS dependencies for Windows and POSIX is at least a
small step forward.


#78

Date: 2017-06-05T08:06:24Z
Author: Brian Dickens
Commit: ff326fdd38adb01f95a06ee1473622254f204504
Message: Fallback to /usr/bin/open/ for browser launching on all platforms

Instead of erroring when an explicit handler is not given for an
OS build when doing GET-OS-BROWSERS, this falls back to /usr/bin/open,
which should make it work again on OS X or other POSIX-like systems
that don’t explicitly define TO_POSIX (but can share code).


#79

Date: 2017-06-05T08:02:27Z
Author: Brian Dickens
Commit: 222b40fa9d7444e98f34e7c5891227a5f09e84c8
Message: Begin removing redundancy and using internal APIs in CALL

This starts taking steps to remove the redundancy between the code
implementing CALL on Posix and on Windows. The various flags or
parameters for translating input types are turned into just basic
checks of VAL_TYPE(ARG(…)) or of the refinement flags.

As an interim trick, the native’s frame_ pointer is passed in to give
the formerly independent OS_Create_Process() functions access to the
parameters, instead of having to find ways to coerce them into non
Rebol types.

Once the OS_Create_Process() functions are able to operation on actual
Rebol binaries and strings directly, they’ll be able to progressively
append content to the output–rather than needing to do a large
non-Rebol allocation that is returned all at once.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-222b40f
r3-222b40f-debug

0.2.40 OSX x64
r3-222b40f
r3-222b40f-debug
r3-222b40f-debug-cpp

0.3.40 Win64 x86
r3-222b40f-debug-cpp.exe
r3-222b40f-debug.exe

0.4.4 Linux32 x86
r3-222b40f

0.4.40 Linux64 x86
r3-222b40f
r3-222b40f-debug-cpp


#80

Date: 2017-06-05T10:44:25Z
Author: Brian Dickens
Commit: a1836c894d1dc9fac59848a720a93b8762555db0
Message: Switch CALL to use malloc/free vs OS_ALLOC/OS_FREE, simplify

The routines OS_ALLOC() and OS_FREE() were originally standardized so
that when Rebol core wanted to exchange information (such as a string
or buffer) with the host–and the buffer would have to be freed by
the core or by the host–that an assumption wasn’t made about what
kind of allocator would be used.

With CALL moved out of the core and into an extension, there is no
longer any communication of this nature. CALL is a self-contained
native and so it can use whatever allocator the implementation wants.
Switching to use plain malloc() and free() corrects a current problem,
but it’s likely that these allocations won’t ultimately be needed
because a small fixed-size chunk buffer could be used to add data
directly to the BINARY! or STRING! outputs of CALL.

This also makes the flow of data clearer (and double checked) by
passing NULL for the pointer to the error and output buffers when
they will not be allocated by the OS_Create_Process API. Previously
it could be difficult to tell when parameters were inputs vs. outputs.

The binaries below are only available for a couple of weeks or so after commit date.

0.13.2 Android5-arm
r3-a1836c8
r3-a1836c8-debug

0.2.40 OSX x64
r3-a1836c8
r3-a1836c8-debug
r3-a1836c8-debug-cpp

0.3.40 Win64 x86
r3-a1836c8-debug-cpp.exe
r3-a1836c8-debug.exe

0.4.4 Linux32 x86
r3-a1836c8

0.4.40 Linux64 x86
r3-a1836c8
r3-a1836c8-debug-cpp