forked from rebolsource/r3
-
Notifications
You must be signed in to change notification settings - Fork 27
Atronix split #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Found buy coverity
if there are multiple underscores ("_"), lang will be leaked; if there are multiple dots ("."), territory will be leaked
DS_ARGC > 1 can't be false
COPY_BYTE might not terminate the string if the max size is the same as the buffer size
Found by coverity
Found by coverity
Found by coverity
Fix a handle leak. Found by coverity
to make coverity happy
It's not really use-after-use, because the pointer is not dereferenced
Found by coverity
reported by coverity
Not sure if this is the correct fix
Found by clang-analyzer
Found by clang-analyzer
Found by coverity
Found by coverity
index is unsigned, and could be zero, so 'index--' will underflow and round to 0xffffffff, and cause problem in a later call to Expand_Series I believe the idea of if ((REBINT)index > i) index--; is to move the index forward because gob being inserted were in PANE, and they can't be there twice (Detach_Gob will remove them from the current gob). So if they were not there, "index" shouldn't be changed. This fixes a crash in the following script: REBOL [] foo: make block! [] for i 0 15 1 [ txt: #"a" + i append foo make gob! reduce/no-set [text: to string! txt] ] g: make gob! [] append g foo g/pane: next g/pane With this stack trace: zsx@touchsmart-arch:~/work/r3.git/make$ R3_ALWAYS_MALLOC=1 ./r3-view-linux test-insert-gob-crash.r ================================================================= ==24248==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60d00000c8a8 at pc 0x522243 bp 0x7fff91ba7a60 sp 0x7fff91ba7a50 WRITE of size 8 at 0x60d00000c8a8 thread T0 #0 0x522242 in Insert_Gobs ../src/core/t-gob.c:230 #1 0x5242d6 in Set_GOB_Var ../src/core/t-gob.c:421 rebolsource#2 0x5278ee in PD_Gob ../src/core/t-gob.c:713 rebolsource#3 0x414cda in Next_Path ../src/core/c-do.c:399 #4 0x415c8c in Do_Path ../src/core/c-do.c:463 #5 0x41a018 in Do_Next ../src/core/c-do.c:928 rebolsource#6 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 rebol#7 0x4a6eca in N_do ../src/core/n-control.c:524 #8 0x43e267 in Do_Native ../src/core/c-function.c:289 #9 0x419562 in Do_Next ../src/core/c-do.c:886 #10 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 #11 0x4a755e in N_either ../src/core/n-control.c:598 #12 0x43e267 in Do_Native ../src/core/c-function.c:289 #13 0x419562 in Do_Next ../src/core/c-do.c:886 #14 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 #15 0x4a755e in N_either ../src/core/n-control.c:598 #16 0x43e267 in Do_Native ../src/core/c-function.c:289 rebol#17 0x419562 in Do_Next ../src/core/c-do.c:886 #18 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 rebol#19 0x4a755e in N_either ../src/core/n-control.c:598 #20 0x43e267 in Do_Native ../src/core/c-function.c:289 rebol#21 0x419562 in Do_Next ../src/core/c-do.c:886 rebol#22 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 rebol#23 0x43f8f8 in Do_Function ../src/core/c-function.c:415 #24 0x420b7d in Apply_Function ../src/core/c-do.c:1528 rebol#25 0x42139c in Do_Sys_Func ../src/core/c-do.c:1588 rebol#26 0x426f84 in Init_Mezz ../src/core/c-do.c:2320 #27 0x406bf1 in RL_Start ../src/core/a-lib.c:193 #28 0x5fecee in main ../src/os/host-main.c:235 #29 0x7facd0bf67ff in __libc_start_main (/usr/lib/libc.so.6+0x207ff) #30 0x406008 in _start (/home/zsx/stuffs/work/r3.git/make/r3-view-linux+0x406008) 0x60d00000c8a8 is located 0 bytes to the right of 136-byte region [0x60d00000c820,0x60d00000c8a8) allocated by thread T0 here: #0 0x7facd26567a7 in malloc (/usr/lib/libasan.so.1+0x577a7) #1 0x4999a7 in Make_Mem ../src/core/m-pools.c:125 rebolsource#2 0x49b188 in Make_Series ../src/core/m-pools.c:413 rebolsource#3 0x521929 in Insert_Gobs ../src/core/t-gob.c:208 #4 0x529717 in T_Gob ../src/core/t-gob.c:835 #5 0x43eb86 in Do_Act ../src/core/c-function.c:338 rebolsource#6 0x43f82a in Do_Action ../src/core/c-function.c:396 rebol#7 0x419562 in Do_Next ../src/core/c-do.c:886 #8 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 #9 0x4a6eca in N_do ../src/core/n-control.c:524 #10 0x43e267 in Do_Native ../src/core/c-function.c:289 #11 0x419562 in Do_Next ../src/core/c-do.c:886 #12 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 #13 0x4a755e in N_either ../src/core/n-control.c:598 #14 0x43e267 in Do_Native ../src/core/c-function.c:289 #15 0x419562 in Do_Next ../src/core/c-do.c:886 #16 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 rebol#17 0x4a755e in N_either ../src/core/n-control.c:598 #18 0x43e267 in Do_Native ../src/core/c-function.c:289 rebol#19 0x419562 in Do_Next ../src/core/c-do.c:886 #20 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 rebol#21 0x4a755e in N_either ../src/core/n-control.c:598 rebol#22 0x43e267 in Do_Native ../src/core/c-function.c:289 rebol#23 0x419562 in Do_Next ../src/core/c-do.c:886 #24 0x41ad1d in Do_Blk ../src/core/c-do.c:1017 rebol#25 0x43f8f8 in Do_Function ../src/core/c-function.c:415 rebol#26 0x420b7d in Apply_Function ../src/core/c-do.c:1528 #27 0x42139c in Do_Sys_Func ../src/core/c-do.c:1588 #28 0x426f84 in Init_Mezz ../src/core/c-do.c:2320 #29 0x406bf1 in RL_Start ../src/core/a-lib.c:193 SUMMARY: AddressSanitizer: heap-buffer-overflow ../src/core/t-gob.c:230 Insert_Gobs Shadow bytes around the buggy address: 0x0c1a7fff98c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c1a7fff98d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c1a7fff98e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c1a7fff98f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c1a7fff9900: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 00 =>0x0c1a7fff9910: 00 00 00 00 00[fa]fa fa fa fa fa fa fa fa 00 00 0x0c1a7fff9920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa 0x0c1a7fff9930: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x0c1a7fff9940: 00 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa 0x0c1a7fff9950: fa fa 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c1a7fff9960: 00 00 00 00 fa fa fa fa fa fa fa fa fd fd fd fd Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Contiguous container OOB:fc ASan internal: fe ==24248==ABORTING
For better memory access voilation detection. This is only supported by GCC/clang. To compile with the support, flags "-DHAVE_ASAN_INTERFACE_H -fsanitize=address" is needed
reported by address sanitizer with manual poisonation: ================================================================= ==11513==ERROR: AddressSanitizer: use-after-poison on address 0x7efe281542c0 at pc 0x00000071038f bp 0x7ffdc9de9330 sp 0x7ffdc9de9328 READ of size 4 at 0x7efe281542c0 thread T0 #0 0x71038e in Mark_Series /home/zsx/stuffs/work/r3.git/make/../src/core/m-gc.c:501:6 #1 0x70ea8b in Recycle /home/zsx/stuffs/work/r3.git/make/../src/core/m-gc.c:744:4 rebolsource#2 0x7bbde6 in N_recycle /home/zsx/stuffs/work/r3.git/make/../src/core/n-system.c:99:10 rebolsource#3 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #4 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #5 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebolsource#6 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#7 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #8 0x566f3d in Do_Block_Value_Throw /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1049:11 #9 0xb0b6d9 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:830:4 #10 0xb0e7f7 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:927:9 #11 0xb07b10 in Parse_Series /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:96:9 #12 0xb06b65 in N_parse /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:1269:7 #13 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #14 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #15 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #16 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#17 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #18 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#19 0x745e54 in N_case /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:348:10 #20 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 rebol#21 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#22 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 rebol#23 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 #24 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#25 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#26 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #27 0x55e447 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:860:11 #28 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #29 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 #30 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #31 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #32 0x749b0b in N_do /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:524:8 rebol#33 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #34 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#35 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #36 0x74abca in N_either /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:598:3 #37 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #38 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #39 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#40 0x74abca in N_either /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:598:3 rebol#41 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #42 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #43 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #44 0x74abca in N_either /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:598:3 #45 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 rebol#46 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #47 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#48 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#49 0x5758b0 in Apply_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1528:33 #50 0x576ec0 in Do_Sys_Func /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1588:10 #51 0x582548 in Init_Mezz /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:2320:9 #52 0x52e62f in RL_Start /home/zsx/stuffs/work/r3.git/make/../src/core/a-lib.c:193:9 rebol#53 0xbb6c93 in main /home/zsx/stuffs/work/r3.git/make/../src/os/host-main.c:235:6 #54 0x7efe2bfcb7ff in __libc_start_main (/usr/lib/libc.so.6+0x207ff) #55 0x486498 in _start (/home/zsx/stuffs/work/r3.git/make/r3-view-linux+0x486498) 0x7efe281542c0 is located 96960 bytes inside of 131088-byte region [0x7efe2813c800,0x7efe2815c810) allocated by thread T0 here: #0 0x50d462 in __interceptor_malloc (/home/zsx/stuffs/work/r3.git/make/r3-view-linux+0x50d462) #1 0x721a85 in Make_Mem /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:127:14 rebolsource#2 0x723acd in Fill_Pool /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:235:19 rebolsource#3 0x7233af in Make_Node /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:280:20 #4 0x725f8a in Make_Series /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:391:21 #5 0x738823 in Copy_Series /home/zsx/stuffs/work/r3.git/make/../src/core/m-series.c:261:19 rebolsource#6 0x5f93a6 in Copy_Deep_Values /home/zsx/stuffs/work/r3.git/make/../src/core/f-blocks.c:131:22 rebol#7 0x5f98cf in Copy_Deep_Values /home/zsx/stuffs/work/r3.git/make/../src/core/f-blocks.c:136:6 #8 0x5fa3ed in Copy_Block_Values /home/zsx/stuffs/work/r3.git/make/../src/core/f-blocks.c:159:18 #9 0x89efc2 in T_Block /home/zsx/stuffs/work/r3.git/make/../src/core/t-block.c:796:23 #10 0x5c458f in Do_Act /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:338:8 #11 0x5c5927 in Do_Action /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:396:2 #12 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #13 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 #14 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 #15 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #16 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#17 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #18 0x55e447 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:860:11 rebol#19 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #20 0x749b0b in N_do /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:524:8 rebol#21 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 rebol#22 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#23 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #24 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#25 0x5758b0 in Apply_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1528:33 rebol#26 0x576ec0 in Do_Sys_Func /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1588:10 #27 0x5a37d0 in Make_Module /home/zsx/stuffs/work/r3.git/make/../src/core/c-frame.c:585:10 #28 0x9510d5 in T_Object /home/zsx/stuffs/work/r3.git/make/../src/core/t-object.c:308:16 #29 0x8ac4eb in T_Datatype /home/zsx/stuffs/work/r3.git/make/../src/core/t-datatype.c:92:20 SUMMARY: AddressSanitizer: use-after-poison /home/zsx/stuffs/work/r3.git/make/../src/core/m-gc.c:501 Mark_Series Shadow bytes around the buggy address: 0x0fe045022800: f7 f7 00 00 00 00 00 00 00 00 f7 f7 f7 f7 00 00 0x0fe045022810: 00 00 00 00 00 00 f7 f7 f7 f7 00 00 00 00 00 00 0x0fe045022820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0fe045022830: 00 00 f7 f7 f7 f7 00 00 00 00 00 00 00 00 f7 f7 0x0fe045022840: f7 f7 00 00 00 00 00 00 00 00 f7 f7 f7 f7 00 00 =>0x0fe045022850: 00 00 00 00 00 00 f7 f7[f7]f7 00 00 00 00 00 00 0x0fe045022860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0fe045022870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0fe045022880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0fe045022890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0fe0450228a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==11513==ABORTING
The newly free'd node will be appended to the end of the list, and poisoned, so it will be the last one to be reallocated and unpoisoned, which should improve the effective time of the poison in this memory region. Hopefully this could help discover stale pointers. Thanks to hostilefork@stackoverflow for pointing this out.
When a node is free'd to a fully used pool, it will become the next available node at allocation, which makes its poisonous time pretty short. So insert an empty pool segment before this node.
The length of the VAL_SERIES(value) has been set correctly by Append_UTF8, and it could be smaller than "len", because UTF8 is a multi-byte encoding, thus passing "len" to Deline_Uni could cause out-of-bound memory access. Fixes CC#2169 The following code REBOL[] t: <ēee> causes: ==13053==ERROR: AddressSanitizer: use-after-poison on address 0x61d00001a5f8 at pc 0x000000853d50 bp 0x7ffd2a31a1b0 sp 0x7ffd2a31a1a8 WRITE of size 2 at 0x61d00001a5f8 thread T0 #0 0x853d4f in Deline_Uni /home/zsx/stuffs/work/r3.git/make/../src/core/s-ops.c:426:2 #1 0x7064d4 in Scan_Any /home/zsx/stuffs/work/r3.git/make/../src/core/l-types.c:846:7 rebolsource#2 0x6dca3c in Scan_Block /home/zsx/stuffs/work/r3.git/make/../src/core/l-scan.c:1421:4 rebolsource#3 0x6d9f92 in Scan_Block /home/zsx/stuffs/work/r3.git/make/../src/core/l-scan.c:1301:12 #4 0x6df0e6 in Scan_Code /home/zsx/stuffs/work/r3.git/make/../src/core/l-scan.c:1550:9 #5 0x6df462 in Scan_Source /home/zsx/stuffs/work/r3.git/make/../src/core/l-scan.c:1570:9 rebolsource#6 0x896105 in Make_Block_Type /home/zsx/stuffs/work/r3.git/make/../src/core/t-block.c:306:9 rebol#7 0x89af62 in T_Block /home/zsx/stuffs/work/r3.git/make/../src/core/t-block.c:624:3 #8 0x8ac80b in T_Datatype /home/zsx/stuffs/work/r3.git/make/../src/core/t-datatype.c:92:20 #9 0x5c458f in Do_Act /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:338:8 #10 0x5c5927 in Do_Action /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:396:2 #11 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #12 0x55e447 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:860:11 #13 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #14 0x746174 in N_case /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:348:10 #15 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #16 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#17 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #18 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#19 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #20 0x55e447 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:860:11 rebol#21 0x568295 in Try_Block /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1087:11 rebol#22 0x7506ac in N_try /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:760:6 rebol#23 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #24 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#25 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 rebol#26 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 #27 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 #28 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 #29 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #30 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 #31 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #32 0x566f3d in Do_Block_Value_Throw /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1049:11 rebol#33 0xb0b9f9 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:830:4 #34 0xb0eb17 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:927:9 rebol#35 0xb07e30 in Parse_Series /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:96:9 #36 0xb06e85 in N_parse /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:1269:7 #37 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #38 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #39 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#40 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 rebol#41 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #42 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #43 0x746174 in N_case /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:348:10 #44 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #45 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#46 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 #47 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 rebol#48 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#49 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 #50 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #51 0x55e447 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:860:11 #52 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#53 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 #54 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #55 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #56 0x749e2b in N_do /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:524:8 #57 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #58 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #59 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#60 0x74aeea in N_either /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:598:3 #61 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #62 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #63 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #64 0x74aeea in N_either /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:598:3 rebol#65 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 rebol#66 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #67 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 rebol#68 0x74aeea in N_either /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:598:3 #69 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #70 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#71 0x5576e1 in Do_Blk /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1017:11 #72 0x5c5c4f in Do_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:415:11 #73 0x5758b0 in Apply_Function /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1528:33 #74 0x576ec0 in Do_Sys_Func /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1588:10 rebol#75 0x582548 in Init_Mezz /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:2320:9 rebol#76 0x52e62f in RL_Start /home/zsx/stuffs/work/r3.git/make/../src/core/a-lib.c:193:9 #77 0xbb6fb3 in main /home/zsx/stuffs/work/r3.git/make/../src/os/host-main.c:235:6 #78 0x7fd1c04ef7ff in __libc_start_main (/usr/lib/libc.so.6+0x207ff) #79 0x486498 in _start (/home/zsx/stuffs/work/r3.git/make/r3-view-linux+0x486498) 0x61d00001a5f8 is located 376 bytes inside of 2064-byte region [0x61d00001a480,0x61d00001ac90) allocated by thread T0 here: #0 0x50d462 in __interceptor_malloc (/home/zsx/stuffs/work/r3.git/make/r3-view-linux+0x50d462) #1 0x721a85 in Make_Mem /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:132:14 rebolsource#2 0x723bed in Fill_Pool /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:240:19 rebolsource#3 0x7233c2 in Make_Node /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:295:20 #4 0x7267f3 in Make_Series /home/zsx/stuffs/work/r3.git/make/../src/core/m-pools.c:419:10 #5 0x818d71 in Copy_String /home/zsx/stuffs/work/r3.git/make/../src/core/s-make.c:337:8 rebolsource#6 0x6dc386 in Scan_Block /home/zsx/stuffs/work/r3.git/make/../src/core/l-scan.c:1388:22 rebol#7 0x6df0e6 in Scan_Code /home/zsx/stuffs/work/r3.git/make/../src/core/l-scan.c:1550:9 #8 0x6e1f81 in N_transcode /home/zsx/stuffs/work/r3.git/make/../src/core/l-scan.c:1630:8 #9 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #10 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 #11 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 #12 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 #13 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 #14 0x56110f in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:942:13 #15 0x568295 in Try_Block /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1087:11 #16 0x7506ac in N_try /home/zsx/stuffs/work/r3.git/make/../src/core/n-control.c:760:6 rebol#17 0x5c379d in Do_Native /home/zsx/stuffs/work/r3.git/make/../src/core/c-function.c:289:6 #18 0x55f3d7 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:886:18 rebol#19 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 #20 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 rebol#21 0x56360b in Do_Args /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:668:12 rebol#22 0x55edc9 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:879:11 rebol#23 0x55e447 in Do_Next /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:860:11 #24 0x566f3d in Do_Block_Value_Throw /home/zsx/stuffs/work/r3.git/make/../src/core/c-do.c:1049:11 rebol#25 0xb0b9f9 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:830:4 rebol#26 0xb0eb17 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:927:9 #27 0xb0eb17 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:927:9 #28 0xb0eb17 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:927:9 #29 0xb0eb17 in Parse_Rules_Loop /home/zsx/stuffs/work/r3.git/make/../src/core/u-parse.c:927:9 SUMMARY: AddressSanitizer: use-after-poison /home/zsx/stuffs/work/r3.git/make/../src/core/s-ops.c:426 Deline_Uni Shadow bytes around the buggy address: 0x0c3a7fffb460: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c3a7fffb470: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c3a7fffb480: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c3a7fffb490: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c3a7fffb4a0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 =>0x0c3a7fffb4b0: f7 f7 f7 f7 f7 f7 f7 f7 f7 00 00 00 f7 00 00[f7] 0x0c3a7fffb4c0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c3a7fffb4d0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c3a7fffb4e0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c3a7fffb4f0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c3a7fffb500: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==13053==ABORTING
and try harder to guess the resolution.
This fixes: >> to integer! "1.000000000000000000000000000000" ** Script error: content too long ** Where: to ** Near: to integer! "1.000000000000000000000000000000" >> to integer! "3.09261e9" == -2147483648
If Xrandr is missing, virtual-screen-size is the same as screen-size
zsx
added a commit
that referenced
this pull request
Jan 13, 2017
This fixes the crash caused by: >> #{a} END marker or garbage/trash in VAL_TYPE() REBVAL init on tick #28232 at /home/zsx/r3-dev/src/core/l-types.c:1028 Kind=50 Containing series for value pointer found, panicking it: managed series was likely created during evaluator tick: 28232 ================================================================= ==4319==ERROR: AddressSanitizer: heap-use-after-free on address 0x6020000b27d0 at pc 0x0000004f9f47 bp 0x7fffffffcde0 sp 0x7fffffffcdd0 READ of size 4 at 0x6020000b27d0 thread T0 #0 0x4f9f46 in Panic_Series_Debug /home/zsx/r3-dev/src/core/m-series.c:512 #1 0x47d073 in Panic_Value_Debug /home/zsx/r3-dev/src/core/c-value.c:81 rebolsource#2 0x481e85 in Panic_Core /home/zsx/r3-dev/src/core/d-crash.c:220 rebolsource#3 0x432a3c in VAL_TYPE_Debug /home/zsx/r3-dev/make/../src/include/sys-value.h:165 #4 0x4349fc in Bind_Values_Inner_Loop /home/zsx/r3-dev/src/core/c-bind.c:54 #5 0x434dff in Bind_Values_Core /home/zsx/r3-dev/src/core/c-bind.c:141 rebolsource#6 0x4077bc in Do_String /home/zsx/r3-dev/src/os/host-main.c:323 rebol#7 0x408799 in Host_Repl /home/zsx/r3-dev/src/os/host-main.c:569 #8 0x40a228 in main /home/zsx/r3-dev/src/os/host-main.c:1078 #9 0x7ffff65b2290 in __libc_start_main (/usr/lib/libc.so.6+0x20290) #10 0x404009 in _start (/home/zsx/stuffs/work/r3-build/MakeFiles/Debug/r3-core+0x404009) 0x6020000b27d0 is located 0 bytes inside of 4-byte region [0x6020000b27d0,0x6020000b27d4) freed by thread T0 here: #0 0x7ffff6efeb00 in __interceptor_free /build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:45 #1 0x4f2622 in Make_Series /home/zsx/r3-dev/src/core/m-pools.c:894 rebolsource#2 0x4a255b in Make_Array /home/zsx/r3-dev/make/../src/include/sys-array.h:213 rebolsource#3 0x4a3371 in Copy_Values_Len_Extra_Skip_Shallow /home/zsx/r3-dev/src/core/f-blocks.c:144 #4 0x4dc5c5 in Scan_Array /home/zsx/r3-dev/src/core/l-scan.c:1852 #5 0x4dcad5 in Scan_UTF8_Managed /home/zsx/r3-dev/src/core/l-scan.c:1936 rebolsource#6 0x40772b in Do_String /home/zsx/r3-dev/src/os/host-main.c:304 rebol#7 0x408799 in Host_Repl /home/zsx/r3-dev/src/os/host-main.c:569 #8 0x40a228 in main /home/zsx/r3-dev/src/os/host-main.c:1078 #9 0x7ffff65b2290 in __libc_start_main (/usr/lib/libc.so.6+0x20290) previously allocated by thread T0 here: #0 0x7ffff6efee60 in __interceptor_malloc /build/gcc-multilib/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:62 #1 0x4f25e2 in Make_Series /home/zsx/r3-dev/src/core/m-pools.c:893 rebolsource#2 0x4a255b in Make_Array /home/zsx/r3-dev/make/../src/include/sys-array.h:213 rebolsource#3 0x4a3371 in Copy_Values_Len_Extra_Skip_Shallow /home/zsx/r3-dev/src/core/f-blocks.c:144 #4 0x4dc5c5 in Scan_Array /home/zsx/r3-dev/src/core/l-scan.c:1852 #5 0x4dcad5 in Scan_UTF8_Managed /home/zsx/r3-dev/src/core/l-scan.c:1936 rebolsource#6 0x40772b in Do_String /home/zsx/r3-dev/src/os/host-main.c:304 rebol#7 0x408799 in Host_Repl /home/zsx/r3-dev/src/os/host-main.c:569 #8 0x40a228 in main /home/zsx/r3-dev/src/os/host-main.c:1078 #9 0x7ffff65b2290 in __libc_start_main (/usr/lib/libc.so.6+0x20290) and turns it to: >> #{a} ** Syntax error: invalid "binary" -- "#{a}" ** Near: (line 1) #{a}
hostilefork
added a commit
that referenced
this pull request
Apr 9, 2017
This simplifies the UTF8 detection and makes it basically foolproof. The leftmost bit is always 1 on Rebol series/values ("NODE_FLAG_NODE"), then the second bit is NODE_FLAG_FREE, which should be 0 on all valid series/values. That means all non-"free" series and non-trash values will start with 10, an invalid leading bit pattern in UTF-8. Then the special bytes 11000000 and 11000001, 192 and 193, are also illegal unicode (while in general 11xxxxxx are valid). So that means bit #8 is used for NODE_FLAG_CELL. Free series nodes use 11000000 as their first byte, trash cells use 11000001 for theirs. With this strategy, it is possible to tell the difference between basically everything with no false positives: free states of Rebol values and series are still distinguishable from UTF8. The simplified (and complete) list of detectable pointers are: DETECTED_AS_UTF8 DETECTED_AS_SERIES DETECTED_AS_FREED_SERIES DETECTED_AS_VALUE DETECTED_AS_END DETECTED_AS_TRASH_CELL The cost of the scheme is one bit: the high one that's always 1, which could be used for other things otherwise. However, this required a lot of flags to get shuffled around. As a side-effect of the new layout, an END cell does not need to have NODE_FLAG_MANAGED set. This helps with logic that needs to operate on a node that doesn't know if it's dealing with a series or a value cell, but wants to quickly test the managed flag for meaning.
hostilefork
added a commit
that referenced
this pull request
Apr 9, 2017
This simplifies the UTF8 detection and makes it basically foolproof. The leftmost bit is always 1 on Rebol series/values ("NODE_FLAG_NODE"), then the second bit is NODE_FLAG_FREE, which should be 0 on all valid series/values. That means all non-"free" series and non-trash values will start with 10, an invalid leading bit pattern in UTF-8. Then the special bytes 11000000 and 11000001, 192 and 193, are also illegal unicode (while in general 11xxxxxx are valid). So that means bit #8 is used for NODE_FLAG_CELL. Free series nodes use 11000000 as their first byte, trash cells use 11000001 for theirs. With this strategy, it is possible to tell the difference between basically everything with no false positives: free states of Rebol values and series are still distinguishable from UTF8. The simplified (and complete) list of detectable pointers are: DETECTED_AS_UTF8 DETECTED_AS_SERIES DETECTED_AS_FREED_SERIES DETECTED_AS_VALUE DETECTED_AS_END DETECTED_AS_TRASH_CELL The cost of the scheme is one bit: the high one that's always 1, which could be used for other things otherwise. However, this required a lot of flags to get shuffled around. As a side-effect of the new layout, an END cell does not need to have NODE_FLAG_MANAGED set. This helps with logic that needs to operate on a node that doesn't know if it's dealing with a series or a value cell, but wants to quickly test the managed flag for meaning.
hostilefork
added a commit
that referenced
this pull request
Apr 9, 2017
This simplifies the UTF8 detection and makes it basically foolproof. The leftmost bit is always 1 on Rebol series/values ("NODE_FLAG_NODE"), then the second bit is NODE_FLAG_FREE, which should be 0 on all valid series/values. That means all non-"free" series and non-trash values will start with 10, an invalid leading bit pattern in UTF-8. Then the special bytes 11000000 and 11000001, 192 and 193, are also illegal unicode (while in general 11xxxxxx are valid). So that means bit #8 is used for NODE_FLAG_CELL. Free series nodes use 11000000 as their first byte, trash cells use 11000001 for theirs. With this strategy, it is possible to tell the difference between basically everything with no false positives: free states of Rebol values and series are still distinguishable from UTF8. The simplified (and complete) list of detectable pointers are: DETECTED_AS_UTF8 DETECTED_AS_SERIES DETECTED_AS_FREED_SERIES DETECTED_AS_VALUE DETECTED_AS_END DETECTED_AS_TRASH_CELL The cost of the scheme is one bit: the high one that's always 1, which could be used for other things otherwise. However, this required a lot of flags to get shuffled around. As a side-effect of the new layout, an END cell does not need to have NODE_FLAG_MANAGED set. This helps with logic that needs to operate on a node that doesn't know if it's dealing with a series or a value cell, but wants to quickly test the managed flag for meaning.
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR progresses the master branch to include the changes to the core files made by Saphirion and Atronix as of June 2015. It leaves the View-related and graphics-related files in the history (to help with context in reading what actually happened in older commits. However, it includes a commit that takes them out of the directories.
The counter to this is a repository that includes the view files, but none of the core files. The hope is that "Ren/C" as a static library would then be used by Rebol/View (and Ren Garden, and nicer consoles...). The plan is summarized in this article:
http://blog.hostilefork.com/rebol-state-union-june-2015/