Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today
Set by moderator on 17 May 2011.
lucian hmm, apparently find_method, get_attr_str and friends want to completely own dispatch 00:12
is there a way to just supplement dispatch, some vtable funcs that are called when find_method et al fail to find? 00:13
dalek nxed: r1030 | NotFound++ | trunk/t/harness:
allow harness to run the tests using a installed driver
00:19
lucian apparently there isn't. annoying 00:25
dalek rrot/invokable-fix: ee17ddd | cotto++ | src/call/pcc.c:
add experimental fix for a bug found by jnthn++
00:26
cotto_work goes home 00:36
00:37 jsut joined 00:42 jsut_ left 00:55 mikehh left
cotto ohai 01:01
I'd appreciate testing on the invokable-fix branch. 01:02
01:04 davidfetter left 01:09 lucian left 01:11 lucian joined 01:22 lucian left
soh_cah_toa i forget, what type is PARROT_INTERP? i can't remember whether it's Interp or parrot_interp_t 01:29
cotto parrot_interp_t 01:30
soh_cah_toa is there any difference between the two? could i cast one as the other? 01:32
cotto doesn't look like there's a big difference 01:35
from parrot.h: typedef struct parrot_interp_t Interp;
soh_cah_toa yay, more unnecessary duplicate types to remember ;) 01:36
dalek rrot: ee17ddd | cotto++ | src/call/pcc.c:
add experimental fix for a bug found by jnthn++
01:42
rrot: 8f7ca28 | cotto++ | src/call/pcc.c:
Merge branch 'invokable-fix'
cotto jnthn__, the fix is in Parrot master and your example seems to work fine without the VTABLE_does hack in nqp. 01:43
Rakudo master also looks good 01:44
01:44 Kulag left 01:45 Kulag joined
cotto Hopefully nobody has to think about this again in the future. 01:46
01:50 woosley joined 02:03 mikehh joined 02:49 particle left 02:50 particle joined 02:54 theory joined
bubaflub cotto: did you run any benchmarks to see if that fix gave a speed boost? just curious. 03:07
03:16 Andy joined 03:26 soh_cah_toa left 03:41 he left 03:42 mtk left 03:49 mtk joined 03:57 hudnix left
cotto bubaflub, I didn't. It'd be interesting to find out. jnthn expects that it'd give a small boost. 04:06
bubaflub cotto: ok. i'm heading to bed in a bit or i'd run it myself. 04:07
cotto 'night then 04:10
04:18 bubaflub left 04:35 Andy left 04:36 plobsing left, plobsing joined 05:59 fperrad joined 06:17 theory left 07:11 rohit_nsit08 joined 07:13 woosley left 07:27 mj41 joined 08:08 rohit_nsit08 left 08:19 rohit_nsit08 joined 08:36 preflex left 08:40 preflex joined 08:44 kj joined 08:45 kj is now known as kjs 08:54 rohit_nsit08 left 09:04 rohit_nsit08 joined 09:21 woosley joined 09:51 woosley left 10:11 mrwall-e joined 10:31 rohit_nsit08 left 10:37 bacek joined 10:48 rohit_nsit08 joined 10:51 mrwall-e left 11:16 kjs left 11:17 lucian joined 11:30 mtk left 11:31 rohit_nsit08 left 11:36 mtk joined 11:40 lucian left, lucian joined 11:42 lucian left, contingencyplan left 11:46 lucian joined 11:47 kid51 joined
kid51 commit 8f7ca283d: linux/i386: make fulltest PASS; darwin/ppc: make test PASS 11:50
lucian is there any way to get winxed line numbers from imcc or runtime exceptions? 11:58
NotFound: i think i found a bug in winxed. and i really appreciate the comments in the generated PIR :) 12:06
12:19 redicaps joined 12:22 kid51 left 12:23 bluescreen joined 12:29 JimmyZ joined 12:33 whiteknight joined 12:54 bubaflub joined
dalek p: 67c0a4c | jonathan++ | src/ops/nqp.ops:
Teach many NQP ops about the existence of containers (just relies on the standard 6model container API).
13:22
p: f054311 | jonathan++ | src/ops/nqp.ops:
Make sure we don't treat container type objects as if they're actual living containers.
13:39 lucian left, lucian joined
lucian i get "Null PMC access in invoke()" in bitbucket.org/lucian1900/puffin/sr...ect.winxed 14:00
i can't see any calls whatsoever done at runtime, there's just declarations
14:01 bluescreen left
lucian hmm, i think what happens is parrot looks for 'main', gets a null and tries to call it 14:03
14:05 davidfetter joined 14:08 hudnix joined
whiteknight winxed looks for main and invokes it blindly 14:13
moritz could probably be made more awesome :-) 14:14
whiteknight lucian: are you trying to run that function directly?
lucian whiteknight: no, i'm not running anything. winxed does invoke main blindly 14:16
whiteknight yeah, if you do "winxed typeobject.winxed", it will look for main blindly to execute it 14:19
the error handling of the winxed driver program leaves much to be desired, and that is a great example case
14:19 hercynium joined
whiteknight if you want to compile that file down to .pbc, you would type "winxed -c -o typeobject.pir typeobject.winxed" 14:20
the -c prevents it from looking for main
"compile that file down to .pir"
14:26 lucian left, lucian joined
atrodo whiteknight> "IMCC.pm is still a "ball of mud" at the moment," from search.cpan.org/~jgoff/parrot-0.0.8...6C/IMCC.pm 14:26
whiteknight heh
lucian whiteknight: yeah, i know 14:27
atrodo Some things never change
lucian whiteknight: i think i'll have to figure out how to run parrot things easily from python's distutils 14:28
whiteknight okay
lucian i'm still finding places where my object model is incorrect, i really do need more tests 14:29
whiteknight lucian: where are your tests? 14:30
lucian whiteknight: uh, in a main() in core :) 14:31
whiteknight oh fun 14:32
lucian dreadful, isn't it? 14:41
dalek rrot: bcd1d99 | fperrad++ | t/src/extend_vtable.t:
[t] fix shebang
14:44
14:44 JimmyZ left
14:44 JimmyZ joined 14:47 alester joined 15:09 ambs joined
lucian whiteknight: i think i know, i'll just consider w/e is in winxed a foreign package, and call its' setup.pir 15:16
whiteknight that sounds good
you can write a setup.winxed instead, if you prefer
(I'm always looking for ways to minimize PIR"
lucian yeah, sure. neither option appears to have any docs, so it's ok :) 15:19
dalek rrot: e44bbc5 | fperrad++ | t/dynpmc/foo- (10 files):
[t] fix shebang
15:22
whiteknight There is a Rosella.Winxed library that adds winxed-building functions to Parrot's distutils 15:23
if you're looking to get that moving quickly
lucian whiteknight: yeah, i noticed 15:24
to your credit, rosella has more docs than most things in parrot 15:25
whiteknight lucian: :) 90% of the stuff Rosella provides is stuff that I needed while writing the other 10%
lucian i guess i'm spoilt by python
whiteknight yeah, documentation hasn't always been our strong point
I was writing a lot of documentation for a while, which culminated in /docs/book, but I gave up on that pursuit mostly because I didn't want to document things that needed to change 15:26
like, why write more PIR documentation when I hate PIR and want to change it completely?
I would much rather write winxed documentation, which I'm doing now
lucian nods 15:27
fperrad Lua is broken with current Parrot : 15:28
$ parrot lua.pbc
attempt to access code outside of current code segment
current instr.: 'main' pc 4 (lua.pir:90)
whiteknight fperrad: darn. Any idea when that started? 15:29
fperrad I know RELEASE_3_4_0-23 is ok 15:30
whiteknight okay, that's good. I don't think there have been a lot of commits to master since then. I'll do some digging 15:31
benabik The "nice" thing about my GSoC project is that NQP is in PAST so compiling newPAST finds errors in my code. 15:32
whiteknight yes, that is nice 15:34
benabik "error:imcc:syntax error ... somewhere"
The not-so-nice part is that I then have to dig through NQP-rx code to find what bit of PAST I broke.
Wait... I compiled this using parrot-nqp from master. That's not so good. 15:36
dukeleto ~~
tadzik benabik: are you using The Nqp? 15:37
benabik tadzik: I'm using nqp-rx aka parrot-nqp. So no 6model or other new fancy bits. 15:38
tadzik oh, "from master" is the bad part, I see 15:39
benabik tadzik: Yes. I had thought I had broken NQP in my branch.
15:45 mj41 left 15:48 lucian_ joined 15:49 hercynium_ joined
benabik And it turns out it was just bad PIR->NQP translation on my part. *sigh* 15:49
15:51 hercynium__ joined 15:53 lucian left, hercynium left, hercynium__ is now known as hercynium 15:55 hercynium_ left 15:56 dmalcolm joined 15:59 JimmyZ left 16:12 davidfetter left, redicaps left
cotto_work ~~ 16:12
16:18 redicaps joined 16:22 lucian_ is now known as lucian
lucian waves at cotto_work 16:22
cotto_work hi lucian 16:23
16:24 lucian_ joined
dalek p: 165e737 | jonathan++ | src/ (8 files):
Add clone to REPR API.
16:25
16:27 theory joined 16:29 lucian left 16:30 mj41 joined
cotto_work dukeleto: your post got on hacker news 16:39
no comments yet though
16:41 lucian__ joined
alester cotto: linky? 16:41
cotto_work news.ycombinator.com/item?id=2611997 (blog post at leto.net/perl/2011/05/what-is-m0.html ) 16:42
16:43 lucian joined
alester "A few years back, Parrot had a JIT compiler, from which many lessoned were learned." =~ s/lessoned/lessons/; 16:44
16:45 lucian_ left 16:46 redicaps left 16:47 lucian__ left
dukeleto cotto_work: whoa 16:48
alester: danke
cotto_work dukeleto: don't forget us little people now that you've hit the big time. 16:52
benabik Does anybody know if `$obj.$meth();` does what I expect in NQP-rx? 16:56
tadzik nqp-rx: class A { method b { say("ok"); } }; my $foo := A.new(); my $b := "b"; $foo.$b() 16:57
cotto_work dukeleto: for people coming from hn, you might specify who the people mentioned in your post are
tadzik no evalbot?
cotto_work rakudo: say "orly?"
p6eval rakudo 048573: OUTPUT«orly?␤»
tadzik nqprx: class A { method b { say("ok"); } }; my $foo := A.new(); my $b := "b"; $foo.$b()
p6eval nqprx: OUTPUT«Routine declaration requires a signature at line 1, near "{ say(\\"ok\\""␤current instr.: 'parrot;HLL;Grammar;panic' pc 635 (src/cheats/hll-compiler.pir:206)␤»
tadzik oic
moritz method b() helps 16:58
tadzik nqprx: class A { method b() { say("ok"); } }; my $foo := A.new(); my $b := "b"; $foo.$b()
p6eval nqprx: OUTPUT«Confused at line 1, near "$foo.$b()"␤current instr.: 'parrot;HLL;Grammar;panic' pc 635 (src/cheats/hll-compiler.pir:206)␤»
tadzik nqprx: class A { method b() { say("ok"); } }; my $foo := A.new(); my $b := "b"; $foo.b()
p6eval nqprx: OUTPUT«ok␤»
whiteknight we need a winxed evalbot
tadzik benabik: seems that it does not
benabik I guess it doesn't. Thanks tadzik++ for coming up with a simple test.
moritz tadzik: try ."$b" 16:59
that would be the Perl 6 way
tadzik nqprx: class A { method b() { say("ok"); } }; my $foo := A.new(); my $b := "b"; $foo."$b"()
p6eval nqprx: OUTPUT«ok␤»
benabik moritz++
tadzik oh, gotcha
moritz++
moritz whiteknight: I can incorporate winxed into p6eval
dukeleto cotto_work: i gave links. what else should I say?
cotto_work: chromatic++ is famous for not having a title :)
cotto_work dukeleto: this is true
dalek p: f338bd8 | jonathan++ | src/6model/reprs/ (6 files):
Avoid name clash on UNIX-y platforms; should fix build breakage reported by tadzik++ and moritz++.
17:00
moritz whiteknight: particularly if you write a small shell script like those in github.com/perl6/evalbot/tree/mast...ld-scripts that rebuilds winxed (to be run from a cron job)
whiteknight okay, I can look at that
TimToady in Perl 6 $foo.$b would only work with a hard ref in $b; all symbolic (de)references are syntactically distinguished from hard (de)references. 17:04
(so that there's never any need for 'use strict refs')
benabik TimToady: Hard ref as in `$b = &Class::meth` ? 17:05
17:05 rohit_nsit08 joined
dukeleto cotto_work: evidently lots of people read this "hacker news" thing 17:12
cotto_work dukeleto: yup
TimToady benabik: nodnod 17:19
dalek website: lucian++ | 1+2. And objects! 17:30
website: www.parrot.org/content/12.-and-objects
TimToady benabik: to put it another way, $foo.$b is just a funny way to write $b($foo)
benabik TimToady: And `$b($foo)` doesn't make any sense if $b is "method" instead of &method. Perfectly reasonable. :-) 17:31
dukeleto lucian: nice blarg toast 17:33
TimToady well, it only makes sense if you confuse symbolic with hard function names, but p6 requires you to say ::("your_name")($foo) for a symbolic function lookup; the $b($foo) notation is also reserved for hard refs 17:35
lucian dukeleto: bad formatting, i know 17:36
dukeleto lucian: feel free to add some links to stuff (like winxed) because your audience most likely has not heard of many things you talk about 17:38
lucian: links make the web taste better
lucian dukeleto: right. i'll do some editing
dukeleto: added some links 17:52
does it get syndicated when posting, or later?
dukeleto lucian: stuff usually works out. 18:08
lucian: i.e. i change blog posts after syndication, and the syndicates usually update after their caching interval
lucian dukeleto: i see 18:10
benabik should have re-bootstrapped PCT before starting to make changes. Would have noticed a bug way way earlier that way. 18:14
dalek rrot/gh-pages: a5ac1e3 | dukeleto++ | index.html:
github generated gh-pages branch
18:25
dukeleto added github pages to parrot.git 18:26
benabik Yay?
dukeleto parrot.github.com/parrot/
everyone, feel free to make that site prettier, by editing the gh-pages branch
benabik Why isn't the PIR `$I0 = isa post, ['POST';'Sub']` the same as NQP-rx `pir::isa($post, POST::Sub)`? 18:27
benabik feels like he's missing something obvious.
Coke_ one is a key. one is a... namespace? 18:28
ISTR there is a special syntax you can use to force nqp to say "this opcode argument is really of type "key")
benabik POST::Sub becomes ` get_hll_global $P43, ["POST"], "Sub"`
PerlJam benabik: what happens if you put POST::Sub in quotes? 18:29
Coke_ then it's a string, not a key.
PerlJam Coke_: aye, I thought nqp-rx autosplit those and turned them into a key. 18:30
Coke_: but barring that ... what you said about special syntax.
Coke_ perljam I think if you use that argument type specifier.
benabik PerlJam: That doesn't seem to work either. :-/ 18:31
tadzik dukeleto: is that webpage layout something popular? I think cardinal looks similar 18:34
benabik I'm feeling like pir::isa is not the right way to do this, but I can't find anything else. 18:36
dukeleto tadzik: is the the autogenerated github pages layout. Go to "admin" in a repo, and then check the box that says "github pages" and it will ask you if you want to autocreate them 18:37
tadzik oh, funny 18:38
dukeleto benabik: what are you trying to use isa to accomplish?
benabik dukeleto: Trying to wrap $post in a POST::Sub unless $post is a POST::Sub 18:39
18:40 contingencyplan joined
benabik dukeleto: the original PIR is `$I0 = isa post ['POST';'Sub'] \\n if $IO goto have_sub`. NQP version is `unless pir::isa($post, POST::Sub) { ... }` 18:40
dukeleto benabik: in nqp ?
cotto_work dukeleto: in the unlikely event that you get bored, making an m0_cover target in the m0-prototype branch will eventually be necessary. 18:41
PerlJam benabik: why are you using PIR's isa instaed of NQP's isa?
dukeleto benabik: also, you probably want to stringify "POST::Sub" before giving it to isa
benabik PerlJam: NQP has an isa? That's handy. (This is actually code bacek wrote that I'm trying to fix.) 18:42
ambs allison: can I /query you for some minutes to understand something from Pod::PseudoPod? 18:43
dukeleto benabik: i highly suggest looking through the source of Plumage. It has a lot of utility functions for NQP and is well-tested and documented nqp code
18:44 shachaf joined
benabik I'm thinking isa__IPS doesn't handle namespaces. 18:45
But $post.isa(POST::Sub) appears to have worked just fine. Thanks, PerlJam++ 18:46
PerlJam benabik: all PCT::Nodes have an .isa() method 18:47
benabik: check what's in PCT/Note.pir for more 18:48
tadzik benabik: is your gsoc plan public somewhere?
PerlJam benabik: but ... what dukeleto said if you need something more complicated
benabik tadzik: www.google-melange.com/gsoc/proposa...ernhardt/1 18:49
18:50 davidfetter joined, dodathome joined
ambs \\o/ 18:51
tadzik benabik: nice
benabik PerlJam: PCT::Node::isa appears to call self.HOW().isa... But where's HOW() defined? Is that part of Capture or all parrot objects? 18:52
whiteknight that's part of P6object
benabik whiteknight: P6object <- Capture <- PCT::Node ?
whiteknight P6object is the silent partner. It's automatically added as a Parent type of any class defined in NQP 18:53
so Capture is a built-in type, right? So PCT::Node has two parent classes: Capture and P6object 18:54
allison ambs: sure
ambs allison: meanwhile got the solution, thanks :)
benabik whiteknight: OIC. It's not defined in NQP, but it uses P6metaclass.
allison ambs: cool!
whiteknight benabik: yeah. p6object is part of the nqp runtime. Look in runtime/parrot/library/ for p6object 18:55
ambs moritz: just sent a pull request on Pod::PseudoPod::LaTeX. Would be great if you could review and release :)
benabik Is the object system really as much of a mess as P6object seems to make it, or is P6object adding a pile of complication for some reason? 19:00
benabik is looking at P6metaclass.getparrotclass 19:01
whiteknight it is a mess 19:02
jnthn__ There's a reason 6model was created. :) 19:07
tadzik everything is a redesign, of a redesign, of a redesign...
19:07 lucian left
jnthn__ :) 19:07
benabik I am somewhat confused why P6object goes through all these hoops when PIR could do it with a single op. 19:08
PerlJam tadzik: redesigns all the way down?
sorear hysterical reasons? P6object is quite old 19:09
tadzik PerlJam: it looks like so :) gengc, newpast, 6model, lorito...
PerlJam benabik: I haven't looked at the code in a while but .... remember, you're looking backwards through time.
benabik Is there a simple way to make a key in NQP?
whiteknight ...lolno 19:13
at least, not that I am aware 19:14
benabik grumps
tadzik a key?
whiteknight PLA does it. Let me look
benabik tadzik: In PIR, they're made with [] constructs (like ['POST';'Sub']). Used for namespaces and some ops. 19:15
whiteknight github.com/Whiteknight/parrot-line...ory.nqp#L7
it's ugly
benabik whiteknight: Agreed, not pretty. 19:16
19:17 mj41 left
whiteknight but it does work. copy+paste whatever you need and forget it ever happened 19:18
benabik whiteknight: Doesn't seem like it would be any faster or clearer than going through the P6Object hoops. 19:19
whiteknight oh, does P6object create keys too?
Key was really designed to be a compilation optimization. Keys are typically made by IMCC for keyed ops. 19:20
no effort has ever been made to make key creation easier
benabik whiteknight: No, it does other oddities involving get_class and whatnot.
whiteknight: I was hoping NQP had a method to create compile-type constant keys instead of making them at runtim.
whiteknight We have two problems: First, we store classes by name in a tree. Second, lots of people rely on the behavior of automatically creating Classes for built-in types if a lookup for an existing object fails 19:21
so the logic for the class lookup is...disconcerting
oh, and different types of lookup are different. If we use a NameSpace PMC to lookup the class, that has different semantics from using a Key 19:22
so yeah, it's a mess
benabik Bleck. I'll just trust the P6object isa method.
whiteknight What we need eventually is user willingness to allow us to remove some of the bad, broken behaviors 19:23
oh, and NameSpace PMCs are tightly coupled with Class PMCs. And there aren't just Class PMCs, built-in types use PMCProxy PMCs instead of class
I'm trying to remember a list of problems off the top of my head. I'm sure I could come up with more if I were looking at the code 19:24
benabik whiteknight: Short version: merge 6model ASAP?
whiteknight right. that's what I said
dukeleto Email is trying to bury me today. 19:26
whiteknight benabik: but 6model doesn't completely save us. We still have tight coupling with NameSpaces. We still have a bad class storage and lookup mechanism, and we still have a disconnect between Objects and built-in types 19:27
6model forms the core of a huge number of huge refactors that we need
Lorito is, hopefully, going to provide another huge prerequisite for all of it 19:28
After that, it's old-fasioned elbow-grease to get to where we need to go
atrodo so... much... magic...
whiteknight tell me about it 19:30
benabik PIR is going to be M100 or something, isn't it?
whiteknight there are some parts of parrot which are old and crufty, but there are other parts which are extremely poorly designed from top to bottom
the current object model falls into the later category 19:31
19:43 unStatiK joined
Tene +1 19:43
benabik: the big reason for convolutions in P6object is that Parrot's object model doesn't let you instantiate subclasses of Class. 19:44
The only things you can pass to the 'new' opcode are instances of the one core Class PMC. 19:45
sorear I propose we remove Class and Object from Parrot, without replacement 19:46
HLLs need their own object system _anyway_
tadzik aren't they meant to guarantee some piece of language interop? 19:47
plobsing language interop needn't (and shouldn't) occur because of a common class system, but rather due to a common *meta*-class system 19:50
cotto_work +1
we'd be nuts to recommend a single object system 19:51
sorear the most critical part of interop is the vtable system
in particular find_method and invoke, here
benabik Shouldn't we have some way of doing operations like isa and does? 19:53
19:59 mj41 joined
whiteknight sorear is right: What we really need to provide is the vtable system with a handful of basic operations defined 20:01
not the huge sprawling monstrosity that Parrot's current vtables are
we need a handful of operations: find_method, get_attribute, set_attribute, invoke, etc. We also need a few common operations for allocation, destruction, marking for GC, etc 20:02
but that last set doesn't need to be in the vtable, it can be somewhere else
we probably also want an operation to walk children (for GC mark, serialization, and deep cloning) 20:03
dalek rrot: 4b43b7c | (Fitz Elliott)++ | examples/languages/squaak/doc/tutorial_episode_1.pod:
[doc] minor fix to squaak tutorial
20:04
rrot: 27b401d | cotto++ | examples/languages/squaak/doc/tutorial_episode_1.pod:
Merge pull request #134 from felliott/felliott/tutorial_fixes

  [doc] minor fix to squaak tutorial
