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

World: r3wp

[!REBOL3-OLD1]

BrianH
31-Oct-2008
[7854x3]
The SET [a: b:] issue:


In current REBOL a block argument to SET for the word parameter needs 
to be filled with values of the word! type, not any other word types. 
This is in contrast with just passing a single word value, which 
can be of any word type. The result of this is that values in word 
block argument need to be converted to word! before being passed 
as a parameter.


There is no reason that those words need to be of the word! type, 
particularly since the block isn't evaluated. One interesting thing 
about REBOL is that a word! bound to a context will refer to the 
same value as words of the other word types with the same spelling 
otherwise. This means that if you set a lit-word! to a value, you 
can get the same value from the corresponding word! or get-word!.


Now, the current behavior has some bad consequences as well, usage 
issues. Some word block arguments had to be preprocessed. The big 
problem we ran into was when we wanted to use SET inside of functions 
created with the new FUNCT function (temporary name).


FUNCT collects set-words from the code block and nested blocks and 
adds them to the function's locals. This is cool and works a lot 
better than I thought it would, and all action handlers of the new 
GUI are turned into functions with FUNCT. The problem we ran into 
is that when we had to use block SET to set local variables, those 
local variables would leak into an outer scope, wreaking havoc. If 
you are specifying the function spec directly there is an easy workaround 
for that: Just specify the locals that aren't caught with your own 
/local vars. However, you can't specify the function spec of an action 
handler in the dialect, just the code blocks (security/stability). 
This meant that if you wanted locals to be captured, you had to set 
them to none earlier in the function. How soon do you expect that 
to fail?


An easy solution to this would be to specify the words you want local 
as set-word! values in the literal word block argument to the SET. 
Those set-words would then be caught by FUNCT without any overhead. 
No problem, except for that SET doesn't allow it right now.


This is what we are going to fix in the next build: You will be able 
to do SET [a: b:] value.
In some circumstances like with FUNCT above, you will likely *have 
to* do SET [a: b:] value. This is where we get to the implications, 
what it means for us: We are making changes to the core, sometimes 
subtle changes with big implications. These changes are coming as 
a result of the work on the new GUI. Some of them are bug fixes, 
some of them are new functions or other enhancements, some are fixes 
to design flaws in the language expressed in functions we have already. 
They will affect the code you write even if you aren't doing GUI 
code. Every change like this is going to make R3 a cleaner, easier 
and more powerful language than R2, even with the backports. Something 
to look forward to :)
There are going to be more of these fixes in the next build. Stay 
tuned for more treats :)
Henrik
1-Nov-2008
[7857]
Thanks for the info, Brian.
Gabriele
1-Nov-2008
[7858]
Brian, once Carl told me that SET allowed only word! in blocks because 
other types were reserved for future "dialected" meanings. But, I 
guess, we're giving up on that?
Pekr
1-Nov-2008
[7859]
BrianH: we have one special set-word notation in R3 'foreach. Hopefully 
it is not problem to explain this one ...
BrianH
1-Nov-2008
[7860x2]
Gabriele, noone came up with an appropriate dialected meaning over 
the years, unlike with FOREACH. So, unreserved :)
Pekr, since the words and set-words in the word argument of FOREACH 
get bound locally to the code block, they can't refer to local variables 
in an outer scope even if you wanted them to. So FUNCT has no effect 
on FOREACH.
Henrik
3-Nov-2008
[7862]
A bit of status:


- Carl ran into a bug in the AGG C++ code: "draw 10x10 []" in the 
console will crash R3 and it's a tough one, as it might be compiler 
related. Not fixed yet.

- Some of the stuff that BrianH has talked about above is now implemented 
in a new build of R3 as well as some additions to MAP!.

- My ramblings on DRAW has caused me to pause on skinning until I 
can get a clear picture of whether the problems will be fixed. Otherwise 
I'll have to redo a lot of work later on. I experiment with compound 
styles instead as well as some simple color palette tools.

