Parrot 1.8.0 Zygodactyly released | Latest modified TT's: icanhaz.com/parrotbugs | Parrot Languages: icanhaz.com/parrotlang
Set by moderator on 20 November 2009.
dukeleto 'ello 00:06
Tene hi leto 00:19
00:21 mariano__ joined, mariano__ left 00:22 mariano__ joined
dukeleto Tene: what is the good word? 00:33
purl the good word is "absurd"
Tene dukeleto: sleeping in until mid-afternoon 00:34
01:35 cognominal joined 01:46 brrant joined 01:51 davidfetter joined 01:52 zostay joined
Coke apologizes for letting that spam through. admin FAIL. 02:28
(got a link to a safe email. that one had already gone through by the time I got to the admin link, & I didn't make sure it was the same email when I approved it. :|) 02:30
purl?
purl Coke?
02:36 mikehh_ joined 02:46 Andy joined
cotto Coke, do you have any idea why some messages to parrot-dev don't get through to my work address? 02:48
02:49 petdance joined 02:52 petdance joined 02:53 petdance joined 03:15 confound joined 03:30 eternaleye joined 03:40 mikehh joined 03:43 petdance joined 03:53 JimmyZ joined 04:19 eternaleye joined 04:21 eternaleye joined 04:22 jhelwig joined 06:10 jhelwig joined 06:13 jhelwig joined 06:14 jhelwig joined 06:22 davidfetter joined
dukeleto hola 06:30
davidfetter waves to dukeleto 06:32
...from brisbane
dukeleto davidfetter: howdy! 06:54
davidfetter: i am currently trying to get pgTAP to play nicely 06:55
06:57 uniejo joined 07:06 TiMBuS joined 07:09 mj41_ joined 07:33 eternaleye joined 08:00 szabgab joined 08:03 barney joined 08:04 fperrad joined 08:07 fperrad_ joined 08:47 iblechbot joined 08:55 gaz joined 09:13 bacek joined 09:25 lucian joined
dalek a: c32e3ae | fperrad++ | t/ (18 files):
rename tests for core libraries
09:43
mikehh All tests PASS (pre/post-config, smoke (#30126), fulltest) at r42793 - Ubuntu 9.10 amd64 (g++ with --optimize) 09:46
dalek a: 3d2018c | fperrad++ | (2 files):
convert test to PIR (from Perl)
09:55
10:06 clinton joined
dalek a: ebafacf | fperrad++ | t/ (2 files):
add test t/table.t
11:02
a: bc0d337 | fperrad++ | t/table.t:
chmod +x *.t
11:08
12:03 cconstantine joined 12:24 bluescreen joined 12:25 bluescreen joined 12:44 plobsing joined 12:45 whiteknight joined 12:46 zak_ joined 13:03 bluescreen joined 13:13 payload joined
dalek kudo: 1445ba3 | (Solomon Foster)++ | src/setting/ (2 files):
Rough but working versions of Int.sign and Rat.sign.
13:13
Coke cotto: ... because your work mail server is marking them as spam? 13:15
13:17 whiteknight joined
whiteknight hello #parrot 13:17
davidfetter oh hai 13:19
13:28 preflex joined
dalek kudo: a55d864 | (Solomon Foster)++ | src/setting/ (2 files):
Fix Int.sign and Rat.sign so they correctly return Ints.
13:30
13:33 ruoso joined
kthakore leto: hi 14:22
purl hi, kthakore.
kthakore leto: when you are around ... I can't seem to build blizkost ... is there a paticular version of Parrot I need to use? 14:25
moritz kthakore: I think blizkost hasn't been updated after the big PCC changes 14:26
kthakore moritz: it looks like it
moritz so you should try a parrot revision before the merge
kthakore p5invocation.c:84: error: â??struct parrot_interp_tâ?? has no member named â??current_argsâ?? 14:27
moritz: um ... wouldn't it be better to get blizkost caught up to new structs of parrot?
moritz kthakore: sure... want a commit bit? 14:28
kthakore moritz: not yet ... I want to have a commit of value first 14:29
moritz: That way I can get it reviewed before commiting
moritz: I am going to try to get blizkost to just compile ... for now
moritz kthakore++ # JFDI
kthakore indeed 14:30
ok now I gtg fin parro_interp_t ...
moritz there's a wiki page for calling convention migration... somewhere... 14:31
kthakore moritz: oh that would help 14:32
I was just going to do a grep in the header files for parrot ... but they seem to be made by pmc? 14:33
moritz trac.parrot.org/parrot/wiki/PCCMigrationNotes 14:34
kthakore so for interp->current_args I need to use a c api function now 14:37
?
moritz: from what I see it looks like they are checking for args
and throwing an exception if they are missing
so verification of args are not needed anymore ? 14:39
well trial and failure time :)
14:44 KatrinaTheLamia joined
kthakore moritz: ok moderate success 14:45
moritz: I have this PMC * const arg_list = pmc_new(interp, enum_class_ResizablePMCArray);
but it seems we need to use PMC * const this_call_sig = Parrot_pcc_get_signature(interp, ctx);
??
moritz actually has no idea about the parrot calling conventions
I just know meta information
14:45 iblechbot joined
kthakore ok 14:46
moritz: who shall I bug?
moritz kthakore: jonathan for blizkost
kthakore: or maybe dukeleto
purl well, maybe dukeleto is imagining that
kthakore moritz: ok
moritz: thanks I will try and fail later
moritz kthakore: for calling conventions... allison, chromatic, bacek, cotto etc :-)
kthakore ok 14:47
moritz: thanks though
moritz you're welcome
kthakore I have to head back to #sdl for our next release
moritz and yell when you want to commit something to blizkost
I can hand out commit bits
kthakore moritz: I would like to wait on that ... as I get commit bits and then I don't have nothing to work for :) 14:48
moritz: thanks anyway though
moritz kthakore: sure, your choice
kthakore is heading back to sweet XS :)
dukeleto kthakore: hola 15:02
kthakore dukeleto: oh hai 15:05
dukeleto: I gave a shot at blitzkost + 1.8 parrot calling conventions
dalek a: 800d696 | fperrad++ | (3 files):
add tests with stdin
kthakore dukeleto: failed but I will try again later ... SDL needs some love right now 15:06
15:06 Psyche^ joined 15:07 PacoLinux joined 15:08 jsut joined
Coke is there any interest in having/not having the PS meeting this week due to holiday issues? 15:14
15:16 wanradt joined
Coke sees that kid51 got all the credit for closing out RT in the new summary. =-) 15:17
dukeleto kthakore: i appreciate your try! blizkost needs some love
kthakore dukeleto: np
moritz Coke++ # proper appreciation at least here in #parrot :-)
dukeleto Coke: that is a good question. pose to parrot-dev? it is only a holiday in the US
Coke++
kthakore dukeleto: I am really just doing it to get SDL into perl6/parrot
dukeleto kthakore: sounds good to me! 15:18
kthakore dukeleto: if it happens to bring the rest of CPAN into perl6 yaya!
wanradt hello, tried first time to install rakudo today 15:19
moritz hello wanradt
wanradt it went good on my Kubuntu 9.10, but no luck running some code
moritz wanradt: where did you get stuck? 15:20
wanradt tried first example from this page: szabgab.com/blog/2009/03/1237550823.html
dukeleto wanradt: what went wrong?
wanradt: nopaste the full error
nopaste?
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl
wanradt and got "Could not find non-existent sub v6"
dukeleto wanradt: you are using perl 5 to run perl 6 code 15:21
moritz nope
that's a parrot error message
wanradt no, i don't
15:21 hudnix joined
dukeleto moritz: can you do a full nopaste of what you ran and the output? 15:21
moritz wanradt: but it's very strange... which version of rakudo did you use?
dukeleto wanradt: you, no moritz :)
wanradt latest, #24 it was 15:22
dukeleto wanradt: do you have an installed parrot?
wanradt: did you use --gen-parrot when configuring rakudo #24 ?
wanradt dukeleto: yes and yes 15:23
dukeleto wanradt: interesting. your older installed parrot may be messing things up. may want to nuke it
15:23 mikehh joined
nopaste "wanradt" at 77.233.68.235 pasted "non-existent sub v6" (33 lines) at nopaste.snit.ch/18812 15:24
wanradt first i installed parrot through the package manager 15:25
dukeleto wanradt: what does parrot --version and uname -a say?
moritz wanradt: #!/usr/bin/perl is wrong
wanradt but then removed, cause rakudo wanted to get own from svn
particle1 i think wanradt's source uses 'use v6;' and rakudo doesn't understand that
wanradt moritz: yes, but i executed as ./perl6 scriptname.pl 15:26
particle oh, now i see the source...
moritz wanradt: it's a really strnge error, maybe related to useing #=
wanradt particle1: yes, it uses v6
moritz wanradt: when I remove those comment lines in loops infinitely on my @fibonacci = 1, 1 ... { $^a + $^b } ; 15:27
wanradt ok, i remove those comments and try again
moritz because rakudo doesn't do lazy lists yet
15:27 bubaflub joined
moritz (it will in the next release, though) 15:27
wanradt moritz: sorry, this fibonacci thing was already from second try, it does not have point there and it does not work without it too 15:28
dukeleto moritz: this script is a good test case ;)
particle rakudo should probably warn on 'use v6;'... hasn't that been deprecated? maybe i'm wrong.
moritz particle: nope, use v6; is correct
it's the #=== comments that trip up rakudo
it's a real parsing bug
I'll submit a a bug report 15:29
particle ok, then just 'use v6-alpha' was deprecated, my mistake.
moritz wanradt: adding a space after the # should make it work
dukeleto wanradt: nice job, you found a parser bug! wanradt++
wanradt thank all of you!
it was like pitstop on F1 race :) 15:30
dalek TT #1328 created by coke++: announce next release when announcing current release
dukeleto wanradt: that is what parrot/perl 6 development is like :) welcome!
wanradt glad to hear, now i try to test what i really wanted to test: unicode 15:31
15:31 payload joined
moritz wanradt: if you find more sore spots, do tell us 15:32
wanradt: though #perl6 on irc.freenode.net would be the better channel 15:33
wanradt goon know, i use very few of irc, so no preferences for me 15:35
moritz started with very little IRC usage too 15:36
and then discovered #perlde and #perl6
15:38 Andy joined
wanradt moritz: despite my nick i speak very few german 15:38
moritz wanradt: I didn't associate your nick with German, just told about my IRC beginnings :-) 15:39
wanradt moritz: isn't perlde in german? 15:40
moritz it is
NotFound Someone has installed parrot in this nice little machine? bifferos.bizhat.com/ 15:42
dalek rrot-linear-algebra: 14d392e | Andrew++ | README:
Update README with better info
15:46
NotFound S05 spanish translation: sites.google.com/site/ramiroencinas...5-regex-es Not bad, even if it has some semi-translated sentences such as "un patrón que haga matching" 15:47
Coke I wonder if it'll make more sense in spanish. :| 15:48
Coke sees that parrot is no longer listed on dev.perl.org, nor is perl1.
NotFound Coke: a lot of spanish technical texts doesn' make sense in any language... maybe in latin. 15:49
Coke NotFound: I was merely taking a pot shot at the comprehensibility of syn 05 in any language. =-)
NotFound People writes things like "downloadear" 15:50
Coke: sometimes I consider the idea of writing a high level language for expressions that compiles to regexes X-) 15:52
Then I awake X-) 15:53
bubaflub NotFound: i know there are a few projects that take semi-structured english to regex 15:54
Coke eagerly awaits the parrot implementation of Inform. 15:55
NotFound I was thinking about something more like egytian hierogliphs as source, better than englisgh.
bubaflub ah 15:56
15:56 uniejo joined
dalek tracwiki: v20 | urkle++ | git-svn-tutorial 15:57
tracwiki: Added "shortcut" hack to getting git-svn metadata from github clone. and cleaned up top part of document
tracwiki: trac.parrot.org/parrot/wiki/git-sv...ction=diff
Coke stares at the lexpad issue in partcl-nqp
NotFound I can even consider writing a language where all tokens are smileys :)
Wait... this is perl6 X-) 15:58
Coke should dev.perl.org/perl6/'s rakudo links point to github or rakudo.org? 16:02
moritz Coke: rakudo.org
purl rakudo.org is, like, rakudo.org
16:02 lucian joined
moritz Coke: I submitted a patch a week ago 16:02
Coke: and one of our admins replied that it might get applied during the face lifiting 16:03
if it won't, I'll re-iterate
Coke moritz: it wasn't. 16:05
(the face lift on dev.perl.org is already done.) 16:06
whiteknight if I'm going to get a BSD system, which should I get? 16:10
Coke whiteknight: OS X? 16:11
purl rumour has it OS X is actually a firaly reasonable desktop OS
whiteknight Coke: I'm setting up a virtual server here on my Windows box, and want to play with one of the free BSDs 16:12
Coke whiteknight: I had gotten a recommendation on that several years ago, but I don't even have that machine turned on anymore. =-) 16:13
(so, I'm useless to you.)
whiteknight okay, I'm flipping a coin and going with FreeBSD
bubaflub we use FreeBSD at work for all of our servers, i'd go with that as well 16:16
Coke whiteknight: looking at the 3 projects, yes, that's the one I had gone with. 16:18
I was pretty happy with it (even though it was running on a 486. =-)
whiteknight ok, good
dalek a: b8ee334 | fperrad++ | t/ (2 files):
convert some tests
16:24
Coke nqprx? 16:29
nqp-rx?
purl rumour has it nqp-rx is github.com/perl6/nqp-rx
dukeleto 'ello 16:33
whiteknight hello
dukeleto whiteknight: i like freebsd as well
whiteknight okay, awesome 16:34
dukeleto whiteknight: pc-bsd is an interesting distro of freebsd
whiteknight I've got VirtualBox installed on my work computer now, and I want to take a few new distros and OSs out for a sping
especially since Ubuntu has been so unstable for me lately
dukeleto whiteknight: it is geared towards the end-user and has a nice gui 16:35
whiteknight: www.pcbsd.org/
whiteknight: i am going to try it out on my next desktop, but have seen it running. 16:36
whiteknight: pcbsd can install anything from freebsd ports, and also has a binary package format, .pbi 16:37
whiteknight I'm already ~30 min into downloading the ISO for FreeBSD, so I'll stick with that for now
dukeleto whiteknight: sounds good, just wanted to share the info :)
moritz due to server hiccups I don't see a topic here in the channel 16:38
whiteknight yeah, I'll definitey look into that
dukeleto i see a topic
moritz could somebody who still sees it set it again please?
dukeleto ok
moritz that usually helps
nopaste "coke" at 72.228.52.192 pasted "Why isn't the error message right to begin with?" (12 lines) at nopaste.snit.ch/18815
moderator Parrot 1.8.0 Zygodactyly released | Latest modified TT's: icanhaz.com/parrotbugs | Parrot Languages: icanhaz.com/parrotlang 16:38
cotto_w0rk Good morning humans. 16:38
whiteknight my only limitation, when we're talking about virtualization, is disk space to host all these installations
hello cotto_w0rk
moritz dukeleto++
dukeleto cotto_w0rk: good morning work robot
dalek a: ab828b1 | fperrad++ | setup.pir:
now don't remove standalone.t
16:47
a: 3630af9 | fperrad++ | t/stdin.t:
chmod +x *.t
17:10 patspam joined 17:20 desertm4x joined 17:23 payload joined 17:39 iblechbot joined
dalek l: 44b119c | fperrad++ | plumage/xml.json:
update generated Plumage description
17:45
markdown: 4d7cc8a | fperrad++ | markdown/grammar.pg: 17:48
markdown: prepare conversion pge to nqp-rx
17:48 dalek joined 17:55 fperrad joined 17:58 payload joined 18:17 eternaleye joined 18:21 desertm4x_ joined
dalek p-rx: f9d5159 | moritz++ | src/HLL/Grammar.pm:
fix binint pasto as noticed by lithos++
18:22
trixy: fd5542a | Whiteknight++ | (16 files):
start segregating test files
18:27
trixy: b14779b | Whiteknight++ | t/ (16 files):
Update README.Tests.pod to explain the new system
trixy: 06b4a84 | Whiteknight++ | t/ (42 files):
Rename more test files
p-rx: 1ec10cc | moritz++ | src/HLL/Actions.pm:
fix an off-by-one error in number conversion error checking
p-rx: a89723d | moritz++ | t/nqp/42-cond-loop.t:
fix some test descriptions, as reported by lithos++
18:30 fperrad_ joined
NotFound What's new [ 'some_pmc_type' ] supposed to do? Create and init a pmc, or instantiate a pmcproxy for it? 18:42
cotto_work It depends on what 'some_pmc_type' is. 18:45
If it's the name of a Class, it'll create a new instance of it. Otherwise it'll make a new PMC. 18:46
NotFound 'Boolean' 18:49
purl i think 'Boolean' is from the time before the user_services table
cotto_work There's a Boolean PMC, so it'd create one of those. 18:50
NotFound Looks like is doing what is supposed, then.
is not
cotto_work I'm not really sure why anyone would bother with something as heavyweight as a PMC for a boolean value. 18:52
NotFound Ā·first check the namespace for a class object, then fall back to the type ID if no class object is stored in the namespace"
But there is always a pmcproxy in the namespace.
cotto_work is looking forward to an easy and short week 18:53
thanksgiving++
NotFound, got some code? 18:56
NotFound cotto_work: tapir2.ro.vutbr.cz/cover/cover-resu...n-pmc.html 18:57
And t/pmc/boolean.t
In init_pmc, the branch where value is null is not covered, but the test must cover it. 18:58
I inserted and abort to be sure, it never gets called. 18:59
cotto_work It looks like the null opcode for STRING should be updated to use STRINGNULL 19:03
NotFound pmcproxy instantiate does this: "if (!PMC_IS_NULL(init)) return pmc_new_init(interp, _pmc->id, init);"
cotto_work NotFound, that lack of coverage is surprising. 19:04
NotFound That explains why init_pmc never gets called with null.
19:04 joeri joined
NotFound It this happens with all new.... uh... Lots of unneeded pmcproxies dancing around? 19:05
I mean, *LOTS* 19:06
cotto_work I think you're right. 19:10
PerlJam Coke: ping
cotto_work Integer's init_pmc doesn't bother checking if the initializer is null before using VTABLE_get_integer on it 19:11
eew 19:12
I thought I knew this part of Parrot. Silly me.
NotFound cotto_work: no problem with that, just a null pmc usage exception. 19:13
cotto_work but using a null PMC as the initializer doesn't cause anything to happen 19:14
NotFound That confirms the hypothesis.
Coke PerlJam: pong. 19:18
PerlJam Coke: do any partcl work over the weekend?
Coke commit anything? no. 19:19
stare in vain at the partcl-nqp code? yes.
PerlJam heh
Coke I need to figure out why t/sanity.t is failing.
but to do that, I think I need to understand hllcompiler/past/nqp-rx, and whatever code patrick wrote. it's a lot to digest.
PerlJam I think it's because of a missing :isdecl from the PAST::Op.new in INIT 19:20
Coke PerlJam: ... *blank stare*
PerlJam Coke: but ... I was trying to figure out why I couldn't get == and != to work right beyond that
Coke > puts [expr 3==2] 19:21
0
> puts [expr 3==3]
1
(they do seem to work.
PerlJam Coke: Hmm. 19:22
Perhaps :isdecl breaks things in another direction then. 19:23
Coke PerlJam: tcl doesn't really declare variables in normal usage.
(there's "variable", but it's mainly for namespace-like stuff.) 19:24
19:26 bubaflub joined
Coke PerlJam: any idea why we get backtraces from src/gen/*.pir instead of the original src/*/*.pm ? 19:26
PerlJam nope 19:27
dalek rrot-plumage: 5e9caf2 | japhb++ | :
[METADATA] Add bf, chitchat, lolcode, and pheme metadata, fperrad++ yet ...
rrot-plumage: eb2ed3c | japhb++ | :
[META] Various TODO updates
rrot-plumage: d44be4e | japhb++ | :
[META] Another TODO update
rrot-plumage: cb68c4a | japhb++ | :
[METADATA] Updated wmlscript.json with fixes from fperrad++
rrot-plumage: cddab57 | japhb++ | :
[METADATA] Fix permissions on some metadata files, fperrad++ for noticing
rrot-plumage: b22572f | japhb++ | :
[LIB] Plumage::Project: Fix crash bug with very short project names; fpe...
Coke PerlJam: so, anyway, I'm stuck. 19:28
NotFound Oh, well, so PMC are never instantiated, there are always pmcproxied. No need to worry about the proposal of making pmc objects, they already are. 19:31
cotto_work Clearly that corner of Parrot needs more documentation. 19:32
PerlJam Coke: what's the difference between {} and [] in tcl? 19:33
Coke: or, why do if statements look like "if {} then {}" and the expressions you just mentioned look like "[expr ... ]" ? 19:34
NotFound cotto_work: I suppose that the advantage of not having such things documented is that no one can says if the current bahvior is wrong or not %-)
cotto_work It doesn't work as documented. 19:35
NotFound cotto_work: no, but a lot of things also doesn't.
Coke [] is command substitution. 19:36
{} is like single quotes in perl.
NotFound We never know what's obsolete, the docs or the code.
Coke "" is like double quotes in perl.
so {nothing interpolated} "$vars and [expr 3+2]"... the [] runs a command and returns the result in situ. $foo is like in perl. 19:37
but there's nothing special about the braces... so in perl you'd have to write if ($foo=bar) {this} else {that} ... in tcl, as long as they are single words, it doesn't matter. 19:38
PerlJam Coke: so, why is the if statement in sanity.t more like "if [expr $a == 2] { ... }" ?
Coke if [expr 3==3] "puts hi" else exit
dalek rrot-plumage: b24d343 | japhb++ | :
[META] More TODO updates
19:39
Coke PerlJam: why /isn't/ ? because then it would happen when the command was parsed, and you might get a value of $a you didn't mean to.
PerlJam Hmm
Coke (for this if, it doesn't matter; but imagine ane xpression in a for loop/while loop, etc.)
also, if $a == 2 isn't valid. 19:40
you'd at least need $a==2 or "$a == 2" or something to group it in to a single word.
... though that does work. =-) 19:41
(it passes test one.)
PerlJam yes, I tried it too :) 19:42
Coke (because then the call to expr() inside isn't doing a variable lookup, but is just passed the value 1
PerlJam: changed the tests so 'prove' now passes. 19:44
we still need to support it the other way too, though.
PerlJam Coke: okay, so I still don't really understand what $LEXPAD is doing in Actions.pm 19:49
If we can summon pmichaud in the next 20 minutes and he is able to impart enough knowledge in me, I'll implement some more control structures for partcl-nqp. :) 19:51
(otherwise, I've got some other things to take care of and probably won't look at it again until tomorrow or so)
pmichaud here
PerlJam pmichaud: why does partcl complain thusly: undefined identifier 'lexpad' 19:52
?
pmichaud because it's looking for a register named 'lexpad' and there isn't one?
(if you want a more detailed answer, I need a more detailed example :) 19:53
PerlJam look at the INIT phaser in Actions.pm.
It seems to me that adding an :isdecl to that PAST::Var should improve thigns. 19:54
pmichaud PerlJam: no, it makes it worse.
or, at least, it doesn't solve the real problem.
PerlJam yes, I've discovered that :)
pmichaud that INIT phaser is simply creating a (reusable) rvalue lookup of the lexpad register 19:55
since it's an rvalue lookup, :isdecl would be wrong.
PerlJam okay, so where/how should the lexpad register be created?
pmichaud right now it's only used in one place, so how about I get rid of $LEXPAD and we can troubleshoot from there.
PerlJam: Actions.pm:19
PerlJam Hrm 19:56
ah, so method body doesn't trigger until after it's parse the entire program, but in the process of parsing it's run across a variable that it needs to look up? 19:57
(because otherwise, lexpad would exist, no?)
pmichaud ummmm, your question either doesn't make sense or I'm misplacing pronouns 19:58
'lexpad' doesn't exist at all during the Actions.pm
it's a PIR register
so it only exists after things have been converted to PIR 19:59
so the error "undefined identifier 'lexpad'" is coming from IMCC, when it's in the process of compiling the PIR 20:00
and the problem there is that the PIR subroutine doesn't contain .local pmc lexpad
which means that whatever is creating the body of the PIR code isn't coming from "method body", because that clearly does define a lexpad register 20:01
the problem is in expr() 20:04
well, no.
hrm.
PerlJam I just think that the variable method executed before the body method, thus creating a variable access to 'lexpad' before it exists.
pmichaud no. 20:05
because we're building a tree
what the variable method creates is a PAST node
that PAST node then ends up in the PAST::Block node
but it's definitely *after* the $init node that is in the PAST::Block
Commands.pm:22 20:06
(that's where the error is)
PerlJam because? 20:07
pmichaud The PAST::Block that gets created there doesn't have a lexpad declaration.
PerlJam every eval needs one?
pmichaud since that ends up being generated as a standalone Parrot sub, yes. 20:08
otherwise the variables don't have a lexpad register to be able to look up the values
here's the underlying theory of operation 20:09
every partcl scope ends up creating a %VARS hash
that hash contains all of the variables within that scope
every PIR subroutine ends up initializing the 'lexpad' register to the %VARS hash corresponding to the current scope
note that partcl scopes do not correspond to directly to Parrot subs 20:10
also note that Parrot's notion of lexicals and :outer do not really apply, because partcl scopes are almost purely dynamic, whereas Parrot :outer is static scoping 20:11
PerlJam so ... expr() needs PAST::Block.new(PAST::Stmts(PAST::Var.new(:name<lexpad>, :scope<register>), $parse)); ? 20:12
pmichaud yes, but <lexpad> needs to be initialized as well as declared
dalek rrot-plumage: 6c268bc | japhb++ | :
[LIB] Plumage::Project: self._dynmeth($method) -> self."$method&...
pmichaud PAST::Var just creates an rvalue access
pmichaud (in this case)
more correct is probably
PAST::Block.new(
20:13 bubaflub left
pmichaud PAST::Var.new( :name<lexpad>, :scope<register>, :isdecl, 20:13
PAST::Op.new( :pirop('find_dynamic_lex Ps'), '%VARS' ) ),
$parse.ast
)
PerlJam aye, I get it.
pmichaud oh, need :viviself there 20:14
(around the PAST::Op.new(...) )
longer term, I'm thinking instead of %VARS being a hash it will want to be a TclLexPad type
Coke so if I want to understand what you're talking about there, are there docs about PAST ?
pmichaud Coke: pdd26
japhb pmichaud, did your NQP-rx change implementing :p and :c satisfy the plumage-requests item for "Grammars/Rules/Regexen: Get next match on same string"?
pmichaud japhb: a lot closer, but I don't think it's completely there yet. 20:15
Coke I don't think anything based on :lex for looking things up is going to work long term.
japhb OK, thanks
pmichaud Coke: I agree
Coke: that's not where I was going with TclLexPad
I think TclLexPad subclasses Hash, but also includes attributes for "outer" and "depth"
the outer attribute points "one level up" 20:16
the depth attribute is an integer indicating "depth of lexpad"
this way uplevel can work
PerlJam oops, I'm 1 minute late for a meeting.
bbl
(maybe)
pmichaud uplevel #2 simply follows two "outer" pointers to get to the correct TclLexPad
uplevel 2 simply follows "outer" pointers until it finds one with depth == 2 20:17
creating a new TclLexPad initializes outer to the current TclLexPad, and depth to be outer.depth + 1
dalek nxed: r203 | julian.notfound++ | trunk/examples/parser.winxed:
more work on var initializers in parser example
20:19
pmichaud actually, what I suggested above probably isn't the best mechanism either, now that I think about it. 20:21
I have to go pick up kid in 10 mins... I'll refactor when I get back 20:22
(what I suggested above being about expr bug... the TclLexPad approach I still think is the correct one.)
Coke pdd26 goes right into class descriptions. 20:35
is there some kind of overview document?
Tene Coke: there's also compielrs/pct/.../Node.pir 20:37
Coke: what kind of overview are you wanting? 20:38
Coke what is past. how does it work. how would you hook into it from your top level code.
a list of what is basically the javadocs assumes a great level of knowledge. 20:39
looks like the Node.pir is not much different than the pdd docs. 20:40
Tene Wait, what does anything have to do with java? 20:41
Coke just referring to the style of documentionat. 20:42
*documentation
Tene I'm not aware of anything in the repository like what you're asking for, no.
Coke *sigh*
danke.
20:49 bluescreen joined 20:55 zak_ joined, payload joined 20:59 cognominal_ joined
pmichaud Coke: my intent continues to be to write a tutorial :) 21:09
I need a good language to use as a basis.... and unfortunately Tcl probably isn't it. :-)
(it'd be good to write up how pmtcl works, though)
maybe I'll just do tcl anyway. 21:10
more examples can't hurt.
21:10 cognominal_ joined
dalek nxed: r204 | julian.notfound++ | trunk/examples/parser.winxed:
parser example: improve expression type chack, improve print predef and add say
21:12
Coke well, I would certainly benefit. 21:19
(and it might help drag mdiep back.)
pmichaud I may be stuck in a vehicle for several hours on Wednesday with little/no internet connectivity -- that might be a good time to write something up :)
Coke +1 21:20
purl 1
Coke [incr]
cotto_work pmichaud, if you're driving you can use this to write documentation at the same time! www.amazon.com/Mobile-Office-WM-01-...amp;sr=8-1 21:21
dalek rrot-linear-algebra: 712743b | Whiteknight++ | t/complexmatrix.t:
add tests for complexmatrix
21:22
rrot-linear-algebra: a76b965 | Whiteknight++ | t/complexmatrix.t:
fix complexmatrix.t
trixy: 310fbbe | Whiteknight++ | t/parrot/ (3 files):
Redo some of the Parrot tests and add new type checks
trixy: e788ca7 | Whiteknight++ | t/ (26 files):
rename a bunch of files in t/syntax/
trixy: b554dd5 | Whiteknight++ | (3 files):
fix complex handling, again
trixy: 5086d39 | Whiteknight++ | t/syntax/ (2 files):
consolidate expressions tests
trixy: 8f6b4ef | Whiteknight++ | t/ (2 files):
separate syntax-based system tests from function-based ones
trixy: 2aed17c | Whiteknight++ | t/functions/ (24 files):
rename most of the t/functions/ files to not use ugly numbers
trixy: b30e3b0 | Whiteknight++ | t/functions/ (4 files):
add abs, max, min function files
trixy: ec06f75 | Whiteknight++ | t/functions/ (4 files):
add floor, ceil, round files
pmichaud cotto_work: the amazon customer shots are pretty good.
trixy: 71b66d9 | Whiteknight++ | src/internals/dispatch.pir:
fix is_scalar
trixy: a8ff57e | Whiteknight++ | src/builtins/abs.pir:
some fixes to abs.pir. abs.t doesn't pass still, so some exposed issues need a' fixin'
cotto_work The reviews are priceless.
pmichaud looks like I can still get one here by Wednesday to use on my trip :) 21:25
I wasn't planning on driving, but this definitely makes that possible.
bus number? truck number? we now have "laptop steering wheel desk number"!!! 21:26
NotFound That gadget can drastically reduce the bus number. 21:30
Coke 's $DAYJOB rots his brain. 21:34
21:42 davidfetter joined 21:57 joeri left
dalek a: 8e7a0c8 | fperrad++ | .gitignore:
fix .gitignore
22:01
rrot: r42795 | NotFound++ | trunk/examples/nci/Xlib.pir:
[examples] better check for libX11 in Xlib example module
22:13
pmichaud Coke: just pushed some updates to partcl-nqp -- should resolve the 'lexpad' problem you've been seeing with 'if' 22:20
let me know if it doesn't
I also added a few more comments to the code to try to explain what was going on 22:21
22:21 cconstantine joined
pmichaud (still incomplete comments, but much better than what we had before) 22:21
Coke: ...I went ahead and added a simple implementation of 'uplevel' too. :) 22:41
PerlJam why doesn't the original if statement work? 22:49
set a 2; if {$a == 2} { puts "ok" }
blows up with The opcode 'iseq_i_p_ic' (iseq<3>) was not found. 22:50
pmichaud oh, I dunno. 22:53
I mean, I know why it fails now... I don't know why it worked before (if it did)
PerlJam It didn't work before because of the lexpad issue.
pmichaud token infix:sym<==> { <sym> <O('%compare_numeric, :pirop<iseq I++>')> }
needs to be Inn
instead of I++
since Parrot doesn't support i_p_ic, apparently.
dinnertime here, will bbi30 22:54
PerlJam strange 22:59
PerlJam implements a few LHF for partcl before goign home 23:00
They're not quite right in the grand scheme of things, but they're right enough for now :) 23:04
PerlJam home &
23:07 davidfetter joined 23:24 zak_ joined
nopaste "japhb" at 76.191.190.8 pasted "NQP-rx PIR for "my $a := -5"; why the neg op?" (13 lines) at nopaste.snit.ch/18820 23:54
japhb I'm surprised that it doesn't treat '-5' as the literal, rather than a negate prefix on a '5' literal. 23:55
PerlJam japhb: because $P14 could be an arbitrary expression?
japhb: sounds like an optimization to me :) 23:56
japhb PerlJam, but why isn't the assign line 'assign $P14, -5'
PerlJam: more a matter of suprise that it pessimized, in some sense. Like the number literal interacts badly with the op parser. 23:57
23:59 s1n joined