R2-Beta - Mezzanines (Mezzanine functions development)

Return to Index Page
Most recent messages (500 max) are listed first.

#UserMessageDate
19BrianHWhen reviewing the mailing list archive on rebol.org, I noticed a bug report on EXTRACT of binary! values in R2. I have submitted a fix to DevBase, aliasing the binary to a string before the extraction loop so that characters are picked rather than integers.

In the future, it would help if any bug reports of this nature that are posted to the mailing list be forwarded here. I have not seen the mailing list in more than a year, and it was only a cooincidence that I was browsing the list history today.

27-Mar-08 22:08
18BrianHThis is why I have been extra careful to keep the mezzanine functions as simple and fast as possible: If they aren't simple and fast, they won't get used. Instead they'll get gutted like the non-native loop functions of R2.24-Mar-08 13:29
17BrianHOther times it is better to just use the mezzanine. A fast, clean mezzanine can be tested code that is used by many, as fast to use as putting the code directly into your functions. Mezzanines built on mezzanines can be a good idea if you do it right.24-Mar-08 13:26
16BrianHA lot of the time it is because we have a tendency to factor out mezzanines and replace them with natives. There are times that this makes sense, like when a mezzanine function is too general so we factor out the specific code in it and use that instead.24-Mar-08 13:23
15BrianHNow I posted the EXTRACT optimization, but I've not found many places in the code where EXTRACT is being used. There are some mezzanines that just weren't being used that often, and it's hard to tell why. Sometimes it's because they were buggy (like EXTRACT perhaps), and sometimes because they were not powerful enough to be worth the effort (like ARRAY).24-Mar-08 13:18
14BrianHI do like and use the timing tools, thanks. Now we need tools that tell us what functions and refinements are actually being used, and how often. That would tell us where the fixes would have the greatest impact.24-Mar-08 13:12
13BrianHThe only reason I haven't ported FORMAT back to R2 is that I haven't even gone over it in R3 yet. It's not ready yet.24-Mar-08 13:08
12Henrikgoing to make a separate VID group for this24-Mar-08 13:03
11HenrikI'm also wondering about some inconsistencies in VID, that I think might be simple to fix. For example INFO does not support being CLEAR-FACEd while it's in a panel, while FIELD does. Since I see INFO being a read-only version of FIELD, I think they should support the same accessors.24-Mar-08 13:03
10HenrikI've been using Ladislav's BUILD function for a couple of years. It's a great way to build blocks, but it's also a bit complicated and has some rules.24-Mar-08 9:52
9BTiffin2.7.7 needs FORMAT ported back :) Tooling? timblk.r and perhaps Sundanda's profile-timer.r but you may want to check out Ingo's profiler.r in rebol.org It has experimental code that turns func into a profiling-func.24-Mar-08 5:56
8PaulBrianH this is a subject that me and Henrik got in on and that Carl actually commented about. I don't like the idea of mezzanines on top of mezzanines but Carl believes it has a place. However, Carl did think we should look at it carefully. I think the most sensitive concerns we should have are those that deal with series data or anything that might be commonly used in a loop.24-Mar-08 3:03
7BrianH*mezzanines in R2 where they are natives in R3*24-Mar-08 1:56
6BrianHWe could use those.24-Mar-08 1:54
5BrianHDo we have any tools that can determine where the trouble spots are? Code coverage, profilers, automated testing?24-Mar-08 1:51
4BrianHBut how do we determine which functions to work on first? Which functions cause the greatest slowdowns? Which have the worst bugs? Do we just give every file a once-over? That could take a while, and could take effort away from other areas.24-Mar-08 1:47
3BrianHI mean, it's pretty fast already. The only changes would be to replace APPEND with INSERT TAIL, FORALL and FORSKIP with WHILE - not too difficult. We could do this kind of thing with a lot of functions, really.24-Mar-08 1:42
2BrianHIt has come to my attention that one of the backports, EXTRACT, is not as efficient on R2 as it is on R3. This is because 3 of the functions used by EXTRACT are mezzanines in R2 where they are natives. This brings to mind a question: Is it worth the effort to optimize functions like this?24-Mar-08 1:37
1BrianHNow that 2.7.6 is done, time to look at 2.7.7.24-Mar-08 1:31

Return to Index Page