- It was decided that popup graphic elements are to be done in separate 
windows for greatest flexibility. No code done yet though.
- No talk about overlays or drag'n'drop yet.
Graham
3-Nov-2008
[7863]
Thanks
Pekr
3-Nov-2008
[7864]
Henrik:

- what do you mean by "overlays" please?

- what do you mean by pop-ups being done in separate windows? Pop 
up dialogs were always separate windows, no? Or are you talking menus 
for e.g. too?

- hopefully Cyphre gets contracted to do some fixes/enhancements. 
Do you think, that once it happens, community could dig most important 
bugs in draw layer, and ask for fixes?
Henrik
3-Nov-2008
[7865x2]
- It means elements that are floating above the layout at any position.

- Popups are windows, popup menus, bubble help and other graphic 
elements that may extend over the edge of the window.
- I have no idea what can be fixed or if it will be fixed.
Cyphre's in now, so we'll see.
Pekr
3-Nov-2008
[7867x2]
http://www.rebol.com/article/0377.html- R3 project status ...
I miss plan for inclusion of important things I named in the past 
... releasing new VID without them is imo a fatal mistake ...
BrianH
3-Nov-2008
[7869]
Well, that's what comments in the blog and here are for. Please provide 
a list of things you consider important and we can discuss the list 
and get them included, or come up with alternate features that do 
the same thing but better. Don't assume that any features we already 
have will conflict with what you want. Feedback is king here.
Pekr
3-Nov-2008
[7870]
I posted in on r3-alpha - I can repost to blog, as I expect more 
wider audience comments in there ....
BrianH
3-Nov-2008
[7871x2]
I'll look there unless you want to have the discussion here.
The "list of widgets" post?
Pekr
3-Nov-2008
[7873]
yes, list of widgets ... we should not release without widgets like 
tab, tree-view, basic table (list-view), accelerator keys (needing 
redesign of all relevant styles imo, because rich-text will be needed), 
tabbing support. VID2 show stopper was missing more advanced styles, 
at least above mentioned. Those are needed for basic prototyping. 
Newcomers will not be able to produce them themselves. Most ppl would 
prefer such things instead of fancy color requester etc.
BrianH
3-Nov-2008
[7874x2]
Simple answer: I don't think we are currently talking about finalization 
and the color picker was an example, not a feature.


Longer answer: The new GUI is going to be part of the open source 
portion of R3, and open source projects are never really finished 
until they die. So the question here is not "finalized" but "ready 
for a release to the wider developer community". In order to do that 
we need to put together the core design of the infrastructure and 
enough styles to get the new DevBase GUI up and running. Right now 
we are focussing on styles and features that have the most impact 
on the system as a whole, or the most potential to flush out bugs 
in the underlying runtime.


If it all seems low-level, that is because it is. We will have a 
development release before we have most of the styles you mention 
because we will need the help of the developer community to make 
those styles and more. However, don't expect the styles you list 
to be missing - some of them meet the criteria I lested above, like 
helping flush out design flaws or use in DevBase.
lested -> listed
Pekr
3-Nov-2008
[7876]
This is good to know, and imo Carl should update his blog. For many 
ppl over the years, the real show stopper was missing styles. The 
blog article almost sounds like we would be finished ...
BrianH
3-Nov-2008
[7877x2]
The new GUI is going to be extensible with new styles. No list of 
styles will be sufficient for everyone, so we are enabling and encouraging 
developers to make their own. For instance, I would like some styles 
inspired by the Office 2007 UI: ribbons and contextual toolbars. 
I know whole applications that are less complex to implement than 
those styles, so I would not expect them to be included in the core 
release at first.
Nonetheless, some design decisions and features are getting somewhat 
finalized as part of this process, so you weren't off in that.
Pekr
3-Nov-2008
[7879]
What is the most difficult design issue nowadays regarding VID (hence 
e.g. not decided)? Is it low level draw changes, or implementation 
of some subsystems?
Henrik
4-Nov-2008
[7880]
Probably the first, since it's about Cyphre having time to do them.
Pekr
4-Nov-2008
[7881]
Well, first it is upon decision, how draw should evolve at all :-) 
But it seems to me that some of you guys are asking for more flexibility 
at pixel level ....
amacleod
4-Nov-2008
[7882]
What happened to the stuff Carl was working on to increasing the 
power of the GUI by making it more webpage-like - by incorporating 
services into the widgets? I have not heard any recent talk of these 
ideas...
Henrik
4-Nov-2008
[7883x2]
Not working on that part yet.
Our internal demo program (as shown in my first video) has slots 
for these parts, but they are not in use yet.
Pekr
4-Nov-2008
[7885]
amacleod - services are in rebol in general (rebservices, aka LNS), 
and they will be supported by R3 too. But - as for "rebol browser", 
so far I can once again see only business graphics being a target. 
      More casual design should be possible though.
