# New Ticket Created by  [EMAIL PROTECTED] 
# Please include the string:  [perl #32092]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=32092 >


---
osname= linux
osvers= 2.4.21-14.elsmp
arch=   i386-linux-thread-multi
cc=     gcc 3.4.2 20041006 (Red Hat 3.4.2-5)
---
Flags:
    category=core
    severity=low
    ack=no
---
Parrot segfaults when executing the appended function.  If I shorten
the last definition of $S0 the program completes normally.  When I
replace the last definition of $S0 with the "open - read - close"
sequence the program completes normally as well (the file
literal-list-1.text contains the last definition of $S0 as text).
Unfortunately I cannot extract a small test case, because everything
works all right as soon as I remove the calls to the application
specific functions.  I can provide the full program, if this helps.

.sub test_compile_literal_list
     $P0 = empty_list()
     $P1 = cons($P0, $P0)
     $S0 = ".local pmc tmp_0\n"
     $S0 .= "tmp_0 = find_global \"%the-empty-list\"\n"
     do_test_compile_literal_list($P0, $S0)

     $S0 = ".local pmc tmp_1\n"
     $S0 .=  "tmp_1 = find_global \"%the-empty-list\"\n"
     $S0 .= ".local pmc tmp_2\n"
     $S0 .= "tmp_2 = find_global \"%the-empty-list\"\n"
     $S0 .= ".local pmc tmp_0\n"
     $S0 .= "tmp_0 = cons(tmp_1, tmp_2)\n"
     do_test_compile_literal_list($P1, $S0)

     $P0 = parrot_string_to_symbol("foobar")
     $P1 = int_to_integer(1)
     $P2 = create_pmc_list_2($P0, $P1)
     #$P3 = open "literal-list-1.text", "<"
     #$S0 = read $P3, 1024
     #close $P3

     $S0 = ""
     $S0 = ".local string tmp_1\n"
     $S0 .= "tmp_1 = \"foobar\"\n"
     $S0 .= ".local pmc tmp_2\n"
     $S0 .= "tmp_2 = parrot_string_to_symbol(tmp_1)\n"
     $S0 .= ".local pmc tmp_4\n"
     $S0 .= "tmp_4 = new Integer\n"
     $S0 .= "tmp_4 = 1\n"
     $S0 .= ".local pmc tmp_5\n"
     $S0 .= "tmp_5 = find_global \"%the-empty-list\"\n"
     $S0 .= ".local pmc tmp_3\n"
     $S0 .= "tmp_3 = cons(tmp_4, tmp_5)\n"
     $S0 .= ".local pmc tmp_0\n"
     $S0 .= "tmp_0 = cons(tmp_2, tmp_3)\n"
     print $S0
     do_test_compile_literal_list($P2, $S0)
.end

---
Summary of my parrot 0.1.1 configuration:
  configdate='Tue Oct 12 17:45:32 2004'
  Platform:
    osname=linux, archname=i386-linux-thread-multi
    jitcapable=1, jitarchname=i386-linux,
    jitosname=LINUX, jitcpuarch=i386
    execcapable=1
    perl=/usr/bin/perl
  Compiler:
    cc='gcc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING  
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
  Linker and Libraries:
    ld='gcc', ldflags=' -L/usr/local/lib',
    cc_ldflags='',
    libs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt -lgmp'
  Dynamic Linking:
    share_ext='.so', ld_share_flags='-shared -L/usr/local/lib -fPIC',
    load_ext='.so', ld_load_flags='-shared -L/usr/local/lib -fPIC'
  Types:
    iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
    ptrsize=4, ptr_alignment=1 byteorder=1234, 
    nv=double, numvalsize=8, doublesize=8

---
Environment:
    HOME    LANG    LANGUAGE    LD_LIBRARY_PATH    LOGDIR    PATH    SHELL

Reply via email to