On Fri Jan 18 21:41:00 2008, japhb wrote:
> ---
> osname= linux
> osvers= 2.6.22.10
> arch=   i486-linux-gnu-thread-multi
> cc=     cc
> ---
> Flags:
>     category=core
>     severity=low
>     ack=no
> ---
> The error message from parrot when there is a spelling mismatch
>    between
> a function call and the function's actual declaration is accurate but
> confusing:
> 
> *****
> $ cat > foob.pir
> .sub main :main
>     foo()
> .end
> 
> .sub foob
>     print "Hello\n"
> .end
> 
> $ ./parrot foob.pir
> Null PMC access in invoke()
> current instr.: 'main' pc 7 (foob.pir:2)
> *****
> 
> Of course, once you've seen this error message once or twice, you
>    won't
> soon forget the diagnosis.  For the sake of beginners however it would
> be nice to add a hint to the message, for example:
> 
>   "Null PMC access in invoke(); misspelled sub name in function call?"
> 
> And a similar hint for method calls as well, I suppose.
> 
> 
> -'f
> 
> ---
> Summary of my parrot 0.5.2 (r24923) configuration:
>   configdate='Thu Jan 17 00:08:44 2008 GMT'
>   Platform:
>     osname=linux, archname=i486-linux-gnu-thread-multi
>     jitcapable=1, jitarchname=i386-linux,
>     jitosname=LINUX, jitcpuarch=i386
>     execcapable=1
>     perl=/usr/bin/perl
>   Compiler:
>     cc='cc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
>    -DDEBIAN  -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
>    -D_FILE_OFFSET_BITS=64 -DHASATTRIBUTE_CONST
>    -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_FORMAT
>    -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL
>    -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED
>    -DHASATTRIBUTE_WARN_UNUSED_RESULT  -falign-functions=16
>    -mno-accumulate-outgoing-args -W -Wall -Waggregate-return
>    -Wbad-function-cast -Wc++-compat -Wcast-align -Wcast-qual
>    -Wchar-subscripts -Wcomment -Wdeclaration-after-statement
>    -Wdisabled-optimization -Wextra -Wformat-nonliteral
>    -Wformat-security -Wformat-y2k -Wimplicit
>    -Wimplicit-function-declaration -Wimplicit-int -Wimport -Winit-self
>    -Winline -Winvalid-pch -Wmain -Wmissing-braces
>    -Wmissing-declarations -Wmissing-field-initializers
>    -Wmissing-include-dirs -Wmissing-prototypes -Wnested-externs
>    -Wno-endif-labels -Wno-shadow -Wno-unused -Wnonnull -Wpacked
>    -Wparentheses -Wpointer-arith -Wreturn-!
>  type -Wsequence-point -Wsign-compare -Wstrict-aliasing
>    -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef
>    -Wunknown-pragmas -Wvariadic-macros -Wwrite-strings',
>   Linker and Libraries:
>     ld='cc', ldflags=' -L/usr/local/lib',
>     cc_ldflags='',
>     libs='-ldl -lm -lpthread -lcrypt -lrt -lgmp -lreadline'
>   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 =/home/geoff
>     LANG =en_US.UTF-8
>     LANGUAGE  (unset)
>     LD_LIBRARY_PATH  (unset)
>     LOGDIR  (unset)
>     PATH
>   
=/home/geoff/svk/parrot:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
>     SHELL =/bin/bash

This now reports:

Could not find non-existent sub foo
current instr.: 'main' pc 2 (foob.pir:2)

... Closing ticket.

Reply via email to