#parrot Parrot 0.6.1 "Bird of Paradise" Released | parrotcode.org
Set by moderator on 22 April 2008.
00:08 TonyC joined
Coke tetragon: is this a crash resulting in a failing test? 00:19
(or build) 00:20
tetragon Yes
Coke (which)
tetragon Both :-)
Build on its own, test with a patch from chromatic (but it's the same mechanism) 00:21
Ticket #53170 00:25
Coke seen chromatic? 00:38
purl chromatic was last seen on #parrot 4 hours and 47 minutes ago, saying: Any shared library that doesn't use opaque pointers is hateful to bindings writers.
chromatic I'm looking at it. 00:39
tetragon chromatic: Any hints on that watchpoint?
Coke chromatic: pick a release number that predates your earliest recent speed improvements? 00:40
s/release/revision/
(or a date. want to compare tcl speed; seems much better, want to prove it.) 00:41
chromatic 26920 was my first big improvement. 00:42
Coke checking... 00:43
make test | optimized build | r26900 | 2m47.244s 00:49
make test | optimized build | r27122 | 1m44.511s
(2+47/60)/(1+44/60)
purl 1.60576923076923
Coke chromatic++ 00:50
chromatic There are still more to go.
Coke mmm. just glad to know that all the slowness in partcl ain't me.
chromatic There's plenty of slowness to go around.
tetragon chromatic: For the watchpoint on cc->dynamic_state, what should it be set on so that I don't have it falling out of scope on me? 00:56
00:57 contingencyplan joined
chromatic You can sometimes do a watchpoint on the memory address. 00:57
watch *(cc->dynamic_state)
Coke 22.077 / 0.043 00:58
purl 513.418604651163
Coke yay, down to 2**9 times slower than tclsh8.5; that's a few orders of magnitude. =-)
chromatic++
tetragon That still falls out of scope 00:59
particle coke: Now that the hard part is over, all you have to do is sit back, relax, and hope that San Diego Zoo officials don't notice the uncanny physical resemblance.
...my onion horoscope. 01:00
chromatic At that point I usually edit the source code to add in a static pointer, set a breakpoint for the crashy one, and use the set command in the debugger, then put the watchpoint on that value.
tetragon I was just firing up a memory debugger
But it's more oriented towards finding leaks 01:02
chromatic undefined reference to `offset_fixup' 01:03
Has anyone seen that?
Infinoid particle: still odd that there are so many parrot hacker birthdays so close together
Coke sounds like something that could conceivably be related to my ops twiddling.
tetragon Closest I've seen in my build logs is "src/exec_dep.h:32: warning: ?offset_fixup? used but never defined"
chromatic That does sound familiar. I'm building on Linux PPC. 01:04
Coke ... hurm. that is also MY horoscope. 01:05
(which I'm guessing particle knew)
Infinoid and mine
dalek r27140 | jkeenan++ | gencrypto: 01:07
: Patch submitted to trunk; no need to retain branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=27140
r27141 | jkeenan++ | gencrypto-27092: 01:08
: Branch corresponding to tag has been deleted; no need to retain tag.
diff: www.parrotvm.org/svn/parrot/revision?rev=27141 01:09
01:10 Ademan joined
chromatic Hm, segfault when building PGE's src/Grammar_gen.pir 01:12
That should sound familiar.
tetragon Your patch in the ticket stops that instance of segfault, moving it over to sprintf tests 01:14
chromatic 0x0fc3b704 in pobject_lives (interp=0x10018040, obj=0x11) at src/gc/dod.c:190
Yeah, looking really familiar.
dalek r27142 | jkeenan++ | trunk: 01:21
: Renumber tests to preserve sequence.
diff: www.parrotvm.org/svn/parrot/revision?rev=27142
r27143 | jkeenan++ | trunk: 01:23
: Update (renumber) references to file name within file.
diff: www.parrotvm.org/svn/parrot/revision?rev=27143
02:00 guru joined
chromatic Aha. 02:23
nopaste "chromatic" at 63.105.17.30 pasted "Yet Another Stack Chunk Refcounting Patch Update for tetragon" (94 lines) at nopaste.snit.ch/12772 02:24
chromatic tetragon, can you try this patch instead of the previous version?
Tene So, does it still seems feasible for all parrot-hosted languages to eventually be able to use all of Perl 5 CPAN?
chromatic If their semantics support it. 02:25
Infinoid tries to imagine what the XS->parrot bridge would look like
chromatic A dog's breakfast.
Althought Nicholas had some ideas of macro redefinitions. 02:26
Tene Just making sure I'm not spreading misinformation. Embedded Perl 5 interpreter specced for 1.0?
Infinoid XS is heavily macroized, but things have been done over so much, there's 3 ways to do everything
chromatic Not on the list I've seen yet, Tene.
Infinoid would be fun to thumb our noses at it by making all the refcounting stuff into noops, though. :) 02:27
Tene chromatic++ # questions--
tetragon starts a build with the new patch 02:33
chromatic I'm most of the way through a full test run, and everything's golden here. 02:35
02:35 Andy joined
tetragon make completed without crash. Now for the tests 02:42
Only the usual crashes so far 02:51
chromatic The usual crashes? 02:53
tetragon t/compilers/imcc/syn/macro 32
t/op/interp 3
t/pmc/io 1
chromatic Are those TODOs just popping up your SIGBUS window?
tetragon Are the three of the six I've hit so far
These ones are 02:54
chromatic That's a good sign. 02:55
tetragon The only non-TODO is the one I just hit, t/dynoplibs/myops.t, test 3 (which passes in spite of this) 02:56
(ticket #52222) 02:58
02:59 Zaba_ joined
tetragon Triangle still spins in the OpenGL example 03:10
chromatic I'm tracking down a similar crash in one of the Rakudo tests. 03:13
03:15 Zaba joined
Infinoid heh 03:21
japhb: your example has become a tester's favorite :)
03:31 AndyA joined 04:02 Theory joined 04:12 tetragon joined
japhb Infinoid: :-) And people discount the value of emotionally satisfying positive feedback .... 04:27
Am I the only one whose eyes have completely glazed over by the Perl 6 type theory discussions? 04:29
chromatic_away No.
nopaste "chromatic" at 63.105.17.30 pasted "One More Stack Patch for tetragon" (148 lines) at nopaste.snit.ch/12773 04:30
chromatic_away This one works for me, tetragon.
tetragon chromatic_away: So the tests finished, and only the usual six crashes happened
This supercedes the previous? 04:31
chromatic_away Yes. 04:32
The previous gave me a crash in one of the Rakudo tests.
tetragon Of my usual six, the least reliable is t/stm/runtime.t 4. 04:33
It sometimes doesn't crash, and when it does, it isn't always the same thread
Tene make -j 2 works currently, or no? 04:35
Guess i'll find out. :)
chromatic_away It should. 04:36
tetragon I haven't had any problems with -j2, beyond less readable console output during the build 04:37
Well, didn't crash during build 04:43
Tene considers hacking in an explicit load of sdl and gl to rakudo.pir in a private branch. 04:49
04:50 Psyche^ joined
Infinoid I've been using -j8, just to front-load the I/O a little more 05:03
works great.
tetragon chromatic_away: Works for me as well as the previous. Neither hit any atypical crashes 05:06
japhb Tene: hmmm, what? 05:11
chromatic_away Thanks, tetragon. I've just committed r27144. 05:54
dalek r27144 | chromatic++ | trunk: 05:55
: [src] The PMC struct and the Stack_Chunk_t struct aren't isomorphic enough on
: non-x86 processors, so the stack chunk recycling scheme needs an explicit
: reference count rather than re-using the first int slot in the PObj union.
: This appears to fix RT #53170, reported by Seneca Cunningham.
diff: www.parrotvm.org/svn/parrot/revision?rev=27144
05:57 Zaba_ joined 06:09 uniejo joined 06:37 UltraDM joined
dalek r27145 | fperrad++ | trunk: 07:03
: [digest]
: - fix test
diff: www.parrotvm.org/svn/parrot/revision?rev=27145
07:22 iblechbot joined 08:01 IllvilJa joined 08:13 cosimo joined 08:26 wknight8111 joined 08:37 ruoso joined 08:52 mire joined 09:14 ruoso joined 09:28 cognominal left 09:32 cognominal joined
Zaba moin 10:55
11:27 allison joined 11:38 kid51 joined
Coke moin? 12:19
purl welcome master!
12:40 cout joined 12:44 iblechbot joined
Coke [@$foo] ?? 12:46
13:01 iblechbot_ joined 13:19 particle joined 13:21 skids joined 13:43 rdice joined 13:44 ruoso joined 13:55 gryphon joined 14:09 Andy joined, grim_fandango joined
Coke (ah. intentially duplicating the reference, I think. still unnecessary, but at least I see where it was going.) 14:19
14:41 iblechbot joined
Coke svn st 15:24
Infinoid svn: warning: '#parrot' is not a working copy 15:26
15:28 Andy joined
Coke Infinoid: converting flags to a hash, I've managed to break my build locally. 15:34
Infinoid hmm 15:35
I've got something that seems to generate the same core_ops_cg.c as svn HEAD does 15:59
Infinoid sees if it passes any tests. 16:00
nopaste "Infinoid" at 96.238.213.50 pasted "for Coke: what I've got so far" (37 lines) at nopaste.snit.ch/12778 16:02
Infinoid tests are looking good so far 16:07
particle installs half of cpan to get App::Asciio 16:11
cognominal which of the thirty halfs of cpan? :) 16:16
Infinoid theoretically, you'd only have to install 2 applications like that, and then you have all of CPAN installed, and don't have to worry about it any more 16:17
looks like it pulled in the Net::IRC::Disconnect::Randomly module 16:18
Zaba App::Asciio? 16:20
16:20 Theory joined, particl1 joined
Infinoid Coke: so... I don't know how "clean" my patch is, in fact, I know very little about this codebase. But it works, and passes all tests. Is it the kind of patch you had in mind? 16:21
16:28 DarkWolf84 joined, jhorwitz joined
particle END failed--call queue aborted. 16:38
^--- perl 5.10.0 error. 'scuse me?
16:46 allison joined
Infinoid is it talking about a here-docs marker? or an END block? 16:46
particle i'm guessing an end block.
i'm trying to install some modules, and it seems to be an error Devel::Cover is uncovering 16:47
t/eval_sub..............Cannot close C:\\usr\\bin\\perl-5.10.0\\bin\\perl.exe -IC:/usr/bin/perl-5.10.0/cpan/build/Devel-Cover-0.64-JjrThS/ -IC:/usr/bin/perl-5.10.0/cpan/build/Devel-Cover-0.64-JjrThS/blib/lib -IC:/usr/bin/perl-5.10.0/cpan/build/Devel-Cover-0.64-JjrThS/blib/arch -MDevel::Cover=-select,eval3,-ignore,blib,Devel
/Cover,-merge,0,-coverage,statement,branch,condition,subroutine C:/usr/bin/perl-5.10.0/cpan/build/Devel-Cover-0.64-JjrThS/tests/eval3 5: at C:\\usr\\bin\\perl-5.10.0\\cpan\\build\\Devel-Cover-0.64-JjrThS\\blib\\lib/Devel/Cover/Test.pm line 187.
END failed--call queue aborted.
16:47 teknomunk joined 16:50 sjansen joined
nopaste "cognominal" at 82.67.232.89 pasted "a proof of concept parse trimmer. use like this : ./parrot languages/perl6/perl6.pbc --target=parse ary2.p6 | trimparse" (136 lines) at nopaste.snit.ch/12781 16:50
16:51 {-} joined
Infinoid t/eval_sub..............ok 16:51
cognominal it is less than perfect but it is a big improvement on the raw output of parse
Infinoid lib/Devel/Cover/Test.pm:187: close T or die "Cannot close $command: $!"; 16:52
I think "END failed--call queue aborted" is just what it emits when an exception is thrown from an END block. the exception itself is valid 16:53
particle sure, makes sense
it's an error i've never seen before
Infinoid it is a bit confusing 16:54
particle at least this:
# BEGIN failed--compilation aborted at t\\001_load.t line 16.
tells you the line# 16:55
Infinoid its listed in perldiag under "%s failed--call queue aborted"
particle 15,600,000 * 19.5/42 17:01
purl: 15,600,000 * 19.5/42
purl particle: huh?
particle purl: 15,600,000*19.5/42
purl particle: what?
particle grr
cognominal bash-3.2$ r --target=parse g.p6 | trimparse | wc 17:03
163 883 15186
bash-3.2$ r --target=parse g.p6 | wc
327 1807 29565
particle 15.6e6*19.5/42 17:04
1+1
purl 2
particle gah.
cognominal working on indentation I should probably half the size of the outptut once more
Infinoid 15600000 * 19.5/42 17:06
purl 7242857.14285714
Infinoid purl doesn't like commas.
purl Infinoid: huh?
particle ah, right! commas. 17:09
still, though. 15.6e6 should have worked
btw that's a calculation of 10,000 ford escape hybrids over 200,000mi each 17:10
15.6Mgal fuel
*savings
converting gal fuel -> barrel oil is 19.5/42
so, 7.25Mbarrel oil
which is <1/2 day of US consumption 17:11
(19.6Mbarrel)
not a big savings
Infinoid those numbers are too big for me to comprehend. 17:12
particle this all started while my wife and i were driving in hawaii
i saw a fuel truck, and wondered how many miles that would get our mini 17:13
Infinoid were you gonna hijack it? :)
particle estimating 30' cylinder with diameter of 7'... miles/gal for the car, etc
it'll get us about 5 years of use at our current burn rate 17:14
(~5k mi/yr)
Infinoid ... its snowing. 17:18
Coke Infinoid: (passes all tests) really? hurm. 17:19
Infinoid md5sum of core_ops_cg.c is identical before and after the patch 17:20
Coke it's simpler than the change I had. I would recommend $flags->{pic} instead of $$flags{pic}
Infinoid I do prefer the latter syntax, but I don't feel strongly about it
Coke and I am ambivalent about the choice of 1 as the default value vs. undef. I prefer undef slightly.
I feel slightly stronger than you about it. =-) 17:21
Infinoid undef works too, I only use 1 out of habit
feel free to take the patch and run with it 17:23
but I'm curious, how did your version work?
if there's a cleaner way, I'm all for it. I'm ignorant of how ops2c is organized
Coke I did something very similar. I ended up changing the call chain a bit as $flags is passed around. 17:24
(now that it's a reference and not a simple string, trying to mimic what the arrays were doing.)
Infinoid what are the arrays doing? 17:25
Coke yours is fine. if "make test" passes, go for it.
Infinoid I guess I was trying for a barebones version, and didn't look much at the scenery
Coke the first part could just be $self->flags->{pic} , methinks.
Infinoid tried that, didn't work.
Coke eeet should. 17:26
Infinoid "my $flags" was the second attempt
probably breakage from another issue I was having. it will probably work now
17:26 barney joined
Coke but works trumps any style-like concerns. Oh, I also added a note to Parrot::Op->flags 17:26
Infinoid ah, documentation! that sounds like a really good idea. 17:27
Coke ... you could also eliminate the earlier $flags definition, I wager.
Infinoid src/ops/core_ops_cg.cCan't use an undefined value as a HASH reference at lib//Parrot/Op.pm line 391.
Coke ah. my $flags = {}; instead of my $flags; 17:28
Infinoid that's with if (exists($self->flags->{pic})
Coke or is this in response to something else?
a 17:29
yah, that's because you have my $flags instead of my $flags = {};, I wager. 17:30
particle coke++
Infinoid ah, the first time around the loop, I guess
Coke (if you do that, and then avoid the unnecessary assignment, something like if ($4) { $flags = .... };
lemme post my patch and you can steal all the good bits. 17:31
nopaste "Coke" at 72.228.52.192 pasted "my broken patch" (90 lines) at nopaste.snit.ch/12785 17:32
Coke Infinoid: so ignore the bits where I'm doing the {%$flags} cargo culting.
(but there's a lot of [@$foo] which is the same sort of thing; I think the goal was to have the generated OpLib file not have any shared references. 17:33
but if it works without it, fine fine. =-) 17:34
particle cognominal: interesting. i haven't run it yet, but it looks promising 17:36
Infinoid Coke: I have to work. I can take a look at it this evening, if you don't beat me to it :) 17:38
cognominal it already fits my needs. it will be cleaner when written with a real parser
Coke oh, I'll beat you all right. ;p 17:39
Infinoid wait. if, in the first time around the parse loop, it isn't a hash reference, what difference would that make as to whether $flags is locally declared or not? 17:40
its still not going to be a hash reference 17:41
Coke ah, right, it needs to have an if/then inside the loop. good catch. 17:42
dalek r27146 | bernhard++ | trunk: 17:47
: Tell languages/Makefile about squaak
diff: www.parrotvm.org/svn/parrot/revision?rev=27146
cognominal I try to find the code that implement the 'make' function of actions.pm 17:53
18:03 slightlyoff left
dalek r27147 | bernhard++ | trunk: 18:05
: [Squaak]
: Add file MAINTAINER
: Mention Squaak in LANGUAGES_STATUS.pod
diff: www.parrotvm.org/svn/parrot/revision?rev=27147
cognominal gotit 18:07
dalek r27148 | bernhard++ | trunk: 18:12
: [Eclectus]
: Fix code, after accidental commit in r27146. 18:13
diff: www.parrotvm.org/svn/parrot/revision?rev=27148
barney rotty: I halfheartedly started on NQP generation. Maybe I'll find some tuits this weekend. 18:14
barney meets brian d foy tomorrow at Frankfurt.pm extra meeting 18:16
particle tell him i said hello
barney will do
18:30 Ivatar joined 18:37 Zaba joined 18:49 rillian joined 18:51 gryphon joined
PerlJam jonathan: congrats on the grant! 19:03
pmichaud grant? 19:04
purl grant is on the $50.
pmichaud someone gave jonathan a $50 grant? ;-)
particle jonathan got a day a week for 3mo grant from vienna.pm++
pmichaud congrats indeed 19:05
jhorwitz vienna.pm++ for having a budget!
particle proceeds from yapc::eu 2007 iiuc
Infinoid oh, nice!
jhorwitz ah
particle vienna.pm++ for making a profit on a conference
PerlJam 3 months and then they evaluate if they can keep giving him money to the end of the year. vienna.pm++ indeed 19:06
pmichaud press release or announcement? I missed it
PerlJam I think I read about it in someone's use.perl journal
Infinoid socialtext.useperl.at/woc/index.cgi..._on_rakudo
shorten Infinoid's url is at xrl.us/bjqim
PerlJam Having jonathan work on rakudo one day a week might bring an early christmas this year :) 19:08
pmichaud oh, hey, I'm on the use.perl front page :-) 19:11
19:11 Theory joined
PerlJam pm: isn't that the same day as the "Texas Open Source Symposium"? 19:20
pmichaud texas open source symposium is this saturday (apr 26)
dfw.pm is next tuesday (apr 29) 19:21
dalek r27149 | chromatic++ | trunk: 19:22
: [OO] Added "vtable overrides in parents" cache to Class PMC. This is an
: experiment and it doesn't get flushed on parent class modifications, but it
: speeds up vtable override searching by about 500% and speeds up the
PerlJam those darn 6s and 9s look so much alike! :)
dalek : Rakudo-building benchmark by 5.87%.
: Vtable overriding probably needs some more design thought though.
diff: www.parrotvm.org/svn/parrot/revision?rev=27149
r27150 | chromatic++ | trunk:
: [PMC] Minor cleanup to make_hash_key() in the Hash PMC, especially its metadata.
diff: www.parrotvm.org/svn/parrot/revision?rev=27150
r27151 | chromatic++ | trunk: 19:24
: [JIT] Cleaned up several warnings about null parameters passed to JIT
: functions. All tests still pass on x86, where I saw the warnings.
diff: www.parrotvm.org/svn/parrot/revision?rev=27151
Patterner now "parrot Perl6Grammar.pir PGE/Grammar.pg" in "compilers/nqp" fails with "FixedIntegerArray: Can't resize" 19:27
19:39 skv_ joined
TimToady phone 19:59
20:00 Zaba_ joined 20:07 tg joined 20:18 Donald joined 20:23 Donald left 20:25 donaldh joined 20:43 ambs joined 21:06 skv_ joined 21:07 jalbo joined
jalbo Hello. 21:08
Infinoid hi! 21:11
jalbo purl: what is saint george? 21:16
purl wish i knew, jalbo
jalbo It must be the only one here that doesn't. 21:17
Coke Patterner: that smells like a GC bug. 21:19
Tene jalbo: southern utah 21:25
purl it has been said that southern utah is beautiful. but the worst food ever.
Coke southern connecticut? 21:28
jalbo I'm from Spain, we don't kill dragons here. 21:29
dalek allison@perl.org | Concurrency Tasks: 21:31
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy 21:32
21:33 jan joined 21:48 wknight8111 joined 21:49 Limbic_Region joined 22:00 ruoso joined
paco HI, in another channel of another server there are some people who asks if the source of good purl is available and where. thanks 22:04
Infinoid no idea, we don't maintain it.
purl, owner?
ENOPURL
jalbo purl: where is the source? 22:05
Infinoid I think Masque runs it
paco I have this article : www.foo.be/docs/tpj/issues/vol3_2/t...-0002.html 22:06
maybe writing some lines to Kevin Lenzo .. 22:08
thanks anyway ..
Infinoid sorry I can't be more help 22:10
paco thats ok ..
particle infobot? 22:12
22:17 mire joined
Limbic_Region yay - parrot building completely on Win32/Cygwin and Win32/MinGW again 22:17
cotto_work is there a policy on what kind of information can be sent by make smoke? 22:26
Infinoid I think it would be a good idea for it to send test results, in one format or another 22:31
are you asking about the format? or the content? or about security/privacy? 22:32
cotto_work security/privacy
I'm going to be setting up an automated Parrot smoke test machine (or more?), and my boss has to be certain that nothing compromising is being sent out 22:33
Infinoid I don't know if the policy is formally defined or documented. maybe we can intercept a smoke report and see exactly what it is sending 22:34
cotto_work nothing that's currently being sent out looks dangerous
Infinoid there may be some risk of a fail log containing the filesystem path of your local parrot checkout 22:35
is this something we need to define formally?
cotto_work I'm just concerned about future changes
Infinoid well, you're right, its very much in flux, but I'm sure we could set some ground rules 22:37
donaldh paco: www.infobot.org/
Infinoid a lot of it is just common sense though.
paco thanks donaldh .. 22:38
cotto_work yes, and I trust that the people with commit bits won't be malicious 22:39
Infinoid I don't want to see my /etc/passwd in a smoke report any more than you do. :) 22:40
cotto_work something formalized might be a good idea 22:41
Infinoid www.perlfoundation.org/parrot/index...ke_reports is the beginnings of a spec 22:42
shorten Infinoid's url is at xrl.us/bfeof
cotto_work I'll see what my boss says about what's there already
s/already/currently/
until then, there's no reason to be add yet another tuit sink 22:43
22:44 Zaba joined 22:50 skids joined 22:52 rdice joined
skids 22:52
Coke: it has been said southern connect is the place people from the rest of New England stop to pee on their way to NY.
oops.
You can thank my cat for all the spaces in my buffer.
paco jajaja 22:53
hahaha
cotto_work I think you're looking for #whitespace
jalbo Nice language. 22:54
You can write very clean code with it. 22:55
Infinoid not good from a DRY perspective tho
clean but not concise
skids And even cats can code in it.
Infinoid cats can code in befunge too :) 22:56
jalbo Just avoid to keep open a file called curiosity. 22:58
Infinoid that's where proper exception handling comes in 23:00
catch it before it kills the cat :)
jalbo You can write the handler in Intercal: 23:02
PLEASE DON'T KILL THE CAT
Infinoid well, that simplifies Shrƶdinger's problem significantly 23:03
jalbo Never understimate the power of esotheric languages. 23:04
Infinoid s/Shrƶdinger/Schrƶdinger/ 23:06
jalbo I don't mean austrian. 23:08
skids Say you want to do something like this, but efficiently -- is there a perl6 way? : 23:09
class g { has $.offset; has $.owner handles foo }
class f is Array of Int {
method foo () { do_something_to( @.self[$.offset] ) }
method FETCH () { return g.new(offset => $^i, owner => .self) } 23:10
}
my f @f = (1,4,6,7,9,$blah);
$f[3].foo();
That is essentially store data in a packed array but make your own autoboxing for it?
23:13 tetragon joined 23:17 purl joined
Infinoid purl, owner? 23:18
purl i guess owner is Masque
skids Or to put it another way, what does "Array of ( Int does bar )" create, assuming there's a way to dwim those parens legally.
(for bar a role with or without attributes) 23:20
rillian yay, mandelbrot set in PIR 23:25
so I was inspired by allison's talk at lugradio to mock up a postscript interpreter in parrot 23:28
but I'm unclear where to start 23:29
any suggestions on (a) what to use for the stack and (b) what compiler tools to use?
I see there's a forth implementation, which seems to code the stack directly in PIR 23:30
cognominal rillian, have your read parrotblog.org? 23:31
that should answer many of your questions 23:32
rillian the recent tutorials you mean? 23:34
cognominal yes 23:35
Infinoid yes, that's a great starting point
though it does presume some familiarity with perl6
rillian great thanks
cognominal the problem is to get used to the subset supported by nqp. 23:36
rillian is not a perl person
Infinoid is not a number, he is a free womble.
... weird. I initially read that as "* rillian is not a real person"
rillian bias is always with us :) 23:37
23:37 bradleh joined
Infinoid it wasn't intentional! :P 23:37
cognominal maybe people who don't know perl are not for real.. 23:38
rillian anyway, so you'd recommend nqp over the regex stuff?
cognominal nothing is real but perl
Infinoid "the regex stuff" meaning PGE, I'm guessing?
rillian yeah, that
purl Sure, that.
cognominal you use both
rillian hrm. I seem to be missing some big picture still 23:40
cognominal you have a grammar file which defines the grammar and the action file in NQP which defines that associated action
s/action/actions/
rillian ok, so parser in PGE and the associated implementation in NQP
cognominal it is like a yacc file where you have separated the grammar rules from the associated actions
so you have two files 23:41
Infinoid rillian: yes
the grammar breaks down your syntax, NQP is where you implement your keywords and operators and such
cognominal ome neat thing about it is that you can have an action file for a compiler, a second one for a beautifier and so on 23:42
... with the same grammar
rillian ok, and you could also implement the operators in PIR directly, NQP is just higher level?
cognominal yes
rillian thanks 23:43
rillian also isn't an language person :)
cotto_work is her talk recorded anywhere?
Infinoid we have several example languages in the subversion, using various combinations of these tools
rillian so this is all new to me
Infinoid subversion *repo*
rillian cotto_work: there was a guy recording and selling DVDs at the event
I've not seen anything posted online
cognominal A good way to learn is to read compiler/nqp. So you get to learn the grammar of the language you will use for actions 23:45
rillian ok, I see. You call pge on grammer.pg to compile the grammar pir 23:49
nqp on actions.pm to generate the actions pir 23:50
and then dynpmc.pl merges the two
and npq and pge are both parrot hosted? 23:51
cotto_work: looks like the slides are available at www.lohutok.net/talks/compiler_tools.pdf 23:53
cognominal yes 23:54
the source are under the compiler/ folder
rillian ok, thanks, that helps a lot
cognominal compilers/nqp/src/Grammar.pg 23:55
compilers/nqp/nqp.pir loads the grammar and the actions 23:57