r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3-OLD1]

BrianH
25-Sep-2009
[18208x2]
My preferences:

- Get it done
- Make it easy to use

- Use R3's existing timer system for long delays, and then multimedia 
timers for the last precise bit

- Get smart graphics people to help with the little details, but 
smart systems people for the overall design

- Make it so easy to use that I, as a non-graphics-person, can write 
GUI apps
Also, don't neglect R3's event system in favor of hooking in some 
external one. If there are problems with R3's system, fix them first.
Steeve
25-Sep-2009
[18210]
- Hookable system dialects (draw effect text)
So that we can add our own commands or hook some existing ones.
shadwolf
25-Sep-2009
[18211]
brianH yeah ... i always said new VID have to be as easy to write 
as previous vid for non specialist and  it serves even a greater 
purpose the GUI designers area. With easy made gob or panels (windows 
where you arange the gob to be displayed on screen ... ) the the 
designer output source produced with those tools remains easy to 
read.
Maxim
25-Sep-2009
[18212]
visual gui editing with row columns is pretty easy to build.
Steeve
27-Sep-2009
[18213x7]
i was trying the new parse commands...
I came with something existing, and said: Now, how can i do this 
more rebolish...

parse/case opcode [
	any [
		start: 
		| "nn" end: (change/part start get-byte end)
		| "+d" end: (change/part start get-d end)
		| "e" end: (change/part start get-e end)
		| skip
	]
]
Because change still doesn't work , the best i can do is that:

parse/case opcode [
    any [
          "nn" remove -2 (new: get-word) insert new
        | #"n" remove -1 (new: form get-byte) insert new
        | "+d" remove -2 (new: get-d) insert new
        | #"e" remove -1 (new: get-e) insert new
        | skip
    ]
]

What the gain ? nothing...
Forget CHANGE for the moment. Even with INSERT and REMOVE commands, 
i see things i don't like.

What i should able to write is that:

parse/case opcode [
    any [
          remove "nn" insert get-word
        | remove #"n" insert get-byte
        | remove "+d" insert get-d
        | remove #"e" insert get-e 
        | skip
    ]
]

Wich means:

- Remove "nn" if  "nn" is matched and insert the result of the function 
get-word.
or  Remove "n" ..
or  remove "+d" ...
or remove "e" ..
- Remove should use any rule as argument and not an obfuscated relative 
counter, because we don't have to calculate that. 

We know what matching rule must be deleted, we don't have to calculate 
is length more over.


- Insert should accept calculated values, it's obvious. If not it's 
useless.
When Change will work, I expect to be able to write:

parse/case opcode [
    any [
          change "nn" get-word
        | change #"n" get-byte
        | change "+d" get-d
        | change #"e" get-e 
        | skip
    ]
]
nothing more, nothing less
BrianH
27-Sep-2009
[18220x3]
First of all, Steeve, what you are suggesting is the original INSERT, 
CHANGE and REMOVE proposals. Which Carl said were infeasible to implement, 
which is why we have the new ones. Besides that, your example code 
is still too awkward. Try this:

parse/case opcode [
    any [ start:
          "nn" remove start insert (get-word)
        | #"n" remove start insert (form get-byte)
        | "+d" remove start insert (get-d)
        | #"e" remove start insert (get-e)
        | skip
    ]
]


If you are worried about change not working yet, don't be. It is 
still planned.
The change version of the above would be this:

parse/case opcode [
    any [ start:
          "nn" change start (get-word)
        | #"n" change start (form get-byte)
        | "+d" change start (get-d)
        | #"e" change start (get-e)
        | skip
    ]
]
If the paren value form hasn't made it into alpha 83, it will make 
it into a new alpha soon.
Steeve
27-Sep-2009
[18223x2]
Brian, Currentlty 'insert doen't accept parens as argument.
ah ok, you said that...
BrianH
27-Sep-2009
[18225x2]
Was a83 released last night?
The planned treatment of the value argument for insert and change 
is to be the same as that of quote.
Steeve
27-Sep-2009
[18227]
a83 released last night
BrianH
27-Sep-2009
[18228]
Oh, cool, I'll take a look :)
Steeve
27-Sep-2009
[18229]
but it's weird...
BrianH
27-Sep-2009
[18230]
Work in process, but how so?
Steeve
27-Sep-2009
[18231]
I don't understant, the following parsings should be equal but it's 
not, why ???