amacleod
4-Nov-2008
[7886x3]
Pekr, I understand Services will be there in R3 but Carl blogged 
about this concept of a button linking to the www...It was a little 
vague and Henrik did try to clear it up buy the new GUI seeems void 
of this..

I thought it was to be tightly intergrated into the gui and a major 
reason for the delay of vid 3.4. I thought it was a bold new step 
in the concept of GUI's but it does not seem to be a part of what 
we have been privy to.
Henrik, I'll have another look at that video but I do not recall 
what you are refering to.
Is that "Triggers"
Henrik
4-Nov-2008
[7889]
It would be "Document"
Pekr
4-Nov-2008
[7890x2]
amacleod - I can see no problem with what you describe and with what 
is currently finished. Look - the concept of top level (VID) "reactors" 
is already there, is extensible imo, and that is all that is needed. 
Rebservices are imo underneath, and are going to be called by reactors 
like 'submit for e.g.
What I can't imagine right now is the browser concept. Well, it is 
a layout window, it can be for e.g. a panel. But when you look at 
various web sites, e.g. news portals, you can see that their design 
is more "free form", or casual, dunno how to express it precisely. 
So - what would you need to mimick for e.g. www.OSNews.com ? Define 
few styles, decide upon the columns design (group, panel), prepare 
styles for particular sections/zones (portlets - IBM, web parts - 
Microsoft, iViews - SAP terminology) and fill them with information 
....
Henrik
4-Nov-2008
[7892x3]
The questions is probably whether you would want to accurately mimic 
websites. I think that misses the point of the rebol browser. It 
doesn't mean we shouldn't be able to mimic websites, however.
What I hate about many websites is that they have very inefficient 
layouts. This is particularly so for forums and certain newssites, 
where perhaps 10 or 20% of the information on the page is relevant 
to you. Now imagine AltME's GUI inside a webpage. It's very efficient.
One of the saddest tricks nowadays is to divide a small 2-300 word 
article on a news site into several pages, so they get more ad-visits.
Pekr
4-Nov-2008
[7895x2]
yes, you describe some bad aspects of web trend. But the layout is 
there. The problem with my understanding of what will be needed to 
be done in VID is, that nowadays web is not only about laying out 
some images, links, texts, but e.g. even simple menu is JS nowadays, 
not to mention AJAX junk ....
Other differences are - content is separate from presentation with 
html/css combo. Loading of website content is async, whereas VID 
(at least VID2) displays page only once all stuff is downloaded. 
It has to change ....
Henrik
4-Nov-2008
[7897]
Pekr, you are still thinking in terms of ordinary webpages. That's 
shortsighted. :-)
Pekr
4-Nov-2008
[7898x2]
OK, so what concept do you actually envision for so called REBOL 
browser? :-)
Kind of Flash, Silverlight? Rich, media apps?
Henrik
4-Nov-2008
[7900]
Pekr, let's say you want to read a blog post on a "rebpage". Would 
you want to download a rebpage, formatted as a webpage from that 
location or would you want to get a custom fullscreen reader that 
downloads only the compressed plaintext as makedoc format, compiles 
it on the fly and displays it?
amacleod
4-Nov-2008
[7901]
and updated through services???
Henrik
4-Nov-2008
[7902x2]
of course
You can work like this now already with R2. Just 'do a script from 
some webserver. Works the same way.