World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Kaj 6-May-2011 [10285x2] | Same way QM hooks into Cheyenne |
I mean, RSP templates are cached, right? So are the new .r files cached, too, instead of loaded on each request like CGI scripts? | |
Dockimbel 6-May-2011 [10287x2] | RSP templates: yes, .r files: I'm not sure, checking the code... |
.r: right, they are cached too when they are evaluated by the RSP handler. | |
Kaj 6-May-2011 [10289] | Cool, and refreshed when modified? |
Dockimbel 6-May-2011 [10290x2] | Sure. |
If I would change it from a fast-rebol-cgi script to an .r script I understand you want to use the RSP handler instead of the CGI handler? | |
Kaj 6-May-2011 [10292x2] | So do you think preparing the RSP interface for each request would still be faster than reading a small rebol-fast-cgi file every request? |
Yes, if that would be faster | |
Dockimbel 6-May-2011 [10294] | Hard to say, the RSP "preparation" overhead is much bigger than for CGI, but OTOH, the CGI script is not cached in memory... |
Kaj 6-May-2011 [10295] | I thought so. I'd have to do measurements to be sure |
Dockimbel 6-May-2011 [10296] | At least, not explicitly cached, but it will probably live in the system memory cache for disk files, so hard to say. |
Kaj 6-May-2011 [10297x3] | Thanks, that clears it up as far as we can get now |
It works. I'm now running the binary version of Cheyenne instead of the source version | |
That should mean I will now be able to use the 0MQ binding | |
onetom 7-May-2011 [10300x5] | hmm... i thought i can put my shared library code above the webapp root, but it seem to fail without any errors. what exactly is the purpose of the overwritten 'do function in the RSP handler? i don't quite get that depth/1 and arg/3 stuff |
i was moving a plain .r script which was aliased in a vhost context under a webapp and it started to fail because the 'do didn't seem to work properly | |
REBOL [] do %../lib/obj.r probe to-object [a: 1] | |
obj.r defines to-object but i get a ** Script Error : to-object has no value | |
i moved the library stuff into on-application-start, but still it wasted me a lot of time to realize that the 'do is overwritten in RSP and works specially (as in, it does not work) in webapp context | |
Dockimbel 7-May-2011 [10305x2] | what exactly is the purpose of the overwritten 'do function in the RSP handler? Bind the loaded code to a special per-webapp context. |
A webapp execution context is isolated as much as possible from the rest of the vhost. | |
onetom 7-May-2011 [10307x2] | set 'do func [[catch] value /args arg /next /global /local depth][ ... if arg: find apps request/config/root-dir [ |
looks like u r using a parameter as a local variable | |
Dockimbel 7-May-2011 [10309] | I thought I've added a note about DO having special effect in RSP scripts, but I can't find any mention in the wiki. |
onetom 7-May-2011 [10310] | i think there was some conversation about the overwriting 'do on altme, but i couldn't find it in the docs either... maybe in the changelog?.. |
Dockimbel 7-May-2011 [10311] | The 'arg parameter is processed before that line by: if args [return *do/args value arg] |
onetom 7-May-2011 [10312] | sure, and then u overwrite it |
Dockimbel 7-May-2011 [10313] | ChangeLog: yes, you should find it mentioned there. I need to add a proper entry in the wiki about that anyway. |
Kaj 7-May-2011 [10314] | Tamas, parameters ARE local variables |
onetom 7-May-2011 [10315x3] | Kaj: im just saying, it's a bit misleading to use an input parameter later as a temp variable in an other meaning |
do/global works, btw, however a plain 'do fails very interestingly and reproducably | |
if i edit the file above while cheyenne is running, it starts to work; to-object is found | |
Dockimbel 7-May-2011 [10318] | Right, words definitions that needs to be loaded in global context have to be loaded using 'do/global. |
onetom 7-May-2011 [10319] | these are webapp specific functions though, so i would have appreciated if they worked ;) |
Dockimbel 7-May-2011 [10320x2] | Where are you loading them? 'on-application-start? |
Where => From where | |
onetom 7-May-2011 [10322x3] | REBOL [] do %../lib/obj.r probe to-object [a: 1] |
this is my test.r file and im calling it from a webapp | |
from the root of a webapp | |
Dockimbel 7-May-2011 [10325] | Ok. Will test that case locally later tonight, dinner time now. |
onetom 7-May-2011 [10326x2] | cool, thx, i'll be here! |
i want cheyenne to be less sucky, really. it's one of the nicest rebol projects and it's a shame if i can break it every second day... makes me not very proud of it... :/ | |
Dockimbel 7-May-2011 [10328x2] | There are countless ways to break one's code using REBOL scripts. ;-) |
Also, about using plain REBOL scripts in RSP engine, it was a last year request from Carl, it wasn't part of my planned feature list to support, so it can cause new issues that I have not forseen when building the RSP engine. You are the first one to report me issues with such scripts, so I guess nobody except you and Carl are using this approach. Anyway, your reports are helping me make it more reliable. | |
onetom 7-May-2011 [10330x3] | until yesterday the very same script was within <% %> tags actually and this effect was still observable. just the latest svn version didn't accept the tags in a .r file anymore, that's why im showing it as a REBOL[] script. otherwise, i was just following common sense and trying to get things done in an ultra primitive way :) |
the script worked and still works as a CGI script btw, so i bravely switched over to the RSP handler as it's been suggested on the "Basics" documentation page and i was using the very same unless value? 'my-object pattern to load my libs. | |
what does "run Cheyenne with a non-persistent? worker." mean, btw? -w 0? | |
Dockimbel 7-May-2011 [10333x2] | Yes, it means starting it with -w 0. |
It works here in a vhost (not in a webapp) using: %obj.r => REBOL [] to-object: func [a [block!]][context a] %test.r => REBOL [] do %../libs/obj.r probe to-object [a: 1] Testing within a webapp now... | |
older newer | first last |