Perl 6 - the future is here, just unevenly distributed

IRC log for #parrotsketch, 2009-10-20

| Channels | #parrotsketch index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
05:11 particle joined #parrotsketch
12:39 whiteknight joined #parrotsketch
14:25 davidfetter joined #parrotsketch
15:58 NotFound joined #parrotsketch
16:21 Tene * I haven't really done anything recently.  busy at home.
16:21 Tene KTHXBAI
16:23 integral joined #parrotsketch
16:37 darbelo joined #parrotsketch
16:51 whiteknight WHAT I DID LAST WEEK
16:51 whiteknight * Worked on pcc_reapply, helping to fix remaining tests
16:51 whiteknight * All tests appear to pass now. Congrats to all people who helped (and there were many!)
16:52 whiteknight * Looking for optimization potential. Watching as chromatic++ and bacek++ get started on that already
16:52 whiteknight * Put together an initial patch to implement :call_sig. Only works on .param for now. Needs work, but good proof-of-concept.
16:52 whiteknight * Watching lots of LLVM videos, cotto++ for finding them. Reading papers and stuff to prepare more for JIT
16:52 whiteknight * Running lots of tests for the upcoming release.
16:52 whiteknight * Moved Matrixy to Github.
16:52 whiteknight * darbelo++ got it building against installed Parrot. I fixed a few issues stemming from the iterators refactor ("new 'Iterator'", etc)
16:52 whiteknight * Separated out the CBLAS and CLAPACK library bindings into a new Parrot-Linear-Algebra project, also on Github.
16:52 whiteknight * darbelo++, dukeleto++ and desertm4x++ for helping to plan a roadmap for that
16:52 whiteknight * Reading into a lot of mathematics libraries, looking for good candidates to link against and support.
16:52 whiteknight WHAT I WILL DO
16:52 whiteknight * Planning for a new 2D Matrix PMC type, or family of types (depending on optimizations needed) in Parrot-Linear-Algebra. Suggestions/help welcome.
16:52 whiteknight * May include single/double, real/complex, dense/sparse types (long-term goal). Be interested to hear what users want
16:52 whiteknight * Getting Matrixy's test harness to work again (darbelo++ for looking at it already), and then making sure all tests pass (maybe with TODO)
16:52 whiteknight * Help with pcc_reapply merger
16:52 whiteknight * Finish implementing :call_sig properly and apply to trunk
16:52 whiteknight * May need to use :call_sig in Matrixy to support the idiosyncratic argument passing scheme, will evaluate
16:52 whiteknight * Work on frame builder and JIT
16:52 whiteknight WHAT I AM BLOCKING ON
16:52 whiteknight * Not enough time.
16:52 whiteknight EOR
17:03 Tene That's impressively larger than my report. :)
17:03 darbelo Have done: * Updated Matrixy to work with an installed parrot. * Discussed parrot-linear-algebra ideas with Whiteknight. * Wrote a plumage .json file for Matrixy. First module with actual dependencies. * Cleaned up the decnum-dynpmcs build infrastructure a bit more. * All other plans failed with ENOTUITS.
17:03 darbelo Will attempt: * Start the cblas bindings for parrot-linear-algebra. * Get started on that damn DecQuad PMC already. * Kill DecInt, decNumber can't really handle big integers.
17:03 darbelo Blockers: * Tuit Insufficiency.
17:03 darbelo EOR.
17:10 mikehh joined #parrotsketch
17:24 cotto_work What I did:
17:24 cotto_work * added some postmature optimizations to the profiling runcore
17:24 cotto_work - oofib.pir runs about 30% faster under the profiler
17:24 cotto_work - Rakudo "< h i >.join.say" runs about 79% faster under the profiler
17:24 cotto_work - memory usage is somewhat higher, so it's a trade-off
17:24 cotto_work * improve pprof2cg
17:24 cotto_work * whatever else is on the profiling todo list
17:24 cotto_work What could block progress:
17:24 cotto_work * rl
17:24 cotto_work Is this the end of my report:
17:24 cotto_work * Yes.
17:35 mikehh What I did in the last week:
17:35 mikehh * building and testing parrot in trunk and pcc_reapply branch - fixing codetest errors etc.
17:35 mikehh * fixed a couple of test failures and TODOs
17:35 mikehh * pcc_reapply ready for merging after the release? - All tests now seem to pass
17:35 mikehh What I intend to do in the next week:
17:35 mikehh * testing and fixing
17:35 mikehh * review skiped tests to see if any pass or can be TODOed
17:35 mikehh .eor
18:05 chromatic joined #parrotsketch
18:08 japhb DONE IN PLUMAGE:
18:08 japhb * Dependency handling, including remembering installed projects (not the final paradise, but Good Enough For Now)
18:08 japhb * Automatically sudo if parrot_bin directory not writable by user
18:08 japhb * New 'projects' (list known projects) and 'showdeps' (show resolution for all dependencies) commands
18:08 japhb * Plumage metadata dir can now be overridden by conf file (for testing support)
18:08 japhb * Several new functions in Glue.pir and Util.nqp
18:08 japhb * Lots more docs for Glue.pir and Util.nqp
18:08 japhb * More tasks broken out of my head into TASKS
18:08 japhb MAD PROPZ:
18:08 japhb * dukeleto++ # Testing, testing, testing; factor out Util.nqp from main program
18:08 japhb * darbelo++  # Matrixy metadata (and making it buildable against installed Parrot)
18:08 japhb NEXT UP:
18:08 japhb * Importer for proto projects (already WIP)
18:08 japhb * More refactoring into modules
18:08 japhb * Maybe get a chance to blog the last couple weeks of work?  Nah ....
18:08 japhb BLOCKING ON:
18:08 japhb * Day job + sick family.  STILL.
18:08 japhb EOR
18:10 pmichaud joined #parrotsketch
18:10 pmichaud What I did:
18:10 pmichaud * More work on nqp-rx.
18:10 pmichaud * The parsers in nqp-rx are now self-hosting -- i.e., nqp-rx is able to
18:10 pmichaud completely parse and compile its own language grammars
18:10 pmichaud * In other words, it's now entirely independent of PGE.
18:10 pmichaud * More of the p6 regular expression syntax is present, including many
18:10 pmichaud items that were not available in PGE, including
18:10 pmichaud **  zero-width enumerated character assertions
18:11 pmichaud **  binding results to multiple targets
18:11 pmichaud **  subrule calls with multiple arguments   <foo(arg1, arg2)>
18:11 pmichaud * Since the regex engine is PAST based, we automatically get source
18:11 pmichaud code annotations (source line numbers and offsets) and proper
18:11 pmichaud lexical variable scoping
18:11 pmichaud * Created an HLL::Grammar base grammar for deriving HLL grammars.
18:11 pmichaud ** Provides standard rules and actions for common HLL features
18:11 pmichaud like quoted strings, integers, etc.
18:11 pmichaud ** Can be easily extended to allow HLL-specific constructs.
18:11 pmichaud * Developed a new operator precedence parser based on the one in STD.pm
18:11 pmichaud ** Makes it very easy to add custom precedence levels, HLL-specific tokens
18:11 pmichaud ** Currently supports term:, infix:, prefix:, postfix:, circumfix:,
18:11 pmichaud postcircumfix: operators with various associativities and precedence
18:11 pmichaud levels
18:11 pmichaud ** New OPP is far more reusable and extensible than PGE's
18:11 pmichaud * New NQP is being built based on HLL::Grammar
18:11 pmichaud * Designed a number of PAST optimizations to improve constant handling
18:11 pmichaud What I'm doing this week:
18:11 pmichaud * Completing new NQP implementation, including bootstrap
18:11 pmichaud * Starting a new Rakudo branch to switch to nqp-rx based grammar
18:11 pmichaud * Adding more optimizations to PAST
18:11 pmichaud * Implementing smarter/faster protoregexes
18:11 pmichaud * Writing blog posts
18:11 pmichaud * Helping with Rakudo release (Thursday)
18:12 pmichaud * Working on Perl 6 book chapters
18:12 pmichaud What I'm blocking on:
18:12 pmichaud * Not much, yet
18:12 pmichaud * May start blocking on Perl 6 specification issues soon (Parcels & Captures)
18:12 pmichaud EOR.
18:12 japhb pmichaud++ # Fricking awesome
18:12 chromatic I worked on optimizations, specifically rewriting CallSignature to use fewer PMCs.
18:12 chromatic I have more optimizations.
18:12 chromatic That's about it.
18:13 pmichaud I hope to have a new NQP implementation late tomorrow-ish.
18:13 pmichaud Might be sooner, depending on $family
18:13 japhb pmichaud, excellent.  Will I need to change my Makefile (which assumes the existence of 'parrot_nqp'), or will you be swapping out the old NQP in place?
18:13 pmichaud it's a totally new nqp
18:14 pmichaud you'll need to change your makefile
18:14 pmichaud it's very likely that the new nqp won't be part of parrot by default
18:14 japhb OK, np.
18:14 japhb um, less cool.
18:14 japhb I can't depend on anything that's not in Parrot.
18:14 pmichaud there's probably room for some discussion there
18:15 pmichaud the new nqp doesn't want to be restricted by parrot's distribution/deprecation policies
18:15 pmichaud but there's nothing wrong with parrot selecting versions of nqp and bundling them into the release
18:15 japhb wait, let's save this for the main meeting ...
18:15 japhb ... and yes, that was my first idea.
18:17 moritz joined #parrotsketch
18:19 moritz Not much of a report... learned that the Debian people have a summary bot which records lines, and can display it as summaries somehow - will look into making such a bot for #parrotsketch to better track results
18:19 allison joined #parrotsketch
18:20 allison Last week:
18:20 allison - Worked on the PCC branch. Merged in chromatic's optimization of the CallSignature PMC. Spent a couple of days debugging cloned constants tables in threads.
18:20 allison Next week:
18:20 allison - (Today actually) Plan to merge the PCC branch into trunk after the 1.7 release.
18:22 Util joined #parrotsketch
18:23 Util # Done
18:23 Util * Milestone TT#600 - not landed; reschedule for 1.7.
18:23 Util * Nothing else - tuit tunnel collapsed.
18:23 Util # Plan for next week:
18:23 Util * None. All tasks stalled for 1 week.
18:23 Util # Blockers:
18:23 Util * 0 tuits until next Tuesday night, then much available time.
18:23 Util .end
18:28 NotFound What I did:
18:28 NotFound * Just some testing, been busy and disconnected the last two weeks.
18:28 NotFound * Working on a language with javascript-alike syntax, nothing viewable yet.
18:28 NotFound What I will do:
18:28 NotFound * No plan.
18:28 NotFound EOR
18:29 dukeleto joined #parrotsketch
18:29 dukeleto win32 testing in trunk, plz?
18:30 japhb Meeting time
18:30 japhb q1t (topic)
18:31 whiteknight hello
18:31 chromatic Good news, everyone.
18:31 allison hi
18:31 darbelo hola
18:31 Tene What's the good news?
18:31 Util dukeleto: Win32 testing now
18:31 chromatic I'm sending you all to the WORK REALLY HARD FIXING TESTS planet this week.
18:31 whiteknight ditto
18:32 chromatic Let's review last week's goals.
18:32 dukeleto looks like win32 test have been failing for a while. sigh.
18:32 * dukeleto stops interrupting
18:32 chromatic pcc_reapply status?
18:32 Tene done, except for merge
18:33 Tene I should go merge it into trunk right now, while dukeleto is trying to cut the release?
18:33 chromatic I heard a collective eye roll.
18:33 cotto_work hi
18:33 chromatic Tests in trunk?  I unskipped a few and made them pass, but was there much concentrated effort or only a few stabs?
18:33 Tene I didn't even look at trunk all week!
18:34 kj joined #parrotsketch
18:34 Tene So, sounds like no concentrated effort.
18:34 chromatic Agreed.
18:34 chromatic The other priority I saw was a wiki page about immutable strings.  whiteknight?
18:35 mikehh fixed a test or two, fulltest works in trunk and pcc_reapply
18:35 Coke joined #parrotsketch
18:35 whiteknight chromatic: tuit shortage
18:35 whiteknight focused on pcc_reapply instead
18:35 chromatic Alright.
18:35 chromatic Let's talk about this week then.
18:35 chromatic pcc_reapply lands.  Priorities?
18:35 Coke << ENOREPORT >>
18:36 Coke chromatic: partcl still has 3 or so segfaults that could use some love.
18:36 mikehh make sure rakudo etc work after the merge
18:36 mikehh from the parrot side that is
18:36 chromatic Language testing, then.
18:37 Tene rakudo doesn't work against pcc, last I checked.
18:37 pmichaud we expect rakudo to fail against pcc, fwiw
18:37 pmichaud that's okay, it's likely a rakudo issue and not a parrot one.
18:37 darbelo partcl will probably break horribly too.
18:37 japhb "Help rakudo work against pcc"?
18:37 pmichaud +1
18:38 Tene cardinal works against pcc
18:38 Coke darbelo: I wouldn't expect it to.
18:38 pmichaud I'll need to make sure nqp-rx works against pcc (it should)
18:38 Coke (fail)
18:38 darbelo Coke: you never do, and it always does.
18:38 chromatic Any other priorities?
18:39 Tene what are the major tasks for the next release?
18:39 Tene and what priority are they?
18:39 chromatic HLL interoperability.
18:39 Coke note: there are still two tickets for 1.7 in trac.
18:39 chromatic Testing sprint.
18:40 chromatic User mailing list.
18:40 chromatic Struct pruning will continue.  I dragged my feet on part of it until the pcc_reapply merge.
18:40 Tene I plan to work on plumage more.
18:40 moritz do we need a user mailing list? parrot-dev doesn't seem to flooded with user questions right now
18:40 Tene I've said it before, but I'll try to diagnose and describe HLL interop issues.
18:41 Coke moritz: it's an easy thing to setup.
18:41 allison moritz: we put it off for that reason
18:41 mikehh I fixed a lot of documentation codetest failures in pcc_reapply, particularly src/call/args.c - it needs review
18:41 Tene moritz: because there's no parrot-users ml, of course.
18:41 Tene "If you build it, they will spam"
18:41 Tene ;)
18:41 Coke Tene: can't be any worse that spam on parrot-dev
18:41 allison moritz: but 2.0 and after is when we expect to start getting more general users, so that's why we put it in
18:41 moritz Coke: that doesn't mean it's a good idea. Splitting up the community should only be done if necessary
18:41 chromatic Should we have it in place by 2.0?
18:42 allison chromatic: yes, I think so
18:42 Coke moritz: we are currently ``scaring'' away people who just want to use parrot, based on comments from friends.
18:42 pmichaud the problem with parrot-dev as it exists now is that if I'm a user, I don't see a place to ask my question.
18:42 allison sounds like this is the right time, then
18:42 pmichaud normally I would always start with a parrot-users list, and then split off parrot-dev when needed, instead of vice-versa.
18:42 Coke many of our docs are how to /contribute/, which is good for us, bad for our users.
18:42 allison (as in, when we start to see the need, and before it becomes a critical need)
18:43 pmichaud anyway, parrot-users +1
18:43 allison Coke: and yes, agreed, the list is only the start of a focus on users
18:44 moritz +0 from me then ;-)
18:44 chromatic Any objections to starting that list before 1.8?
18:44 Coke chromatic: no.
18:44 mikehh no
18:44 Coke pleae do.
18:44 chromatic Do we have a volunteer?
18:44 Coke I volunteer OSUOSL.
18:44 Coke (I'll open a ticket with them.)
18:45 Coke (claimed tt#608)
18:45 chromatic Okay.
18:46 chromatic It's three months until 2.0.  What is our biggest priority for 2.0?
18:46 allison documentation
18:46 whiteknight JIT
18:46 pmichaud "production ready".  That means performance and stability.
18:46 whiteknight performance=JIT
18:46 allison code cleanup
18:46 allison production ready also means approachable for production users
18:47 Tene and correctness
18:47 allison stability also implies testing
18:47 chromatic I suggest that we pick one of those each month for our weekly development priorities.
18:47 allison (so does correctness)
18:48 allison one each week?
18:48 Tene With our current policies, it's very important to identify and note any desired deprecations.
18:48 whiteknight those sound like things that can be done in parallel: documentation, testing, development
18:48 darbelo q1q
18:48 chromatic Hm.  Let's pick one for this week then.
18:48 chromatic Testing?
18:48 whiteknight Testing
18:48 cotto_work +1 to whiteknight
18:49 cotto_work (about parallel tasks)
18:49 japhb We may want to have a slightly longer trunk freeze in the weeks before 2.0, to really get as stable and clean as we can -- and doing so may ripple back in our timeframe estimates.
18:49 whiteknight not trunk freeze, but core development freeze
18:49 japhb whiteknight, yes, that's actually what I meant, sorry
18:49 whiteknight we'll want to be able to add new tests and new docs and new cleanups in that time
18:49 allison japhb: yes, that's the plan
18:50 japhb allison, excellent
18:50 allison not a freeze exactly, but no major feature development
18:50 cotto_work feature freeze
18:50 allison lots of testing fixes and documentation fixes in the last couple of weeks
18:50 allison and platform fixes
18:50 chromatic Can I suggest: extend our PCC testing this week as a priority?
18:51 allison excellent idea
18:51 darbelo +1
18:51 cotto_work chromatic: pre- or post-merge?
18:51 whiteknight +1
18:51 cotto_work +1 either way
18:52 mikehh either and both
18:52 chromatic Post-merge.  At minimum, someone knowledgeable needs to review t/op/calling.t and a couple of other places, identify gaps, and document them on the wiki so we can concentrate on them.
18:54 chromatic That's a conversation lull.
18:54 chromatic Question time!
18:54 chromatic darbelo?
18:54 darbelo Is nqp-rx going to be merged into parrot or will it leave the nest?
18:55 japhb FWIW, that was the topic I wanted to discuss as well
18:55 pmichaud the new version of nqp will not be completely backwards compatible with existing nqp
18:55 pmichaud it also no longer requires or uses pge
18:55 pmichaud and it's likely to have a revised implementation of the HLLCompiler object (written in NQP instead of PIR)
18:56 darbelo That only argues for a deprecation notice and post-2.0 merge.
18:56 moritz pmichaud: will you import it into the parrot repo?
18:56 pmichaud moritz: I'm not planning to do so
18:56 allison our general move is toward external modules
18:56 moritz darbelo: it can co-exist with current tools
18:56 pmichaud Parrot is welcome to bundle NQP releases, but I'm thinking NQP will live outside of the Parrot repo
18:56 allison so, that's a deprecation notice that it's moving out
18:57 pmichaud well, the existing nqp and pge could be considered deprecated
18:57 moritz pmichaud: so what's the plan? install it via plumage?
18:57 allison it's sensible
18:57 allison moritz: yes
18:57 japhb The problem I have is that NQP (the old one) is effectively moribund.  But I could really use the nqp-rx features, and I expect if I asked for new features beyond that, that's where they'd go.
18:57 pmichaud japhb: there are a couple of possibilities
18:57 japhb moritz, allison: that leaves me in a very sucky place.  Plumage is now written in a dead language.
18:57 allison japhb: yes, the old NQP would be deprecated and removed after 2.0
18:57 pmichaud first, one could use NQP to create the .pir that gets bundled with parrot
18:57 pmichaud similar to how nqp-rx itself bootstraps
18:57 allison (or, after the dependencies are resolved)
18:58 darbelo allison: It's a bootstrap nighmare. We're witing plumage in NQP.
18:58 pmichaud it's not a nightmare to bootstrap
18:58 pmichaud seriously.
18:58 pmichaud here's an approach
18:58 pmichaud write plumage in NQP
18:58 allison darbelo: I didn't know that, but it is possible to work around
18:58 pmichaud compile plumage with NQP
18:58 pmichaud bundled the compiled plumage with parrot
18:58 pmichaud one doesn't need NQP to be present in order to run programs that were compiled with NQP
18:59 pmichaud that's kind of the point.  NQP is a compiler that doesn't have any runtime requirements beyond Parrot.
18:59 pmichaud Which means NQP-compiled programs can be completely standalone.
18:59 allison like lex/yacc
18:59 pmichaud unlike, say Rakudo, where you have to have the runtime library present
18:59 pmichaud yes, exactly like lex/yacc
18:59 japhb pmichaud, isn't there a runtime that I need to have around?  Currently when I create a fakecutable, I still need to load_language 'nqp'
18:59 pmichaud japhb: nqp doesn't have a runtime
18:59 pmichaud or any runtime that it currently has is limited to 'say' and 'print'
19:00 pmichaud (and those will be going away, because NQP will allow direct access to Parrot opcodes)
19:00 japhb pmichaud, so then just copy the last bits of NQP runtime (mostly say, print, and eval) into Plumage's PIR code, yes?
19:00 pmichaud yes
19:00 pmichaud or compile those into libraries that can be bundled with parrot
19:01 japhb OK.
19:01 pmichaud but NQP itself doesn't and never will have its own runtime baggage.  That is its primary purpose.
19:01 pmichaud it's a hll compiler for *Parrot* runtime.
19:01 pmichaud all that said
19:01 darbelo pmichaud: Sorry, then. I was wrong about the NQP bootstrapability.
19:01 pmichaud Parrot will likely want to start bundling the Regex portion of NQP
19:02 * whiteknight goes afk for a bit
19:02 japhb OK, so, the plan is:  Plumage switches to nqp-rx.  Plumage eats any runtime it was inheriting from elsewhere.  Parrot starts shipping a Plumage precompiled to PIR.  About right?
19:02 pmichaud that's not difficult though, because as mentioned above the Regex library can be created as PIR or .pbc and committed standalone
19:02 pmichaud japhb: +1
19:03 allison japhb: I'd say "we ship a bundle that includes Parrot and Plumage"
19:03 japhb allison, what is the functional difference?
19:03 Tene japhb: deprecation policies?
19:03 allison japhb: very little, but yes, release cycles are part of it
19:04 japhb OK, fair enough.
19:04 darbelo So long as they land together I'm happy.
19:04 japhb darbelo, "land together"?  Meaning, both installed when you install a parrot tarball?
19:04 darbelo yep.
19:04 japhb nodnod
19:05 pmichaud "bundle includes Parrot and Plumage"  (and I'd recommend "includes NQP" also)
19:05 japhb OK, we can work out the details of how to bundle the two on #parrot.
19:05 japhb pmichaud++ # that was going to be my next comment!
19:05 chromatic Other questions?
19:05 pmichaud NQP is really lightweight, but I expect it to be at the core of most HLLs
19:05 allison pmichaud: agreed
19:06 pmichaud in fact, I think I have to modify my earlier comment
19:06 japhb ... and thus we come around to the "basic batteries" concept, just not quite as I envisioned it the first time.
19:06 pmichaud NQP does now have a runtime -- that runtime consists of the regex engine, a base HLL grammar, and a base HLL::Compiler object.
19:07 japhb ... and I need the regex engine, definitely.
19:07 pmichaud one can create NQP programs that don't require the runtime, but obviously regexes and compilers will need those additional libraries
19:07 pmichaud but those libraries aren't intimately tied to NQP, any more than other Parrot libraries are.
19:08 japhb We just still need to ship them in the bundle.
19:08 pmichaud agreed.
19:08 pmichaud anyway, I don't see it as being terribly difficult.  In many ways it's much easier.
19:08 pmichaud Because NQP development can proceed separate from Parrot core
19:08 pmichaud and Parrot simply decides which version of NQP to ship that meets its goals
19:09 pmichaud (much like Rakudo decides which version of Parrot to use)
19:09 pmichaud I'm done now.  :)
19:11 Coke <chromatic>Anyone else have any more questions?</chromatic>
19:12 chromatic Let's call that a meeting then.
19:12 cotto_work It's a meeting.
19:12 allison thanks all!
19:12 Coke ~~
19:12 moritz it was a meeting.
19:12 Coke left #parrotsketch
19:12 moritz left #parrotsketch
19:12 PacoLinux left #parrotsketch
19:12 Util left #parrotsketch
19:13 darbelo left #parrotsketch
19:14 NotFound left #parrotsketch
20:11 kurahaupo joined #parrotsketch
20:18 particle1 joined #parrotsketch
20:49 chromatic left #parrotsketch
21:04 kj left #parrotsketch
21:30 Whiteknight joined #parrotsketch

| Channels | #parrotsketch index | Today | | Search | Google Search | Plain-Text | summary