parse a: "abcdef" [
    any [
          "b" remove -1
        | "cd" remove -2
        | skip
    ]
]
print a
parse a: "abcdef" [
    any [start: 
          "b" remove start 
        | "cd" remove start
        | skip
    ]
]
print a
BrianH
27-Sep-2009
[18232x2]
Example of work in progress: The ? is likely to be renamed to =>, 
since that is the mathematical symbol for then (not greater-than, 
which is >=). However, => is not a valid word in R3 yet - the syntax 
parser needs to have that sequence of characters added as an exception, 
like <=. This was too mch work for the a83 release.
Answer to your question, Steeve: It's a bug.
Steeve
27-Sep-2009
[18234]
Actually, my "awkward" example is the only one to work currently. 
;-)
BrianH
27-Sep-2009
[18235]
If I get a chance today (I'm volunteering at a horror film festival), 
I'll write up CureCode tickets for all bad behavior.
Steeve
27-Sep-2009
[18236]
As a "creature" ?
BrianH
27-Sep-2009
[18237x2]
As a booth babe.
:)
Pekr
27-Sep-2009
[18239x2]
BrianH: how do you know => is going to be added? Any new info from 
Carl? Because I noticed his reply stating => is problematic, and 
no indication that ? might be changed to =>
As for insert/remove stuff, I noticed Carl proposed new easier way 
of implementing it, but does it really mean we can't revert back 
to first meaning, if it makes sense? We should aim high = implement 
what is best, not what is easier to be implemented ...
BrianH
27-Sep-2009
[18241x3]
It was problematic for a83, but Carl doesn't like ? for the same 
reason we don't, so he'll change it eventually (perfectionism).
And as for the insert/remove changes, I was saying that the originally 
proposed way was infeasible because of private discussions Carl and 
I had about the subject. Carl's version is more powerful anyways, 
if you include the integer version.
Carl said it was infeasibble.
Pekr
27-Sep-2009
[18244x2]
Brian - if => would still be problematic because of REBOL parser, 
then I would still prefer at least >  ....
and if we free ?, will we use it for if/check?
BrianH
27-Sep-2009
[18246x2]
> means greater-than in math. => means then.
If we free ? we probably won't use it in PARSE at all. CHECK will 
probably continue to be called IF.
Pekr
28-Sep-2009
[18248]
Carl asks about the change of insert/remove/change semantics, upon 
Steeve's comments - http://www.rebol.net/cgi-bin/r3blog.r?view=0254#comments
BrianH
28-Sep-2009
[18249]
It would be a loss of functionality, slower, and more memory-hungry, 
but I would be OK with it either way.
Pekr
28-Sep-2009
[18250x6]
3:1 for current index based method to 'remove ...
re GUI - I proposed to set-up wiki page similar to Parse proposal. 
We have few request for View kernel itself, as well for VID.
I think, that everybody is waiting for your go. I think that most 
ppl here prefer you working on Core. Most of devs here will prefer 
complete Core, along with parse, extensions, host code released, 
networking protocols, cgi, console and especially some FIRST words 
on concurrency ...
it is easy to state - we are in beta, while missing on some features. 
As for BrianH, I think he wants to move to Scheme dialect revision, 
once parse is done.
Actually - ppl still think, that before the host code is released 
(and hence host using Extension api (I think)), we are still dependant 
on you doing all the work ....
The question is, if it makes sense to jump to GUI anytime soon, without 
Core stuff not being finished to beta status ...
Carl
28-Sep-2009
[18256]
I think there are a few ways to slice the pie.  Here are my main 
motivations:
BrianH
28-Sep-2009
[18257]
Before you move on though, check CureCode - there's 4 new parse bugs 
:(