
| # | User | Message | Date |
| 181 | Graham | Add http put ... can we have this added to prot-http as well? | 22-Sep 18:59 |
| 180 | Graham | The prot-http does not support custom headers such as cookie: with read/custom except with 'post. It's a simple fix to add that to 'get as I posted on the Rebol3 world. I propose this be added to 2.7.7 | 20-Sep 23:30 |
| 179 | Gabriele | Ladislav's is probably better though. | 9-Mar 13:26 |
| 178 | Gabriele | i should probably clean it up and post it somewhere... | 9-Mar 13:26 |
| 177 | Gabriele | the timing function i use compares the times of various versions of code. this way it can automatically decide how much to loop based on desired precision, and you just have to wait a fixed amount of time regardless of how slow your code is. | 9-Mar 13:26 |
| 176 | Carl | Agreed. | 8-Mar 19:37 |
| 175 | BrianH | We need to look at the various timing or profiling tools and pick one, maybe even incorporate it as Carl joked. | 8-Mar 17:29 |
| 174 | Carl | That's correct. | 8-Mar 17:29 |
| 173 | BrianH | As long as the reg functions are available to encapped code, or even straight code on /Face, we should be fine. Just not /View. | 8-Mar 17:27 |
| 172 | Carl | SDK tools are not end-user tools. | 8-Mar 17:26 |
| 171 | BrianH | Robert, even the read-only registry functions are a security hole. View code, even sandboxed, is often untrusted code from 3rd parties. | 8-Mar 17:25 |
| 170 | Carl | We should add tm as a mezz ;) | 8-Mar 17:22 |
| 169 | Pekr | I want also easy conversion of integers .... hopefully R3 adresses it now .... | 8-Mar 16:27 |
| 168 | Henrik | nice | 8-Mar 16:20 |
| 167 | Oldes | as it's much more better to write: shift/left #{FF} 4 than something like: to-binary to-char (( first #{FF}) * 16) and 255 | 8-Mar 16:20 |
| 166 | Oldes | but for binary manipulation is much more better | 8-Mar 16:17 |
| 165 | Oldes | just it's faster to use multiplication and division in some cases: >> tm 1000000 [shift/left 100 4] 0:00:00.391 >> tm 1000000 [100 * 16] 0:00:00.266 | 8-Mar 16:14 |
| 164 | Maarten | Pekr, see? | 8-Mar 13:38 |
| 163 | Oldes | Shift is finally here.. thanks Maarten and Carl.. I almost forget this long time wish:) | 8-Mar 12:20 |
| 162 | Pekr | OK, then I expect shift as a native goes in R3 too? | 8-Mar 9:08 |
| 161 | Robert | reg-f unctions: I think it makes a lot of sense to keep the read-only function available. 90% of the time one just needs to read something and not alter the registry. | 8-Mar 9:02 |
| 160 | Maarten | It is a way of showing Rebol 2 (and thus in general) is very much alive! | 8-Mar 7:47 |
| 159 | Maarten | Exactly, but for now, I'm very happy with this (as will others be) | 8-Mar 7:46 |
| 158 | BrianH | It would probably be a good idea to add a carry option later, once we nail down what the behavior should should be. | 8-Mar 7:46 |
| 157 | BrianH | There was some question about what you really wanted the carry behavior to be in binaries, so he did no carrying for now. | 8-Mar 7:44 |
| 156 | Maarten | With 'shift, 'or, ' xor, and 'and the binary basics are finally there :-) | 8-Mar 7:43 |
| 155 | BrianH | Seperate operations make sense for rebcode, but a unified function makes more sense for REBOL code. Fewer natives added that way. | 8-Mar 7:42 |
| 154 | Maarten | Carl: behaviour as expected (no rotate). It's easy to simulate roate with a bit mask and OR | 8-Mar 7:42 |
| 153 | Maarten | Pekr: R3 may break R2 (wil do that anyway for unicode), and this is (if I understood correctly) a port from rebcode. It is a big advancement and adds real value to 2.7.6. I have mezzanine stoo, but they are much slower. This opens up the possibility to do things REBOL van harldy do these days. | 8-Mar 7:41 |
| 152 | Pekr | Isn't shift preliminary and rushed way too fast into 2.7.6? General lack of binary supporting functions was expressed several times. There was even effort to write some of them, and IIRC Geomol put them into some library as mezzanines. IIRC R3 promissed to add some helpers for us. So I am afraind we introduce something not so complete here. If so, I will be first to dislike and vote it down ... | 8-Mar 3:20 |
| 151 | BrianH | TAKE done. | 8-Mar 0:06 |
| 150 | BrianH | At least one that isn't /direct I mean, though I am wondering about that one too. | 7-Mar 23:27 |
| 149 | BrianH | Can you take the index? of a port? | 7-Mar 23:26 |
| 148 | Carl | Never an easy call, that one. | 7-Mar 23:23 |
| 147 | BrianH | Looks good. | 7-Mar 23:23 |
| 146 | Carl | In other words, index out is index in. | 7-Mar 23:23 |
| 145 | Carl | Right now it is: >> shift/part next #{01020408} 1 2 == #{010208} | 7-Mar 23:22 |
| 144 | BrianH | Pretend the starting position is the head. | 7-Mar 23:22 |
| 143 | Carl | So, as shown above? | 7-Mar 23:22 |
| 142 | BrianH | Return to the current position. | 7-Mar 23:21 |
| 141 | Carl | I'm going to reset it to head for now. | 7-Mar 23:21 |
| 140 | Carl | Question is that last one... should SHIFT return to HEAD by default? | 7-Mar 23:21 |
| 139 | Carl | >> shift/part #{01020408} 1 2 == #{00010408} >> head shift/part next #{01020408} 1 2 == #{01010208} | 7-Mar 23:20 |
| 138 | BrianH | I'm working on TAKE, but the screening code is interesting. What does take/part something some-pair do? | 7-Mar 23:19 |
| 137 | Carl | yes | 7-Mar 23:17 |
| 136 | Carl | Basic shift is in. That's all we have time for today, and it will be a few weeks before anyone really uses it. | 7-Mar 23:17 |
| 135 | BrianH | Let's just no-carry for now and consider adding it as an option later when we can discuss the scope of the problem. | 7-Mar 23:17 |
| 134 | BrianH | Yeah, I wish he were awake so he could show us some code. | 7-Mar 23:15 |
| 133 | Carl | From above: "Forget /carry; /rotate is nice, but even without it is a big step forward" | 7-Mar 23:14 |
| 132 | BrianH | He requested carry by default, then asked for rotate-no-carry as well (which I don't know what that is). | 7-Mar 23:13 |
| 131 | Carl | It is possible I missunderstood his comments. | 7-Mar 23:12 |
| 130 | BrianH | So you shift the bytes independently? I thought he wanted carry between the bytes. | 7-Mar 23:11 |
| 129 | Carl | I think that's what Maarten requested. | 7-Mar 23:10 |
| 128 | Carl | Correct. | 7-Mar 23:10 |
| 127 | BrianH | What do you mean by non-endian? No carry between bytes of a binary? | 7-Mar 23:10 |
| 126 | Carl | (If you want to think of it as LE, it is ok. ;) | 7-Mar 23:10 |
| 125 | BrianH | I'll ignore /last on ports then. | 7-Mar 23:09 |
| 124 | Carl | Non endian. | 7-Mar 23:09 |
| 123 | Carl | Not sure you can do that on ports. | 7-Mar 23:08 |
| 122 | BrianH | Littleendian then? | 7-Mar 23:08 |
| 121 | Carl | Example for binary: >> shift #{8421} 1 == #{4210} >> shift/left #{8421} 1 == #{0842} >> shift/logical #{8421} 1 == #{C210} | 7-Mar 23:07 |
| 120 | BrianH | Scratch bitsets. Is TAKE from a port affected by /last? | 7-Mar 22:59 |
| 119 | BrianH | Do you want TAKE to work on bitsets? How does /last work with bitsets or ports? | 7-Mar 22:56 |
| 118 | Carl | (And the first person who asks about shift/left/logical gets to work in my vineyard for a day. ;) | 7-Mar 22:55 |
| 117 | BrianH | Nice. | 7-Mar 22:54 |
| 116 | Carl | >> shift/left -1 1 == -2 | 7-Mar 22:54 |
| 115 | Carl | >> shift -1 1 == -1 >> shift/logical -1 1 == 2147483647 | 7-Mar 22:53 |
| 114 | Carl | REBOL/View 2.7.6.3.1 7-Mar-2008 >> shift 100 1 == 50 >> shift/left 100 1 == 200 | 7-Mar 22:53 |
| 113 | Carl | Probably. | 7-Mar 22:51 |
| 112 | BrianH | Should I do TAKE as well? | 7-Mar 22:49 |
| 111 | BrianH | ALSO and FIRST+ cloned in mezzanines, tested and submitted. | 7-Mar 22:44 |
| 110 | BrianH | Yes. | 7-Mar 22:41 |
| 109 | Carl | So, its: shift: native [ {Perform a bit shift operation. Right shift (decreasing) by default.} data [integer! binary!] bits [integer!] /left "Shift bits to the left (increasing)" /logical "Use logical shift (unsigned, fill with zero)" /part {Shift only part of a series.} length [integer!] ] | 7-Mar 22:41 |
| 108 | Carl | Ah, we want to specify # bits, right? | 7-Mar 22:41 |
| 107 | BrianH | Cool. | 7-Mar 22:40 |
| 106 | Carl | Brian, note he wants it for binary... that is, N bytes. So carry works from byte to byte. | 7-Mar 22:40 |
| 105 | Maarten | Gottago, bedtime... | 7-Mar 22:29 |
| 104 | BrianH | It makes sense in assembler where it would carry to a carry flag, but REBOL doesn't have that. | 7-Mar 22:27 |
| 103 | Maarten | Ok, then if it isn't asked too much..... (I feel like shift is already pushing you, but this is too handy!) | 7-Mar 22:26 |
| 102 | BrianH | I can see shift or rotate of a binary automatically carry within the binary. I mean what would a integer shift carry to? | 7-Mar 22:26 |
| 101 | Carl | M: no, ROT w/o carry is not hard. | 7-Mar 22:25 |
| 100 | Maarten | Yep | 7-Mar 22:25 |
| 99 | Carl | In other words, N-bit long shift. | 7-Mar 22:25 |
| 98 | Carl | binary bytes. | 7-Mar 22:25 |
| 97 | BrianH | What is the difference between rotate-no-carry and shift? For that matter, what would you carry _to_ in REBOL? | 7-Mar 22:24 |
| 96 | Maarten | Is rotate-no-carry hard? | 7-Mar 22:22 |
| 95 | Maarten | Yes, logical as default | 7-Mar 22:22 |
| 94 | Carl | I would guess logical to be more common for binary series. | 7-Mar 22:21 |
| 93 | Carl | Maarten... in your normal binary! shifts, are you sure you want arithmetic shift as default? | 7-Mar 22:20 |
| 92 | BrianH | If you don't port ALSO and FIRST+, I'll make mezzanines. Maybe even TAKE. | 7-Mar 22:18 |
| 91 | Maarten | Since it hardly requires any thought or discussion ;-) | 7-Mar 22:17 |
| 90 | Maarten | OK, I'll settle for the easy one (Unicode) for 2.7.6 | 7-Mar 22:17 |
| 89 | BrianH | Closure is infeasable, but APPLY would be a god-send. | 7-Mar 22:16 |
| 88 | Carl | ROTFLOL, yeah sure. And Unicode, don't forget that! | 7-Mar 22:16 |
| 87 | BrianH | I won't. | 7-Mar 22:16 |
| 86 | Maarten | And closure ans apply while we're at it ;-) | 7-Mar 22:16 |
| 85 | Carl | Do *not* let me forget to roll it forward into 3.0. ;) | 7-Mar 22:15 |
| 84 | BrianH | Speaking of simple, can you port ALSO, FIRST+ and TAKE natives? | 7-Mar 22:15 |
| 83 | Maarten | Many thanks | 7-Mar 22:14 |
| 82 | Carl | Ok. Simple impl first. That way, it can be done for 2.7.6 | 7-Mar 22:14 |
| 81 | BrianH | Do /carry by having it operate on binaries. | 7-Mar 22:14 |
| 80 | Maarten | Forget /carry; /rotate is nice, but even without it is a big step forward | 7-Mar 22:13 |
| 79 | Maarten | And Gregg. Gabriele. Cyphre. .... | 7-Mar 22:13 |
| 78 | Carl | Hmm.... Well, no, was not going to do carry version of it. | 7-Mar 22:13 |
| 77 | Maarten | Yes, me :-) | 7-Mar 22:12 |
| 76 | BrianH | Better in than out. If it is there, someone will use it. | 7-Mar 22:12 |
| 75 | Maarten | /rotare (or /carry) is useful. | 7-Mar 22:12 |
| 74 | Carl | Ah, nice! | 7-Mar 22:12 |
| 73 | Maarten | (drinking another bottle of virtual REBOL wine!) | 7-Mar 22:12 |
| 72 | Carl | Or is it not useful. | 7-Mar 22:12 |
| 71 | Carl | So, the only question now is... /rotate ? | 7-Mar 22:12 |
| 70 | Carl | shift: native [ {Perform a bit shift operation. Right shift (decreasing) by default.} data [integer! binary!] /left "Shift bits to the left (increasing)" /logical "Use logical shift (unsigned)" /part {Shift only part of a series.} length [integer!] ] | 7-Mar 22:11 |
| 69 | Carl | No, binary is bytes. Non endian. | 7-Mar 22:11 |
| 68 | BrianH | But I will accept either way as long as it is the same on all platforms. | 7-Mar 22:11 |
| 67 | BrianH | Do we treat a binary as bigendian or littleendian? I say bigendian. | 7-Mar 22:10 |
| 66 | Maarten | I am just really happy if it will come! | 7-Mar 22:10 |
| 65 | Maarten | But really, as long as one is the default and the other one is there, it is clear if you do help 'shift | 7-Mar 22:09 |
| 64 | BrianH | I think of shift as being like exponents - positive ones are up, negative are down. | 7-Mar 22:09 |
| 63 | Maarten | Ok, but then we want /carry ;-) | 7-Mar 22:08 |
| 62 | Carl | Funny, I would make down the default. ;) | 7-Mar 22:08 |
| 61 | Maarten | Depends on byte order? | 7-Mar 22:07 |
| 60 | BrianH | x: x * 2 is up. | 7-Mar 22:07 |
| 59 | BrianH | Should default be shift up or down? I forget which is left (up?) or right (down?). Up should be default, with negative numbers being down. | 7-Mar 22:07 |
| 58 | Carl | which one should be the default? | 7-Mar 22:06 |
| 57 | Carl | I was just thinking about that too... | 7-Mar 22:05 |
| 56 | BrianH | What about the difference between arithmetic and logical shift? Do we just do logical and use the mod operator for arithmetic? | 7-Mar 22:04 |
| 55 | Carl | Yes, I agree. | 7-Mar 22:02 |
| 54 | Maarten | It removes one of the few limitations Rebol has | 7-Mar 22:02 |
| 53 | Maarten | But if it is easy to do, please add it. IMHO it is a major improvement, what does the rest think? | 7-Mar 22:02 |
| 52 | Carl | ;) | 7-Mar 22:01 |
| 51 | Maarten | No, we have to leave some things for R3 | 7-Mar 22:01 |
| 50 | Carl | next thing you'll ask for is... shift: func [data [integer! binary!] /left /rot /carry /part n] | 7-Mar 22:00 |
| 49 | Maarten | If you can do it with integer! , yes. Default would be left? Then /left should go? | 7-Mar 22:00 |
| 48 | Carl | shift: func [data [integer! binary!] /left /rot /part n] | 7-Mar 22:00 |
| 47 | Maarten | Seriously, these are one of the few (if not only area) where Rebol is lacking. With shift (and XOR already there) we can do most algortihmic stuff with binaries | 7-Mar 22:00 |
| 46 | BrianH | rotfl? | 7-Mar 21:59 |
| 45 | Carl | So, Maarten, is full def this: | 7-Mar 21:59 |
| 44 | Carl | They must have come from some macros... due to their over-parenisizing. ;) | 7-Mar 21:58 |
| 43 | Maarten | ;-) | 7-Mar 21:58 |
| 42 | Maarten | Thanks :-) | 7-Mar 21:58 |
| 41 | Carl | REBINT rotr(REBCNT n, REBINT b) {
return (((n) >> (b)) | ((n) << (32 - (b))));
} REBINT rotl(REBCNT n, REBINT b) { return (((n) << (b)) | ((n) >> (32 - (b)))); } | 7-Mar 21:58 |
| 40 | Carl | actually, those are local runtime defined, not stdlib | 7-Mar 21:57 |
| 39 | Carl | rotl rotr | 7-Mar 21:57 |
| 38 | Carl | Found it in my rebcode impl. | 7-Mar 21:57 |
| 37 | BrianH | Carl, I'm not sure - it might be platform-specific intrinsics. Let me look. | 7-Mar 21:56 |
| 36 | BrianH | Eventually I'd like to do evaluation audits on the rest of the mezz code. | 7-Mar 21:55 |
| 35 | BrianH | I've done an evaluation audit on mezz-series. I don't think I have the time to fix the /View bugs I found while rewriting dev-resize. | 7-Mar 21:54 |
| 34 | Maarten | Gab, it can be done in mezz, simply sloooooow | 7-Mar 21:54 |
| 33 | Carl | BrianH: does C implement ROT?? | 7-Mar 21:54 |
| 32 | Gabriele | i said mezz :) | 7-Mar 21:53 |
| 31 | Maarten | Yeah, shift ;-) | 7-Mar 21:53 |
| 30 | Gabriele | is there any mezz code requiring my help? | 7-Mar 21:53 |
| 29 | BrianH | It is probably better to have separate rshift, logical left shift, arithmetic left shift and rotate functions, to simplify and cut down on path overhead. | 7-Mar 21:52 |
| 28 | Maarten | Well.... I just implemented a binary search protocol in REBOL where I had to wrap 32 bit decimals as unsigned ints in binaries :-) | 7-Mar 21:52 |
| 27 | Carl | Add that to tracker. Thanks. | 7-Mar 21:52 |
| 26 | Maarten | shift: func [ b [binary!] /left /part n] | 7-Mar 21:52 |
| 25 | Carl | That's an interesting statement. :-/ | 7-Mar 21:51 |
| 24 | Maarten | I can live without integer. Binary is where it is really missing. | 7-Mar 21:51 |
| 23 | Carl | Maarten: So, you really mean shift on BINARY! -- what about INTEGER? | 7-Mar 21:50 |
| 22 | BrianH | Maarten, re: Tracker #37, do you have proposed function specs? | 7-Mar 21:49 |
| 21 | BrianH | I meant the SDK source then, the stuff outside of /Face and /Pro that you have to explicitly encap to get /View capabilities. Is that source included in the /Face and /Pro binaries? | 7-Mar 21:35 |
| 20 | Carl | Maarten: you mentioned you want bit shift operators. | 7-Mar 21:31 |
| 19 | Carl | They are the same source. | 7-Mar 21:30 |
| 18 | BrianH | Sorry if I wasn't clear with my suggestion about the reg funcs. I meant _move_ the reg func cleanup code out of the source for /Face and /Pro, and put it into the mezzanine source for /View instead. | 7-Mar 21:04 |
| 17 | Carl | Changed group name - to avoid assumption that this has to do with HELP function. ;) | 7-Mar 20:31 |
| 16 | Carl | On #22: Here's the fix, and it's been added to tracker for release docs: Setting sound/volume to NONE or to < 0.0 will keep the master volume as it has been set by user. | 7-Mar 20:30 |
| 15 | Carl | That's how it works already. The bug is with the non-encap forms of REBOL, like /face and /pro. | 7-Mar 20:29 |
| 14 | BrianH | Make the cleanup something that you have to do intentionally as part of your encapped app, and document the means to do so. | 7-Mar 20:10 |
| 13 | BrianH | On the reg funcs, it's simple: Just move the call to unset-reg-funcs and its unsetting to some part of the source that is encapped to be part of View, rather than have it be in the Pro code. That way the security cleanup can be added at encap time, as needed. | 7-Mar 20:09 |
| 12 | Carl | (add ] to first line) | 7-Mar 20:00 |
| 11 | Carl | No such flag. Resorting to: unless find [face pro command] system/product unset-reg-funcs ] | 7-Mar 19:59 |
| 10 | Carl | We need an 'sdk flag somewhere. | 7-Mar 19:47 |
| 9 | Carl | System/product is one way. I was hoping for a general test. | 7-Mar 19:43 |
| 8 | Carl | Yes, cassette tape, Apple2 / C64 style. | 7-Mar 19:43 |
| 7 | Henrik | system/product? | 7-Mar 19:43 |
| 6 | Brent | probably more like backup to tape?? ;-) | 7-Mar 19:40 |
| 5 | Carl | We need to qualify the unset-reg-funcs entry. Since the bug request is to keep it enabled in /pro, /face, and /command, how best to detect those? I must admit, 3 years ago, I would instantly know the answer, but these days R3 occupies my brain cells. R2 was swapped out of my brain "to disk". | 7-Mar 19:39 |
| 4 | Carl | The boot in REBOL does this: ; Security cleanup - some functions must go: foreach word [ ctx-install set-browser-path netscan free-boot unset-reg-funcs ][unset word] | 7-Mar 19:37 |
| 3 | Carl | But, more of you may be able to help too. For example, looking at the top tracker item regarding registry functions.... | 7-Mar 19:37 |
| 2 | Carl | No, actually, several people here are helping. | 7-Mar 19:36 |
| 1 | Carl | In the spirit of greater community involvement, I should not be the one fixing all the bugs,right? | 7-Mar 19:36 |