Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

callframe.perl message is LTA #2150

Closed
p6rt opened this issue Sep 9, 2010 · 7 comments
Closed

callframe.perl message is LTA #2150

p6rt opened this issue Sep 9, 2010 · 7 comments

Comments

@p6rt
Copy link

p6rt commented Sep 9, 2010

Migrated from rt.perl.org#77752 (status was 'resolved')

Searchable as RT77752$

@p6rt
Copy link
Author

p6rt commented Sep 9, 2010

From @bbkr

[17​:43] <bbkr> rakudo​: callframe.perl # known_and_NYI or should I report it as
TODO? in STD this is valid syntax.
[17​:43] <p6eval> rakudo 859f2d​: OUTPUT«Method 'perl' not found for invocant of
class 'ParrotInterpreter'â�¤ in <anon> at line 1237​:CORE.settingâ�¤
in 'Any​::join' at line 1â�¤ in 'Mu​::attribs' at line 1238​:CORE.settingâ�¤
in 'Mu​::perl' at line 1242​:CORE.settingâ�¤ in main program body at line
22​:/tmp/cb8i19zxRzâ�¤Â»

[17​:44] <pmichaud> bbkr​: it's TODO
[17​:44] <bbkr> pmichaud​: but is it already in RT queue? I cannot find it.
[17​:45] <pmichaud> bbkr​: and I'm not sure that callframe will have a .perl
method anyway
[17​:45] <pmichaud> at least, not something that gives you a complete
serialization of the current call state.
[17​:47] <bbkr> pmichaud​: I can imagine how hard to implement this would be.
but if not - then still error message is LTA.
[17​:47] <pmichaud> why?
[17​:47] <pmichaud> it's exactly correct. :)
[17​:47] <pmichaud> it's saying the .perl method doesn't exist. :)
[17​:51] <masak> :)

[17​:52] <moritz_> adding a method perl() { fail "Can't serialize callframes" }
would be pretty easy too

[17​:52] <bbkr> pmichaud​: because "callframe.WHAT" is "CallFrame"
not "ParrotInterpreter". and CallFrame has .perl method.

[17​:53] <pmichaud> then callframe.perl should work
[17​:53] <pmichaud> does CallFrame have a perl method?
[17​:53] <moritz_> no
[17​:53] <pmichaud> I didn't think so. :)
[17​:53] <pmichaud> bbkr​: why do you claim CallFrame has a .perl method?
[17​:53] <bbkr> rakudo​: CallFrame.new.perl
[17​:53] <p6eval> rakudo 859f2d​: ( no output )
[17​:54] <pmichaud> rakudo​: say callframe.WHAT;
[17​:54] <moritz_> the problem is that callframes can be asked for any
information in caller frammes
[17​:54] <p6eval> rakudo 859f2d​: OUTPUT«CallFrame()â�¤Â»
[17​:54] <pmichaud> rakudo​: say callframe.perl;
[17​:54] <p6eval> rakudo 859f2d​: OUTPUT«Method 'perl' not found for invocant of
class 'ParrotInterpreter'â�¤ in <anon> at line 1237​:CORE.settingâ�¤
in 'Any​::join' at line 1â�¤ in 'Mu​::attribs' at line 1238​:CORE.settingâ�¤
in 'Mu​::perl' at line 1242​:CORE.settingâ�¤ in main program body at line
22​:/tmp/gpGpYkiUr1â�¤Â»

[17​:54] <pmichaud> okay, I'll accept that the error message is wrong here.
[17​:55] * bbkr reports LTA message in callframe.perl

@p6rt
Copy link
Author

p6rt commented Sep 9, 2010

From @bbkr

[17​:57] <pmichaud> why are we getting a ParrotInterpret...... oh, I see
the problem.
[17​:57] <pmichaud> The problem isn't with CallFrame.perl, it's with
CallFrame's $!inter.perl
[17​:57] <pmichaud> $!interp.perl
[17​:57] <pmichaud> the default .perl is attempting to call .perl on all
of the attributes

@p6rt
Copy link
Author

p6rt commented Sep 9, 2010

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Feb 24, 2014

From @coke

On Thu Sep 09 08​:57​:52 2010, pawel.pabian@​implix.com wrote​:

[17​:43] <bbkr> rakudo​: callframe.perl # known_and_NYI or should I
report it as
TODO? in STD this is valid syntax.
[17​:43] <p6eval> rakudo 859f2d​: OUTPUT«Method 'perl' not found for
invocant of
class 'ParrotInterpreter'â�¤ in <anon> at line 1237​:CORE.settingâ�¤
in 'Any​::join' at line 1â�¤ in 'Mu​::attribs' at line
1238​:CORE.settingâ�¤
in 'Mu​::perl' at line 1242​:CORE.settingâ�¤ in main program body at line
22​:/tmp/cb8i19zxRzâ�¤Â»

