Parrot 2.4.0 "Sulfur Crest" Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere
Set by moderator on 18 May 2010.
bacek msg dukeleto I've added first working test to pirate. 00:01
purl Message for dukeleto stored.
bacek msg Infinoid Looks like dalek didn't get updates from github.com/bacek/pir. Can you take a look? 00:07
purl Message for infinoid stored.
NotFound plobsing_work: uhhhh... that actually works. 00:08
plobsing_work it compiles, but it compiles down to ".param x :named('x') :slurpy", which doesn't work right
NotFound .param pmc __x__ :named('x') :slurpy 00:11
What's the problem, the ('x') ? 00:12
00:13 jan joined
ash_ msg plobsing Send me an email with your ideas, I am going to think about my plans a bit more and write up a more detailed description of both of the strategies I am looking into, extending the string syntax, and maybe making an object system that represents ctypes 00:14
purl Message for plobsing stored.
ash_ i am heading out, bye 00:15
dalek tracwiki: v134 | bacek++ | Languages 00:16
tracwiki: Rename PIR-nqp into PIRATE
tracwiki: trac.parrot.org/parrot/wiki/Languag...ction=diff
NotFound Ah, I see now, I was not using flat named in the call. 00:17
00:21 jan_ joined
cotto I'm glad something's adopting that name. I was sad when I initially found out that the old Python on Parrot implementation was dead. 00:25
especially if it's in ALL CAPS
because PIRATES are much better than pirates 00:27
bacek Yarrrr!
cotto, can we merge ops_pct? 00:28
Or we need last call for testing?
cotto I need to finish Ops::Renumberer. I'll know that out Saturday morning. 00:29
s/know/knock/
bacek ok
00:29 jan joined
bacek But it's Saturday morning already! 00:29
clock?
purl bacek: LAX: Fri 5:29pm PDT / CHI: Fri 7:29pm CDT / NYC: Fri 8:29pm EDT / LON: Sat 1:29am BST / BER: Sat 2:29am CEST / IND: Sat 5:59am IST / TOK: Sat 9:29am JST / SYD: Sat 10:29am EST /
mikehh my last testing PASSed everything, only some svn:ignore stuff needs setting, probably better after the merge 00:30
bacek mikehh, ok, thanks!
cotto not for me
mikehh cotto: you want me to set that up now? 00:31
cotto I was talking about it not being Saturday.
and I'm looking forward to this evening, so the normal passage of time will suffice. Thanks, though. 00:32
;)
oic
mikehh 'tis for me :-} 1:32 am
cotto yeah. I'm not sure how clean the merge will be.
bacek cotto, no conflicts on merge 00:34
some files lost apparently. 00:35
cotto wheee
bacek Anyway, I can do merge tomorrow.
afk # shopping 00:36
cotto ok. I'll give a shot when I finish.
if I make it explode, you and your git-svn fu can fix it.
dalek nxed: r469 | julian.notfound++ | trunk/winxedst1.winxed:
fix for :named :slurpy parameters in stage 1, plobsing++
00:41
00:43 jan_ joined 00:46 jan__ joined 00:59 theory joined
dalek rrot-linear-algebra: 66dd634 | Whiteknight++ | (3 files):
update setup.pir so that it bypasses distutils test logic and runs my test
01:00
01:10 kid51 joined
cotto ccache++ 01:27
01:30 plobsing joined
dalek kapo: 3089fc4 | whiteknight++ | src/ (2 files):
fix osname problem
01:32
rrot-linear-algebra: 332d297 | Whiteknight++ | tools/nci/ (2 files):
delete unused tools
01:36
rrot-linear-algebra: ea77959 | Whiteknight++ | (2 files):
update setup.pir with new metainformation, and regenerate the plumage .json
rrot-linear-algebra: 9a5b4a2 | Whiteknight++ | PARROTREVISION:
remove that PARROTREVISION file
rrot-linear-algebra: 5726474 | Whiteknight++ | RELEASES:
Add a new RELEASES file which is going to chronicle the releases. Pending a new
Whiteknight As soon as I get a kakapo release that properly targets 2.3.0, I'm going to cut the first releases of PLA and maybe PDS too 01:40
they will target 2.3.0 until 2.6.0 comes out. So it is written, so it shall be done 01:41
kid51 Whiteknight: The README on your site is showing its POD markup. Was that intentional?
Whiteknight kid51: what site?
purl site is perty
Whiteknight purl forget site
purl Whiteknight: I forgot site
kid51 github.com/Whiteknight/parrot-linear-algebra
Whiteknight kid51: It's not really pod. It's like 50/50 01:42
it's also not named *.pod, so github isn't treating it like POD anyway 01:43
I should clean it up some how
kid51 The '==' notation: I'm not familiar with that.
Is POD different in, say, NQP?
Whiteknight yeah, it's a homebrew notation, no standard
kid51 k
Whiteknight it's just me being stupid and lazy
Infinoid msg bacek Judging from the log, it looks like dalek can't handle the fact that your URL on the Languages page uses https. If it's changed to http, I think dalek should pick it up. 01:47
purl Message for bacek stored.
bacek Infinoid, thanks
01:48 eternaleye joined
Whiteknight kid51: I fixed it. And by "fixed" I mean I removed all the POD 01:51
kid51 Yes, much cleaner looking now. Thanks. 01:52
Whiteknight: By any chance are you going to YAPC?
Whiteknight kid51: not this year, unfortunately 01:53
kid51 Damn, looks like not too many Parrot people there. 01:54
Coke hopefully there will be enough perl6 folks to justify a whole room. =-)
dalek rrot-linear-algebra: e1b7644 | Whiteknight++ | README:
fix formatting in README to be less stupid. It's not POD, so don't pretend. The

RELEASES file will have that info.
rrot-linear-algebra: 09b1e63 | Whiteknight++ | README:
remove links to matrixy from README
Whiteknight I will be there in spirit 01:55
but my body will be suffering through another mind-numbing week of work
dalek tracwiki: v135 | bacek++ | Languages 01:56
tracwiki: Change link to http for PIRATE. Infinoid++
purl dalek: that doesn't look right
dalek tracwiki: trac.parrot.org/parrot/wiki/Languag...ction=diff
Whiteknight anyway, I'm off to bed. Goodnight 01:57
dalek rrot-linear-algebra: c09eb14 | Whiteknight++ | RELEASES:
release 0.1 TBA
02:01
rrot: r46870 | bacek++ | branches/ops_pct (12 files):
Merge branch 'master' into ops_pct_local
02:08
rrot: r46871 | bacek++ | branches/ops_pct (6 files):
Resync with trunk manually.
rrot: r46872 | mikehh++ | branches/ops_pct/MANIFEST:
re-generate MANIFEST
Infinoid bacek: Also, dalek might name it something boring like "pir", and I apologise for that. I think it just takes the github project name 02:10
bacek Infinoid, no worries :)
02:15 parthm joined
dalek rrot: r46873 | mikehh++ | branches/ops_pct (5 files):
add svn properties
02:24
r: c6b4880 | bacek++ | (3 files):
Start adding pir directives
02:32
r: 04f4b41 | bacek++ | src/Compiler/Grammar.pm:
Fix handling multiple .local variables.
r: 4974d87 | bacek++ | t/01-parse/02-directives.t:
Add more tests.
bacek Infinoid++ # it works! 02:35
02:43 snarkyboojum joined
dalek r: bed03ac | bacek++ | (2 files):
Implement .lex parsing
02:45
r: 81f3565 | bacek++ | (2 files):
Fix num type. It's 'num', not 'number'
02:48 Andy joined
mikehh bacek: in ops_pct branch ext/nqp-rx/src/gen is no longer used and the generated file is now ext/nqp-rx/src/stage0/nqp-settings.pir 02:49
bacek mikehh, ok. Did I merged it wrong?
mikehh bacek: no idea, just commenting - it used to be ext/nqp-rx/src/gen/settings.pir 02:51
but that was a while back - but the tests seem to pass, just that svn status -u indicates that file ext/nqp-rx/src/stage0/nqp-settings.pir is not under version control 02:52
it gets removed by make realclean - just looking at what svn:ignore(s) to set 02:53
and the gen directory does not now seem to be used 02:54
bacek mikehh, there is no "gen" directory in my checkout... 02:58
03:00 gbacon joined
mikehh bacek: it's on the branch in trac - empty 03:02
bacek mikehh, ah... git-svn can't remove empty directories.
afk # lunch 03:03
dalek r: 07dae10 | bacek++ | t/01-parse/02-directives.t:
Fix one more test for number
03:05
r: d163e47 | bacek++ | (2 files):
Add .const and .globalconst parsign
03:07 Mokurai joined, janus joined
dalek rtcl: 27de49b | coke++ | docs/spectest_skips:
This test no longer segfaults
03:09
rtcl: d04804f | coke++ | src/mathops.pir:
Improve usage errors and nan handling for several procs in ::tcl::mathop
rtcl: 77b55f1 | coke++ | docs/spectest_skips:
mathop no longer segfaults.
rtcl: b617453 | coke++ | docs/spectest- (2 files):
another spectest - reclaim mathop.test
rtcl: 4d309db | coke++ | docs/spectest_skips:
unable to duplicate this segfault now.
rtcl: fe44639 | coke++ | docs/spectest-progress.csv:
this was an optimized run
rtcl: 6ff7de6 | coke++ | docs/spectest- (2 files):
Highest # of passing tests, ever.
rtcl: 28117f5 | coke++ | (16 files):
elminate toInteger(), replace with get_integer vtable
rtcl: 130f71f | coke++ | runtime/builtin/after.pir:
Avoid errors for non-numeric args to [after]
rrot-linear-algebra: 33db2ac | Whiteknight++ | t/ (2 files):
add a run_test utility that allows us to run an individual test file with all
rrot-linear-algebra: ef82b81 | Whiteknight++ | (2 files):
fix one test failure in charmatrix2d, remove Glue.pir from the build
imitivearc: 7b36d1a | (Stefano Dissegna)++ | (4 files):
fixed (+ nil nil), _compile_and_eval instead of _compile
imitivearc: 2e7df8c | (Stefano Dissegna)++ | (7 files):
started testing bootstrapped compiler
imitivearc: 261a6c5 | (Stefano Dissegna)++ | (14 files):
distinction between string repr. and print repr.
imitivearc: cb2c4c2 | (Stefano Dissegna)++ | (6 files):
test passing with arc hosted compiler pass with parrot hosted compiler
imitivearc: e14f1d4 | (Stefano Dissegna)++ | (7 files):
open-socket, socket-accept
imitivearc: 0f0fca6 | (Stefano Dissegna)++ | (11 files):
adapted (almost) to Parrot 1.3.0
imitivearc: ed7d82c | (Stefano Dissegna)++ | (17 files):
adapted to arc3
imitivearc: f79d4de | (Stefano Dissegna)++ | (5 files):
able to load a (slightly modified) version of arc.arc
imitivearc: dfec9b9 | (Stefano Dissegna)++ | (8 files):
load-and-dump
imitivearc: c5d3fc1 | (Stefano Dissegna)++ | src/pmc/arc (2 files):
custom destroy in sym & cons PMCs
9plus: 6358f63 | bernhard++ | README:
Add location of the initial repository.
9plus: 0da37f1 | bernhard++ | config/makefiles/root.in:
remove doesn't have to be recursive
9plus: b5d1b24 | bernhard++ | config/makefiles/root.in:
s/CONDITIONED_LINE/IF/
9plus: d7c71ae | bernhard++ | config/makefiles/root.in:
Slightly saner setup of $(PARROT)
bacek MAKE ME UNSEEN IT
9plus: d50b283 | bernhard++ | (3 files):
Rerun mk_language_shell.pl
03:11
9plus: 886664c | bernhard++ | (8 files):
Adapted file structure to the structure proposed
9plus: 01a5ab9 | bernhard++ | (2 files):
Configure.pl is no longer used, but a second hq9plus.pir is needed.
9plus: 0b160c2 | bernhard++ | lib/Parrot/Test/Hq9plus.pm:
Removed support for testing in 'languages'.
9plus: 262854f | bernhard++ | lib/Parrot/Test/Hq9plus.pm:
Use the installed 'parrot'.
9plus: 5d85288 | bernhard++ | Makefile.in:
Merge with version from current mk_language_shell.pl.
rkdown: a5d1d68 | fperrad++ | (3 files):
reorg tree (step 2: builtins)
rkdown: 050f234 | fperrad++ | (5 files):
reorg (step 3)
rkdown: 4dbe82f | fperrad++ | setup.pir:
add setup.pir (distutils)
rkdown: c83f1b9 | fperrad++ | setup.pir:
add a step spectest
rkdown: bc5f050 | fperrad++ | setup.pir:
chmod +x
rkdown: 6493ed9 | fperrad++ | setup.pir:
use string instead of a array of one string
rkdown: 29d36d7 | fperrad++ | setup.pir:
code tidy
rkdown: 8484de1 | fperrad++ | plumage/markdown.json:
update plumage with setup.pir (distutils)
rkdown: a6922c6 | fperrad++ | setup.pir:
use installable_pbc instead of exe_pbc
rkdown: 8edbc63 | fperrad++ | plumage/markdown.json:
perl is perl5
pir: 05acfec | dukeleto++ | (2 files):
Refactor of the metadata file and setup.pir from fperrad++
pir: 0da1fcc | dukeleto++ | t/harness.pir:
Add the wallclock runtime of the test suite to the end of the run

