World: r3wp
[!REBOL3 Host Kit]
older newer | first last |
Maxim 12-Oct-2010 [129] | hehe... that's not where similarities end .... ;-) |
ssolie 12-Oct-2010 [130] | Besides the r3 core, what other bits would RT be providing for these kits? include files? |
Andreas 12-Oct-2010 [131] | What you see in the .tar.gz is the complete hostkit. Sources, headers, and the proprietary libr3 binary blob. |
ssolie 12-Oct-2010 [132x2] | so the idea would be to create sub-dirs with whatever platform-specific stuff needs to be there... simple |
oh, and a makefile I expect (or whatever build system) | |
Andreas 12-Oct-2010 [134] | Yes. But the makefile provided with the Linux hostkit (in make-gcc/) should get you pretty far. |
ssolie 12-Oct-2010 [135] | I think gmake is a good common denominator these days for build systems |
Andreas 12-Oct-2010 [136] | Agreed. The current makefiles are written for a much lower common denominator, though. |
ssolie 12-Oct-2010 [137] | lower than gnu make? |
Andreas 12-Oct-2010 [138] | Yeah. |
ssolie 12-Oct-2010 [139] | that takes me back :) |
Andreas 12-Oct-2010 [140x2] | Think HP-UX make from 1992 or something :) |
_That_ low :) | |
ssolie 12-Oct-2010 [142] | do I have to? |
Andreas 12-Oct-2010 [143] | Hopefully not. |
ssolie 12-Oct-2010 [144x2] | hehe |
I used hpux in the good old days... no thanks :) | |
Kaj 12-Oct-2010 [146] | Aargh! http://www.rebol.com/r3/downloads/r3-host-kit-a107-42.tar.gz defies automated downloading |
ssolie 12-Oct-2010 [147] | ttfn.. this looks like it will be a fun little project.. just need to get the blessed libr3.so from carl |
Kaj 12-Oct-2010 [148] | Got it built on Syllable Server |
Pekr 13-Oct-2010 [149] | I am not sure it is realistic to get gfx going under the Amiga for the Amiwest. OTOH IIRC AmigaOS has ported AGG already, so maybe we will be lucky :-) |
Kaj 13-Oct-2010 [150x2] | Got it to run on Syllable Server, but it now has the irritating property of requiring the interpreter library to be in your current working directory that you start REBOL from. So I patched that away |
It segfaults on loading R3 Chat. I don't think that was the case with the previous host kit I had (alpha 98, I think). It also works with the RT A107 binary | |
Andreas 13-Oct-2010 [152x2] | R3 Chat works fine for me, with Linux binaries built from the A107 hostkit. |
And I agree, the current linking is quite annoying. Here's a patch how I fixed it: https://gist.github.com/d1c120789a4b7acb635d | |
Pekr 13-Oct-2010 [154] | Andreas - any enhancements could go into default host-kit distro,no? :-) |
Andreas 13-Oct-2010 [155] | Yes, just didn't yet get around to opening a CC issue for it. |
Cyphre 13-Oct-2010 [156] | Pekr, I bet the AGG part will be easy to compile on AmigaOS. I compiled AGG on quite few platforms and it went smooth. IMO More work needs to be done on the event loop and window management in this case. |
Kaj 13-Oct-2010 [157] | Yep, the R3 specific interface is fairly elaborate |
ssolie 13-Oct-2010 [158x2] | Considering I was the one who ported AGG to Amiga I don't think it will be a big issue... :-) |
The tricky part will be the event handling and such which I have yet to figure out. | |
Maxim 13-Oct-2010 [160] | well, Amiga's event model is so clean , and actually the R3 event stack... well, its closer to it than the R2 was. |
Kaj 13-Oct-2010 [161] | I got the A107 host kit working on Syllable Desktop |
Maxim 13-Oct-2010 [162] | congrats! |
Kaj 13-Oct-2010 [163] | Thanks. This is still using the same trick as the first port almost a year ago, by using the Linux binary of the R3 interpreter library |
ssolie 13-Oct-2010 [164] | How did you test it Kaj? (I'm curious about testing these things) |
Kaj 13-Oct-2010 [165x4] | It's become a bit more complicated because R3 is now using the dynamic loader, but the Linux library still works on Syllable Desktop |
R3 Chat still doesn't work, though, but for a different reason than on Syllable Server | |
I'm only testing it by starting the interpreter and trying a few commands | |
Please don't use it to control nuclear facilities ;-) | |
ssolie 13-Oct-2010 [169x2] | just reading up on syllable... neat looking os |
I like that it is amiga inspired ;-) | |
Kaj 13-Oct-2010 [171] | Thanks |
Maxim 14-Oct-2010 [172x2] | Anyone know if we can shorten a block supplied to us in an extension? it has to be the same block, not a copy. |
something like the 'REMOVE function, but accessible from within the extension/host-kit | |
Maxim 15-Oct-2010 [174x5] | I think I'll be able to run the custom Gob Renderers in a multi-threaded setup by next week. This means one thread will simply be rendering while the other will be handling events and manipulating data. it should work since I've got changed state control built-into the primitve API, which lets the renderer know when to update its internal data... this will simply be set by the other thread. |
if I can get the MM_timers to trigger the rendering refreshes on the renderer's thread, then the custom gob renderers can live on their own, and not even require explicit calls to refresh by the main thread. all you will need to do is manage data in the main thread, update it once the renderer is sleeping and it would update on its own when it awakes again. | |
if a data change takes more time than a single refresh interval, (i.e. the change is still occuring when the renderer awakes for its next refresh) then the renderer simply reuses the previous internal data. while its new user data is being setup. | |
primitives will have the possibility to setup run-time manipulators, which modify the internal primitive data on their own. this means you might not even notice that there is a frame jump in setup because the manipulators are still active, using the old data.... ex: 'PRIMITIVE-A has a targeting manipulator which keeps this model always aiming another model, 'PRIMITIVE-B has a manipulator using a constant speed which ends up moving it in space. now picture a situation where the scene update where taking longer than the sleeping time (or it just started at the wrong moment and occurs just before rendering starts). if the main thread where responsible for triggering the refresh, you would see a noticeable lag. but with this setup, both primitives would still continue to move, while the speed is adjusted... when all the setup is done, the renderer knows it can update and it then adjusts its internal data to reflect the high-level changes made by the main thread. the manipulators are C functions, so they will be very fast. (there will be a special REBOL callback mode for testing, but it will be much slower) | |
now because both threads can work independently, we can do much more processing in the main thread and simplify the rendering so that manipulators just "use" data and process as little as possible, allowing for much higher scene density. :-) | |
older newer | first last |