[17​:44] <pmichaud> bbkr​: it's TODO
[17​:44] <bbkr> pmichaud​: but is it already in RT queue? I cannot find
it.
[17​:45] <pmichaud> bbkr​: and I'm not sure that callframe will have a
.perl
method anyway
[17​:45] <pmichaud> at least, not something that gives you a complete
serialization of the current call state.
[17​:47] <bbkr> pmichaud​: I can imagine how hard to implement this
would be.
but if not - then still error message is LTA.
[17​:47] <pmichaud> why?
[17​:47] <pmichaud> it's exactly correct. :)
[17​:47] <pmichaud> it's saying the .perl method doesn't exist. :)
[17​:51] <masak> :)

[17​:52] <moritz_> adding a method perl() { fail "Can't serialize
callframes" }
would be pretty easy too

[17​:52] <bbkr> pmichaud​: because "callframe.WHAT" is "CallFrame"
not "ParrotInterpreter". and CallFrame has .perl method.

[17​:53] <pmichaud> then callframe.perl should work
[17​:53] <pmichaud> does CallFrame have a perl method?
[17​:53] <moritz_> no
[17​:53] <pmichaud> I didn't think so. :)
[17​:53] <pmichaud> bbkr​: why do you claim CallFrame has a .perl
method?
[17​:53] <bbkr> rakudo​: CallFrame.new.perl
[17​:53] <p6eval> rakudo 859f2d​: ( no output )
[17​:54] <pmichaud> rakudo​: say callframe.WHAT;
[17​:54] <moritz_> the problem is that callframes can be asked for any
information in caller frammes
[17​:54] <p6eval> rakudo 859f2d​: OUTPUT«CallFrame()â�¤Â»
[17​:54] <pmichaud> rakudo​: say callframe.perl;
[17​:54] <p6eval> rakudo 859f2d​: OUTPUT«Method 'perl' not found for
invocant of
class 'ParrotInterpreter'â�¤ in <anon> at line 1237​:CORE.settingâ�¤
in 'Any​::join' at line 1â�¤ in 'Mu​::attribs' at line
1238​:CORE.settingâ�¤
in 'Mu​::perl' at line 1242​:CORE.settingâ�¤ in main program body at
line
22​:/tmp/gpGpYkiUr1â�¤Â»

[17​:54] <pmichaud> okay, I'll accept that the error message is wrong
here.
[17​:55] * bbkr reports LTA message in callframe.perl

Now generates something that is probably reasonable​:

02​:48 <[Coke]> rakudo​: callframe.WHAT.say
02​:48 <camelia> rakudo-jvm e8cea1​: OUTPUT«(timeout)»
02​:48 <camelia> ..rakudo-parrot e8cea1, rakudo-moar e8cea1​: OUTPUT«(CallFrame)â�¤Â»
02​:48 <[Coke]> rakudo​: callframe.perl.say
02​:49 <camelia> rakudo-jvm e8cea1​: OUTPUT«(timeout)»
02​:49 <camelia> ..rakudo-parrot e8cea1​: OUTPUT«CallFrame.new(level => Int,
  annotations => ("file" => "/tmp/tmpfile", "line" => 1).hash, my
  => EnumMap.new("\$!", Nil, "\$/", Nil, "\$_", Nil, "GLOBALish",
  GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "​::?PACKAGE",
  GLOBAL, "\$=pod", Array.new(), "!UNIâ�¦Â»
02​:49 <camelia> ..rakudo-moar e8cea1​: OUTPUT«CallFrame.new(level => 2,
  annotations => ("file" => "/tmp/tmpfile", "line" => "1").hash,
  my => EnumMap.new("\$!", Nil, "\$/", Nil, "\$_", Nil,
  "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL,
  "​::?PACKAGE", GLOBAL, "\$=pod", Array.new(), "!UNIT_â�¦Â»

Closable with tests.

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Jan 31, 2015

From @usev6

skids++ added a (passing) test to S06-advanced/callframe.t with commit Raku/roast@92b416ca8b

I'm closing this ticket now.

1 similar comment
@p6rt
Copy link
Author

p6rt commented Jan 31, 2015

From @usev6

skids++ added a (passing) test to S06-advanced/callframe.t with commit Raku/roast@92b416ca8b

I'm closing this ticket now.

@p6rt
Copy link
Author

p6rt commented Jan 31, 2015

@usev6 - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant