As it turns out, experimentation is very easy:

sage: Ri=R()
sage: Ri.eval(("#1"**100+"\n")**10+"]")
''
sage: Ri.eval(("#1"**100+"\n")**10+"]",allow_use_file=False)
'\n\n\n\n\n\n\n\n\n\nError: unexpected \']\' in "]"'
sage: Ri.eval(("#1"**100+"\n")**10+"]",split_lines=True)
'\n\n\n\n\n\n\n\n\n\nError: unexpected \']\' in "]"'

As you see, disallowing using files or unconditionally splitting lines
both makes the problem go away. However, with split_lines=True, the
system really just splits lines and decides for each of those whether
to send them via file or directly to STDIN. The small line lengths
really are just avoiding file transfer. If we increase line length,
odd things happen:

sage: Ri.eval(("#1"**1000+"\n")**10+"]",split_lines=True)
'\n\n\n\nfile=file("...",open="r")\nsource(file)\n
\nfile=file("...",open="r")\nsource(file)\n\nfile=file("...",open="r")
\nsource(file)\n\n'

we see things going wrong. The split_lines=True was the old behaviour.
All these examples work reasonably well in 4.7.1 with the patch from
#11401 in place, so it may be something else after all (R did get
upgraded since then)

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to