AltME: R3 Building and Porting

Messages

Bo
I don't think we're really out of topic here as the graphics stuff pertains to porting to different platforms, but if you wish, we could move this to the View/VID group.
When Carl was developing VID, he clearly expected that VID would not become the de-facto standard for Rebol graphics.  The face engine was the de-facto standard, and VID was simply one of what he expected to be several dialects for the face engine.  There were a few others, like GLASS, that came about.
Cyphre
Bo, I think if we don't make drastic changes to the GOB mechanism we should be safe when building anything on top of the GOB datatype. The gob! is in fact abstraction layer between the "VIew engine" and any "GUI framework" written in REBOL.
So as take this example:
We have now R3GUI framework which runs quite well on the current View engine (although this engine was build in 2 weeks during the very early R3 alpha work so it's kind of Q&D prototype ;))
(BTW should I mention the R3GUI is much better than R2 VID?)
Anyway, the R3GUI works on current View engine. When I tried to change the engine so it uses OpenGL accelerated AGG the R3GUI still worked without any problem (except visual bugs caused by incomplete OpenGL code implementation of the new prototype).
SO from that example you can see the "View engine" and "GUI framework" are two independent things and can be developed or even exchanged separately.
From the "design architecture" POV we should focus on stabilizing the GOB abstraction mechanism and DRAW/TEXT/EFFECT dialects syntaxes. If these layers are fine-tuned you have great base that allows us make experiments at the low-level graphics and also as well at  the high-level GUI abstraction layer.
Cyphre
So to sum up my thoughts:
-anyone can even now start working on it's own great GUI dialect for R3, or contribute and enhance to already existing R3GUI (latest version will be published soon)
-anyone can create own great low-level graphic engine for XY platform or just one native binding for specific os
-work of these people won't be useless if they stuck to the current gob! datatype
Ofcourse we can do slight changes to the gob!s or draw dialect as well but these should be always easy to incorporate in already existing code that relies on them
Robert
We made it to compile R3 into a single EXE. Filesize:  855566  can be packed with UPX down to 368654   (43.09%) That's the base we use for encapping R3 apps into a single EXE.
Bo
Cyphre, thanks for that info.  So does the R3GUI framework work on all current R3 platforms?  I understand Android is a no, but everything else?
Robert, do you have instructions posted anywhere for how you encap R3 apps into an EXE?  I'd like to publish that somewhere.

Andreas
Bo: R3GUI depends on the R3 View engine, which is currently only publicly available for Win32 (and that only as part of the former host kit releases, not yet integrated with the open source R3).
An Amiga port of R3/View reportedly also exists, but I don't know about its state.
Robert
The R3 I mentioned is R3-View. I'm going to publish it with the latest R3-GUI. Announcement will follow.

Pekr
I wonder, if in today's web situation, it would make sense to reopent the browser plugin project?
AdrianS
Don't know what the effort to get something going would entail as a regular plugin, but maybe as a Chrome Native Client there could at least be something available for Chrome more easily. It seems less work, at first glance.
https://developers.google.com/native-client/
Evgeniy Philippov
It would be interesting to port R2/R3 under Squeak/Pharo, http://squeak.org. Just an interesting thought.

Bo
I believe in order to do the browser port properly, the R3 engine would have to be multi-threaded or it would only work in one browser window. That seems like it would require a lot of rewriting if it isn't already in the design.
Kaj
R3 is designed to be able to be thread safe. Whether it actually is that currently is a different matter
Bo
That's good to know.  I know that Carl was aware of the browser limitation if not multi-threaded.  I just didn't know if he worked that into R3.
Kaj
There's unfinished multitasking functionality in R3. It couldn't work if it would be impossible to use R3's internals in a thread-safe way. Indeed, the way functions work was redesigned to make it so

Robert
Has anyone tried to compile in 64bit mode and dived into the problematic areas already?
Robert
I think the first thing to look at is the structu sizes. Either press it back to fit 32bit size, or expand it into 64bit space. Not sure what kind of side-effect this will have.

LiH
Hi, I'm reading the REBOL3's source codes, and I don't know It's a typo or not: in this file https://github.com/rebol/r3/blob/master/src/include/reb-c.h at line 61, about defining the uint type, It seems #ifdef DEF_UINT  was not correct. Maybe #ifndef DEF_UINT ?
Cyphre
LiH: to me it looks you are right, you can do "pull request" with the fix.

VincentE
As I'm updating my old scripts on rebol.org, I'm trying to understand the problems with compress/gzip & decompress/gzip ,
and found at least one issue in u-zlib.c .
When compressing, as the checksum method is assumed to be adler32 for most of the code, stream->adler (the current checksum) is wrongly initialized to 1 in two places, giving an off-by-one checksum in the output and making it unusable for decompress/gzip.
Still no clue for what yields the
     ** Script error: value out of range: none
error and why calling
     compress ""
seems to fix this problem sometimes.It seems that something isn't correctly resetted between calls.

Last message posted 69 weeks ago.