have created TT#1379 (trac.parrot.org/parrot/ticket/1379) to track this.
pir: 113ea77 | dukeleto++ | t/harness.pir:
Use an FPA instead of a RPA for sprintf
tapir: 481a1ef | dukeleto++ | TODO:
03:14 JimmyZ joined 03:16 dalek joined
dalek r: ddc65ab | bacek++ | src/Compiler/Grammar.pm:
Slightly simplify grammar for .const handling
03:43
r: 5622382 | bacek++ | (2 files):
Add .file, .line and .annotate handling.
r: e6fb4a3 | bacek++ | (2 files):
Implement :multi parsing
03:59 parthm left
dalek r: 72f1878 | bacek++ | (2 files):
Add .HLL, .namespace and .loadlib parsing
04:05
04:05 jsut joined 04:25 jsut_ joined
dalek rrot: r46874 | mikehh++ | branches/ops_pct (2 files):
add some svn:ignore settings
04:42
rrot: r46875 | mikehh++ | branches/ops_pct/ext/nqp-rx/src/stage0:
fix svn:ignore setting
04:59
rrot: r46876 | mikehh++ | branches/ops_pct/MANIFEST.SKIP:
re-generate MANIFEST.SKIP
05:15 theory joined, kiwichris left
mikehh ops_pct branch: All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33986), fulltest) at r46876 - Ubuntu 10.04 amd64 (g++) 05:21
Tene darbelo: I don't understand how "use the unused space in UCS4" actually adresses "distinct compositions are unbounded". Wouldn't that open Parrot to a DOS attack by asking it to store enough distinct compositions to overflow 32 bits? If the plan is just "That's too many, and we don't think it's possible" or something, it would be nice for that to be explicitly stated. 05:32
05:37 particle joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33987), fulltest) at r46876 - Ubuntu 10.04 amd64 (g++) 05:37
dukeleto 'ello 05:41
plobsing hiya duke! 05:46
05:47 eternaleye joined
dalek rrot: r46877 | plobsing++ | trunk/compilers/imcc (2 files):
remove partially implemented bigint syntax
05:49
r: 618c762 | bacek++ | (2 files):
Start adding ops parsing
05:51
r: cc738e9 | bacek++ | (2 files):
Fix parsing ops
rrot: r46878 | plobsing++ | trunk/compilers/imcc (2 files):
remove unused RANKSPEC lex pattern
06:06
plobsing seen moritz? 06:07
purl moritz was last seen on #parrot 10 hours, 31 minutes and 10 seconds ago, saying: then add a pointer to the non-obvious place in the obvious palce
dukeleto plobsing: howdy! i didn't get a chance to play with your patches that tried to fix those IMCC syntax error issues, but i will try to soon 06:10
bacek plobsing, hey! Join PIRATE instead of hacking IMCC :)
pirate?
purl pirate is a career that is washed up these days...and raping and pillaging just doesn't have a good reputation these days.... or www.eff.org/IP/DRM/piratead/CEA_ad.png or www.wired.com/politics/security/mag...li_pirates
bacek pirate is also PIR parser (and compiler) implemented in NQP github.com/bacek/pir 06:11
purl okay, bacek.
bacek pirate?
purl pirate is, like, a career that is washed up these days...and raping and pillaging just doesn't have a good reputation these days.... or www.eff.org/IP/DRM/piratead/CEA_ad.png or www.wired.com/politics/security/mag...li_pirates or PIR parser (and compiler) implemented in NQP github.com/bacek/pir
plobsing bacek: nqp? forget it. I'd rather get "shift/reduce conflict" than "confused at <line that has nothing to do with anything> near <irrelivant code>" 06:13
also I think I've got IMCC's line number bug figured out
also I like being able to address multiple issues at once in stead of the first issue the compiler chokes on 06:14
dukeleto: It's not quite ready for prime-time, but the problem is understood. I just need to figure out why GC doesn't like IMCC. 06:15
nopaste "bacek" at 192.168.1.3 pasted "plobsing: look, we can give some proper reporting :)" (16 lines) at nopaste.snit.ch/20617 06:28
dalek r: e72e5bc | bacek++ | (2 files):
Start parsing PIR syntax sugar
06:29
r: f73f73d | bacek++ | src/Compiler/Grammar.pm:
Add more sugar
r: 6bb525e | bacek++ | src/Compiler/Grammar.pm:
Improve reporting on broken sub definitions. plobsing++ for poiniting out.
plobsing I'm not talking about your parser. I'm talking about the NQP one. I implemented about half of nci_thunk_gen in nqp before getting frustrated and rewriting it in PIR (which I found to be easier) 06:31
bacek strange... Was it nqp or nqp-rx? 06:32
plobsing not sure. this was ~in february-march. whatever core's nqp was then. 06:33
bacek probably old one... 06:35
plobsing bacek: I wish you the best of luck, but I am unwilling to write NQP at this point. If there are tasks in other languages, I'd be happy to assist. 06:39
dalek rrot: r46879 | plobsing++ | trunk/compilers/imcc (2 files):
remove unecessary line number decrement
06:40
06:43 TiMBuS joined
dalek r: c43bd12 | bacek++ | (2 files):
Add handling 'if' with relop
06:48
r: d72fff7 | bacek++ | src/Compiler/Grammar.pm:
Add handling of assignment sugar
07:24
bacek seen pmichaud 07:26
purl pmichaud was last seen on #parrot 11 hours, 55 minutes and 39 seconds ago, saying: .oO( because otherwise stuff leaks out into the Gulf of Mexico )
nopaste "bacek" at 192.168.1.3 pasted "pmichaud, looks like I found some bug in NQP." (26 lines) at nopaste.snit.ch/20618 07:33
bacek msg pmichaud Looks like a "hash ordering bug" in NQP - nopaste.snit.ch/20618 07:34
purl Message for pmichaud stored.
moritz plobsing: ping/pong? 07:36
07:37 iblechbot joined 07:39 fperrad joined
plobsing moritz: I have some info regarding your funky line numbers: you get slightly better results if you indent your PIR (even top level directives) 07:40
moritz that's... weird 07:41
I've managed to find the syntax errors in this particular case
by block-commenting out stuff, and slow putting it back in
plobsing it's because imcc expects to be able to update line numbers at the *beginning* of line. unfortunatly lex won't match ^\\s* unless there is whitespace because it is zero-length and it does longest token.
I'm trying to update imcc to update line number at EOL 07:42
moritz that makes some strange sense 07:43
plobsing lex--
07:43 fperrad_ joined
dalek kudo: 9a15b82 | moritz++ | src/old/ (87 files):
remove src/old/.
07:43
r: 1182c3c | bacek++ | t/01-parse/05-assign.t:
Add (sometimes failing) tests for assign.
07:49
r: c905da8 | bacek++ | src/Compiler/Grammar.pm:
Reorder relop to put longest tokens first.
r: 2ea8de8 | bacek++ | t/01-parse/05-assign.t:
Add tests for binary logical ops
07:53 jsut joined 07:58 chromatic joined
chromatic plobsing, if you move line number incrementing in IMCC to EOL, you break a lot.... 07:58
I moved it away from EOL because that's too unreliable.
With that said, we should be using flex's newline detection now.
plobsing chromatic: I noticed that. I have about half of the regressions fixed 08:00
flex has newline detection?
dalek rrot: r46880 | cotto++ | branches/ops_pct (2 files):
[opsc] parse ops.num more carefully and store the match object for each line
08:02
chromatic Yeah, my patches to IMCC about a month ago switched over to using flex's built-in newline detection. 08:05
plobsing where are they now? 08:07
dalek r: 3bc9345 | bacek++ | (2 files):
Build library for support testing.
08:12
r: 5e04991 | bacek++ | t/01-parse/0 (6 files):
Use common.pbc for testing
chromatic I committed them.
moritz in trunk?
chromatic Before 2.3.0, I think.
r46024 08:13
plobsing that just uses SET_LINE_NUMBER, which I am using. it's just a matter of *when* it gets called 08:15
or (as of right now) *if* it gets called 08:16
chromatic We only need it in a couple of places. 08:19
I think Rakudo's problem is .include with :load or :init.
plobsing "^{WS}*" doesn't get called on lines that don't start with whitespace. 08:20
chromatic Do you have examples that show the problem? 08:22
plobsing TT #1644. there are 2 issues, one of them being this one.
chromatic I see. Is there a reliable start-of-line action? 08:23
plobsing not that I am aware of. the docs say lex attempts to find the longest token, so zero-width assertions can't really stand on their own. 08:24
chromatic Talk about a reason to use Parrot and let these awful old technologies wither. 08:25
08:26 LoganLK joined
moritz why are the line numbers to *high* if line endings are not detected? 08:26
is that a separate bug?
plobsing separate bug. the compilation frame stack is getting messed up as well. that 92 is supposed to be a 98 from the outermost file.
moritz ah 08:27
hilarity at its best
chromatic IMCC was never supposed to be reentrant. 08:29
plobsing I spent all week fixing resource exhaustion bugs on a board that has 2 working input pins and 3 working output relays. this is a walk in the park.
chromatic I am chromatic's broken heart. 08:31
Wait, someone else fixing bugs in IMCC? I did that wrong.
One possibility I never tried is removing SET_LINE_NUMBER from the lexer and adding it to the parser for every statement that must start a line. 08:32
moritz that sounds fragile too
chromatic How so? 08:33
plobsing that could work. but it would take a lot of repeated code. and would likely break more frequently (people don't add new tokens often)
also I'm down to 2 regressions
chromatic People don't add new syntax forms to IMCC often either. 08:34
Besides that, the more regression tests we have, the more likely we'll notice that someone's added a form without updating things.
Also we read diffs.
moritz chromatic: because as soon as you forget it one place you're screwed
chromatic We have that problem already though. 08:35
The nice part about using Flex's newline detector is that numbers don't go wrong in catastrophic failures. 08:36
plobsing in a smaller file with fewer places
moritz would it work with PIR that's not properly indented?
chromatic Maybe so, but... what moritz said.
Our tokenizer isn't line oriented, but our PIR and PASM grammars are.
moritz
.oO( require PIR to be properly indented? )
08:37
plobsing moritz: that's a nifty workaround
nothing more
dalek r: 56e6f81 | bacek++ | src/Compiler/Grammar.pm:
Workaround for bug in nqp - split <binary> into <mathop> and <relop>
r: f588d74 | bacek++ | t/01-parse/05-assign.t:
Add tests for in-place assign.
cotto ccache++
moritz plobsing: I'm not entirely serious, just throwing ideas in 08:38
dalek rrot: r46881 | cotto++ | branches/ops_pct (3 files):
[opsc] bootstrap ops to reflect changes in last sync with trunk
rrot: r46882 | cotto++ | branches/ops_pct/compilers/opsc (2 files):
[opsc] add untested, incomplete and misplaced code to regenerate ops.num and opsenum.h
08:38 bubaflub joined
plobsing If we took newline detection out of the tokenizer, we'd likely have to take everything else that works with EOL as well 08:39
eg: setline, setfile, heredoc, comment, etc
not that that is necessarily a bad thing
chromatic We should keep newline detection in the tokenizer.
However, we should update the line number in the parser. 08:40
plobsing but eol isn't the only token generated by things containing newlines 08:42
and somethings that contain newlines never make it to the parser
chromatic And we have to deal with macros in the lexer. Yeah, we can't remove all of them. 08:43
I think a lot of the problem with IMCC line numbers is that too many places in the lexer try to guess where lines start when that information is only necessary when emitting instructions from the grammar. 08:44
The line number has to be correct when *something* (and that's almost always the parser) calls INS().
Whatever sets the line number has to do it before that point. 08:45
plobsing and if we consistently do it at EOL (and have INS() expect that), we can make it work. 08:46
moritz how do other compilers solve that problem?
chromatic I'm dubious, but open minded. 08:47
EOL might work better now that we're using flex's counter.
moritz, I think other compilers have better implementations than IMCC.
moritz chromatic: in what way better? 08:49
plobsing for one they don't have comments documenting the uncertainty of the authors
moritz in terms of reentrancy?
chromatic IMCC is a proof of concept that was shoehorned into Parrot because PASM is awful to write.
Melvin always intended to clean it up before it reached any point of serious use, but that never happened. 08:50
That's why, for example, parts of the register allocator were O(n^8) and O(n^12).
GeJ clock ?
purl GeJ: LAX: Sat 1:50am PDT / CHI: Sat 3:50am CDT / NYC: Sat 4:50am EDT / LON: Sat 9:50am BST / BER: Sat 10:50am CEST / IND: Sat 2:20pm IST / TOK: Sat 5:50pm JST / SYD: Sat 6:50pm EST /
moritz uh. 08:51
chromatic Fortunately n tends to be pretty low. 08:52
And those may have been O(n^8 / 2), to be charitable. 08:53
08:54 dalek joined
chromatic Regardless, Melvin left comments in the code saying "I know I need separate data types for things that aren't registers", so I know it wasn't his intent to leave those algorithms that awful. 08:55
dalek r: cff58cb | bacek++ | src/Compiler/Grammar.pm:
Remove duplicated <variable> token.
08:57
r: 3c80da4 | bacek++ | src/Compiler/Grammar.pm:
Improve error reporting to report early and close to line with error
r: e422d02 | bacek++ | (2 files):
Introduce special namespace_key token to separate from pir_key.
09:03
r: 09fe992 | bacek++ | (2 files):
Parse 'foo = op bar, baz'
cotto It looks like bacek++ will be obsoleting imcc in an hour or two at this rate 09:06
bacek cotto, about couple of weeks actually :) 09:07
We just need stable PBC format...
cotto what's your plan for dynops?
moritz does compiling miniparrot require compiling any PIR?
bacek Or use IMCC for boostrapping PIRATE 09:08
cotto, no plans.
plobsing moritz: yes, config_lib.pir
purl hmmm... config_lib.pir is saved as ascii.
moritz plobsing: well, that could be avoided
chromatic Other way around, isn't it? 09:09
miniparrot compiles config_lib.pir
plobsing oh right
bacek chromatic, ?
purl chromatic, is that typical of CG-ed (dynamic) languages?
chromatic botsmack
purl shoots up... ahhh
chromatic Great, contributing to the delinquency of an infobot.
plobsing I think I'm hitting an issue with maintaining line number in the tokenizer: the parser needs to do lookahead in places to see the newline before it encounters it. 09:10
chromatic I don't remember running into that. Which tokens? 09:11
plobsing when parsing a straight pirop, after a var you can either hit a comma or a newline 09:12
so you need to read the newline to know to stop parsing the op
chromatic Right.
Does checking for EOL in the grammar work better? 09:13
plobsing not sure. I'm going to try this approach a little longer. I've still got a few tricks
09:14 parthm joined 09:20 LoganLK joined
dalek rrot: r46883 | gerd++ | trunk/NEWS:
add a news; also start news for 2.5.0
09:28
r: cdb3d1b | bacek++ | (2 files):
Add simple .param parsing
09:46
r: 210b442 | bacek++ | (2 files):
Add parsing of param pragmas
r: 5a813ed | bacek++ | src/Compiler/Grammar.pm:
Reorder float_constan and int_constant as workaround for LTM.
r: f203d8f | bacek++ | (2 files):
Implement .return
09:48 Whiteknight joined
dalek r: e4327f1 | bacek++ | src/Compiler/Grammar.pm:
Comment out NYI call parsing.
09:52
Whiteknight good morning, #parrot 09:57
Infinoid hi Whiteknight 10:14
dalek went a little crazy at 23:09 through 23:12 last night... I think github increased the number of items in their rss feeds, so a bunch of older stuff magically appeared. 10:16
dalek emits any commits it hasn't seen before, because when a git merge happens, the new commits don't necessarily have the most recent timestamps.
dalek r: a78db35 | bacek++ | (2 files):
Implement .tailcall parsing
10:17
r: 55e16b4 | bacek++ | (2 files):
Implement call parsing
bacek And that's it for today
Infinoid bacek: you've been busy :) 10:18
bacek Infinoid, I just need something to do while resting from low-level C stuff :) 10:19
dukeleto, ping 10:23
Whiteknight is prepping for an upgrade from ubuntu 9.04 to 10.04 10:28
the transition is probably going to take much of the morning 10:29
bacek Whiteknight, upgrade to Debian! :)
dalek r: 540f376 | bacek++ | (2 files):
Fix handling keys in sugarised assign
Whiteknight Nah, I'm a bug Ubuntu fan 10:30
bacek launching debugger to fight with this bug
Whiteknight which bug? 10:32
bacek YOU! 10:33
Whiteknight ah 10:34
plobsing why do we even handle preprocessing in a pir parser? why can't we have something like <push_location file line> ... <pop_location> and offload this processing onto a dedicated macro engine? 10:35
dalek r: 508a53b | bacek++ | TODO (2 files):
Add simple todo
10:41
11:00 parthm left 11:01 gbacon joined 11:13 silug joined
Whiteknight has my install ISO burned, so I'm going to start the reformat. Wish me luck! 11:29
bacek strange... I always upgrade to new version just by calling "aptitude safe-upgrade" 11:30
11:35 zhtx joined 11:36 zhtx left
dalek rrot: r46884 | fperrad++ | branches/ops_pct/runtime/parrot/library/distutils.pir:
[opsc] partial revert of r46858, so restore my work done in r46667 & r46670
11:40
11:46 Coke joined
dalek rrot: r46885 | mikehh++ | branches/ops_pct/compilers/opsc/src/Ops/OpLib.pm:
fix codetest failure - trailing spaces
11:57
mikehh make test takes about twice as long to run in ops_pct branch as against trunk - mainly due to t/compilers/opsc tests 12:21
let me paste my timings 12:23
nopaste "mikehh" at 192.168.1.3 pasted "timing of make test in ops_pct vs trunk" (16 lines) at nopaste.snit.ch/20619 12:24
mikehh there is not much difference in make corevm/make coretest timings (ops_pct branch is about 10 sec longer overall) 12:28
12:36 joeri joined
dalek nxed: r470 | julian.notfound++ | trunk/winxedst (2 files):
new predefined function bytelength
13:05
13:22 protorom joined 13:23 protorom joined
dalek nxed: r471 | julian.notfound++ | trunk/winxedst0.cpp:
codingstd fixes
13:26
13:28 tetragon joined
mikehh ops_pct branch: All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r46885 - Ubuntu 10.04 amd64 (g++) 13:34
Coke plobsing: chromatic Just fixed imcc to NOT updated at EOL, I thought. 13:47
msg plobsing chromatic Just fixed imcc to NOT updated at EOL, I thought. 13:48
purl Message for plobsing stored.
Coke msg plobsing ugh. sent before completing backscroll.
purl Message for plobsing stored.
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33993), fulltest) at r46885 - Ubuntu 10.04 amd64 (g++) 14:09
dalek nxed: r472 | julian.notfound++ | trunk/winxedst1.winxed:
allow specify void result in predefs in stage 1
14:22
15:28 fperrad joined
cotto mikehh, that's not surprising. the opsc tests take about 10s to run. 16:09
16:38 khairul joined 16:42 PacoLinux joined 16:58 JimmyZ joined
JimmyZ parrot roadmap? 17:04
purl rumour has it parrot roadmap is icanhaz.com/parrotroadmap or trac.parrot.org/parrot/roadmap
dalek rrot: r46886 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops (3 files):
[opsc] move op num and experimental calculations out of the parser
17:13
17:34 szabgab_ joined
dukeleto 'ello 17:43
17:47 chromatic joined 17:59 rurban joined 18:07 whiteknight joined
cotto in nqp when using pir:: ops, what does the capitalization of the arg types mean? 18:09
i.e. pir::open__PSs("x","w") vs pir::open__pss("x","w")
dukeleto cotto: is it perhaps the difference between in place modification and returning a value? 18:16
just a guess
dalek nxed: r473 | julian.notfound++ | trunk/winxedst1.winxed:
experimental syntax to insert pir ops inline in stage 1
cotto looks like it's just passed down to the pir compiler directly 18:22
some day nqp will have nice error messages 18:28
I look forward to that day.
18:32 tcurtis joined
dalek rrot: r46887 | fperrad++ | branches/ops_pct/config/gen/makefiles/root.in:
[opsc] typo
18:36
plobsing NotFound++ # that was fast! 18:40
NotFound plobsing: is just a quick idea to start playing, subject to change. 18:41
plobsing NotFound: sure, I'll happily be an early adopter 18:42
NotFound You can be *the* early adopter, I haven't used it yet other than for testing. 18:43
dalek rrot: r46888 | fperrad++ | branches/ops_pct/MANIFEST.generated:
[opsc] typo
18:53
Coke cotto: there is a page describing all the pir::opcode__IDSFDSF 18:56
digging... 18:58
trac.parrot.org/parrot/wiki/NQPDocs
cotto coke++ 19:00
nice
19:06 lucian joined
dalek rrot: r46889 | cotto++ | branches/ops_pct/compilers/opsc (4 files):
[opsc] add Ops::Renumberer to Ops::File, add code to regenerate ops.num and opsenum.h
19:10
rrot: r46890 | cotto++ | branches/ops_pct/include/parrot/opsenum.h:
[opsc] add generated opsenum.h
nxed: r474 | julian.notfound++ | trunk/examples/redir.winxed:
example of inline pir ops
19:21
rrot: r46891 | cotto++ | branches/ops_pct (2 files):
[opsc] fix ops.num regeneration check, regenerate opsenum.h
19:27
19:27 tetragon joined
cotto ops_pct will be ready for final testing in a minute or two 19:33
19:33 lucian joined
whiteknight nice 19:39
cotto might well be broken but it wfm ;) 19:40
ready now 19:43
dalek rrot: r46892 | cotto++ | branches/ops_pct (15 files):
sync branch with trunk
19:44
cotto A good test would be to add/remove an op and see if everything still works. 19:45
I should do that. 19:47
chromatic class 'File' not found for parallel build 19:52
perhaps pbc_to_exe should depend on that dynop 19:53
Or dynpmc, as it is. 19:54
cotto I've seen some parallel build goofs in trunk too.
adding an extra core op seems to work fine with only make bootstrap-ops 19:55
or does it 19:56
dalek rrot: r46893 | chromatic++ | trunk/config/gen/makefiles/root.in:
[config] Added File PMC dependency to pbc_to_exe Makefile rule.
20:01
20:19 Mokurai1 joined
cotto found the wrong way to reduce the number of ops in parrot 20:23
plobsing cotto: care to elaborate?
cotto that sync with trunk somehow severely truncated ops.num 20:24
plobsing svn - the ultimate ops killer 20:25
cotto srsly
20:26 LoganLK joined
cotto nm. my code is doing it, not the sync 20:27
plobsing I blame svn anyways
I'm considering spliting heredocs/comments/(everything IMCCs lexer does that isn't tokenization) out into a separate component sitting in front of the lexer. any advice on what tool I could use for that? 20:28
cotto the emitter test seems to be what's triggering it 20:30
insufficient sandboxing
dalek rrot: r46894 | cotto++ | branches/ops_pct (2 files):
[opsc] untruncate ops.num, die when there's a non-experimental op that's not in ops.num
20:35
rrot: r46895 | plobsing++ | trunk/src/parrot_debugger.c:
imcc decontamination
NotFound plobsing: think that a separate preprocessor is more prone to complicate imcc than to simplify it. 20:38
plobsing you're probably right. it just feels like IMCC's parser does two things and does them poorly
s/parser/lexer/ 20:39
NotFound plobsing++ decontamination 20:42
plobsing ( imcc's parser does many more things poorly ;-) ) 20:44
chromatic I've never reached the point where fixing archtectural flaws in IMCC seemed worthwhile. 20:50
dalek rrot: r46896 | tcurtis++ | branches/gsoc_past_optimization (6 files):
Fixed props and added PAST::Transformer for changing the tree.
20:51
rrot: r46897 | plobsing++ | trunk (9 files):
remove PARROT_EXPORT statements from imcc
plobsing cleanliness is worthwhile for me - I find it makes it easier to fit in my head 20:54
chromatic I'm all for cleanliness, but unless cleaning it up is in service of adding a feature or fixing a bug, I've never found it worthwhile for me to do. 20:55
Given the (false dilemma) choice between cleaning up IMCC and replacing IMCC with something from Lorito, I prefer the latter. 20:56
plobsing feature: cleaning up imcc's tight coupling makes it easier to rip out
dalek rrot-linear-algebra: 0afc3ad | Whiteknight++ | t/ (2 files):
be realistic, the current kakapo installs to library/library/*
rrot-linear-algebra: d8bbd63 | Whiteknight++ | RE (2 files):
Fix README, Be more honest in RELEASES
plobsing parrot it too tightly coupled to IMCC ATM
whiteknight agreed
chromatic Sure, and I'm not telling anyone what not to work on. 20:57
cotto It'd be nice to separate "run this pir code" and "run this pbc" 20:58
chromatic Yet before you go too far making IMCC nice, I want us all to figure out where we get the most value from our work.
For example, fixing the SymReg struct and its uses seems like less value than decoupling IMCC from Parrot's main(). 20:59
plobsing except for the former tend to be small chunk tasks and the later an insurmountable mountain for me. I'm just trying to get to the point where I can do stuff like that by taking bits of awful out here and there. 21:01
chromatic I wish SymReg were a small chunk task! 21:03
plobsing there are elements that are
chromatic If you can do it, so much the better.
I think cotto's right on the biggest value though. 21:04
cotto from there, bacekbot's PIRATE care replace imcc
but how to get there, beats me 21:05
whiteknight If we had a system like "imcc = get_pir_compiler("IMCC"); p = get_packfile(imcc, argc, argv);" in main, it would be easy to swap out with PIRC 21:06
chromatic I think it's a process. 1) Find necessary function in IMCC 2) Extract non-IMCC bits from function 3) Move into separate function in a smarter place 4) Repeat
whiteknight or, any other frontend for that matter
chromatic I like that.
whiteknight that's because I came up with it :) 21:07
Coke plobsing: // comments break the build for some people.
dalek rrot: r46898 | plobsing++ | trunk/compilers/imcc (3 files):
[IMCC] do_yylex_init() is a duplicate of yylex_init_extra()
21:08
rrot-linear-algebra: c64f3a8 | Whiteknight++ | Configure.nqp:
remove the old Configure.nqp, it isn't used and is confusing
rrot-linear-algebra: 9e56b47 | Whiteknight++ | config/ (2 files):
remove two unecessary files from the old build system
rrot-linear-algebra: f98fd13 | Whiteknight++ | src/ (3 files):
remove more unused files
21:20 jan joined
dalek rrot: r46899 | plobsing++ | trunk/compilers/imcc (2 files):
remove c++ comment
21:24
NotFound plobsing: compilers/imcc/main.c:425: error: 'yylex_init_extra' was not declared in this scope 21:26
bacek Good morning, humans.
cotto hio bacek 21:29
chromatic What if compilers were Objects in the PMC sense?
bacek aloha cotto
how is ops_pct goin'?
chromatic That is, what if IMCC's data were's a big lump hanging off the interp struct?
What if it were PMC attributes?
cotto the emitter test needs to be fixed so it doesn't clobber ops.num, but that's all 21:30
and by "the emitter test", I mean my Ops::Renumberer code
21:30 gbacon joined
plobsing chromatic: getting rid of IMCC_INFO(interp) is high on my priorities list 21:32
chromatic Reentrance helps a lot of things.
If we were to design an ideal interface for a compiler, how would that look?
bacek chromatic, trac.parrot.org/parrot/ticket/599 + PIRATE will solve almost all problems. 21:33
We can use "imcc" to bootstrap only.
(Means we can cut down as much of it as possible)
chromatic When can PIRATE replace IMCC? 21:34
bacek Or have truly _Portable_ PBC.
chromatic, right after #599...
there is couple of weeks work left on PIRATE it self.
plobsing I don't see how that gives us portable pbc
bacek "portable pbc" == "we can keep old PCT pbc" 21:35
in repo
plobsing and when I remove an op? boom?
bacek without separate bootstrapping
moritz is it "talk like a PIRATE day" again?
cotto yarr > yacc 21:36
bacek moritz, almost :)
chromatic flrrrrrrrrrrrx
bacek seen pmichaud 21:37
purl pmichaud was last seen on #parrot 1 days, 2 hours, 6 minutes and 19 seconds ago, saying: .oO( because otherwise stuff leaks out into the Gulf of Mexico ) [May 21 19:30:42 2010]
dalek rrot: r46900 | plobsing++ | trunk/compilers/imcc (3 files):
thread yyscanner through to functions that need it instead of using interp like a global
21:41
r: 1cd329c | bacek++ | src/Compiler/Grammar.pm:
Simplify grammar by using rule instead of token
21:44
r: 2802e79 | bacek++ | (3 files):
Implement keyed access
r: 6603992 | bacek++ | (3 files):
More grammar tweeks
r: 90ddce1 | bacek++ | (2 files):
Little tweeks of grammar
r: 25dd8f6 | bacek++ | (5 files):
Move PIR Compiler under src/PIR directory.
plobsing TT #1644 got warnocked. if noone objects, I'll try to add it tomorrow. 21:47
dalek kudo: 1499f20 | jonathan++ | src/builtins/Code.pir:
Since methods in Code.pir may also get called on Parrot subs, we should be
21:49
p-rx: f2c2f18 | (Bruce Keeler)++ | (5 files):
Add support for interpolation in regexes
21:50
p-rx: 96c2b36 | (Bruce Keeler)++ | (35 files):
Merge remote branch 'upstream/master' into regex-interpolation
p-rx: 3664226 | (Bruce Keeler)++ | src/PAST/Compiler-Regex.pir:
Make it work with Rakduo
p-rx: 0050310 | (Bruce Keeler)++ | src/PAST/Compiler-Regex.pir:
Removed debugging line
p-rx: bbaab49 | (Bruce Keeler)++ | src/HLL/Compiler.pm:
Merge remote branch 'upstream/master' into regex-interpolation
bacek Bruce Keeler? 21:51
moritz bkeeler in #perl6
bacek moritz, thanks 21:52
tcurtis warnocked? 21:58
purl i heard warnocked was en.wikipedia.org/wiki/Warnocked
cotto warnock? 22:01
warnock is <reply>see warnocked
dalek p-rx: b228f8f | (Bruce Keeler)++ | src/stage0/ (4 files):
Make new bootstrap
22:02
bacek ~/src/parrot (ops_pct_local)$ grep Warnock CREDITS
N: Bryan C. Warnock
D: And, yes, {sigh}, *that* Warnock.
D: The Second Perl 6 Summarizer after Bryan C. Warnock
cotto, t/compilers/opsc/07-emitter.t is failing. Known problem? 22:15
dalek rrot: r46901 | moritz++ | trunk/ext/nqp-rx/src/stage0 (4 files):
[nqp-rx] update stage0 files from newest nqp-rx
cotto yes 22:17
bacek ok then
Need help?
cotto no, I just need to do it right the second time instead of the first 22:18
put emitting code in the Emitter, etc ;)
bacek :)
cotto It's annoying but it'll enforce a cleaner separation 22:19
22:28 joeri joined 22:29 brooksbp joined
dalek rrot: r46902 | NotFound++ | trunk/examples/tools/pbc_checker.cpp:
update pbc_checker to show PBC 6.17 encoding info
22:32
22:59 whiteknight joined, Psyche^ joined 23:06 whiteknight joined
dalek kudo: 5cb546e | jonathan++ | (2 files):
Make sure that since we build meta-ops once globally, we install them at the top

issue, so done a little re-ordering.
23:13
23:35 joeri joined