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? 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 -~----------~----~----~----~------~----~------~--~---