|
Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Test imcc_interfaces and annotations-tree branches Set by moderator on 31 January 2011. |
|||
| bacek_at_work | cotto, let's switch to own dog food instead :) | 00:03 | |
| My YAML::Tiny is good enough already. We just have to decide where is should go "./ext" or "./runtime/parrot/library" | 00:04 | ||
| cotto_work | bacek_at_work: +1 if it's feasible | 00:05 | |
| bacek_at_work | cotto_work, it should be. And I ported show_experimental to nqp already. | ||
| cotto_work | It looks like it'd be a 15 second job for you or a 15 minute job for a normal person. | 00:06 | |
| bacek_at_work | Multi-line scalars aren't parseable yet | ||
| afk # meeting for nex 6 hours | |||
| cotto_work | yuck | ||
| whiteknight | what we really need is a set_pointer VTABLE on the PackFile PMC | 00:07 | |
| cotto_work | bacek_at_work: can you nopaste your port or show_experimental? | 00:08 | |
| whiteknight | and then we need to actually mark the PackFile* in PackFile.mark | ||
| cotto_work | dukeleto: is there a nice way to move an external project into parrot.git while preserving history? | 00:09 | |
|
00:10
sheant left
|
|||
| whiteknight | cant you use a submodule? | 00:10 | |
| cotto_work decommutes | |||
| dalek | rrot: 78d1638 | NotFound++ | t/op/stringu.t: set_addr -> set_label, TT #1857 |
00:24 | |
|
00:29
knewt left
00:30
knewt joined,
kid51_at_dinner is now known as kid51
00:33
knewt left,
knewt joined
00:34
tcurtis joined,
tcurtis left
|
|||
| dalek | rrot: 8f3e664 | NotFound++ | compilers/pct/src/PAST/Compiler.pir: set_addr -> set_label in PAST, TT #1857 |
00:37 | |
| cotto | ~~ | 00:40 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: efd80f0 | NotFound++ | tools/dev/show_deprecated.pl: show something meaningful for deprecation notices without eligible or ticket fields |
00:41 | |
| rrot/whiteknight/imcc_compreg_pmc: 2cdf5dd | nwellnhof++ | / (2 files): Add some debug output to IPv6 test |
|||
| rrot/whiteknight/imcc_compreg_pmc: a35f817 | nwellnhof++ | / (5 files): Remove support for deprecated charset:encoding:"" literals TT #1808 |
00:42 | ||
| rrot/whiteknight/imcc_compreg_pmc: 693ddea | pmichaud++ | compilers/pct/src/POST/Node.pir: [pct]: TT #821 -- Allow POST::Sub to handle parameters :slurpy + :optional and :slurpy + :named + :optional (by treating them as though :optional is not present, as recommended in the ticket). |
|||
| rrot/whiteknight/imcc_compreg_pmc: d774533 | pmichaud++ | / (5 files): Merge branch 'master' of github.com:parrot/parrot |
|||
| rrot/whiteknight/imcc_compreg_pmc: 78d1638 | NotFound++ | t/op/stringu.t: set_addr -> set_label, TT #1857 |
|||
| rrot/whiteknight/imcc_compreg_pmc: 4a37c23 | Whiteknight++ | / (113 files): merge in from master |
|||
| rrot/whiteknight/imcc_compreg_pmc: 0d3be41 | Whiteknight++ | compilers/imcc/pbc.c: update some uses of interp in imcc to imcc->interp |
|||
| rrot/whiteknight/imcc_compreg_pmc: acf50a1 | Whiteknight++ | compilers/imcc/pbc.c: fix a boo-boo I just made |
|||
| whiteknight | ...I hope it doesn't list every commit in the merge | ||
|
00:52
extreme left
|
|||
| bacek_at_work | cotto, nopaste.snit.ch/29613 | 00:56 | |
| cotto | bacek_at_work, thanks. I'll add that later tonight | 00:57 | |
| whiteknight | ha, as soon as I send out that email I fix it so the test suite runs again | 00:58 | |
| it's a massacre, but it runs | 00:59 | ||
| cotto | wfm | ||
| ;) | |||
| whiteknight | all the tests for IMCC, which expect very specific types of behaviors, are all broked | 01:00 | |
| cotto | maybe they need a hug | ||
| whiteknight | a big, angry, violent hug | 01:05 | |
| cotto | yeah, one of those | 01:06 | |
| whiteknight | minus the hug | ||
| dalek | rrot: 1b1f6f7 | nwellnhof++ | / (3 files): Work around GC problem in embed API Cherry-picked from branch gc_dynamic_threshold on bacek's request. See TT #1990 |
01:12 | |
| rrot: 0d912d7 | nwellnhof++ | src/pmc/sockaddr.pmc: Fix GCC warning |
|||
|
01:14
extreme joined
|
|||
| nwellnhof | parrot compiles for me without any warnings, bacek++ | 01:15 | |
| bacek_at_work | nwellnhof, :) | 01:24 | |
| cotto, it should be "//" instead of "||" in show_experimental.nqp | |||
| cotto, %e<note> || ''; | |||
| cotto | noted | 01:25 | |
| bacek_at_work, is pirate self-hosting? | |||
| cotto forgot | |||
| and is there a nice way to build a self hosted version | 01:26 | ||
| dalek | nxed: r769 | NotFound++ | trunk/winxed.winxed: refactor options handling and some other minor changes in non installed driver |
01:32 | |
|
01:32
dmalcolm left
|
|||
| dalek | tracwiki: v15 | nwellnhof++ | BuildWarnings | 01:33 | |
| tracwiki: Resolved by bacek++ | |||
| tracwiki: trac.parrot.org/parrot/wiki/BuildWa...ction=diff | |||
|
02:05
bacek_mobile joined
|
|||
| bacek_mobile | Cotto, not yet | 02:05 | |
| cotto | bacek_mobile, ok | 02:06 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: 9efe75c | Whiteknight++ | frontend/parrot/main.c: Fix pasm files and preprocessing Differentiate between .pasm files and other input files. Call the PASM compiler for the first set, PIR compiler for everything else. Also, implement preprocessing with the -E option |
02:07 | |
| whiteknight | I can't wait till this branch works | 02:11 | |
| it's going to be awesome | |||
| AWESOME I say | |||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#6859) fulltest) at 3_0_0-371-g0d912d7 - Ubuntu 10.10 i386 (g++-4.5) | 02:15 | |
| whiteknight: think it will be ready for 3.1? | 02:16 | ||
| whiteknight | mikehh: It's ready now, if you don't mind ~200 test failures, and a failure to complete the build, and codestd failures which would be dubbed a "crime against C" | 02:17 | |
| mikehh | whiteknight: ha, I will give it a go a bit later | 02:18 | |
| whiteknight | I always appreciate it | ||
| I've been moving so fast just to get the code prototyped and reprototyped that I've been cutting corners | 02:19 | ||
| cotto | is there any reason to use YAML::Tiny as a submodule rather than moving it into runtime/parrot/library ? | 02:25 | |
|
02:26
nwellnhof left
|
|||
| bacek_mobile | Cotto, flip the coin :) | 02:29 | |
| cotto | what's tails mean? | ||
| ;) | |||
| dukeleto, ping | 02:30 | ||
| bacek_mobile | Tails for import into :) | 02:32 | |
| cotto | I suppose I should install git-achievements before attempting this. | 02:33 | |
| bacek_mobile | Achivement unlocked :) | 02:35 | |
| cotto | You currently have: 1 achievements | 02:37 | |
|
02:40
whiteknight left
02:41
Kristaba left
|
|||
| KaeseEs | now all that remains is to write a git plugin for steam | 02:41 | |
|
02:48
bacek_mobile left
|
|||
| cotto | is there a better way to merge the projects than pulling and moving the files into the right places? | 02:49 | |
|
03:05
kid51 left
03:11
extreme left,
extreme joined
|
|||
| plobsing | cotto: you could graft the other project's history into parrot's. that only really makes sense if we are going to be absorbing in stead of referencing it (not sure where we're going with this) | 03:21 | |
| cotto | I'm leaning toward absorbing. | 03:22 | |
| bacek_at_work | plobsing, consume :) | ||
|
03:22
adu left
|
|||
| cotto | the test seems to be going into an infinite loop | 03:32 | |
| bacek_at_work | cotto, "make reconfig" usually helps. | ||
| cotto | magic fiddling fixed it | 03:34 | |
| go figure | |||
| cotto wonders what passover has to do with roadmap goals | 03:38 | ||
| plobsing | there may be fewer available tuits due to religious observances and family gatherings? | 03:40 | |
| KaeseEs | does a tuit ~~ a developer-hour? | 03:41 | |
| cotto | KaeseEs, it comes from the expression "when I get around to it" | ||
| it's essentially usable hacker time | 03:42 | ||
| KaeseEs | oh ho ho | ||
| cotto | now you know | ||
| plobsing | KaeseEs: however there are different grades. do not get ripped off with the square ones. only round tuits are good. | 03:43 | |
| KaeseEs | i'm torn between the nbc "the more you know" and the bill nye "now you know" sfx playing in my head | ||
| dalek | Heuristic branch merge: pushed 30 commits to parrot/yaml-tiny-import by cotto | 03:44 | |
| cotto | 30? | ||
| ah. That includes bacek's history too | 03:45 | ||
| stupid commit-stealing bot | |||
| plobsing | heuristic branch merged saved this channel's remaining shards of sanity | 03:48 | |
|
03:49
bacek left
|
|||
| cotto | plobsing, that too | 03:49 | |
| KaeseEs | looks like i can get a fair amount of work done in 750us, hooray! now to read some more of bacon's stuff | 04:14 | |
| dalek | rrot/yaml-tiny-import: ed5319a | cotto++ | tools/dev/show_experimental.nqp: add show_experimental.nqp from bacek++ |
04:15 | |
| rrot/yaml-tiny-import: d775ac6 | cotto++ | t/library/yaml_tiny.t: add a test to parse api.yaml |
|||
| rrot/yaml-tiny-import: b04920b | cotto++ | api.yaml: fix eligibility good in api.yaml |
|||
| rrot/yaml-tiny-import: 78dfa4d | cotto++ | tools/dev/show_experimental.nqp: add a fix mentioned by bacek++ |
|||
| rrot/yaml-tiny-import: 87a5cc1 | cotto++ | tools/dev/show_deprecated.nqp: add nqp port of show_deprecated |
|||
| KaeseEs | bacek_at_work: is there a branch that has a partial implementation of the sweepless gc bit from the wiki? (don't wanna step on anyone's toes) | 04:16 | |
| dalek | rrot/yaml-tiny-import: 96eb8d0 | cotto++ | t (4 files): remove perl versions of show_* and tests |
04:18 | |
| rrot/yaml-tiny-import: 86347b1 | cotto++ | MANIFEST: manifix |
|||
| plobsing | msg whiteknight: the current build failures in imcc_compreg are due to no longer setting up a context (IMCC abused the current context for constant folding) our alternatives, as I see them, are restore the IMCC context manipulation you've removed OR us constant unfolding (for which there is a prototype waiting in a branch) so that we no longer need the context-abusive constant folder | 04:26 | |
| aloha | OK. I'll deliver the message. | ||
| cotto | It makes me sad that I know the opsc tests by how slowly they run. | 04:27 | |
| plobsing | it makes me sad that I know the opsc tests by how frequently I have to update their ops counts. | ||
| dalek | rrot: afda976 | cotto++ | / (5 files): Merge branch 'master' of git://github.com/bacek/YAML--Tiny into yaml-tiny-import Conflicts: \tREADME |
||
| rrot: 1429108 | cotto++ | / (7 files): shuffle files around, move yaml_ok into yaml_tiny.t |
|||
| rrot: d3f8921 | cotto++ | config/gen/makefiles/root.in: update makefile template for YAML::Tiny |
|||
| rrot: ee1f42b | cotto++ | / (2 files): fix makefile template, add magic to make test pass |
|||
| rrot: ed5319a | cotto++ | tools/dev/show_experimental.nqp: add show_experimental.nqp from bacek++ |
|||
| rrot: d775ac6 | cotto++ | t/library/yaml_tiny.t: add a test to parse api.yaml |
|||
| rrot: b04920b | cotto++ | api.yaml: fix eligibility good in api.yaml |
|||
| rrot: 78dfa4d | cotto++ | tools/dev/show_experimental.nqp: add a fix mentioned by bacek++ |
|||
| rrot: 87a5cc1 | cotto++ | tools/dev/show_deprecated.nqp: add nqp port of show_deprecated |
|||
| rrot: 96eb8d0 | cotto++ | t (4 files): remove perl versions of show_* and tests |
|||
| rrot: 86347b1 | cotto++ | MANIFEST: manifix |
|||
| cotto | Where's that heuristic, again? | ||
| plobsing | heuristic is just a fancy way of saying it doesn't work | 04:29 | |
| dalek | rrot: b7cf765 | cotto++ | MANIFEST.generated: add YAML/Tiny.pbc to MANIFEST.generated |
04:32 | |
| cotto | that's enough out of me | ||
| for now | |||
| msg pmichaud Your build should be back to normal now. | 04:36 | ||
| aloha | OK. I'll deliver the message. | ||
| cotto | seen gerd | 04:38 | |
| aloha | gerd was last seen in #parrot 3 days 8 hours ago joining the channel. | ||
| dalek | TT #1993 closed by cotto++: New api.yaml tests require YAML.pm and List::MoreUtils.pm | 04:42 | |
| TT #1993: trac.parrot.org/parrot/ticket/1993 | |||
| bacek_at_work | cotto, ping | 05:06 | |
| ttbot | Parrot 99576e15 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/4137.txt (tt.taptinder.org/buildstatus/pr-Parrot) | 05:07 | |
| dalek | rrot: 9df28c8 | cotto++ | lib/Parrot/Pmc2c/ (2 files): avoid a rare VTABLE struct leak, fixing tt #898 When a dynpmc calls a dynpmc parent's VTABLE function via SUPER, don't leak a VTABLE struct. This doesn't happen very often. |
05:08 | |
| cotto | bacek_at_work, pong | ||
| bacek_at_work | cotto, what is new policy to remove items from api.yaml? | 05:09 | |
| pmichaud++ closed quite few tickets | |||
| And we probably can create automated tools to clean up api.yaml | |||
| cotto | bacek_at_work, mark them as "old" | ||
| bacek_at_work | cotto, ok. | 05:10 | |
| cotto | bacek_at_work, that's the point. | ||
| It'll be great. | |||
| It feels good to finally get that ticket closed. | 05:12 | ||
| chromatic++ for the suggestion | |||
| dalek | TT #898 closed by cotto++: r40313 introduces a memory leak | 05:15 | |
| TT #898: trac.parrot.org/parrot/ticket/898 | |||
| TT #276 closed by cotto++: t/dynpmc/foo fails | 05:32 | ||
| TT #276: trac.parrot.org/parrot/ticket/276 | |||
| cotto | Wow. Adding a pir-level backtrace to Parrot_confess is a pretty huge yak. | 05:42 | |
| Step 2: add INTERP to every use of PARROT_ASSERT, PARROT_ASSERT_ARG, PARROT_FAILURE and PARROT_ASSERT_MESSAGE. | 05:43 | ||
| That code doesn't get to make as many assumptions as I'd like. | 05:46 | ||
|
05:57
rurban_ joined
05:59
cosimo left
06:00
rurban left,
rurban_ is now known as rurban
06:04
mtk left
06:09
mtk joined
|
|||
| bacek_at_work | cotto, still around? | 06:13 | |
| bacek@illusion:~/src/parrot$ ./parrot-nqp tools/dev/resolve_deprecated.nqp | 06:14 | ||
| Ticket trac.parrot.org/parrot/ticket/843 is closed and can be marked ad 'old' | |||
| Ticket trac.parrot.org/parrot/ticket/1628 is closed and can be marked ad 'old' | |||
| Ticket trac.parrot.org/parrot/ticket/103 is closed and can be marked ad 'old' | |||
| Ticket trac.parrot.org/parrot/ticket/868 is closed and can be marked ad 'old' | |||
| Ticket trac.parrot.org/parrot/ticket/1628 is closed and can be marked ad 'old' | |||
| Ticket trac.parrot.org/parrot/ticket/1635 is closed and can be marked ad 'old' | |||
| dalek | rrot: 26d115c | bacek++ | tools/dev/resolve_deprecated.nqp: Semi-automated deprecations resolver. |
||
| bacek_at_work | Right after my latest commit :) | ||
| Meh, typo... | |||
| dalek | rrot: 8bf4af9 | bacek++ | tools/dev/resolve_deprecated.nqp: Fix typo and add commented out YAML::Dumper sample. |
06:17 | |
| cotto | bacek_at_work, yup | 06:20 | |
| shiny | |||
| bacek_at_work | cotto, we do need YAML::Tiny.dump | ||
| cotto | bacek++ | ||
| I like your laziness | 06:21 | ||
| though before that spreads too far, I want to use "completed" or something more intuitive than "old" | 06:22 | ||
| bacek_at_work | * | ||
| cotto | If only there were a way to do that through some sort of automatic conversion. | ||
| *? | |||
| bacek_at_work | "whatever" (old vs completed) :) | 06:23 | |
| map( -> $_ { $_ eq 'old' ?? 'completed' !! $_ }, @tags) | |||
| right after implementing YAML::Tiny.dump | |||
| .write_string actually | 06:24 | ||
| sorear | bacek_at_work: how essential is POST going to become? | 06:26 | |
| bacek_at_work | sorear, in my dreams? Official way of generating PBC. | ||
|
06:27
jsut_ joined
|
|||
| cotto | sounds fun | 06:31 | |
| What about YAML::Dumper? | |||
|
06:32
jsut left
|
|||
| bacek_at_work | It puts types into yaml. | 06:32 | |
| E.g. "!Hash { ... }" | |||
| which is legal YAML. | |||
| But useless for api.yaml | |||
| cotto | ok | 06:34 | |
| dukeleto | ~~ | ||
| cotto | hio dukeleto | ||
| dukeleto, does the gcc compile farm have any ppc machines? We have some pcc-specific bugs. | 06:35 | ||
| dukeleto | cotto: well, there is one under my desk | ||
| cotto | is it smoking? | 06:36 | |
| dukeleto | cotto: nope, turned off | 06:37 | |
| cotto | too depressing? | ||
| dukeleto | cotto: nah, it has a loud fan but otherwise is a decent machine. it is my old work desktop G5 | ||
| dukeleto presses the ON button | 06:38 | ||
| cotto | BOOM | ||
| dukeleto | cotto: also, i saw on the farm mailing list that they are buying some darwin machines, but they currently don't have any operational | 06:39 | |
| cotto | ok | ||
| dukeleto | cotto: is there a TT ? | 06:41 | |
| cotto: it will take some time to get the machine in smoking order | |||
| cotto | trac.parrot.org/parrot/ticket/1813 for one | 06:42 | |
| dukeleto remembers that he unplugged the keyboard/mouse/monitor and all that jazz | |||
| cotto | I'll start tagging them as I see them. Trac's search is braindead. | 06:43 | |
| dukeleto | cotto: you can assign ppc stuff to me, if you want | 06:44 | |
| cotto | wfm | ||
|
06:52
contingencyplan left,
AzureStone left,
perlite left,
pjcj left,
sorear left,
szabgab left,
jjore left
06:53
contingencyplan joined,
AzureStone joined,
perlite joined,
pjcj joined,
szabgab joined,
jjore joined,
sorear joined
|
|||
| cotto | This is probably insane, but I thought I'd bounce it off someone. | 06:53 | |
| There's a ticket open to get pir backtraces when a assertion failure is triggered. This is tricky because an interp isn't always available and there's none being passed to ASSERT_*(). | |||
| What about adding a static INTERP* variable, initializing/clearing it in make_interpreter/Parrot_really_destroy and using that static variable for backtraces if it's non-null? | |||
| I'm inclined not to do it, but I thought I'd give the idea some air before putting it down. | 06:54 | ||
| dalek | rrot: a65c158 | bacek++ | runtime/parrot/library/YAML/Tiny.pm: Quick hack to write_string from YAML::Tiny. |
06:56 | |
| rrot: 161effc | bacek++ | tools/dev/resolve_deprecated.nqp: Update api.yaml and write it back. |
|||
| rrot: e46cb83 | bacek++ | runtime/parrot/library/YAML/Tiny.pm: Remove debug output from YAML::Tiny._dump |
|||
| rrot: d674bf5 | bacek++ | runtime/parrot/library/YAML/Tiny.pm: Quote string dumped from YAML::Tiny |
|||
| rrot: 70a9039 | bacek++ | runtime/parrot/library/YAML/Tiny.pm: Format yaml without extra spaces. |
|||
| rrot: deb1231 | bacek++ | api.yaml: First self-hosted api.yaml |
|||
| rrot: fbfc2a8 | bacek++ | tools/dev/resolve_deprecated.nqp: Add some progress indication. |
|||
| bacek_at_work | cotto, hooray :) | ||
| cotto | Is that an actual port of write_string? | ||
| cotto looks | |||
| I love multis | 06:58 | ||
| bacek_at_work, how complete is that? | |||
| sorear | cotto: it's totally reasonable to stash the current interp in TLS. Mono does that. | 06:59 | |
| bacek_at_work: Yeah I've read some of your notes... wondering if there is any sane possibility of bypassing POST and directly calling into packfiles | 07:00 | ||
| cotto | sorear, that's what make_hello_pbc.pir does. | 07:02 | |
| especially as the packfile pmcs mature, there's no reason why that wouldn't work. POST is just a nice interface for describing what to do with the pmcs. | 07:07 | ||
| bacek_at_work | cotto, "complete"? Good enough for api.yaml turn-around :) | 07:13 | |
| cotto | That's probably what I was asking. | 07:14 | |
| bacek_at_work | <dalek> parrot: deb1231 | bacek++ | api.yaml: | 07:16 | |
| <dalek> parrot: First self-hosted api.yaml | |||
| parrot: review: github.com/parrot/parrot/commit/deb123171e | |||
| :) | |||
| cotto | I saw. Nice work. | ||
| bacek_at_work | It's parsed-and-dumped api.yaml via YAML::TIny | ||
| cotto | this opens up whole new worlds of laziness for us | 07:19 | |
| bacek_at_work | Indeed :) | ||
| cotto | dukeleto will be quite happy, I'm sure | ||
| dukeleto | bacek_at_work: nice work | ||
| cotto | I | 07:20 | |
| I'd better change "old" to "completed" while it's still possible. | |||
| dukeleto | bacek_at_work: my tools had tests, and you delete them and don't write tests for yours? Bad form, mate. | 07:21 | |
| (even if they were horribly simple tests) | |||
| bacek_at_work | dukeleto, it wasn't me. Blame cotto, mate :) | ||
| dukeleto | bacek_at_work: i just want tests that will fail if api.yaml isn't valid yaml. is that so much to ask? | 07:22 | |
| cotto | dukeleto, the current test fails if api.yaml is bad | 07:23 | |
| I figured that was all you cared about. | |||
| dukeleto | cotto: what test? | ||
| cotto | t/library/yaml_tiny.t | 07:24 | |
| dukeleto | t/library/yaml_tiny.t ? | ||
| ah, ok | |||
| just saw that | |||
| cotto: ok, i retract my sarcasm :) | |||
| it is nice to see the deprecation data being used | 07:25 | ||
| cotto | dukeleto, is api.yaml documented anywhere? | ||
| dukeleto | cotto: a few files name it as the place that deprecated/experimental stuff lives, but nothing documents the policy of how to update it | 07:26 | |
| cotto: we need those docs | |||
| cotto | yup | ||
| dukeleto | cotto: which describe to change a dep to "completed" instead of removing it | ||
| cotto: feel free to write the docs, or assign me a TT to do it. But you have to decide where the docs live, because that is too hard :) | 07:27 | ||
| dalek | rrot: 644b7ad | cotto++ | / (4 files): change "old" to "completed" in api.yaml. We have lots of old deprecations that aren't completed. Hopefully this is more intuitive. |
07:28 | |
| cotto | dukeleto, exactly. bacek_at_work asked about that earlier this evening. | ||
| dukeleto, right next to our docs on debugging Parrot. | 07:30 | ||
| ingy | hi dukeleto | ||
| what's shakin? | |||
| dukeleto | ingy: howdy! | 07:32 | |
| ingy: we just got a YAML::Tiny in Parrot, which is probably the disturbance in the force that you sensed with your Ingy-sense | 07:33 | ||
| ingy | nice! | ||
| dukeleto | ingy: what brings you around these parts? | 07:34 | |
| ingy | my irssi-sense more like it :) | ||
| dukeleto | ingy: ah, yes | ||
| ingy | i blink on terms like yaml | ||
| just happened to have a problem that needed irc | |||
| dukeleto | ingy: what have you been hacking on lately? | ||
| ingy | Cog | 07:35 | |
| dukeleto | ingy: is this related to Cobol on Cogs? | ||
| ingy | :P | ||
| no | |||
| it's a futuristic app/webapp framework | |||
| really an information framework | 07:36 | ||
| but one step at a time | |||
| as a nice aside it is turning out to be the world's fastest webapp framework | |||
| I have never been keen on speed | 07:37 | ||
| but it's cool | |||
| ingy is a speed freak | |||
| dukeleto | ingy: i have been using django lately, and i am impressed at the automatically generated admin interface for database elements | ||
| ingy: i don't think and perl web framework has that | |||
| ingy | mmm | 07:38 | |
| that's a big part of cog actually | |||
| data is typed objects. objects have cog schema class-like definitions. schema objects can generate perl code, python code, js code or admin interfaces :) | 07:40 | ||
| dukeleto | ingy: i like it | 07:41 | |
| bacek_at_work | what about generating on ponies? It's last bit in my World Domination project! | ||
| :) | |||
| dukeleto | bacek_at_work: ponies are generated dynamically at run-time | ||
|
07:42
fperrad joined
|
|||
| dukeleto | bacek_at_work: via pony-passing-style | 07:42 | |
| bacek_at_work | Hey, are ponies enclosed? How you can implement pps without proper enclosure??? | ||
| dukeleto | ingy: what is Cog written in? | ||
| bacek_at_work | dukeleto, perl. search.cpan.org/~ingy/Cog-0.05/lib/Cog.pm | ||
| dukeleto | bacek_at_work: well, assume that a pony is a frictionless sphere. The proof is trivial. | ||
| ingy: which confs will you be at this year? | 07:44 | ||
| cotto | nice to see something from austin_hastings | 07:48 | |
| ingy | dukeleto: OSDC::Taiwan and probably YAPC::NA | 07:52 | |
| dukeleto | ingy: cool. i will hopefully see you at YAPC::NA. I am still thinking about YAPC::EU | 07:56 | |
| for those into Javascript: javascriptweekly.com/ | 08:04 | ||
| cotto | dukeleto, looks interesting | 08:05 | |
| dukeleto | cotto: i am a sucker for free, useful, curated info | 08:07 | |
| cotto | +1 | ||
| dalek | TT #1995 created by gerd++: building a new release is broken; seem to be: "ops2c" is broken | 08:18 | |
| TT #1995: trac.parrot.org/parrot/ticket/1995 | |||
|
08:46
theory left
08:53
cognominal left
09:15
bacek joined
09:16
bacek left
09:33
bacek joined
|
|||
| dalek | rrot/generational_gc: 847eb47 | bacek++ | src/gc/gc_gms.c: Allocate/free work_list for each collecting cycle. work_list can grow dramatically when we collect very old generation. |
09:52 | |
| rrot/generational_gc: eeba54f | bacek++ | src/gc/gc_gms.c: Reorder stats/checks to provide stats before check. |
|||
| rrot/generational_gc: fc8aa8d | bacek++ | src/gc/gc_gms.c: One more fix for manipulating Pointer_Arrays |
|||
| rrot/generational_gc: 704ee69 | bacek++ | src/gc/gc_gms.c: Stylish changes of variable name for consistency. |
|||
| rrot/generational_gc: 54a464b | bacek++ | src/gc/gc_gms.c: Switch from assert to condition in seal_object. We can call seal_object for already sealed objects. E.g. when we propogate from gen1 to gen2. |
|||
| rrot: 29d2c10 | mikehh++ | MANIFEST: re-generate MANIFEST |
10:44 | ||
| rrot: fbe4dd5 | mikehh++ | runtime/parrot/library/YAML/Tiny.pm: missing copyright and fix cuddled else failure |
|||
|
11:29
whiteknight joined
|
|||
| dalek | rrot: 393bb6d | mikehh++ | t/library/yaml_tiny.t: change shebang line so it does not require an installed nqp |
11:40 | |
| rrot: 9a5e8bb | mikehh++ | t/codingstd/perlcritic.t: modify ingnore of nqp shebang |
|||
|
11:43
contingencyplan left
|
|||
| mikehh | bah - s/ingnore/ignore/ in last commit | 11:44 | |
| whiteknight | good morning, #parrot | 11:54 | |
|
12:29
bluescreen joined
12:41
kthakore left
12:59
mtk left
13:00
mtk joined
13:08
gg411 joined
|
|||
| Coke | (git submodules) I keep hearing how much these suck. | 13:16 | |
| atrodo | I find them useful, but not quite as awesome as I think they should be | 13:23 | |
|
13:26
mtk left
13:30
mtk joined
13:38
whiteknight left
13:52
Kapace left
13:57
rurban_ joined
14:00
rurban left,
rurban_ is now known as rurban
14:14
plobsing left
14:37
plobsing joined
14:47
gg411 left
14:51
bluescreen left
|
|||
| Coke TL;DR's kid51's post. | 15:03 | ||
|
15:05
bluescreen joined
15:06
cognominal joined
15:11
jsut joined
15:15
jsut_ left
15:21
whiteknight joined
15:25
jsut_ joined
|
|||
| whiteknight | good morning, #parrot | 15:28 | |
|
15:29
theory joined,
plobsing left
15:30
jsut left
|
|||
| pmichaud | good morning | 15:32 | |
|
15:41
plobsing joined
|
|||
| plobsing | ping whiteknight | 15:42 | |
|
15:43
dalek left
15:44
dalek joined
|
|||
| whiteknight | pong | 15:45 | |
| plobsing | how do you want to resolve the constant folder contexts issue? | ||
| whiteknight | I'm not sure what that issue is | 15:46 | |
|
15:47
bluescreen left
|
|||
| plobsing | it is the segfault building library/Archive/Zip.pbc. the context doesn't have the appropriate registers because IMCC is no longer creating and pushing its own context | 15:47 | |
| the constant folder is "clever" and executes individual ops with registers it populates manually | 15:48 | ||
|
15:51
bluescreen joined
|
|||
| whiteknight | oh, constant folding ops. Right | 15:51 | |
| I thought you were talking about a filesystem folder | |||
| I was trying to add context-building wrappers to the IMCCompiler invoke vtable, and the Parrot_compile_file function | 15:52 | ||
| so they were building wrapper context with 3,3,3,3 registers | |||
| so either I'm not building those contexts like I thought I was, or they are not being found by IMCC | |||
| as a sanity check, can we disable the constant folder? If so, does the build/test suite fair any better? | 15:53 | ||
| plobsing | the constant folder is required to compile PIR. all-const-inputs ops don't get generated by opsc (because they don't really make sense). | 15:54 | |
| whiteknight | right, that's what I thought | ||
| okay. I'm firing up my VM now. I think I am definitely creating contexts for IMCC to use. We need to make sure those are the right ones being found by IMCC | 15:55 | ||
| plobsing | I created a constant UNfolder which fills the same role (it is slightly more general), without playing games with contexts | ||
| whiteknight | where is that? | ||
| plobsing | in constant_unfolding branch | ||
| the intent was to cut back on the ops required (by eliminating some const-variants), but I got pushback on that, so it never got merged | 15:56 | ||
| whiteknight | that's a shame | 15:57 | |
| plobsing | not really, it wasn't much work | 15:58 | |
|
15:58
Kristaba joined
|
|||
| whiteknight | still, it sounds like it could have had nice benefit | 15:58 | |
| plobsing | nah. after dynops_mapping, ops cost less. | 15:59 | |
|
16:00
vmspb joined
|
|||
| plobsing | and there's the issue of going through all the ops and determining which const-variant ops are not much of a win | 16:00 | |
| labour intensive, for little gain. | 16:01 | ||
| but it does provide a nice alternative to the constant folder, whose context-games I've never been fond. | |||
| whiteknight | okay, it looks like I never added in the code to push a new context in IMCCompiler.invoke | 16:02 | |
| I definitely was playing with it last night, I might not have pushed it | |||
| dukeleto | ~~ | 16:06 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: 99e9640 | Whiteknight++ | src/pmc/imccompiler.pmc: create a new context for IMCC to use |
16:08 | |
| whiteknight | plobsing: either that doesn't fix it, or that exposes a different problem. | 16:11 | |
| pmichaud | ...that's very strange, I received kid51's message as a private message to me from kid51, not as a parrot-dev post. | ||
| whiteknight | plobsing: no, definitely different problem. This is a segfault I was seeing yesterday in PCC for some reason | 16:12 | |
| raw_sig, an FIA, has a null ->data field coming in to fill_params | 16:14 | ||
| cotto_work | ~~ | 16:15 | |
| plobsing | that is odd. I don't think IMCC fiddles with the internals of FIAs | ||
| cotto_work | seen gerd | 16:16 | |
| aloha | gerd was last seen in #parrot 3 days 19 hours ago joining the channel. | ||
|
16:16
Psyche^ joined,
Patterner left,
Psyche^ is now known as Patterner
|
|||
| pmichaud | and apparently kid51's isp is blocking email from my servers... :( | 16:16 | |
| whiteknight | plobsing: It's a signature FIA, those are generated and stored as constants, right? | ||
| maybe the PMCs in the PackFile are getting collected | |||
| plobsing | whiteknight: that is entirely possible | 16:17 | |
| we could attach mark routines to the structs we use to pass those around | |||
| whiteknight | imcc is returning raw PackFile* structures. the IMCC compreg is wrapping them up int Eval PMCs, which should be marking I think | ||
|
16:18
gg411 joined
|
|||
| whiteknight | and I am disabling GC before entering IMCC, and reenabling it after we exit IMCC | 16:19 | |
| plobsing | whiteknight: before or after those are rooted in the eval PMC? | ||
| whiteknight | I unblock GC after building the Eval PMC with the PackFile | ||
| github.com/parrot/parrot/blob/99e9...er.pmc#L31 | 16:21 | ||
| it's ugly now while I'm getting the logic in place. It will be refactored eventually | 16:22 | ||
| plobsing | I'm still having the context issue | 16:25 | |
| IMCCompiler.compile_file() does not do the appropriate amount of setup | 16:29 | ||
| nor does IMCCompiler.eval() it would seem. | |||
|
16:30
gg411 left
16:31
gg411 joined
|
|||
| dukeleto | cotto_work: pong | 16:31 | |
| cotto_work tries to remember when he pinged | 16:37 | ||
| dukeleto | cotto_work: i think it was about putting yaml-tiny in a submodule | 16:38 | |
| cotto_work | dukeleto: that seems to be the case. I just pulled it directly in. | ||
| dukeleto | cotto_work: simpler, for now | 16:40 | |
| cotto_work: does that mean i should get rid of the parrot/yaml-tiny repo ? | |||
| whiteknight | plobsing: No, those other methods are very rough prototypes and are not used yet. | ||
| cotto_work | yes | ||
| plobsing | whiteknight: I see that method in my backtrace. it *is* being used | 16:41 | |
| whiteknight | oh wait, yes. compile_file is used during the frontend | ||
| the other methods are not | |||
|
16:42
bluescreen left
|
|||
| whiteknight | let me add in the context nonsense to that method | 16:42 | |
| the interface between IMCC and the rest of libparrot was far too messy, clearly | 16:43 | ||
| dalek | rrot/whiteknight/imcc_compreg_pmc: c8f4100 | Whiteknight++ | src/pmc/imccompiler.pmc: add context setup/teardown in IMCCompiler.compile_file |
16:44 | |
| whiteknight | looks like we're getting a similar segfault still | ||
| yep, same segfault | |||
| plobsing | are we looking at the same thing? it built for me. | 16:46 | |
| whiteknight | I am getting a segfault in ops2c | 16:47 | |
| ./ops2c --dynamic src/dynoplibs/trans.ops --quiet | 16:49 | ||
| plobsing | wfm | ||
| whiteknight | well, blah | 16:50 | |
| what platform you on? | 16:51 | ||
| plobsing | x86_64 linux | 16:53 | |
| whiteknight | that's where I am | 17:01 | |
| ./ops2c --dynamic src/dynoplibs/trans.ops --quiet | 17:02 | ||
| make: *** [src/dynoplibs/trans_ops.c] Segmentation fault | |||
| that's what I get after a realclean and a make | |||
| plobsing | realcleaning now | 17:04 | |
| make -j3 realclean; parrot-config; make -j3 # completes no issues here | 17:09 | ||
|
17:12
AndChat| joined
|
|||
| whiteknight | major wtf | 17:13 | |
| do you have any uncommitted changes? | |||
| or any unpushed ones? | |||
| plobsing | not anything beyond what lex/yacc did on their own | 17:15 | |
| I have an update for some tests (because I see a bunch of them failing) | 17:16 | ||
|
17:16
gg411 left
|
|||
| plobsing | any idea why imcc->frames would not be populated? that seems to be related a number of segfaulty tests. | 17:17 | |
| sorear | once you figure out why imcc is scrambling memory, you might be able to get rid of the GC disable calls | 17:18 | |
| plobsing | nope, that's still pretty far off. the reason IMCC disables GC is that there are a number of places where it keeps PMCs under hash-allocated structs. | 17:19 | |
| s/hash-allocated/heap-allocated/ | |||
| tadzik | ~~ | 17:29 | |
| whiteknight | I call the new imcc_reset function a lot to reset the imcc info struct to after it's been used for a compilation | ||
| doing that seems to fix some failures | |||
| probably not the best for reentrancy | 17:32 | ||
| dalek | rrot/whiteknight/imcc_compreg_pmc: f9fff95 | plobsing++ | t/pmc/pmc.t: skip arg-less-init IMCCompiler test (requires int for init) |
17:37 | |
| whiteknight | I definitely fixed that same test last night | ||
| I must not have pushed a whole batch of commits | |||
| plobsing | imcc_reset() would definitely precipitate the issues I am seeing | 17:38 | |
| cotto_work | Is there a simple way to purposefully trigger an assertion failure from pir? | ||
|
17:39
Tene left
|
|||
| plobsing | cotto_work: that would be a bug in parrot. assertions are only active in debug builds. if it were possible to violate the assumptions in the assertion from PIR, it should be a runtime check, not an assertion. | 17:39 | |
|
17:39
Tene joined
|
|||
| dukeleto | cotto_work: do something wrong :) | 17:40 | |
| plobsing | you could NCI a function which uses ASSERT_ARGS and call it with nulls where they shouldn't go | 17:41 | |
| but such a test would segfault on debug builds | |||
| pmichaud | you could add an assert dynop :-) | ||
| plobsing | whiteknight: could you make sure you have all of your work pushed before I make any more duplicated efforts? | 17:42 | |
| pmichaud | maybe even add it to debug.ops | ||
| cotto_work | pmichaud: that doesn't strike me as a bad idea. | 17:43 | |
| pmichaud | it doesn't? Sorry about that. :) | ||
| I'll try to come with badder ideas in the future :) | |||
| *come up with | |||
| cotto_work | My idea was much worse. I added a special case to sleep so that sleep 1234 asserts 0, | 17:44 | |
| NotFound | The ASSERT_ARGS is supposed to check that the functions are never called that way. Calling such functions via NCI from random places defeat that purpose. | 17:45 | |
| pmichaud | Since we have dynops, we might as well make good use of them :-) | ||
| cotto_work | or bad use | ||
| pmichaud | or that :) | ||
| NotFound | If the invalid call comes from valid pir, either the assertion is wrong or the code that uses the function should check before. | 17:46 | |
| plobsing | I agree with NotFound. PIR should not be able to trigger assertions. | 17:47 | |
| NotFound | wrong -> non null decorating mistake. | ||
| cotto_work | In this case I'm just using it to check code for tt #1273, | 17:48 | |
| sorear | can't PIR currently trigger segfaults? | ||
| NotFound | sorear: supposig that bugs doesn't exist, never. | ||
| dalek | rrot/pir-bt-on-crash: 6421774 | cotto++ | / (3 files): first shot at pir backtraces for assertion failures There are no guarantees about these since assertion failures by definition result from some kind of unexpected internal state. In the worst case this won't provide less debugging information than we already do, and I try to ensure that an infinite loop isn't possible either. |
17:49 | |
| NotFound | We uses to have the hcf opcode to abort, but we got rid of it because of misinterpretations. | 17:50 | |
|
17:50
vmspb left
|
|||
| NotFound | For debugging purposes, you can write a dynamic op that does an invalid call on purpose. | 17:51 | |
| But please don't put that in the parrot repo. | 17:52 | ||
| cotto_work | NotFound: sure. I can do a lot of things if I don't intend on pushing. | ||
| whiteknight | plobsing: everything is as pushed as it's going to be now. | 17:53 | |
| dukeleto | NotFound: atrodo's lorito has an hcf :) | 17:54 | |
| atrodo | dukeleto> just in case | ||
|
17:55
bluescreen joined
|
|||
| NotFound | I'm tempted to add a PLEASE opcode, and a runloop that checks the frequency of PLEASEs and throws excpetions 'Programmer is not polite' and 'Programer is too polite' | 17:55 | |
| atrodo | Isn't that a intercal feature? | 17:56 | |
| NotFound | atrodo: yeah | ||
| cotto_work | NotFound: PLEASE REFRAIN | ||
| sorear | NotFound: hrm. I thought I saw a bug once where somebody used set_addr on a hash, and Parrot crashed, and it was closed WONTFIX "set_addr on hashes is a deeply internal interface and you shouldn't touch it unless you know what you're doing" | 18:01 | |
| pmichaud | truly stable systems don't arise from saying "failures (segfaults) never occur". Stable systems arise from being robust enough to handle them when they inevitably occur. | ||
|
18:01
kid51 joined
|
|||
| NotFound | sorear: that is one of the reasons for redoing set_addr and the like. | 18:02 | |
| pmichaud | Providing optional support for a programmer to investigate "What happens when a segfault occurs?" seems entirely valid to me. But that's just me. | 18:03 | |
| NotFound | Some of the set_ vtables shouldn't be directly invokable from pir. | ||
| pmichaud: IMO the support for that thing are denuggers. | 18:04 | ||
| debuggers | |||
| If we provide direct support someone will insist that it should be tested, and when the tests segfault as expected we'll get "parrot segfaults in test" reports. | 18:05 | ||
|
18:06
plobsing left
|
|||
| nopaste | "kid51" at 192.168.1.3 pasted "t/distro/manifest_generated.t: new test failure" (25 lines) at nopaste.snit.ch/30069 | 18:06 | |
|
18:06
kid51 left
|
|||
| whiteknight | that becomes more of an option if Parrot attempted to handle segfaults | 18:07 | |
| it currently does not attempt to handle it at all | |||
| NotFound | Calling abort trigger the same alarms and log reports than a segfault. | 18:10 | |
| dukeleto | cotto_work: www.codesimplicity.com/post/open-so...implified/ | 18:21 | |
| cotto_work: that is a very cool document that i think we (and others) should discuss | 18:22 | ||
|
18:30
nwellnhof joined
18:31
plobsing joined
18:32
Eclesia joined
|
|||
| Eclesia | hi | 18:32 | |
| cotto_work | dukeleto: looking now | 18:33 | |
| nopaste | "NotFound" at 192.168.1.3 pasted "Error loading YAML/Tiny module" (10 lines) at nopaste.snit.ch/30073 | 18:35 | |
| atrodo | dukeleto++ | 18:36 | |
| cotto_work | dukeleto: that's a good reaffirmation of our method of closing master for no more than a few days. | 18:39 | |
| I'm don't usually realize how accustomed I am to assuming an monthly release schedule. | 18:40 | ||
| NotFound | Maybe will be better to not close it at all. Crate a branch for the release and do only bugfixes on that branch. | ||
| cotto_work | NotFound: a concern I have about that approach is that the release branch wouldn't get as much testing and attention. | 18:42 | |
| Responding quickly to contributions is something that we really need to be better about. GSoC will be a good place to make that happen, if not before. | 18:44 | ||
|
18:47
contingencyplan joined
|
|||
| dukeleto | cotto_work: we could freeze master a few days before a release, only allowing bugfixes, and create a branch called 'integration' that all other work goes on in, then merge integration into master when the release is tagged | 18:57 | |
| cotto_work: so by default, smokers will be testing the master branch | |||
| cotto_work: and developers would be running tests manually in the integration branch | 18:58 | ||
| cotto_work: commits to the 'integration' branch should only be made when master is frozen | |||
| cotto_work: and we just branch 'integration' from the commit that freezes master | |||
| cotto_work: people that know about integration, use it. Others can just wait for master to unfreeze. | 19:00 | ||
| cotto_work: i am not sure it is really necessary, though. | |||
| cotto_work: just about anything bigger than a breadbox should be in a branch | |||
| cotto_work: so people should just work in branches when master is frozen => dead simple | |||
| PerlJam | if people always work in branches, that wouldn't change when master is frozen. | 19:01 | |
| whiteknight | For the 3.3 release, if it isn't tried before then, I'm planning on a similar idea | 19:03 | |
| About a week in advance I'm going to freeze master, cut a release candidate, and allow work to continue on some other branch | 19:04 | ||
| then we can slowly merge in bugfixes or cherry-pick in other commits as needed, but in a limited and controlled way | |||
| cotto_work | whiteknight: I'm interested in seeing how that works. | 19:05 | |
| whiteknight | me to. it will be a fun experiment | ||
| cotto_work | My instinct says it won't work as well as a straight freeze a couple days before the release, but we won't know without trying it. | 19:08 | |
| Besides, most work will still be happening in topic branches. | |||
| It could have no effect at all. | |||
| whiteknight | What I like most about the idea is putting out that release candidate, so we can identifiy release-related issues a week before we actually cut the release | 19:09 | |
| there is always a spate of "the release parrot is missing X" or "the release parrot has this problem on platform X" | |||
| dukeleto | whiteknight: we could attempt to setup a "release smoker" on the compile farm | 19:10 | |
| whiteknight | that may be overkill, if we can identify all the problems with a single candidate | 19:11 | |
| dukeleto | whiteknight: also, OSUOSL just got funding from facebook and are building a fancier version of the gcc compiler farm, and giving access to open source projects | ||
| whiteknight: automated work vs. manual work | |||
| whiteknight | right, i heard about that | ||
| dukeleto | whiteknight: can't value them the same | ||
| whiteknight: yes, it is very exciting, called "Supercell" | 19:12 | ||
| whiteknight: it will have a few OS choices as well | |||
| whiteknight | dukeleto: it's as much work to set up the automated release smoker as it would be to just put out a candidate. Plus, if the candidate is strong, I can reuse much of that on release day | ||
| dukeleto | whiteknight: i ain't stopping you from doing work :) | ||
|
19:12
Eclesia left
|
|||
| dukeleto | whiteknight: but there is the other side, where we have a release smoker build releases, and then we just "choose" one and the release manager blesses it, adds his awesome release message and a few other errata, and BAM. A parrot release,.... | 19:13 | |
| where the release manager doesn't have to follow 50 steps to release | |||
| whiteknight | yes, there are benefits to the technique | ||
| dukeleto | also, Dist::Zilla | 19:14 | |
| we can probably automate our release process 80% with dzil | |||
| whiteknight | dukeachoo: I choose you | 19:15 | |
|
19:15
cotto_work left
|
|||
| PerlJam | I did a proof-of-concept for automating Rakudo Star releases using dzil. It worked quite nicely. | 19:16 | |
| dzil++ | |||
|
19:28
vmspb joined
|
|||
| pmichaud | cotto: +2 on your "Attempting to get backtrace...no guarantees" I really like that. | 19:28 | |
|
19:28
fperrad left
19:29
cotto_work joined
|
|||
| pmichaud | cotto: +2 on your "Attempting to get backtrace...no guarantees" I really like that. | 19:29 | |
| cotto_work | pmichaud: thanks. | 19:31 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: df0c2ce | plobsing++ | compilers/imcc/main.c: can't clean up before error message output |
||
| cotto_work | bacek, atrodo, dukeleto: does any time within the next week sound like a good time to start on the M0 spec? | ||
| dukeleto | PerlJam: i would like to see that code | ||
| cotto_work: i have been thinking about it for a while, we all need to have a brain meld, though | |||
| cotto_work | If only we had a concall line available. | 19:32 | |
| dukeleto | cotto_work: ;) | ||
| cotto_work: i've looked at atrodo's lorito and our spec will have maybe a 70% correspondence with those ops | 19:33 | ||
| cotto_work: the M0 should not have any opcodes that push or pop anything. Everything calls the current continutation with their arguments | 19:34 | ||
| cotto_work | dukeleto: sure. the other 30% is the tricky part | ||
| dukeleto | cotto_work: atrodo's lorito has a stack for argument parsing | ||
| cotto_work: which we won't have | |||
|
19:34
janus joined
|
|||
| dukeleto | cotto_work: i think M0 will be fewer ops than we expect | 19:34 | |
| cotto_work: one that he doesn't have it altering the intstruction pointer, or whatever we call it | 19:36 | ||
| cotto_work: program counter ? | |||
| cotto_work: basically, "advance the bytecode one unit" | |||
| nwellnhof | dukeleto: atrodo's lorito doesn't have a (global) stack for arguments | ||
| PerlJam | dukeleto: well, there's not actually much to it. github.com/perlpilot/rakudo-dist Like I said, it was a proof-of-concept. I did enough that I could see how to proceed if I wanted to continue with it. But then my tuit supply dried up | ||
| dukeleto | nwellnhof: yes, but it has a stack | ||
| nwellnhof | dukeleto: i wouldn't call it a stack | ||
| dalek | nxed: r770 | NotFound++ | trunk/ (2 files): refactor option handling in installed driver |
19:37 | |
| dukeleto | nwellnhof: what is it? | ||
| PerlJam | dukeleto: But I agree with your assessment that you could probably automate 80% | ||
| nwellnhof | it's an array inside the context struct: github.com/atrodo/lorito/blob/mast...ito.h#L238 | ||
| dukeleto | nwellnhof: it doesn't use call-with-current-continuation style | ||
| nwellnhof: but it is close | 19:38 | ||
| nwellnhof | dukeleto: yes, continuation passing wouldn't require many modifications | 19:39 | |
| dukeleto | nwellnhof: we need to make M0 use CPS, and it will probably have to know how to interact with the GC | 19:40 | |
| mark, sweep as well as thaw/freeze | |||
| nwellnhof | we should plan for a GC that can be implemented (mostly) in M0 | ||
| dukeleto | but we don't need those for our first iteration | 19:41 | |
| nwellnhof: interesting idea, but that isn't going to happen before 3.3 | |||
| cotto_work | nwellnhof: I'd love to have that be where we head. | ||
| dukeleto | nwellnhof: we should concentrate on producing something useful for 3.3, but i like that direction. We should definitely keep that in mind. | ||
| nwellnhof | dukeleto: i know we're far away from that, but we should keep it in mind. | 19:42 | |
| dukeleto | nwellnhof: +1 | 19:46 | |
| This is a great introduction to continuations and continuation passing style, with example code in Perl 5: billhails.net/Book/v10.html | 19:49 | ||
| cotto_work: ^^^ | |||
| cotto_work: you might like that, since almost everything else uses something lispy | |||
| cotto_work | I might have seen that. lemme look | ||
| yup. very helpful | 19:50 | ||
| It's an odd experience writing cps perl | |||
| dukeleto | the book implements a Scheme interp in Perl 5. And M0 is not that different from a scheme interp... | ||
| cotto_work | I actually have a hand-written post-it of cps-style fact on my monitor. | ||
|
19:50
jsut joined
|
|||
| dukeleto | cotto_work: i think we can write code that rewrites code to be written in CPS style | 19:50 | |
| cotto_work: we just need to write code in a way that can be transformed | 19:51 | ||
| cotto_work: i am not against having a dedicated DSL for M0, which is processed into C code, like parrot internals | 19:52 | ||
|
19:52
sheant joined
|
|||
| cotto_work | dukeleto: what do you mean "for M0"? | 19:54 | |
| dukeleto | cotto_work: M0 will be implemented in a DSL which gets processed into C | ||
| cotto_work: generating M0 code that is implemented with dynops | 19:55 | ||
| cotto_work: from some easier-to-use DSL | |||
|
19:55
jsut_ left
|
|||
| dukeleto | cotto_work: when converting from the DSL to the actual code, all the CPS tranformations can be done | 19:55 | |
| cotto_work | dukeleto: I see what you're saying. | ||
| dukeleto | cotto_work: so the dev doesn't have to remember to do crazy CPS shenanigans | 19:56 | |
| cotto_work | no reason that won't work | ||
| dukeleto | cotto_work: might be worth thinking about. Writing CPS by hand is quite time-consuming and error-prone | ||
| dalek | rrot/pir-bt-on-crash: 429f7fb | cotto++ | / (2 files): add perdoc to new functions, hopefully with sufficiently scary warnings |
19:57 | |
| dukeleto | cotto_work: but writing code that transforms normal code into CPS style, that seems like a better solution | ||
| rrot/pir-bt-on-crash: 67af9e4 | cotto++ | src/interp/inter_create.c: add an assert_args macro to make codingstds happy |
|||
| cotto_work | dukeleto: wikipedia agrees | ||
| plobsing | M0 should be distasteful. make easy things easy, make hard things possible, make evil/magical things hard. | ||
| cotto_work | plobsing: yes | ||
| dukeleto | plobsing: M0 *will* be distasteful, without having to hand-code CPS in low-level ops | 19:58 | |
| plobsing | M0 = magic-0. no magic. PERIOD. | ||
| dukeleto | plobsing: define magic. | ||
| particle | side effects and dwimmery | 19:59 | |
| plobsing | translating code so you don't have to worry about calling conventions is magic | ||
| cotto_work | dukeleto: anything remotely surprising or complicated | ||
| dukeleto | plobsing: magic at compile time or magic at runtime ? | ||
| plobsing | anywhere | ||
| dukeleto | plobsing: everything i am talking about is pre-compile time | ||
| plobsing | pre-processing? that's fine, so long as it is completely separated from the compiler. | 20:00 | |
| dukeleto | plobsing: yes | ||
| plobsing: everything i am talking about is something akin to pmc2c | 20:01 | ||
| plobsing: just ease boilerplate stuff from the devs | |||
| basically, come up with some C macros that expand into the proper continuation passing style | 20:02 | ||
| i guess it can be as simple as that | |||
| dalek | rrot: 6421774 | cotto++ | / (3 files): first shot at pir backtraces for assertion failures There are no guarantees about these since assertion failures by definition result from some kind of unexpected internal state. In the worst case this won't provide less debugging information than we already do, and I try to ensure that an infinite loop isn't possible either. |
||
| rrot: 429f7fb | cotto++ | / (2 files): add perdoc to new functions, hopefully with sufficiently scary warnings |
|||
| rrot: 67af9e4 | cotto++ | src/interp/inter_create.c: add an assert_args macro to make codingstds happy |
|||
| cotto_work | So much for that heuristic. | 20:03 | |
| ttbot | Parrot 67af9e4f i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/4756.txt (tt.taptinder.org/buildstatus/pr-Parrot) | 20:06 | |
| cotto_work | cl is not a linux tool | 20:08 | |
| nwellnhof | tt machines 7 and 8 are windows although the archname says linux: tt.taptinder.org/cwm/machine/ | 20:11 | |
| cotto_work | What's the right way to decorate a non-pure function that takes no arguments and returns no values so that headerizer will pick it up? | 20:17 | |
| NotFound | cotto_work: maybe the best way is not to write it that way. | 20:20 | |
|
20:22
gg411 joined
|
|||
| dalek | TT #1273 closed by cotto++: Provide a parrot 'backtrace' with assertion failures. | 20:22 | |
| TT #1273: trac.parrot.org/parrot/ticket/1273 | |||
| cotto_work | NotFound: it's an unusual function. | 20:23 | |
| NotFound | I'd like an option to configure without that thing. | 20:24 | |
|
20:25
AndChat| left,
nwellnhof left
|
|||
| cotto_work | NotFound: the backtrace thing? | 20:28 | |
| NotFound | cotto_work: aye | ||
| But I'm not worried to enough to implement that option, son NM. | 20:30 | ||
| s/son/so | |||
|
20:35
vmspb left
|
|||
| whiteknight | cotto_work: PARROT_WHARRGARBL | 20:44 | |
| PARROT_WHARRGARBL void Parrot_zomg_wharrgarble(void) | 20:45 | ||
| headerizer will be cool with it | |||
| dalek | nxed: r771 | NotFound++ | trunk/ (4 files): drop -c options from stages, it was ignored since it started to be handled in |
20:49 | |
|
20:57
Patterner left
20:58
Psyche^ joined,
bluescreen left,
Psyche^ is now known as Patterner
|
|||
| dalek | rrot/generational_gc: 49e1cb2 | bacek++ | src/gc/gc_gms.c: Fix small memory leak. |
21:07 | |
| rrot/generational_gc: 6c7af5b | bacek++ | src/gc/gc_gms.c: Sweep pool starting from older generation. Otherwise we are sweeping freshly moved objects from younger generation. |
|||
| rrot/generational_gc: 0a38586 | bacek++ | src/gc/gc_gms.c: Paint objects moved from dirty_list back to generation white. Otherwise they will not be processed correctly. |
|||
| rrot/generational_gc: 22d25b8 | bacek++ | / (3 files): Introduce pcc_set_context function to avoid direct poking into interp. |
|||
| rrot/generational_gc: 12c257e | bacek++ | src/ (4 files): Use pcc_set_context function. |
|||
| rrot/generational_gc: 85173f3 | bacek++ | src/gc/gc_gms.c: Print total number of collect runs in stats. |
|||
| rrot/generational_gc: 39b4af6 | bacek++ | include/parrot/context.h: Fix set_context macro |
21:09 | ||
| whiteknight | bacek++ | 21:10 | |
| as if he needs the little karma boosts from me | 21:26 | ||
|
21:29
whiteknight left
|
|||
| plobsing | why does PMCNULL.get_pointer return PMCNULL? | 21:29 | |
| that doesn't make sense | |||
|
21:31
bluescreen joined,
bluescreen left
|
|||
| dalek | nxed: r772 | NotFound++ | trunk/winxedst1.winxed: operator %= in stage 1 |
21:33 | |
|
21:34
AndChat| joined
21:38
gg411 left
|
|||
| mj41 | cotto_work: TapTinder machine table copy-paste error fixed. tt.taptinder.org/cwm/machine | 21:52 | |
|
21:57
plobsing left,
rurban_ joined
22:00
rurban left,
rurban_ is now known as rurban
|
|||
| mikehh | cotto_work: ping | 22:06 | |
| couple of g++ errors in last commits | 22:07 | ||
| dalek | nxed: r773 | NotFound++ | trunk/ (2 files): more meaningful error message for some operators not implemented in stage 0 |
22:17 | |
| cotto_work | mj41: thanks | 22:18 | |
| mikehh: pong | |||
| dalek | rrot/generational_gc: e757db7 | bacek++ | src/gc/gc_gms.c: Clean on_dirty_list flag when we move object out of dirty_list. |
22:19 | |
| mikehh | cotto_work: couple of g++ errors in last commits | 22:20 | |
| mikehh nedd to do some updates/backups bbl | 22:23 | ||
| need | |||
| bbl | |||
|
22:24
mikehh left
|
|||
| cotto_work | msg mikehh Thanks for noticing. I'll see what the g++ build does for me. | 22:25 | |
| aloha | OK. I'll deliver the message. | ||
|
22:27
wknight-phone joined
|
|||
| cotto_work | NotFound: what's your concern about the backtrace code? | 22:29 | |
| dalek | rrot: bc265ee | cotto++ | / (2 files): fix the cl and g++ builds |
22:32 | |
| cotto_work | apart from it being hacky | 22:34 | |
|
22:38
cosimo joined
|
|||
| dalek | rrot: 7d35f56 | jkeenan++ | MANIFEST.generated: Re-alphabetize to get a test to pass. |
22:39 | |
| cotto_work | msg mikehh c++ should be "happy" now. (If I were a C++ compiler, I don't think I could ever really be happy.) | 22:40 | |
| aloha | OK. I'll deliver the message. | ||
|
22:41
wknight-phone left
|
|||
| atrodo | cotto_work> (delayed response) I should be good for sometime in the next week | 22:43 | |
| dalek | rrot/generational_gc: b8deafe | bacek++ | src/call/context_accessors.c: Add more asserts. |
22:51 | |
|
22:52
nwellnhof joined
|
|||
| nwellnhof | i'm about to merge nwellnhof/gc_dynamic_threshold now | 22:55 | |
|
22:57
mikehh joined
|
|||
| tadzik | \\o/ | 22:59 | |
| dalek | rrot: 0d519eb | nwellnhof++ | src/gc/api.c: Change GC names to lowercase Print error message if name is invalid. |
23:06 | |
| rrot: d34ec47 | nwellnhof++ | src/gc/gc_ (2 files): Add #define for GC_DEFAULT_MIN_THRESHOLD |
|||
| rrot: 715b2ea | nwellnhof++ | / (29 files): Merge branch 'master' into nwellnhof/gc_dynamic_threshold |
|||
| rrot: be26ad5 | nwellnhof++ | / (23 files): Merge branch 'nwellnhof/gc_dynamic_threshold' |
|||
|
23:07
Themeruta joined,
Themeruta is now known as NotFound_b
|
|||
| NotFound_b | cotto_work: my concern is exposed in the ticket | 23:08 | |
| cotto_work | ok | 23:10 | |
| NotFound_b: The way I see it is that once Parrot_confess is called, things can't get too much worse. At that point, we might as well try to spit out some more useful info as Parrot dies. If something it depends on is broken, it'll just trigger another assertion failure and die anyway. | 23:19 | ||
| We'll see. It's a nice feature but it also has a non-zero chance of unintended side-effects. | 23:20 | ||
| NotFound_b | cotto_work: things always can get much worse, is a law of nature ;) | 23:22 | |
| Or a law of Murphy, at least. | 23:23 | ||
|
23:23
sheant left
|
|||
| cotto_work | NotFound_b: Most indeededly. PDB_get_continuation_backtrace is a sizable bit of code and I shouldn't be too unimaginative about how it could break. | 23:34 | |
| bacek++ for the highly atomic commits | 23:35 | ||
| mikehh | clock? | 23:36 | |
| cotto_work | aloha: clock? | ||
| aloha | cotto_work: LAX: Wed, 15:36 PST / CHI: Wed, 17:36 CST / NYC: Wed, 18:36 EST / UTC: Wed, 23:36 UTC / LON: Wed, 23:36 GMT / BER: Thu, 00:36 CET / TOK: Thu, 08:36 JST / SYD: Thu, 10:36 EST | ||
| cotto_work | good evening, mikehh | 23:37 | |
| mikehh | hi cotto_work | ||
| bacek: bacek_at_work ping | 23:38 | ||
| bacek_at_work | mikehh, barely here | ||
| mikehh | I think runtime/parrot/library/YAML/Tiny.pir needs to be in .gitignore | 23:39 | |
| cotto_work | mikehh: I'll add it | ||
| good catch | |||
|
23:41
hudnix left
23:42
hudnix joined
23:43
hudnix left,
hudnix joined
23:44
hudnix left
23:45
hudnix joined
23:53
whiteknight joined,
Andy joined
|
|||