wish: multiline comments

Tres Seaver tseaver at starbase.neosoft.com
Wed Dec 1 11:51:20 EST 1999


In article <009901bf3c15$6d5c5290$4500a8c0 at thomasnotebook>,
Thomas Heller <thomas.heller at ion-tof.com> wrote:
>> well, the compiler throws away strings that does
>> not appear in valid docstring positions.  if you put
>> this in a module:
>> 
>> class B:
>>     "this is class B"
>>     """"
>> okay. this is a 42 million line comment string.
>> etc etc etc
>> """
>> 
>> and import it, the PYC file is smaller than you
>> may think.
>
>AFAIK, python chokes on source files with more than
>32767 lines (or was it 65536)?
>But I never tried it.
>

[/home/tres] $ uname -a
Linux silver 2.0.36 #1 Tue Oct 13 22:17:11 EDT 1998 i586 unknown
[/home/tres] $ python
Python 1.5.1 (#1, Jan 31 1999, 17:30:49)  [GCC 2.7.2.3] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> f = open( 'foo.py', 'w' )
>>> for i in range( 100000 ):
...    f.write( 'x = 1\n' )
...
>>> f.close()
>>> ^D
[/home/tres] $ python foo.py
Memory fault (core dumped)
[/home/tres] $ gdb python core
GNU gdb 4.17.0.4 with Linux/x86 hardware watchpoint and FPU support
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
Core was generated by `python foo.py'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libdl.so.2...done.
Reading symbols from /lib/libpthread.so.0...done.
Reading symbols from /lib/libm.so.6...done.
Reading symbols from /lib/libc.so.6...done.
Reading symbols from /lib/ld-linux.so.2...done.
#0  0x805f813 in PyNode_AddChild (n1=0x4005eff8, type=265, str=0x0,
    lineno=32768) at node.c:73
73              n = &n1->n_child[n1->n_nchildren++];
(gdb) where
#0  0x805f813 in PyNode_AddChild (n1=0x4005eff8, type=265, str=0x0,
    lineno=32768) at node.c:73
#1  0x805fa46 in push (s=0x80b9340, type=265, d=0x808fb30, newstate=1,
    lineno=32768) at parser.c:178
#2  0x805fbaf in PyParser_AddToken (ps=0x80b9340, type=1, str=0x9d3a588 "x",
    lineno=32768) at parser.c:263
#3  0x804f4eb in parsetok (tok=0x80ae1d8, g=0x8090390, start=257,
    err_ret=0xbffffc24) at parsetok.c:163
#4  0x804f3f1 in PyParser_ParseFile (fp=0x8094908,
    filename=0xbffffeb2 "foo.py", g=0x8090390, start=257, ps1=0x0, ps2=0x0,
    err_ret=0xbffffc24) at parsetok.c:113
#5  0x805bf5c in PyParser_SimpleParseFile (fp=0x8094908,
    filename=0xbffffeb2 "foo.py", start=257) at pythonrun.c:946
#6  0x805bdcd in PyRun_File (fp=0x8094908, filename=0xbffffeb2 "foo.py",
    start=257, globals=0x8095d68, locals=0x8095d68) at pythonrun.c:855
#7  0x805b5a6 in PyRun_SimpleFile (fp=0x8094908, filename=0xbffffeb2 "foo.py")
    at pythonrun.c:565
#8  0x805b235 in PyRun_AnyFile (fp=0x8094908, filename=0xbffffeb2 "foo.py")
    at pythonrun.c:444
#9  0x804f281 in Py_Main (argc=2, argv=0xbffffdf8) at main.c:286
#10 0x804ed22 in main (argc=2, argv=0xbffffdf8) at python.c:10
(gdb)

It GPFs on NT4 with 1.5.2, as well.

Tres.
-- 
---------------------------------------------------------------
Tres Seaver           tseaver at palladion.com       713-523-6582
Palladion Software    http://www.palladion.com




More information about the Python-list mailing list