On Nov 10, 2009, at 12:55 PM, Timbo wrote: > > Massimo, > > I'm trying to rewrite template.py for Jython and I can't seem to > figure out what the re_strings regex is doing. I wrote a routine for > what I thought it was doing and that puts "\n" all over my pages. So > I took it out entirely and things seem OK. > > What is re_strings for?
I wouldn't mind taking a shot at commenting all of those re's, but it'd be useful to have a top-level description first. A specific question: what's <name> doing in re_strings? (I know what the syntax means; I don't see 'name' being used.) > > On Nov 10, 8:15 am, Timbo <tfarr...@swgen.com> wrote: >> As it turns out, Java has a fair number of nasty WONT-FIX bugs. >> >> In my above documented attempt where it couldn't delete the >> file...there's a WONT-FIX bug for that: >> >> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4715154 >> >> No wonder ppl hate Java. >> >> Massimo, are you going to re-work template.py to work around the bug? >> I know that template.py is kinda touchy when it comes to backward >> compatibility. I've looked into this a little more and I'm >> considering creating a Jython branch as I could really use it. >> However the two bugs above might cause problems with my application >> code. I'll have to look into that. >> >> -tim >> >> On Nov 9, 1:15 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: >> >>> This is clearly a Java bug. A major one. I love the "won't fix" >> >>> On Nov 9, 12:33 pm, Timbo <tfarr...@swgen.com> wrote: >> >>>> No difference. >> >>>> I think this is the bug we're dealing with: >> >>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050507 >> >>>> Since it's a wont-fix, our only option is to work around it by relying >>>> less on regexps. Is that an acceptable solution? >> >>>> On Nov 9, 11:58 am, mdipierro <mdipie...@cs.depaul.edu> wrote: >> >>>>> another test. in gluon/templates.py >> >>>>> can you replace >> >>>>> re_strings = re.compile(r'(?P<name>' >>>>> + r"[uU]?[rR]?'''([^']+|'{1,2}(?!'))*'''|" >>>>> + r"'([^'\\]|\\.)*'|" >>>>> + r'"""([^"]|"{1,2}(?!"))*"""|' >>>>> + r'"([^"\\]|\\.)*")', re.DOTALL) >> >>>>> with >> >>>>> re_strings = re.compile(r'(?P<name>' >>>>> + r"[uU]?[rR]?'''([^']|'{1,2}(?!'))*'''|" >>>>> + r"'([^'\\]|\\.)*'|" >>>>> + r'"""([^"]|"{1,2}(?!"))*"""|' >>>>> + r'"([^"\\]|\\.)*")', re.DOTALL) >> >>>>> Does it make things better? >> >>>>> Massimo >>>>> On Nov 9, 11:21 am, mdipierro <mdipie...@cs.depaul.edu> wrote: >> >>>>>> The first problem is because you did not upgraded admin in a while ;-) >> >>>>>> cd applications/admin >>>>>> tar zxvf ../../admin.w2p >> >>>>>> The second error. Can you help me fix it? >> >>>>>> Try each one of these models? >> >>>>>> <html><body>{{='hello world'}</body></html> >> >>>>>> <html><body>{{='''hello world'''}</body></html> >> >>>>>> <html><body>{{="hello world"}</body></html> >> >>>>>> <html><body>{{="""hello world"""}</body></html> >> >>>>>> which ones break? Any, none? Please email me privately. >> >>>>>> Massimo >> >>>>>> On Nov 9, 11:07 am, Timbo <tfarr...@swgen.com> wrote: >> >>>>>>> OK so I downloaded fresh versions of both. If put in the above >>>>>>> workaroudn for the TCP_NODELAY issue. And upon running I get: >> >>>>>>> C:\jython2.5.1>jython.bat \web2py2\web2py.py >>>>>>> WARNING:root:no file locking >>>>>>> WARNING:root:unable to import dbhash >>>>>>> WARNING:root:GUI not available because Tk library is not installed >>>>>>> unpacking apps; this may take a few seconds... >>>>>>> Traceback (most recent call last): >>>>>>> File "\web2py2\web2py.py", line 20, in <module> >>>>>>> gluon.widget.start(cron=True) >>>>>>> File "C:\web2py2\gluon\widget.py", line 726, in start >>>>>>> (options, args) = console() >>>>>>> File "C:\web2py2\gluon\widget.py", line 699, in console >>>>>>> w2p_unpack('admin.w2p', 'applications/admin/') >>>>>>> File "C:\web2py2\gluon\fileutils.py", line 189, in w2p_unpack >>>>>>> os.unlink(tarname) >>>>>>> File "C:\jython2.5.1\Lib\os.py", line 342, in remove >>>>>>> raise OSError(0, "couldn't delete file", path) >>>>>>> OSError: [Errno 0] couldn't delete file: 'admin.tar' >> >>>>>>> So I wrapped that in a try-block. The next issue to deal with is a >>>>>>> lack of sqlite (Welcome app). That's not difficult but annoying. >>>>>>> Just delete the db.py model (for now). And that gets us to the root >>>>>>> issue I can't get past with any template. Here's the traceback for >>>>>>> the Welcome app main page: >> >>>>>>> Traceback (most recent call last): >>>>>>> File "C:\web2py2\gluon\main.py", line 459, in wsgibase >>>>>>> serve_controller(request, response, session) >>>>>>> File "C:\web2py2\gluon\main.py", line 459, in wsgibase >>>>>>> serve_controller(request, response, session) >>>>>>> File "C:\web2py2\gluon\main.py", line 206, in serve_controller >>>>>>> run_view_in(response._view_environment) >>>>>>> File "C:\web2py2\gluon\compileapp.py", line 492, in run_view_in >>>>>>> ccode = parse_template(response.view, >>>>>>> File "C:\web2py2\gluon\template.py", line 149, in parse_template >>>>>>> return parse(text) >>>>>>> File "C:\web2py2\gluon\template.py", line 65, in parse >>>>>>> text = replace(re_strings, text, lambda x: x.replace('\n', '\\n')) >>>>>>> File "C:\web2py2\gluon\template.py", line 77, in replace >>>>>>> for item in regex.finditer(text, i): >>>>>>> RuntimeError: maximum recursion depth exceeded >> >>>>>>> This is Jython 2.5.1 fresh install, 1.71.2 fresh install with only the >>>>>>> changes I've mentioned in this post. There are no bugs for this in >>>>>>> Jython as the answer has always been "just increase the recursion >>>>>>> depth". I've tried setting the recursion depth to something >>>>>>> ridiculously high and that made no difference. >> >>>>>>> Can anyone else confirm/deny this? I'm testing on Windows, can we get >>>>>>> a Linux user to test this? >> >>>>>>> -tim >> >>>>>>> On Nov 9, 10:00 am, mdipierro <mdipie...@cs.depaul.edu> wrote: >> >>>>>>>> I cannot reproduce this with jython2.5rc3 on mac. >> >>>>>>>> On Nov 9, 9:52 am, Timbo <tfarr...@swgen.com> wrote: >> >>>>>>>>> No need, it blows up for me on the admin interface. I have no special >>>>>>>>> customizations. I'm trying this on Sun JRE6/Jython2.5.1 on WinXP. >> >>>>>>>>> On Nov 9, 8:34 am, mdipierro <mdipie...@cs.depaul.edu> wrote: >> >>>>>>>>>> Can you send me the view that creates the regex problem in Jython. I >>>>>>>>>> have seen it before and I thought it was fixed. >> >>>>>>>>>> On Nov 9, 7:53 am, Timbo <tfarr...@swgen.com> wrote: >> >>>>>>>>>>> Jython does support TCP_NODELAY, but it does so in the Java >>>>>>>>>>> fashion...that is to say only on a client socket. The short story >>>>>>>>>>> is >>>>>>>>>>> this: most platforms allow you to set socket options to server >>>>>>>>>>> (accepting) sockets and the accepted (client) sockets that come from >>>>>>>>>>> them inherit the options from the server socket. This varies based >>>>>>>>>>> on >>>>>>>>>>> platform. Some platforms inherit all options, some just >>>>>>>>>>> TCP_NODELAY. >>>>>>>>>>> Java is a little different in that it inherits none and consequently >>>>>>>>>>> it does not allow setting TCP_NODELAY to a server socket. >> >>>>>>>>>>> The good news is that it does support it on the client socket it >>>>>>>>>>> just >>>>>>>>>>> that you have to socket.setsockopt() on the client connection after >>>>>>>>>>> you accept it. This behavior is currently up for debate right now >>>>>>>>>>> with Jython. Seehttp://bugs.jython.org/issue1309 >> >>>>>>>>>>> Now the blocker that I ran into with Jython + web2py is the template >>>>>>>>>>> module. web2py templates rely heavily on regexps. This is great >>>>>>>>>>> because it makes them fast...but Jython does something different >>>>>>>>>>> with >>>>>>>>>>> cPython such that everytime I try to render a template, I get a >>>>>>>>>>> "Recursion limit exceeded error". Maybe Regexps are not the same in >>>>>>>>>>> Java as in Python (Perl). This is one I haven't been able to track >>>>>>>>>>> down. >> >>>>>>>>>>> Java (and hence Jython) is great from a concurrency perspective >>>>>>>>>>> since >>>>>>>>>>> it is fully multi-threaded whereas cPython has the GIL to deal with. >>>>>>>>>>> It would be awesome if we could find a happy marriage between web2py >>>>>>>>>>> templates and Jython. >> >>>>>>>>>>> -tim >> >>>>>>>>>>> On Nov 9, 3:04 am, Vasile Ermicioi <elff...@gmail.com> wrote: >> >>>>>>>>>>>> I have to convince someone that python is better than Java (and >>>>>>>>>>>> even can >>>>>>>>>>>> work with Java) - >>>>>>>>>>>> Jython+Web2py is my best argument :) >> >>>>>>>>>>>> On Mon, Nov 9, 2009 at 8:38 AM, mdipierro >>>>>>>>>>>> <mdipie...@cs.depaul.edu> wrote: >> >>>>>>>>>>>>> I changed it in trunk so that it is automatic and now (again) >>>>>>>>>>>>> web2py >>>>>>>>>>>>> works with Jython out of the box. I have email the author of >>>>>>>>>>>>> wsgiserver hoping this is fixed in the official distribution. >> >>>>>>>>>>>>> On Nov 8, 1:56 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: >>>>>>>>>>>>>> jython does not seem to support socket option no_delay. In gluon/ >>>>>>>>>>>>>> wsgiserver.py replace >> >>>>>>>>>>>>>> nodelay = True >> >>>>>>>>>>>>>> with >> >>>>>>>>>>>>>> nodelay = False >> >>>>>>>>>>>>>> Massimo >> >>>>>>>>>>>>>> On Nov 8, 1:48 pm, Nik <nitral...@googlemail.com> wrote: >> >>>>>>>>>>>>>>> Hi folks, >> >>>>>>>>>>>>>>> For testing web2py with jython I have started it >>>>>>>>>>>>>>> by executing "jython web2py.py" and got the following >>>>>>>>>>>>>>> error message: >> >>>>>>>>>>>>>>> ================================================================== >>>>>>>>>>>>>>> saturn:web2py_1.71.2 nik$ jython web2py.py >>>>>>>>>>>>>>> WARNING:root:no file locking >> >> ... >> >> read more ยป > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---