World: r3wp
[!REBOL3-OLD1]
older newer | first last |
BrianH 9-Dec-2008 [8851] | I think Pekr doesn't see too many goths. I'm pretty conservative-looking by their standards :) |
Steeve 9-Dec-2008 [8852] | Pekr is right, when i saw Brian first, i thought, oh God i hope no one will give him a scissor... |
BrianH 9-Dec-2008 [8853] | I am really very happy and well adjusted, which weirds out my friends :) |
Steeve 9-Dec-2008 [8854x2] | he's already "cutting" our idea on R3 evolutions, so that he doesn't need to be more accurate |
;-) | |
BrianH 9-Dec-2008 [8856] | We are on the cutting edge :) |
BrianH 10-Dec-2008 [8857] | Oldes: Is there something new with Rebcode? Nothing new, but your requesting it means that you don't remember the problems the old rebcode had. The bad news: - Rebcode didn't work in R2, it was unstable and frequently crashed REBOL, very pre-allpha. - Carl is unlikely to make a build with rebcode because of the above, and because he is focusing on R3. - R2-style rebcode would be slower in R3 relative to the speed of regular R3, partly due to changes in function word lookup. - Any rebcode dialect for R3 would be incompatible with R2 rebcode on a basic semantic level. The good news: - R3 has features that will make it relatively easy to add our own rebcode-like dialect. - Even though the R2 semantics wouldn't be good, there are more tricks we can do to get more speed. - The main reason that we don't get as much of a relative speedup for R2-style rebcode in R3 is that R3 is faster itself. |
Pekr 11-Dec-2008 [8858] | BrianH - are you going to bring us Rebcode, JIT, or anything like that in the future for R3? :-) |
Maarten 11-Dec-2008 [8859] | Petr, read carefully... he is saying R3 is so much faster that you may not need it. |
Oldes 11-Dec-2008 [8860] | We will see. I'm not going to test it now as I don't have the latest R3 version. But I'm really looking forward to see the new R3 features. |
Rebolek 11-Dec-2008 [8861] | R3 (at least publicly available versions) math is definitely not 10x faster as rebcode was. |
Oldes 11-Dec-2008 [8862] | For math maybe we will be able to use C-ish plugins with R3 |
Pekr 11-Dec-2008 [8863] | Maarten - you probably don't believe your own words, righ? Or are you going to write pixel manipulation in 'foreach or any other REBOL loop? :-) |
Maarten 11-Dec-2008 [8864] | I think R3 will be fast enough for all things you don't want to code in C |
Henrik 11-Dec-2008 [8865x2] | I'm looking forward to the reduce/into enhancement. In general we've had a lot of clever optimizations through better design, and I'm sure there are many more that can go in. |
Small status update: - CureCode is now the official bug tracker for R3. - Clipboard now supports unicode. This took longer than expected. - HTTP 1.1 has been degraded to 1.0 due to some problems with 1.1. Rebtalk will continue to work as always though. Maarten is looking into this. - Carl is attacking font code (this does not involve altering the poor anti-aliasing unfortunately) and text handling, so text areas will finally grow up and act like real text areas. This makes Rebtalk usable for more than messages. :-) - Also yesterday, code was added to allow cell based vertical and horizontal alignment of faces. It's interesting to see these changes in VID3.4: A new feature like this is rarely more than 5-10 lines of code, which is a sign of a great design. - MAX-SIZE won't go away. Instead it might (I'm not sure Carl is convinced there is a problem) be split in two. It currently acts as both a pressure factor and maximum size for a face, which is the cause for most of its problems. | |
BrianH 11-Dec-2008 [8867x2] | Pekr, making new execution engines for R3 is one of my goals, so yes. |
Rebolek, math is not REBOL's strong suit, true. The speedup comes from other areas. | |
Rebolek 11-Dec-2008 [8869] | Maarten: I don't want to code anything in C :) |
BrianH 11-Dec-2008 [8870] | REBOL's syntax is bad for math - too verbose, too much required whitespace. We can do a better dialect than that. |
Steeve 11-Dec-2008 [8871x2] | Brian coul you give an example how to define a new execution engine in R3, i don't see the point |
perhaps a work to do in the wiki | |
BrianH 11-Dec-2008 [8873] | I can explain, but not give you code yet because it depends on user-defined datatypes and we don't even have the syntax for those yet. |
Steeve 11-Dec-2008 [8874] | ok i take it |
BrianH 11-Dec-2008 [8875] | Perhaps you have noticed that in R2 there are 4 function types, 5 with rebcode builds: function!, native!, action!, routine!. Each of these behaves completely differently on the inside, but are called the same on the outside. This is because each of these datatypes defines a different execution model. R3 will have allow the user to create their own datatypes, and that includes function types. All a datatype needs to do to be a function type is to act like a function on the outside. How it behaves on the inside is up to it. |
Steeve 11-Dec-2008 [8876] | but in what langage will be writed the inner code of such new functions ? (rebol, c, ...) |
BrianH 11-Dec-2008 [8877] | User-defined datatypes (UDT) depend on the R3 plugin model (that's not done yet either) and plugins are a REBOL module wrapper around native code. UDTs can be defined in REBOL code or a mix of REBOL and native. |
Steeve 11-Dec-2008 [8878] | ok |
BrianH 11-Dec-2008 [8879] | One thing you are missing is that the input data of the MAKE action of a datatype does not have to be the same as what is on the inside of the value created. That means that you could pass a block of code or string containing another language's syntax to MAKE and the datatype's MAKE handler can translate that data to whatever internal format it needs. This means we can compile. |
Steeve 11-Dec-2008 [8880] | this means we could compile some c code in the fly with something like tcc |
BrianH 11-Dec-2008 [8881] | Yes, that is one of my plans. |
Steeve 11-Dec-2008 [8882] | sounds sweet |
BrianH 11-Dec-2008 [8883x2] | The datatype's execution engine deals with the internal data that the MAKE handler creates, not the input syntax. This means that the internal data could be anything: bytecode, native code, graph structures, whatever. |
You can't get a reference to the internal data in R3 like you can in R2, so no hot patching. | |
Steeve 11-Dec-2008 [8885] | using struct! ? |
BrianH 11-Dec-2008 [8886] | I mean the value returned by the body-of reflector of a function is at best an unbound deep copy of the body, not the original. You can't patch functions. This means that your datatype could return a copy of the input data, a disassembly of your bytecode, or nothing if you like. |
Steeve 11-Dec-2008 [8887] | hum i see |
BrianH 11-Dec-2008 [8888x2] | This was a security fix. |
Nonetheless, I am doing whatever I can to speed up regular R3 whereever it is reasonable to do so. The profiler is my friend :) | |
[unknown: 5] 11-Dec-2008 [8890] | what is the name of the REBOL world again for 2.7.7? |
Henrik 11-Dec-2008 [8891] | r2-beta, I think |
Maxim 11-Dec-2008 [8892] | quick question about R3.... does the GC *release* memory from the process properly, as opposed to R2 growing infinitely? |
Kaj 11-Dec-2008 [8893] | R2 does that? |
Maxim 11-Dec-2008 [8894] | yep. |
Sunanda 11-Dec-2008 [8895] | R2 does not grow infinitely, but it does not hand back memory -- it prefers to keep what it's got and use that again when needed. That is faster than continually handing back and reacquiring memory in many cases. But if an application needs a large amount of memory at start-up (or some other peak time), it keeps that memory until the end. That is not very friendly! |
Maxim 11-Dec-2008 [8896x5] | any memory use which grows the global pool is never de-allocated :-( |
but the actual effect is that if R2 grows, memory wise, its GC slows down. so the argument of handing back the memory is ultimately flawed. | |
I've even witnessed this with altme, when doing the initial sync, it grew to almost 200 MB. it then started to freeze sporadically. | |
so I just quit, started back... got me a nice 50MB process and all is well. | |
and sunanda... I've also discovered that it doesn't always recycle the memory its got ! image manipulation is an example of that. | |
older newer | first last |