World: r3wp
[!REBOL3]
older newer | first last |
Kaj 29-Nov-2010 [6318] | Don't think so |
Jerry 29-Nov-2010 [6319] | I ran out of memory using R3 because of a huge map!. I was doing a Chinese social-network-graph analysis. If R3 supports 64-bit OS, I will have the 64-bit HW, 64-bit OS, and 8 GB RAM ready. Too much data to analysize, too less memory. |
Henrik 29-Nov-2010 [6320] | interesting :-) |
Kaj 29-Nov-2010 [6321] | Indeed :-) |
Jerry 29-Nov-2010 [6322x2] | Actually, Sharp phone using our Tapas OS (which is based on Android) is shipping in China. (http://www.udeek.com/archives/628) I hope that R3 with View can be port to android soon. |
So I can introduce it to Chinese mobile phone users. | |
Ladislav 29-Nov-2010 [6324] | Jerry, have you considered to put your wish to CureCode? |
BrianH 29-Nov-2010 [6325] | Yes, please! I am glad that someone has finally run into the 32bit memory limits in R3 with real code rather than just test code :) |
Ladislav 29-Nov-2010 [6326] | Nevertheless, there may be a problem with a map! hash limit, so, I am not sure, that just a simple solution would suffice |
BrianH 29-Nov-2010 [6327] | We already resolved that problem earlier - maps rehash with a bigger limit when they run out of room now. All we need to do is provide Carl with an appropriate number of items to hash, where Ladislav would know what I mean by appropriate. |
Sunanda 29-Nov-2010 [6328] | R2 would populate the block below with 200 (or so) random values. R3 populates it with one value replicated 200 times. Bug, nasty gotcha, or inexplicably elegant feature? random/seed now/time/precise blk: copy [] loop 200 [append blk random/secure "abcdefghi"] print length? unique blk == 1 ;;R3's result (a110) |
Andreas 29-Nov-2010 [6329x5] | R3 64-bit wish added to CureCode: http://www.curecode.org/rebol3/ticket.rsp?id=1785 |
Sunanda: RANDOM of a series in R3 modifies the series and returns a reference to the modified series. | |
So you append the same series 200 times to blk, and also shuffle this series 200 times. | |
So the behaviour you observe it's just another instance of missing COPY" :) `random/secure copy "abcdefghi"` will work as expected. | |
And yes, that is an incompatible change in R3 over R2. RANDOM in R2 was not modifying a series argument. | |
BrianH 29-Nov-2010 [6334] | I expect that it was because we are trying to make R3 more efficient, so it is left up to the developer to decide whether a copy is appropriate rather than just assuming it is. But yes, incompatible, and without a change in function name, just like we rejected for UNIQUE and the other set functions. Oh well. |
Andreas 29-Nov-2010 [6335x2] | Actually a good example of how arbitrary those "efficiency" decisions can become. |
As we could also choose to optimise for efficiency of the copying RANDOM. | |
BrianH 29-Nov-2010 [6337x2] | It's not so bad when they are documented, at least in CureCode, but that particular change seems to predate CureCode by at least a year. And predate PROTECT, hence the bug with that. |
I understand that there are limits to how efficient you can make copies. Making a copy is itself an inefficiency, since efficiency isn't just a CPU thing, memory usage matters too. However, this might not work as well when we are making a lot of series non-modifiable not just for protection, but in theory to make them sharable without conflicts. I'll put my concerns in the ticket. | |
Pekr 30-Nov-2010 [6339x6] | Can we consider R3 being mature enough, to ask general R3 questions here? Or should we setup R3 Core (or Core R3) group? |
I tried to look into Rebol Tutorial request for the JS 'prototype like functionality: http://stackoverflow.com/questions/4272018/does-rebol-really-have-an-equivalent-for-javascript-prototype-property | |
Of course his speed claims are relative. I added some reaction to show how to extend objects, but studying JS prototype documentation, I wonder if something like that would be possible to simulate using REBOL? I know that we can have sub-objects shared/referenced. But JS Prototype is not just that - it is not about classes. It is more about the ability to have linked objects, and when querying a value, it is being looked-up down the road: obj/value If 'value is not found in the object, then JS looks down to obj/prototype/value. And 'prototype here can be referenced from different constructor. I think, that it is similar to find/deep, but with simple/single accessor. | |
More is here - http://mckoss.com/jscript/object.htm | |
Generally I remember two enhancement requests in REBOL: - find/first - from the list of objects find first one matching the query - find/deep - look-up in nested structures. Most probably blocks were meant, so not sure it would work for objects ... | |
Any ideas if some enhancement request would be helpful (e.g. to allow JS 'prototype simulation) in that regard, to get us more flexibility? I am more interested in practical usefullness, than in some over-complicated object/class system .... | |
Cyphre 30-Nov-2010 [6345] | I wonder what is difficult to simulate on the JS prototyping? IMO it is possible to do it easily in REBOL. |
Ladislav 30-Nov-2010 [6346] | Why do you bother to try to help Tutorial translate a non-working code example? |
Oldes 30-Nov-2010 [6347] | It is working example. |
Ladislav 30-Nov-2010 [6348] | OK, but then it is a trivial example, as I see it |
Cyphre 30-Nov-2010 [6349] | the only problem in R2 is the extension of prototype object for new fields imo |
Ladislav 30-Nov-2010 [6350] | this is not worth discussing (I do not use JS at all, using only Java from time to time), but where did he use that in his code? |
Pekr 30-Nov-2010 [6351x2] | He is just imo trying to say, that rebol is incapable crap, as he does most of the time ... |
I think that in REBOL we are not able to use path accessors to get redirected to prototype subobject. Other than that, with special accessors, it might be possible ... | |
Ladislav 30-Nov-2010 [6353] | Where in his original code did he do such a thing? |
Oldes 30-Nov-2010 [6354] | I guess, that the main difference which he is showing is, that in REBOL we must specify field names, like: person: context [ firstName: secondName: none whoAreYou: does [print [firstName secondName]] WhatIsYourSex: does [print sex] ] extend person 'sex "male" JaneDoe: make person [firstName: "Jane" secondName: "Doe"] JaneDoe/whoAreYou JaneDoe/WhatIsYourSex ask "Are you sure?" JaneDoe/sex: "female" JaneDoe/WhatIsYourSex |
BrianH 30-Nov-2010 [6355] | Is that what he is requesting? We can implement semantically equivalent code in REBOL, but that exact code can't be made to work. |
Oldes 30-Nov-2010 [6356x2] | I don't know what he is requesting. |
It's just the only difference I can see. | |
Ladislav 30-Nov-2010 [6358] | We can implement semantically equivalent code in REBOL, but that exact code can't be made to work. - I do not understand - that code works, what does "that exact code can't be made to work" mean? |
BrianH 30-Nov-2010 [6359x2] | It looks like a question, based on the object model of JavaScript. REBOL objects don't have "children" in that way, as we don't do delegation, just prototyping. |
WhatIsYourSex has a function that is bound to the object *before* the word 'sex is added to it, so the 'sex it is getting is not person/sex. It only works for objects derived from it. Unless I missed Oldes' point, and only working in derived objects was intended. | |
Oldes 30-Nov-2010 [6361] | Of course this has no sense even in the JS version. The only difference is, that JS would return undefined, REBOL throw an error. The second is better for me. |
Ladislav 30-Nov-2010 [6362] | OK, so, generally - a nonsense, that actually works the way he wants it to, so what? |
Oldes 30-Nov-2010 [6363x2] | He wants to show this: JaneDoe = new Person("Jane", "Doe"); DoeJane = new Person("Doe", "Jane"); Person.prototype.sex = "Man"; JaneDoe.WhatIsYourSex(); JaneDoe.WhatIsYourSex(); |
in JS if you extend the prototype, you extend the already existing objects as well. | |
BrianH 30-Nov-2010 [6365] | The equivalent to what RT requests would be to extend person *after* JaneDoe is created, and then have JaneDoe work. JS supports this (in some circumstances). |
Ladislav 30-Nov-2010 [6366] | The equivalent to what RT requests would be to extend person *after* JaneDoe is created, and then have JaneDoe work. - why do you suspect him not being able to demonstrate the code he wants to work? |
BrianH 30-Nov-2010 [6367] | Unless I missed Oldes' point . |
older newer | first last |