World: r3wp
[Core] Discuss core issues
older newer | first last |
Anton 10-Aug-2010 [17733] | Oh ok, I see. In that case, I'd like to see suggestions for how to do it more rebolishly. It doesn't immediately occur to me, not knowing the context for the code, how it should be better. Another explanation could be that Carl is suggesting that such code (manipulating millions of vectors) makes more sense implemented in C (for higher performance), with rebol calling out to it. |
Gabriele 11-Aug-2010 [17734] | Yes, that is a valid interpretation as well (things like that are not a good thing to do in REBOL). I do think that you can't give a more "rebolish" implementation without the context (that's the whole point of REBOL). |
Graham 13-Aug-2010 [17735x2] | Is this helpful? >> trim none ** Script Error: trim expected series argument of type: series port ** Near: trim none |
What harm would there be in ignoring none? | |
Henrik 13-Aug-2010 [17737] | I guess it's about the propagation of NONE. If TRIM is used as part of a larger concatenated string, you could be forced to handle the NONE case after TRIM. |
Nicolas 14-Aug-2010 [17738] | I'm having difficulty using the find function to find an image in an image. The image specification seems to indicate that this should be fine. Is this a known issue? |
Henrik 14-Aug-2010 [17739] | Can you give an example where it doesn't work? |
Nicolas 14-Aug-2010 [17740x6] | ;Rule30 rule30: to-image layout/tight [box 6x1 yellow edge none] foreach n [2 5 6] [poke rule30 n orange] ;Img screen: system/view/screen-face img: draw make image! screen/size reduce ['pen 'yellow 'fill-pen 'yellow 'box 0x0 screen/size] img: at img img/size/x / 2 change img orange img: at img -2x0 width: 3 it: copy/part rule30 3 find img it |
;simpler i1: make image! [60x60 #{FFFF00FFFF00FF960AFFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00 FFFF00FFFF00FFFF00FFFF00FFFF}] i2: make image! [3x1 #{FFFF00 FF960A FFFF00}] find i1 i2 | |
any thoughts? | |
Am I doomed to convert the image to binary? | |
;this works | |
find i1/rgb i2/rgb | |
Steeve 14-Aug-2010 [17746] | it's broken since a while |
Graham 14-Aug-2010 [17747] | can someone rambo this? |
Nicolas 14-Aug-2010 [17748] | how does one rambo? |
Graham 14-Aug-2010 [17749] | http://www.rebol.net/cgi-bin/rambo.r This is the bug database for R2 and before |
Henrik 14-Aug-2010 [17750] | please check also if this bug exists in R3. |
Nicolas 14-Aug-2010 [17751x2] | ok |
check out this groovy cellular automaton I made with rebol http://docs.google.com/leaf?id=0B37bnU84uDb5OGE4YWFiNzUtNmM4ZC00Zjg2LTg5OTYtMzMwNGYzNmMxNzE1&hl=en | |
Graham 14-Aug-2010 [17753] | view layout [ f1: field button "test" [ context [ view/new layout [ f1: field "testing" ]]] button "F1 value" [ probe f1/text ]] why does the context not prevent the second f1 overwriting the first ? |
Henrik 14-Aug-2010 [17754] | because LAYOUT sets set-word!s globally. they don't exist in a particular context. |
Gabriele 14-Aug-2010 [17755] | because make object! only scans for set-word!s in the main block, not sub blocks. |
Graham 14-Aug-2010 [17756] | view layout [ f1: field button "test" [ use [ f1] [ view/new layout [ f1: field "testing" ]]] button "F1 value" [ probe f1/text ]] this works though |
Gabriele 14-Aug-2010 [17757x2] | >> context [do [f: 'something]] >> f == something |
so you need context [f1: none view/new ....] | |
Graham 14-Aug-2010 [17759] | I don't want it to overwrite the f1 I have in the global context |
Gabriele 14-Aug-2010 [17760x2] | see the VID-CONTEXT function here: http://www.colellachiara.com/soft/libs/utility.r |
or, if you want a more general solution, see my implementation of modules: http://www.rebol.it/power-mezz/mezz/module.html | |
Graham 14-Aug-2010 [17762] | thanks .. you've got module for everything! |
Gabriele 14-Aug-2010 [17763] | i guess 11 years of reboling pay off sometimes :-) |
Graham 14-Aug-2010 [17764x2] | absolutely |
so this is like a 'funct for layout | |
Gabriele 14-Aug-2010 [17766x3] | yes. it's still main block only iirc |
but i found it very useful with VID | |
MODULE instead scan sub-blocks as well and preserves globals by copying them. | |
Henrik 14-Aug-2010 [17769] | I guess I was incorrect. 8 years of REBOLing is not enough. |
Graham 14-Aug-2010 [17770] | how exactly do you use it? |
Gabriele 14-Aug-2010 [17771x2] | layout vid-context [....] |
it will make set-words in there local. i think i had a refinement to also get the context in case you need to access it... | |
Graham 14-Aug-2010 [17773x2] | ok, should work for rebgui too then |
vid-context/to | |
Gabriele 14-Aug-2010 [17775x2] | yep, vid-context/to [...] 'word |
(it's a small function so you can easily modify it to fit your needs, as well) | |
Graham 14-Aug-2010 [17777x2] | I have a screen ( VID) and a function that loads values into that screen. I was hoping to reuse that screen elsewhere by enclosing into an anonymous context, and use the function that loads the data with the same. |
so does it make sense to fix make object! to scan for set-words in the sub blocks? | |
Chris 14-Aug-2010 [17779] | You might end up with some rather large objects with lots of redundant words - perhaps not so useful for data modelling... |
Graham 14-Aug-2010 [17780x3] | Well, instead then a context function that deep scans for all set words |
I want to be able to reuse these screens I have defined elsewhere and the functions that operate on these screens without overwriting the original values ... | |
c: does [ f/text: "hello" show f ] view layout [ f: field button "New" [ context [ f: g: none bind [ c ] 'g view/new layout [ f: field button "test" [ c ] ] ]]] this doesn't work ... pressing the test button sets the f field in the first window and not the second | |
older newer | first last |