cotto_work The magic merge button is magic.
whiteknight cotto_work: yeah. Where was it during GCI again?
cotto_work whiteknight: yeah. It doesn't obviate review, but wow does it make the other parts of a merge easy. 20:05
benabik Are files in parrot.git supposed to be .pm/.pl for perl5 and .nqp for NQP?
I've been poking at codetest and I'm now just down to it complaining about the POD in PCT, which is all POD6 20:06
whiteknight benabik: yeah, .nqp for NQP files 20:09
cotto_work whiteknight: we have some nqp files that are .pm 20:11
opsc has a bunch
whiteknight okaydokey then 20:12
tadzik . o O ( .nqpm )
cotto_work perhaps .nqpm would be better
whiteknight haha, I had that same thought
benabik cotto_work: Why doesn't podchecker complain about those?
cotto_work benabik: beats me. Maybe it figures out that they're Pod and gives up. 20:13
(as opposed to POD)
20:15 jevin left
dalek nxed: r1031 | NotFound++ | trunk/winxedst1.winxed:
several fixes and improvements is scope search for functions, specially in hash
20:22
benabik cotto_work: opsc was added to its ignore list. I'm non-enthused about the way various tests have different ignore lists scattered about. 20:25
cotto_work benabik: with good reason 20:26
it's not elegant or sustainable
We can continue to make it work, but finding a better solution would be nice. 20:27
benabik cotto_work: My major complaint is the lack of docs. I've been having to do a lot of guessing and research into how the build and test systems work. 20:28
20:29 wagle left 20:30 whiteknight left
cotto_work benabik: you're right that there's a lot of undocumented communal knowledge there. It's an unfortunate barrier to entry. 20:32
I'm just used to poking around to find what I need, which isn't optimal. 20:33
20:33 dodathome left
NotFound Part of the problem is that when some part gets well documented someone feels the need to change that part ;) 20:39
benabik Details, details. 20:40
NotFound ... and change it, but without updating the docs.
20:57 wagle joined 21:08 autark left, autark joined
dalek nxed: r1032 | NotFound++ | trunk/winxedst1.winxed:
workarounds for problems in lexicals after recent changes
21:09
benabik Woo. My branch now builds, bootstraps, passes tests and passes codetest 21:22
tadzik great!
tadzik sleeps 21:23
benabik Does .lex declare a new variable or just tie a register to a variable? 21:27
21:32 fperrad left 21:38 perlite_ joined 21:39 ambs left
sorear benabik: the latter, I beleive 21:39
21:42 perlite left, perlite_ is now known as perlite 21:46 Psyche^ joined 21:51 Patterner left, Psyche^ is now known as Patterner
dalek rrot: 2438c29 | cotto++ | docs/pdds/pdd19_pir.pod:
make an example in pdd19 less ambiguous
21:51
benabik What effect does 'null $P99 \\n .lex '$*SUB', $P99' have? 21:52
21:54 lucian joined
jnthn__ $*SUB, if looked up, would contain null 21:56
(since register $P99 does)
21:58 jsut_ joined 21:59 alester left 22:02 jsut left
benabik I'm always worried about globals I can't find any use for. 22:06
jnthn__ benabik: Note it's a conextual, not a global. 22:07
benabik jnthn__: That one yes, but there's a @?BLOCK global that seems to be largely unused. 22:08
22:08 jsut joined 22:13 jsut_ left 22:24 lucian_ joined
benabik I'm finding the ways that PCT mangles itself interesting to say the least. Any string containing a literal "\\x" or "\\u" is marked as unicode. 22:26
22:28 lucian left 22:31 bubaflub left 22:37 rohit_nsit08 left 22:47 soh_cah_toa joined 22:54 hercynium left 22:55 mj41 left 22:59 bubaflub joined
cotto_work hi soh_cah_toa 23:03
23:04 mtk left
cotto_work soh_cah_toa: I saw that I missed you yesterday. Did you figure out what you needed to figure out? 23:04
soh_cah_toa cotto_work: still confused by it. so does imcc insert .annotate automatically? 23:10
cotto_work soh_cah_toa: no. .annotate can't be used for PIR-level line numbers
well it can, but it isn't
and adding .annotate directives would change the line numbers 23:11
23:12 mtk joined
cotto_work The information that imcc returns is implicit and only applies to PIR code. The annotations that the annotations op returns are explicit and only apply to HLLs when they've been added explicitly. 23:12
soh_cah_toa ponders 23:15
so for now - since i'm just trying to get pir support first - it looks like my only option is to use Parrot_sub_get_line_num_from_pc() 23:18
then in the future i guess i'm going to have to write code tailored for each hll i wish to support since there's no universal way to retrieve line numbers in all hll's 23:19
cotto_work soh_cah_toa: annotations are the official mechanism for that.
soh_cah_toa cotto_work: but you said they'll only be present if they're written explicitly 23:20
sorear PCT writes annotations explicitly 23:21
try "perl6 --target=pir"
you'll see .annotate all over the place
cotto_work soh_cah_toa: ^
soh_cah_toa oh ok. that's great 23:22
cotto_work PCT users get them for free, but it won't be a hard sell to get other compiler implementors to use them too.
soh_cah_toa i'll just have to check the file extension first to determine which type of file being debugged: hll or pir 23:23
sorear especially since they also make backtraces work
"do you want meaningful line numbers in exception reports?"
cotto_work exactly
very easy sell
soh_cah_toa alright, that's not too bad. but that's still leaves the problem of Parrot_sub_get_line_from_pc() of not being accurate 23:24
sorear go look at exception.pmc
find out what it uses
soh_cah_toa looks 23:25
benabik nqp: say('a' == 'b') 23:28
p6eval nqp: OUTPUT«1␤»
benabik what?
sorear benabik: you want eq
benabik: nqp is like perl in a lot of ways. one of them is separate numeric and string equality ops
benabik: anything that starts with a letter is 0 in numeric context 23:29
benabik nqp: say('a' == 'aa')
p6eval nqp: OUTPUT«1␤»
sorear nqp: say('a' eq 'b')
p6eval nqp: OUTPUT«0␤»
benabik Using strings in numbers is wierd. Okay.
23:31 theory left
bubaflub dukeleto: ping 23:35
23:37 whiteknight joined
bubaflub dukeleto: unping. i figured out how to generate GMP docs. 23:40
dalek sella/gh-pages: adfeeef | Whiteknight++ | winxed/index.md:
first partial draft of docs for winxed
23:46
sella: 6995493 | Whiteknight++ | s (2 files):
whatever
sella/gh-pages: 77df869 | Whiteknight++ | / (2 files):
try to make h1 headers a little less obnoxious
23:55
whiteknight whiteknight.github.com/Rosella/winxed/index.html
it's not perfect, but it is a start
bubaflub whiteknight++ 23:57