# | User | Message | Date |
182 | RobertS | I've moved to a linux box but cannnot get to www.rebol.net/builds which I have bookmarked for the 2.7.7 beta code | 22-May-09 15:21 |
181 | Graham | Add http put ... can we have this added to prot-http as well? | 22-Sep-08 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-08 23:30 |
179 | Gabriele | Ladislav's is probably better though. | 9-Mar-08 13:26 |
178 | Gabriele | i should probably clean it up and post it somewhere... | 9-Mar-08 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-08 13:26 |
176 | Carl | Agreed. | 8-Mar-08 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-08 17:29 |
174 | Carl | That's correct. | 8-Mar-08 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-08 17:27 |
172 | Carl | SDK tools are not end-user tools. | 8-Mar-08 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-08 17:25 |
170 | Carl | We should add tm as a mezz ;) | 8-Mar-08 17:22 |
169 | Pekr | I want also easy conversion of integers .... hopefully R3 adresses it now .... | 8-Mar-08 16:27 |
168 | Henrik | nice | 8-Mar-08 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-08 16:20 |
166 | Oldes | but for binary manipulation is much more better | 8-Mar-08 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-08 16:14 |
164 | Maarten | Pekr, see? | 8-Mar-08 13:38 |
163 | Oldes | Shift is finally here.. thanks Maarten and Carl.. I almost forget this long time wish:) | 8-Mar-08 12:20 |
162 | Pekr | OK, then I expect shift as a native goes in R3 too? | 8-Mar-08 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-08 9:02 |
160 | Maarten | It is a way of showing Rebol 2 (and thus in general) is very much alive! | 8-Mar-08 7:47 |
159 | Maarten | Exactly, but for now, I'm very happy with this (as will others be) | 8-Mar-08 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-08 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-08 7:44 |
156 | Maarten | With 'shift, 'or, ' xor, and 'and the binary basics are finally there :-) | 8-Mar-08 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-08 7:42 |
154 | Maarten | Carl: behaviour as expected (no rotate). It's easy to simulate roate with a bit mask and OR | 8-Mar-08 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-08 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-08 3:20 |
151 | BrianH | TAKE done. | 8-Mar-08 0:06 |
150 | BrianH | At least one that isn't /direct I mean, though I am wondering about that one too. | 7-Mar-08 23:27 |
149 | BrianH | Can you take the index? of a port? | 7-Mar-08 23:26 |
148 | Carl | Never an easy call, that one. | 7-Mar-08 23:23 |
147 | BrianH | Looks good. | 7-Mar-08 23:23 |
146 | Carl | In other words, index out is index in. | 7-Mar-08 23:23 |
145 | Carl | Right now it is: >> shift/part next #{01020408} 1 2 == #{010208} | 7-Mar-08 23:22 |
144 | BrianH | Pretend the starting position is the head. | 7-Mar-08 23:22 |
143 | Carl | So, as shown above? | 7-Mar-08 23:22 |
142 | BrianH | Return to the current position. | 7-Mar-08 23:21 |
141 | Carl | I'm going to reset it to head for now. | 7-Mar-08 23:21 |
140 | Carl | Question is that last one... should SHIFT return to HEAD by default? | 7-Mar-08 23:21 |
139 | Carl | >> shift/part #{01020408} 1 2 == #{00010408} >> head shift/part next #{01020408} 1 2 == #{01010208} | 7-Mar-08 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-08 23:19 |
137 | Carl | yes | 7-Mar-08 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-08 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-08 23:17 |
134 | BrianH | Yeah, I wish he were awake so he could show us some code. | 7-Mar-08 23:15 |
133 | Carl | From above: "Forget /carry; /rotate is nice, but even without it is a big step forward" | 7-Mar-08 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-08 23:13 |
131 | Carl | It is possible I missunderstood his comments. | 7-Mar-08 23:12 |
130 | BrianH | So you shift the bytes independently? I thought he wanted carry between the bytes. | 7-Mar-08 23:11 |
129 | Carl | I think that's what Maarten requested. | 7-Mar-08 23:10 |
128 | Carl | Correct. | 7-Mar-08 23:10 |
127 | BrianH | What do you mean by non-endian? No carry between bytes of a binary? | 7-Mar-08 23:10 |
126 | Carl | (If you want to think of it as LE, it is ok. ;) | 7-Mar-08 23:10 |
125 | BrianH | I'll ignore /last on ports then. | 7-Mar-08 23:09 |
124 | Carl | Non endian. | 7-Mar-08 23:09 |
123 | Carl | Not sure you can do that on ports. | 7-Mar-08 23:08 |
122 | BrianH | Littleendian then? | 7-Mar-08 23:08 |
121 | Carl | Example for binary: >> shift #{8421} 1 == #{4210} >> shift/left #{8421} 1 == #{0842} >> shift/logical #{8421} 1 == #{C210} | 7-Mar-08 23:07 |
120 | BrianH | Scratch bitsets. Is TAKE from a port affected by /last? | 7-Mar-08 22:59 |
119 | BrianH | Do you want TAKE to work on bitsets? How does /last work with bitsets or ports? | 7-Mar-08 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-08 22:55 |
117 | BrianH | Nice. | 7-Mar-08 22:54 |
116 | Carl | >> shift/left -1 1 == -2 | 7-Mar-08 22:54 |
115 | Carl | >> shift -1 1 == -1 >> shift/logical -1 1 == 2147483647 | 7-Mar-08 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-08 22:53 |
113 | Carl | Probably. | 7-Mar-08 22:51 |
112 | BrianH | Should I do TAKE as well? | 7-Mar-08 22:49 |
111 | BrianH | ALSO and FIRST+ cloned in mezzanines, tested and submitted. | 7-Mar-08 22:44 |
110 | BrianH | Yes. | 7-Mar-08 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-08 22:41 |
108 | Carl | Ah, we want to specify # bits, right? | 7-Mar-08 22:41 |
107 | BrianH | Cool. | 7-Mar-08 22:40 |
106 | Carl | Brian, note he wants it for binary... that is, N bytes. So carry works from byte to byte. | 7-Mar-08 22:40 |
105 | Maarten | Gottago, bedtime... | 7-Mar-08 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-08 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-08 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-08 22:26 |
101 | Carl | M: no, ROT w/o carry is not hard. | 7-Mar-08 22:25 |
100 | Maarten | Yep | 7-Mar-08 22:25 |
99 | Carl | In other words, N-bit long shift. | 7-Mar-08 22:25 |
98 | Carl | binary bytes. | 7-Mar-08 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-08 22:24 |
96 | Maarten | Is rotate-no-carry hard? | 7-Mar-08 22:22 |
95 | Maarten | Yes, logical as default | 7-Mar-08 22:22 |
94 | Carl | I would guess logical to be more common for binary series. | 7-Mar-08 22:21 |
93 | Carl | Maarten... in your normal binary! shifts, are you sure you want arithmetic shift as default? | 7-Mar-08 22:20 |
92 | BrianH | If you don't port ALSO and FIRST+, I'll make mezzanines. Maybe even TAKE. | 7-Mar-08 22:18 |
91 | Maarten | Since it hardly requires any thought or discussion ;-) | 7-Mar-08 22:17 |
90 | Maarten | OK, I'll settle for the easy one (Unicode) for 2.7.6 | 7-Mar-08 22:17 |
89 | BrianH | Closure is infeasable, but APPLY would be a god-send. | 7-Mar-08 22:16 |
88 | Carl | ROTFLOL, yeah sure. And Unicode, don't forget that! | 7-Mar-08 22:16 |
87 | BrianH | I won't. | 7-Mar-08 22:16 |
86 | Maarten | And closure ans apply while we're at it ;-) | 7-Mar-08 22:16 |
85 | Carl | Do *not* let me forget to roll it forward into 3.0. ;) | 7-Mar-08 22:15 |
84 | BrianH | Speaking of simple, can you port ALSO, FIRST+ and TAKE natives? | 7-Mar-08 22:15 |
83 | Maarten | Many thanks | 7-Mar-08 22:14 |
82 | Carl | Ok. Simple impl first. That way, it can be done for 2.7.6 | 7-Mar-08 22:14 |
81 | BrianH | Do /carry by having it operate on binaries. | 7-Mar-08 22:14 |
80 | Maarten | Forget /carry; /rotate is nice, but even without it is a big step forward | 7-Mar-08 22:13 |
79 | Maarten | And Gregg. Gabriele. Cyphre. .... | 7-Mar-08 22:13 |
78 | Carl | Hmm.... Well, no, was not going to do carry version of it. | 7-Mar-08 22:13 |
77 | Maarten | Yes, me :-) | 7-Mar-08 22:12 |
76 | BrianH | Better in than out. If it is there, someone will use it. | 7-Mar-08 22:12 |
75 | Maarten | /rotare (or /carry) is useful. | 7-Mar-08 22:12 |
74 | Carl | Ah, nice! | 7-Mar-08 22:12 |
73 | Maarten | (drinking another bottle of virtual REBOL wine!) | 7-Mar-08 22:12 |
72 | Carl | Or is it not useful. | 7-Mar-08 22:12 |
71 | Carl | So, the only question now is... /rotate ? | 7-Mar-08 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-08 22:11 |
69 | Carl | No, binary is bytes. Non endian. | 7-Mar-08 22:11 |
68 | BrianH | But I will accept either way as long as it is the same on all platforms. | 7-Mar-08 22:11 |
67 | BrianH | Do we treat a binary as bigendian or littleendian? I say bigendian. | 7-Mar-08 22:10 |
66 | Maarten | I am just really happy if it will come! | 7-Mar-08 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-08 22:09 |
64 | BrianH | I think of shift as being like exponents - positive ones are up, negative are down. | 7-Mar-08 22:09 |
63 | Maarten | Ok, but then we want /carry ;-) | 7-Mar-08 22:08 |
62 | Carl | Funny, I would make down the default. ;) | 7-Mar-08 22:08 |
61 | Maarten | Depends on byte order? | 7-Mar-08 22:07 |
60 | BrianH | x: x * 2 is up. | 7-Mar-08 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-08 22:07 |
58 | Carl | which one should be the default? | 7-Mar-08 22:06 |
57 | Carl | I was just thinking about that too... | 7-Mar-08 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-08 22:04 |
55 | Carl | Yes, I agree. | 7-Mar-08 22:02 |
54 | Maarten | It removes one of the few limitations Rebol has | 7-Mar-08 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-08 22:02 |
52 | Carl | ;) | 7-Mar-08 22:01 |
51 | Maarten | No, we have to leave some things for R3 | 7-Mar-08 22:01 |
50 | Carl | next thing you'll ask for is... shift: func [data [integer! binary!] /left /rot /carry /part n] | 7-Mar-08 22:00 |
49 | Maarten | If you can do it with integer! , yes. Default would be left? Then /left should go? | 7-Mar-08 22:00 |
48 | Carl | shift: func [data [integer! binary!] /left /rot /part n] | 7-Mar-08 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-08 22:00 |
46 | BrianH | rotfl? | 7-Mar-08 21:59 |
45 | Carl | So, Maarten, is full def this: | 7-Mar-08 21:59 |
44 | Carl | They must have come from some macros... due to their over-parenisizing. ;) | 7-Mar-08 21:58 |
43 | Maarten | ;-) | 7-Mar-08 21:58 |
42 | Maarten | Thanks :-) | 7-Mar-08 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-08 21:58 |
40 | Carl | actually, those are local runtime defined, not stdlib | 7-Mar-08 21:57 |
39 | Carl | rotl rotr | 7-Mar-08 21:57 |
38 | Carl | Found it in my rebcode impl. | 7-Mar-08 21:57 |
37 | BrianH | Carl, I'm not sure - it might be platform-specific intrinsics. Let me look. | 7-Mar-08 21:56 |
36 | BrianH | Eventually I'd like to do evaluation audits on the rest of the mezz code. | 7-Mar-08 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-08 21:54 |
34 | Maarten | Gab, it can be done in mezz, simply sloooooow | 7-Mar-08 21:54 |
33 | Carl | BrianH: does C implement ROT?? | 7-Mar-08 21:54 |
32 | Gabriele | i said mezz :) | 7-Mar-08 21:53 |
31 | Maarten | Yeah, shift ;-) | 7-Mar-08 21:53 |
30 | Gabriele | is there any mezz code requiring my help? | 7-Mar-08 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-08 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-08 21:52 |
27 | Carl | Add that to tracker. Thanks. | 7-Mar-08 21:52 |
26 | Maarten | shift: func [ b [binary!] /left /part n] | 7-Mar-08 21:52 |
25 | Carl | That's an interesting statement. :-/ | 7-Mar-08 21:51 |
24 | Maarten | I can live without integer. Binary is where it is really missing. | 7-Mar-08 21:51 |
23 | Carl | Maarten: So, you really mean shift on BINARY! -- what about INTEGER? | 7-Mar-08 21:50 |
22 | BrianH | Maarten, re: Tracker #37, do you have proposed function specs? | 7-Mar-08 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-08 21:35 |
20 | Carl | Maarten: you mentioned you want bit shift operators. | 7-Mar-08 21:31 |
19 | Carl | They are the same source. | 7-Mar-08 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-08 21:04 |
17 | Carl | Changed group name - to avoid assumption that this has to do with HELP function. ;) | 7-Mar-08 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-08 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-08 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-08 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-08 20:09 |
12 | Carl | (add ] to first line) | 7-Mar-08 20:00 |
11 | Carl | No such flag. Resorting to: unless find [face pro command] system/product unset-reg-funcs ] | 7-Mar-08 19:59 |
10 | Carl | We need an 'sdk flag somewhere. | 7-Mar-08 19:47 |
9 | Carl | System/product is one way. I was hoping for a general test. | 7-Mar-08 19:43 |
8 | Carl | Yes, cassette tape, Apple2 / C64 style. | 7-Mar-08 19:43 |
7 | Henrik | system/product? | 7-Mar-08 19:43 |
6 | Brent | probably more like backup to tape?? ;-) | 7-Mar-08 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-08 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-08 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-08 19:37 |
2 | Carl | No, actually, several people here are helping. | 7-Mar-08 19:36 |
1 | Carl | In the spirit of greater community involvement, I should not be the one fixing all the bugs,right? | 7-Mar-08 19:36 |