|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | Priorities: review experimental features for promotion or removal, fix 'make html' (talk to Coke), update tutorial (talk to tcurtis), pre-release testing. Set by moderator on 13 July 2010. |
|||
| dalek | tracwiki: v18 | cotto++ | LoritoRoadmap | 00:02 | |
| tracwiki: trac.parrot.org/parrot/wiki/LoritoR...ction=diff | |||
| kudo: f49e91b | jonathan++ | src/core/Mu.pm: .can helper is only defined on Any, not Mu. Last bug I fixed masked this issue |
00:10 | ||
| kudo: 1231260 | jonathan++ | src/glue/subset.pm: Need to attach the originally refined type to the subtype so the signature awesome error and probably much more. |
|||
| kudo: 3139735 | jonathan++ | src/builtins/Num.pir: Toss Int ~~ Num hack; from now on, use Int ~~ Numeric. Good to excise this one |
00:16 | ||
| kudo: ee1b11b | jonathan++ | src/Perl6/Grammar.pm: Port over a couple more errors from STD - mostly copy/paste/test. |
|||
| whiteknight | Who is release manager for 2.6? | 00:36 | |
| cotto_work | coke | 00:37 | |
| whiteknight | ah yes, I just found that | ||
| thanks cotto_work | |||
| mikehh | japhb: ping | 00:40 | |
| boo | 00:41 | ||
| dalek | uaak-tutorial: be8a75b | tcurtis++ | doc/tutorial_episode_3.pod: Add note to briefly explain OPP, terms, protos in Ep. 3. |
||
| mikehh | bah - who else handles plumage | 00:42 | |
| tcurtis | mikehh: Tene, darbelo, dukeleto, pmichaud, whiteknight, and particle appear to have commit bits to it (according to gitorious.org/parrot-plumage/parrot-plumage ). | 00:44 | |
|
00:44
japhb joined
|
|||
| japhb | mikehh, pong | 00:44 | |
| (sorry for the delay, when you pinged my IRC client went crashy-crash-crash-crash) | |||
| cotto_work | I have 49 ops after making the assumption that we want Lorito to be explicit in the types used by its ops to avoid unnecessary type checks in the op bodies. | 00:45 | |
| trac.parrot.org/parrot/wiki/LoritoOps | 00:46 | ||
| It strikes me as undesirable to have ops contain a switch statement (or if) to deal with different types. | 00:47 | ||
| mikehh | japhb: have been running some tests in plumage - ./plumage test <whatever> seems to want smoke not just test | ||
| japhb | mikehh, checking ... | ||
| mikehh | japhb: eg nqp-rx, lua, etc | 00:48 | |
| japhb | Huh. I thought that bug was fixed long ago. | 00:49 | |
| Hmmm. | |||
| tcurtis | cotto_work: It seems like there will need to also be ops for parameter passing. | ||
| mikehh | japhb: actually lua worked but it sent to smolder | ||
| japhb | Does NQP-rx have list assignment yet? | ||
| tcurtis | japhb: Does NQP-rx have assignment yet? | 00:50 | |
| jnthn | I'm not sure NQP-rx will ever have assignment. | ||
| japhb | Bah. | ||
| jnthn | (It's a deliberate design choice that it's not there, not just a not-yet-implemented, as far as I know.) | ||
| japhb | OK, what's the current cleanest way to say: "Copy the contents of this arrayref into this other new arrayref"? | 00:51 | |
| Here's the code I want to copy: | |||
| 143 # Smoke test requires same prereq path as regular test | |||
| 144 %STAGES<smoke> := %STAGES<test>; | |||
| 145 %STAGES<smoke>[-1] := 'smoke'; | |||
| Except not broken. | 00:52 | ||
| :-) | |||
| dalek | tracwiki: v1 | cotto++ | LoritoOps | ||
| tracwiki: initial version based on the parrot-dev thread plus some random junk I thought would be nice | |||
| tcurtis | japhb: pir::clone__PP(@foo); is probably your only option. | ||
| dalek | tracwiki: trac.parrot.org/parrot/wiki/LoritoO...ction=diff | ||
| cotto_work trolls | |||
| tcurtis | s/only/best | ||
| japhb | tcurtis, so change that line 144 to: %STAGES<smoke> := pir::clone_PP(%STAGES<test>); | 00:53 | |
| ? | |||
| tcurtis | japhb: right. | ||
| japhb | OK, thx | ||
| mikehh, I'll have your fix in in a few minutes. | |||
| Have to do something AFK for a couple first. | |||
| jnthn | japhb: Yes, clone was what I was going to suggest too | 00:54 | |
| tcurtis | jnthn: I don't think NQP's likely to get assignment until Parrot does. :) | 00:55 | |
| cotto_work | tcurtis, I pictured that working through something like CallSignatures though I haven't thought through it enough to figure out if there's enough to bootstrap that into existence. | ||
| mikehh | japhb: great - so far tested pirate, lua, nqp-rx (which doesn't test), same for winxed | ||
| cotto_work | I'm sure more ops will be needed but I can imagine fewer than 64 ops working. | 00:56 | |
| tcurtis | cotto_work: eek. that does not sound good for performance. | ||
| cotto_work | Part of the plan for Lorito is to unify VTABLE functions and METHODs. | 00:58 | |
| Figuring out what the path should look like in Lorito would be helpful. | |||
| A LoritoCallingConventions wiki page might be in order. | 01:00 | ||
| tcurtis | cotto_work: I think explicit parameter-passing and receiving ops would have more potential for optimization. We could shave off the object opcodes with that, too(if we can get method calls fast enough). We'd still need some low-level memory access opcodes for implementing allocation, attribute accessors, etc. | 01:01 | |
| cotto_work | tcurtis, please add any ops you have in mind to the wiki page and remove any that are made redundant. | 01:05 | |
| tcurtis | cotto_work, I'll do that later tonight. At the moment, I need to get back to work on Squaak. :) | 01:06 | |
| cotto_work | sure | ||
| it'd be a shame to ship 2.6 with a lta tutorial | 01:07 | ||
|
01:20
leprevost joined
|
|||
| japhb | mikehh, tcurtis, jnthn: Plumage fix pushed, thank you. | 01:23 | |
| mikehh | cotto_work: you got - isgt_[in] - a >= b and isge_[in] - a > b in LoritoOps | 01:25 | |
| japhb: checking | |||
|
01:26
payload1 joined
|
|||
| cotto_work | mikehh, no I didn't. ;) | 01:26 | |
| dalek | rrot-plumage: d5ee97f | japhb++ | src/lib/Plumage/Project.nqp: Plumage::Project: Fix braino causing test action to act like smoke instead; mikehh++ for reporting this, and tcurtis++ and jnthn++ for quick fix |
01:30 | |
| mikehh | japhb: ok that seems to work - at least for winxed and nqp-rx anyway :-} | ||
| japhb | :-) | ||
| cotto_work | nqp makes those brainos too easy. | 01:31 | |
| dalek | rrot: r48117 | Chandon++ | branches/gsoc_threads (13 files): [gsoc_threads] First half of the Task API. |
||
| cotto_work | I've become accustomed to adding + or ~ to values to ensure that I get a copy instead of the original pmc. | ||
| dalek | tracwiki: v2 | cotto++ | LoritoOps | 01:42 | |
| tracwiki: d'oh. mikehh++ for noticing | |||
| tracwiki: trac.parrot.org/parrot/wiki/LoritoO...ction=diff | |||
| rrot: r48118 | Chandon++ | failed to fetch changeset: [gsoc_threads] Merge from trunk. |
01:48 | ||
|
01:52
GodFather joined
|
|||
| dalek | kudo: cf3da00 | jonathan++ | src/Perl6/ (2 files): NYI notes for constant, state and macro. Hopefully we get to at least state by |
01:56 | |
| cotto | ~~ | 02:07 | |
| atrodo | This weekend had a disappointing amount of coding take place | 02:19 | |
| cotto | atrodo, no worries. That seems to be the order of the day. | 02:20 | |
| atrodo | Yea, seemed so it seems | ||
| I always go to the inlaws thinking i'll get some great time to work, and somehow it never seems to work out quite right | 02:21 | ||
|
02:26
payload joined
02:35
janus joined
|
|||
| dalek | rrot: r48119 | cotto++ | branches/gsoc_instrument/t/library/instrument_eventlibrary.t: update test plan |
02:55 | |
|
03:07
plobsing joined
|
|||
| dalek | uaak-tutorial: fe9ecdd | tcurtis++ | doc/tutorial_episode_7.pod: Start transitioning from PGE optable to HLL::Grammar O in Ep 7. |
03:10 | |
| uaak-tutorial: fae64bd | tcurtis++ | doc/tutorial_episode_7.pod: Further updates to Ep. 7. |
|||
| khairul | cotto: ping | 03:13 | |
| cotto | khairul, pong | 03:17 | |
|
03:26
ruoso joined
|
|||
| dalek | uaak-tutorial: efd8502 | tcurtis++ | doc/tutorial_episode_7.pod: Add .O versions of ops. |
03:34 | |
| uaak-tutorial: 78b440b | tcurtis++ | doc/tutorial_episode_7.pod: :pasttype<if> in Ep 7. |
|||
| uaak-tutorial: 9d5c639 | tcurtis++ | doc/tutorial_episode_7.pod: Make relational left-associative. |
|||
|
03:39
LoganLK joined,
brianherman joined
|
|||
| brianherman | hello | 03:39 | |
| i tried to compile parrot on mac os x | 03:40 | ||
| dalek | tracwiki: v7 | cotto++ | KhairulGSOC2010Schedule | ||
| tracwiki: trac.parrot.org/parrot/wiki/Khairul...ction=diff | |||
| brianherman | and i get this error auto:va_step auto::va_ptr died during execution: Unknown va_ptr type at config/auto/va_ptr | ||
| Chandon | brianherman: What compiler are you using? | 03:42 | |
| brianherman | gcc | 03:43 | |
| i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664) | |||
| Chandon | In that case I'm out of even vague ideas. Hopefully someone with a Mac will look in and give you a good answer. | 03:46 | |
| brianherman | oh well | 03:47 | |
| it builds on linux | |||
| so | |||
| meh | |||
|
03:47
darbelo joined
|
|||
| brianherman | i would like it to build on mac os x | 03:47 | |
| but | |||
| darbelo | People have built parrot on OS X before. | 03:48 | |
| brianherman | is there like a library for auto:va_ptr | ||
| or something? | |||
| purl | something is really wrong out there :) | ||
| darbelo | va_ptr is supposed to be autodetected by a configure time probe. | ||
| Is there any output after the failure for you? | 03:49 | ||
| brianherman | the configure fails | 03:52 | |
| paste.pocoo.org/show/239599/ | 03:53 | ||
| That is the output. | |||
| tcurtis | brianherman: what version of OS X do you have? | 03:56 | |
| brianherman | snow leopard | ||
| purl | hmmm... snow leopard is going to make us all buttpirates though just because of the name or gunshowcomic.com/d/20090930.html | ||
| darbelo | You aren't on a ppc box, right? | 03:57 | |
| tcurtis | purl: forget snow leopard | ||
| purl | tcurtis: I forgot snow leopard | ||
| brianherman | nope intel mac c2d | ||
| penryn | |||
| tcurtis | ash_: you around? You have OS X Snow Leopard, right? | 03:58 | |
| ash_ | yea i do | 03:59 | |
| brianherman | ash_: do you have this problem? | ||
| ash_ | one sec, let me read what you were talking about :P | 04:00 | |
| umm | 04:01 | ||
| what is your path? echo $PATH brianherman | |||
| dalek | rrot: r48120 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (3 files): [nqp-rx]: Update nqp-rx with named_assertion refactor. |
||
| brianherman | ping | 04:02 | |
| i have active perl installed | |||
| could that screw things up | |||
| ash_ | ya, sounds like it | ||
| do /usr/bin/perl Configure | |||
| .pl | |||
| brianherman | oh | 04:04 | |
| thanks guys! | |||
| dalek | p-rx: b09bf8d | pmichaud++ | src/Regex/P6Regex/Actions.pm: Refactor named_assertion method a bit. |
||
| p-rx: f7e92b4 | pmichaud++ | src/stage0/ (3 files): Update bootstrap. |
|||
|
04:05
TiMBuS joined
|
|||
| brianherman | oh no i got a segmentation fault | 04:07 | |
| i think im just gonna use linux | |||
| is that a bug | 04:08 | ||
| or something? | |||
| purl | i guess something is really wrong out there :) | ||
| tcurtis | brianherman: most likely. When did you get the segfault? | 04:10 | |
| brianherman | one sec | ||
| make: *** [runtime/parrot/include/config.fpmc] Error 139 | |||
| Command failed (status 512): make install-dev | |||
| ./miniparrot -Iruntime/parrot/include config_lib.pir > runtime/parrot/include/config.fpmc | |||
|
04:11
bacek_mobile joined
|
|||
| darbelo | Ouch. | 04:11 | |
| bacek_mobile | Aloha, humans | ||
| brianherman | hi baeck | ||
| tcurtis | bacek_mobile: Hi. | ||
| bacek_mobile | I'll miss tomorrow ps meeting. It's way too early in Singapore... | 04:12 | |
| hi tcurtis | |||
| sorear | bacekmobile? is that like a batmobile? | 04:13 | |
| bacek_mobile | sorear, even better. Im kind of transformer ;) | ||
| brianherman | heh transformer | 04:20 | |
| they are shooting transformer 3 in chicago | |||
| i almost went to see the set | |||
| but | |||
| i got lazy | |||
| dalek | uaak-tutorial: 8a84280 | tcurtis++ | doc/tutorial_episode_7.pod: Add TODO. |
04:21 | |
| uaak-tutorial: 97252df | tcurtis++ | doc/tutorial_episode_7.pod: Update infix:sym<+> example in Ep 7. |
|||
| uaak-tutorial: 9671c8a | tcurtis++ | doc/tutorial_episode_7.pod: This tutorial is so old that trinary add didn't exist. |
|||
| tcurtis | brianherman: Would you mind submitting a ticket at trac.parrot.org/parrot/newticket for that segfault? | 04:23 | |
| brianherman | oh i did | 04:24 | |
| i just finished | |||
| good night | |||
| tcurtis | That does not look like a segfault... | 04:29 | |
| nevermind | 04:30 | ||
| yes, it does. | |||
| purl | if you say so... | ||
|
04:33
theory joined
04:39
somebody_ joined
|
|||
| dalek | TT #1706 created by brianherman++: Parrot | 04:39 | |
| TT #1706: trac.parrot.org/parrot/ticket/1706 | |||
|
04:41
somebody__ joined
|
|||
| dalek | uaak-tutorial: 736e984 | tcurtis++ | doc/tutorial_episode_7.pod: Fix grammar in Ep7. |
04:45 | |
| uaak-tutorial: c94d857 | tcurtis++ | doc/tutorial_episode_7.pod: Ep7: circumfix:sym<( )> |
04:51 | ||
| uaak-tutorial: 8f2be17 | tcurtis++ | doc/tutorial_episode_7.pod: Update explanatory text for circumfix:sym<( )>. |
04:57 | ||
| uaak-tutorial: 9adba53 | tcurtis++ | doc/tutorial_episode_7.pod: Ep 7: we get to inherit the action method for EXPR. |
05:02 | ||
|
05:04
snarkyboojum joined
|
|||
| dalek | uaak-tutorial: 671cce8 | tcurtis++ | doc/tutorial_episode_7.pod: Ep 7: mention that circumfix:sym<( )> is auto-generated. |
05:08 | |
| uaak-tutorial: 9f9b948 | tcurtis++ | src/Squaak/Actions.pm: Bring back the circumfix:sym<( )> actions. |
|||
| uaak-tutorial: 830e749 | tcurtis++ | src/Squaak/Grammar.pm: Add precedence levels. |
05:32 | ||
| uaak-tutorial: 88d09a4 | tcurtis++ | src/Squaak/Grammar.pm: Add logical ops. |
|||
| uaak-tutorial: 40c0f44 | tcurtis++ | src/Squaak/Grammar.pm: Move logical ops to the end. |
|||
| uaak-tutorial: 40ed067 | tcurtis++ | src/Squaak/Grammar.pm: Add infix:symļæ½<ļæ½. |
|||
| uaak-tutorial: 3a07019 | tcurtis++ | src/Squaak/Grammar.pm: Add prefixes. |
|||
| uaak-tutorial: 117541a | tcurtis++ | src/Squaak/Actions.pm: Generate real PAST::Val nodes for literals. |
|||
| uaak-tutorial: 24a7ac1 | tcurtis++ | doc/tutorial_episode_3.pod: Ep3: add action methods for int and str constants. |
05:38 | ||
| tcurtis | YAY! I'm done with Ep7 for the moment at least! | 05:55 | |
| cotto dances and squawks in honor of tcurtis | |||
| dalek | uaak-tutorial: d729136 | tcurtis++ | doc/tutorial_episode_7.pod: Ep7: Add hint to first exercise. |
||
| uaak-tutorial: 54a3e7e | tcurtis++ | doc/tutorial_episode_7.pod: Ep7: exercise 2 done. |
|||
| uaak-tutorial: 9a5b022 | tcurtis++ | doc/tutorial_episode_7.pod: Ep7: Fix mistake in infix:symļæ½<ļæ½. |
|||
| tcurtis | cotto: Now just episode 8, fixing up some TODOs throughout it, and putting it in svn. :) | 05:56 | |
| cotto | what time is it for you? | 05:58 | |
| purl | cotto: It's nearly six o'clock in the morning where I am. | ||
| cotto | purl, go away | ||
| purl | No, YOU go away, bud. | ||
| tcurtis | cotto: 1 AM. | ||
| dalek | uaak-tutorial: 1a6dcfc | tcurtis++ | doc/tutorial_episode_3.pod: Ep3: remove variables won't be saved between lines of REPL bit, since it's not |
06:01 | |
| uaak-tutorial: b7c5ece | tcurtis++ | src/Squaak/ (2 files): Update example compiler with exercises from Ep7. |
|||
| cotto | any big plans for tomorrow or are you planning on waking up around 1:30 after a long night of tutorial hacking? | 06:04 | |
| dalek | uaak-tutorial: 7a71781 | tcurtis++ | doc/tutorial_episode_8.pod: Ep 8, [',' ...]* -> ** ','. |
06:07 | |
| uaak-tutorial: 89d5cb3 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: hash constructor can use **, too. |
|||
| uaak-tutorial: df5feb7 | tcurtis++ | doc/tutorial_episode_8.pod: Remove superfluous {*}. |
|||
| tcurtis | cotto: I plan to get up at 8:30-ish and feel like a zombie for a few minutes, then get back to work on something(unless I'm too tired/lazy to do anything productive, in which case, I'll probably just play a game or waste time on HN). :) No big plans, but not planning to sleep until 1:30, either. | ||
|
06:08
bacek_mobile joined
|
|||
| cotto | Mmmm. HN. | 06:08 | |
| Oh noes. The robots have phones now. | 06:09 | ||
| I guess "Android" would be an appropriate choice. | |||
| bacek_mobile | Bah :) | 06:11 | |
| Im just waiting for next meeting | |||
| Using my Android phone ;) | |||
| tcurtis was about to ask. | 06:12 | ||
|
06:12
uniejo joined
|
|||
| bacek_mobile | tcurtis, Galaxy S | 06:12 | |
|
06:14
cognominal joined
06:23
uniejo joined
|
|||
| dalek | uaak-tutorial: 30b5123 | tcurtis++ | doc/tutorial_episode_8.pod: More superfluous {*}. |
06:24 | |
| uaak-tutorial: 64df55f | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: postfix_expression is now a proto. |
|||
| uaak-tutorial: 05c7841 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: action method for postcircumfix:<[ ]>. |
06:30 | ||
| uaak-tutorial: 303e5a4 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: explain action method for postcircumfix:<[ ]>. |
|||
| uaak-tutorial: d4012b3 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: $(...) -> .ast. |
|||
| uaak-tutorial: 6172b42 | tcurtis++ | src/Squaak/ (2 files): Compiler: bring up to date with indexed access. |
|||
| tcurtis | Anyone not busy and want to read over what I've done so far and make sure it makes sense? | 06:51 | |
|
06:52
jsut joined
|
|||
| tcurtis | moritz: do you know if there's a way to refer to a specific rule of a proto as it were a normal subrule? e.g. <term:sym<string_constant>>? | 06:53 | |
| moritz | tcurtis: no, there is not | 06:54 | |
| tcurtis: if you want that, make a separate rule string_constant | 06:55 | ||
| and have term:sym<string_contstant> { <string_constant> } | |||
| cotto | Shouldn't ep 1 advocate building squaak in an external dir rather than languages/ ? | 07:00 | |
| I'd also really like to get rid of the "installable_" prefix when running the compiler from the cwd, but that's a distutils gripe. | 07:01 | ||
| tcurtis | cotto: Sounds good to me. Feel free to change it. ;) | 07:02 | |
| cotto | I have a commit bit and I'm not afraid to use it. | 07:03 | |
|
07:06
fperrad joined
07:21
dalek joined
|
|||
| cotto | fperrad, could you make distutils to generate a fakecutable named "foo" in addition to "installable_foo" as part of the build process? | 07:22 | |
|
07:23
baest joined
|
|||
| dalek | uaak-tutorial: c801edc | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: rewrite array/hash constructors in NQP. |
07:35 | |
| uaak-tutorial: 7ef8807 | tcurtis++ | src/Squaak/Runtime.pm: Runtime.pm: add array/hash constructors. |
|||
| uaak-tutorial: 660ddd0 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: I don't think PMC stands for that anymore. |
|||
| uaak-tutorial: 390e429 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: Exercise 1, hashtable keyed access. |
|||
| uaak-tutorial: 09bcd0d | tcurtis++ | src/Squaak/Actions.pm: Actions.pm: hash keyed access. |
|||
| uaak-tutorial: 0625661 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: partially update exercise 2 solution. |
|||
| uaak-tutorial: 718f48d | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: expression -> EXPR. |
|||
| uaak-tutorial: e979de7 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: array_constructor -> circumfix:sym<[ ]>, similarly for hash_constructor. |
|||
| uaak-tutorial: 7e86e34 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: add remark about renaming term:sym<string_constant>. |
|||
| uaak-tutorial: e902801 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: fix some silly mistakes. |
|||
| uaak-tutorial: 6a6f75b | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: fix lack of sym typo. |
|||
| uaak-tutorial: d4b979f | tcurtis++ | src/Squaak/ (2 files): Compiler: Get hash/array constructors working. |
|||
| uaak-tutorial: ff85503 | tcurtis++ | src/Squaak/Runtime.pm: Runtime.pm: fix register number bug. |
|||
| uaak-tutorial: 4f03fca | tcurtis++ | (2 files): Add support for empty array/hash literals. |
|||
| uaak-tutorial: f2b9179 | tcurtis++ | doc/tutorial_episode_8.pod: Ep8: update solution for Exercise 3. |
|||
| uaak-tutorial: b59e109 | tcurtis++ | src/Squaak/ (2 files): Compiler: implement dotty hash access. |
|||
|
07:38
Casan joined
|
|||
| cotto | Hmmm. Did that last commit dtrt or did I mess up? | 07:40 | |
| dalek | uaak-tutorial: 08df4a1 | cotto++ | doc/tutorial_episode_1.pod: recommend out-of-svn build and add more F<> tags |
07:41 | |
| uaak-tutorial: 3def2bc | cotto++ | doc/tutorial_episode_2.pod: various English and POD improvements and fixes |
|||
| uaak-tutorial: 23c614c | cotto++ | (4 files): Merge branch 'master' of github.com:ekiru/squaak-tutorial |
|||
| cotto | time for sleep | 07:43 | |
| tcurtis | Good night, cotto. Thanks for the English-fixing. :) | ||
| cotto | I fixes what I knows. | 07:44 | |
| tcurtis | cotto: I'm about to have the life demo running. :) | ||
| YAY! Updated Squaak tutorial Squaak successfully runs the life demo. :) | 07:45 | ||
| moritz | tcurtis++ | 07:46 | |
| cotto | tcurtis++ | ||
| dalek | uaak-tutorial: 9a16402 | tcurtis++ | doc/tutorial_episode_3.pod: Ep3: make primary a term. |
||
| uaak-tutorial: f12bbc6 | tcurtis++ | src/Squaak/ (2 files): Compiler: make primary a term. |
|||
| cotto | The tutorial lies. Implementing squaak is not trivial. | ||
| dalek | uaak-tutorial: a8bc377 | tcurtis++ | (2 files): Fix double PAST::Valing of strings. |
||
| uaak-tutorial: dbc8bbb | tcurtis++ | src/Squaak/Grammar.pm: Make relational ops work. |
|||
| uaak-tutorial: 333026a | tcurtis++ | doc/tutorial_episode_ (2 files): Merge branch 'master' of github.com:ekiru/squaak-tutorial |
|||
| uaak-tutorial: 5fc0d2e | tcurtis++ | doc/tutorial_episode_7.pod: Ep7: fix relational ops. |
07:52 | ||
| uaak-tutorial: e7a406f | tcurtis++ | (2 files): Make throw at least partially work. |
07:58 | ||
| uaak-tutorial: dd87c69 | tcurtis++ | doc/tutorial_episode_4.pod: Ep4: Improve prose. |
|||
| uaak-tutorial: dff7114 | tcurtis++ | doc/tutorial_episode_7.pod: Finish up another TODO. |
|||
| uaak-tutorial: db5bd8e | tcurtis++ | doc/tutorial_episode_3.pod: Ep3: briefly mention EXPR. |
08:04 | ||
| fperrad | msg cotto | 08:06 | |
| purl | Sorry, I've never seen cott before. | ||
| fperrad | $P1['parrot-foo'] = 'foo.pbc' | ||
| $P0['installable_pbc'] = $P1 # build installable_foo in built tree, and install it as parrot-foo | |||
| $P0['exe_pbc'] = $P1 # build foo fakexecutable in built tree | |||
| cotto | wfm | 08:20 | |
| cotto really goes to bed | |||
| dalek | uaak-tutorial: b56767a | cotto++ | doc/tutorial_episode_3.pod: proofread the first half of ep 3, add a link to moritz++'s blog post on rules, |
08:22 | |
| rrot: r48121 | tcurtis++ | trunk/examples/languages/squaak (20 files): Updated Squaak tutorial. See ļæ½github.com/ekiru/squaak-tutorial for history. |
08:41 | ||
| rrot: r48122 | tcurtis++ | trunk/MANIFEST: Regen manifest. |
|||
|
08:52
AndChat| joined
08:58
AndyA joined
|
|||
| tcurtis -> sleep, finally. | 09:04 | ||
|
09:13
gaz joined
|
|||
| dalek | rrot: r48123 | tcurtis++ | trunk/examples/languages/squaak (14 files): Satisfy codetest. |
09:15 | |
|
09:31
snarkyboojum joined
12:18
lucian joined,
kid51 joined
12:22
bluescreen joined
|
|||
| dalek | kudo: 3370f07 | moritz++ | docs/ChangeLog: update ChnageLog |
12:24 | |
|
12:43
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:44 | |
| Coke | hola | 13:02 | |
| I am thinking that it is not worth holding the release until 'make html' is done, mostly because I don't think I'm going to happen to finish it today. | 13:03 | ||
| ah well. | |||
| atrodo | Morning! | 13:14 | |
| purl | Mornings are great. Every time you experience morning, you're not dead yet! | ||
| atrodo | Coke> How close are you? | ||
| Coke | atrodo: welp, trac.parrot.org/parrot/wiki/CleanupMakeHtml ; and once I write more code, the "only in" is going to expand to an actual diff. =-) | 13:15 | |
|
13:16
cognominal joined
|
|||
| Coke | actually, many of those "only ins" just need to be referenced from somewhere else. (that is, they need to find a page in docs/index/*.json that they can be linked to from.) | 13:17 | |
| atrodo | ugh, if I didn't have $DAYJOB, or it was something I could do quickly, i'd help | 13:19 | |
|
13:20
macroron joined
|
|||
| Coke | no worries. I have all evening to hack on it, I should be able to get close. | 13:21 | |
| dalek | rrot: r48124 | coke++ | trunk/lib/Parrot/Docs/HTMLPage.pm: update copyright year in generated docs. |
13:23 | |
| Coke | there's another 900 lines or so cleared up. | 13:26 | |
| I nearly undid the simple copyright fix I had done in branch before I realized I could also change trunk. :P | 13:27 | ||
| atrodo | haha, nice | ||
| Coke | ah, here's some LHF - re-merge trunk into the html_cleanup branch. | 13:31 | |
|
13:38
AzureStone joined
|
|||
| dalek | tracwiki: v7 | coke++ | CleanupMakeHtml | 13:43 | |
| tracwiki: fixed the copyright date in trunk. | |||
| tracwiki: trac.parrot.org/parrot/wiki/Cleanup...ction=diff | |||
|
13:49
fperrad joined
|
|||
| atrodo | Coke> So the idea is to get the diff to only report changes that are in the OK category? | 13:54 | |
| Coke | yes. I want to make sure that I'm duplicating existing functionality before ripping stuff out. | 13:55 | |
| and or bugfixin. | |||
| (the old way of invoking pod2html was very... convoluted) | |||
| new way is hopefully clearer. | |||
|
14:07
bubaflub joined
14:09
gbacon joined
14:10
plobsing joined
14:44
bkuhn joined
14:54
tcurtis joined
15:09
khairul joined
15:11
snarkyboojum joined
15:20
davidfetter joined
15:21
TiMBuS joined
15:30
mmcleric joined
|
|||
| lucian | this might be interesting to some morepypy.blogspot.com/2010/07/compa...-pypy.html | 15:40 | |
| cotto_work | ~~ | 15:44 | |
| I' | 15:45 | ||
| m always up for a littly PyPy in the morning. | |||
| atrodo | Who wouldn't want PyPy in the morning? | ||
| cotto_work | . o 0 (What do you do with a drunken python?) | 15:47 | |
| atrodo | Anything it wants to? | ||
| Hey cotto_work, I had a few questions about the new LoritoOps page, if you have a chance | 15:55 | ||
| cotto_work | I have a chance. | 15:57 | |
| Much of what's there hasn't had a chance for discussion. | |||
|
15:57
mmcleric joined
|
|||
| cotto_work | I started that page more as a way to kickstart discussion than to dictate what the ops would be. | 15:58 | |
| atrodo | It looks pretty good to me, but I wanted to pick a brain of those that know more than I | 15:59 | |
| cotto_work | ditto ;) | ||
| atrodo | What do you think about using load/store instead of getattr/setattr ? To more align with existing nomenclature? | ||
| atrodo loves every chance he gets to use the word "nomenclature" | 16:00 | ||
| cotto_work | How so? | 16:01 | |
| jnthn | bind_attr would be much clearer about what it akshually does. | ||
| atrodo | And it might be the way I think of it, but you're getting/setting memory inside a pmc. In RISC lingo, that's load/store | ||
| jnthn | That's what I'm leaning towards call the operation in the Rakudo representation API, anyways. | 16:02 | |
| atrodo | Or maybe the question really is, what kind of usage/magic does get_attr/set_attr have? | 16:03 | |
| cotto_work | Lorito should be as unmagical as possible. | ||
| atrodo | so we wouldn't be addressing attr's by name then? | 16:04 | |
| cotto_work | I'm not sure how allison was thinking they'd work. If the intent is to replace PMC ATTRs, there'd need to be a way to map names to offsets. | 16:07 | |
| If we have a sane way to map between names and offsets (or whatever the implementation uses), there doesn't need to be much magic. | 16:09 | ||
|
16:09
rblasch joined
|
|||
| atrodo | A simple pmc method could handle that? | 16:10 | |
| tcurtis | atrodo: but how do we implement the pmc methods? | ||
| atrodo | tcurtis> I don't quite understand the question | 16:12 | |
|
16:17
theory joined
16:21
chromatic joined
|
|||
| dalek | rrot: r48125 | tcurtis++ | trunk/examples/languages/squaak/src/Squaak/Actions.pm: Fix a bug in hash indexing. |
16:25 | |
| cotto_work | tcurtis, why the null? | 16:32 | |
| tcurtis | cotto_work: hmm... actually, that's probably wrong. I was trying to do something closer to returning nothing, since the print from the old Squaak didn't return anything. | 16:35 | |
| tcurtis afk | 16:36 | ||
|
16:37
kthakore joined
|
|||
| dalek | rrot: r48126 | tcurtis++ | trunk/examples/languages/squaak/src/Squaak/Runtime.pm: Delete say function and implement the correct print function. |
16:42 | |
| rrot: r48127 | coke++ | branches/html_cleanup/lib/Parrot/Docs/PodToHtml.pm: Get basic breadcrumb working again. (only has "Home", nothing else) |
|||
| ash_ | in nqp is there an equivalent of 'BUILD' ? | 16:52 | |
| jnthn | ash_: Not yet. | 16:53 | |
| ash_ | is there anyway to initialize variables? | 16:54 | |
|
16:56
mmcleric_ joined,
mmcleric joined
|
|||
| dalek | rrot: r48128 | coke++ | branches/html_cleanup (2 files): track breadcrumbs for non-trivial case |
16:58 | |
| Coke | there. knocked another kilo-lines of diff off the branch. | 16:59 | |
| (down to 2043 lines of diff) | |||
| dalek | tracwiki: v8 | coke++ | CleanupMakeHtml | 17:03 | |
| tracwiki: mostly fixed breadcrumbs. | |||
| tracwiki: trac.parrot.org/parrot/wiki/Cleanup...ction=diff | |||
|
17:03
bubaflub joined
|
|||
| tcurtis | ash_: You can override new. | 17:05 | |
| cotto_work | khairul found an interesting hack to make that work (fsvo) with P6object | 17:08 | |
| see the method new in trac.parrot.org/parrot/browser/bran...t/Base.nqp | 17:10 | ||
| jnthn | A quicker hack is pir::new__pp(pir::typeof_pp(self)) | 17:13 | |
| er, __ | |||
| ash_ | i made a method (init) that calls .new and calls BUILD | 17:17 | |
| so if build does get added later, i won't have to change much | 17:18 | ||
| jnthn | ash_: +1. And it's quite feasible BUILD may get added later | 17:19 | |
| chromatic | Parrot had BUILD ages and ages ago. | ||
| ash_ | nqp might need to peek into what parrot's doing :P | ||
| chromatic | ... not that you'd want to use that object system now. | ||
| ash_ | i imagine, in the coming months, nqp and parrot's object system might be converging a bit, or am i misunderstanding some of the future design goals | 17:20 | |
| jnthn | ash_: That depends. | ||
| ash_: It'd be the ideal that they have some commonalities at the base. | |||
| It's just finding those. | 17:21 | ||
| chromatic | My design starts with Role as the fundamental unit of Mu-ness, then starts adding features onto instances of Role. | ||
| Not really "instances of Role" obviously--here's where the metacircularity of bootstrapping gets fun--but think of it this way: Class does Instantiable (which is a Role with the method "instantiate"). | 17:22 | ||
| jnthn | chromatic: The idea of meta-objects composed out of roles is certainly something I've got in mind too. | 17:23 | |
| chromatic | Then you need metaclass operations such as add/remove attribute, add/remove method, and dispatch. | ||
| I'm not sure where to put compose. | |||
| add/remove parent | |||
| *mumble* introspection | |||
| jnthn | chromatic: *nod* | ||
| chromatic | ... and that's about it. | ||
| Parrot itself needs a way to register a metaclass with an HLL. | 17:24 | ||
| ash_ | aren't you working on a dynamic vtable too? | ||
| Coke | mikehh: looks like most of the remaining 'make html' cleanups on the diff are "make code that worked before with Parrot::Distribution work with the new .json setup" | ||
| chromatic | I think we can get away without dynamic vtables for the new MOP. | ||
| jnthn | chromatic: I've started writing some stuff up and I'll get it blogged over the coming week or two. | 17:25 | |
| *written up | |||
| ash_ | wouldn't a dynamic vtable give you a speedup though? | ||
| chromatic | Sounds good, jnthn. | ||
| I think Parrot can provide the foundation for almost everything Rakudo needs simply. | |||
| Where the Perl 6 semantics aren't exactly right for Parrot, you apply a different role to your metaclass. | |||
| jnthn | chromatic: Well, for Perl 6 there's two APIs in a sense. | 17:26 | |
| chromatic | bless and not-bless? | ||
| jnthn | chromatic: A representation API and a meta-package one. | ||
| As I see it, attribute storage is owned by the representation API, and dispatch is owned by the meta-package one. | |||
| The meta-package knows about attributes that are available. | 17:27 | ||
| But it's up to the representation to decide how that maps to a storage stratergy. | |||
| chromatic | Seems like dispatch has to delegate to representation to *find* attributes and methods. | ||
| jnthn | And thus attribute lookup is a (possibly inlined where possible) operation conducted through the representation. | 17:28 | |
| Yes, since a meta-object is just an object. | |||
| Closing the loop at the bottom is where the fun is. :-) | |||
| Or the top, depending on how you look at it. | |||
| chromatic | I wrote a self-hosting garbage collector once. I'm not afraid. | ||
| jnthn | :-) | ||
| Coke | no, afraid is definitely the wrong word. :P | ||
| purl | okay, Coke. | ||
| chromatic | How much of this can we solve by inventing HasAttributes and CanDispatch roles? | 17:29 | |
| Those names are hirsute yaks. | |||
| jnthn | chromatic: Those kinds of roles make sense on meta-packages (a word I'm using to encompass the meta-objects associated with a class, a role, etc) | 17:30 | |
| chromatic: I guess the question on representations is how "low level" they are. | |||
| chromatic: In Perl 6, they're not objects really. | |||
| chromatic: They're nameable thingies. | |||
| chromatic | I'm coming at this from the interoperability perspective. | 17:31 | |
| jnthn | *nod* | ||
| chromatic | Python 3 won't support $perlobj.META, but it should support $perlobj.awesome_method() | ||
| dalek | rrot: r48129 | coke++ | branches/html_cleanup/lib/Parrot/Docs/PodToHtml.pm: cleanup comments, remove really dead code, |
17:32 | |
| jnthn | chromatic: Might Parrot be open at all to considering a representation API vs meta-package API distinction, or is that likely too 6-y? | 17:34 | |
| chromatic: Just that the way I'm looking at things at the moment, it's kind of a fundemental. | |||
| Granted, it'd be possible to map get_attribute v-table calls or whatever we end up having onto a representation API call if not, so we can certainly be interoperable. | 17:35 | ||
| chromatic | I admit that I don't entirely understand the distinction or the motivation. | ||
| jnthn | chromatic: I'll write up something that tries to coherently explain it. | 17:36 | |
| And hopefully gives a sense of why it matters in Perl 6 land. | |||
| chromatic | Are you thinking "Gosh, I hate to allocate an RPA of boxed primitives for the attributes of every object instance"? | ||
| jnthn | chromatic: I'm saying more that that's an implementation detail hidden behind an API. | 17:37 | |
| chromatic | In other words, "How an object stores its attributes depends on the representation API of the metaclass"? | ||
| jnthn | I see it as more that there's a meta-class API and a representation API. | 17:38 | |
| In Perl 6, a given class may specify a preference for it's underlying storage stratergy. The default is P6opaque. | |||
| It's kinda like how in Perl 5 you can bless an array or a hash | |||
| chromatic | I follow so far. | ||
| jnthn | But that's orthogonal to the meta-class really | 17:39 | |
| That is, if the class was specified as being open to any representation, you could do like | |||
| Dog.bless(Dog.CREATE('MyRepr'), ...) | 17:40 | ||
| Where that object would use whatever storage approach MyRepr specified. | 17:41 | ||
| To take examples in S12, .CREATE('P6opaue'), .CREATE(P6hash') and so forth. | |||
| chromatic | I look forward to reading your notes on this. It has some interesting implications. | ||
| ash_ | .CREATE('NSDictionary') ... :P | ||
| (then i could pass it to obj-c as a obj-c hash) | 17:42 | ||
| chromatic | I don't know if I want to introduce polymorphic roles as the fundamental unit of Mu-ness in Parrot's MOP though. | ||
| jnthn | chromatic: Yes, it's kinda another degree of freedom. | ||
| chromatic | I don't know right now if Parrot will *provide* that behavior natively, but I'll make sure that Parrot makes it possible for Rakudo to support it and still interoperate with other languages. | 17:43 | |
| jnthn | chromatic: Aye | ||
| I think we'll be able to work out a wya. | |||
| *way | |||
| chromatic | Parametric roles being a non-hideous, type-safe form of Dependency Injection. | 17:44 | |
| jnthn | I'd not really considered having parametric roles at a very deep level yet. | 17:45 | |
| Thing is the Perl 6 ones need to be matched based on multi-dispatch. | |||
| chromatic | That's where things get complicated. | 17:46 | |
| jnthn | Doens't mean we can't have something much simpler at a lower level | ||
| chromatic | It's possible when *constructing* a class you can swap in a more complex (or at least more different) dispatch strategy. | ||
| s/class/metaclass/ && s/swap/compose/ | |||
| That is, if you know methods of the class have protos or multis, you can use the full dispatcher. | 17:47 | ||
| I think Perl 6 gives you enough lexical information to decide that. | |||
| jnthn | Oh, I expect that Rakudo will stay having a custom dispatcher. | 17:48 | |
| It's not just about multis. | |||
| I just hope to provide a cleaner way to do it than today. | |||
| Multi-methods aren't really a big deal though under current Perl 6 spec. | |||
| chromatic | Sure, there's always redispatch and such. | ||
| jnthn | They're essentially nested dispatches. | ||
| chromatic | Parrot needs to support multidispatch too though. | 17:49 | |
| ... not that it goes as far as where clauses. | |||
| jnthn | *nod* | 17:50 | |
| I think it's clear that we need the ability to have custom dispatchers. | 17:51 | ||
| Cleanly. | |||
| chromatic | Absolutely. | ||
| purl | Oh my, yes. | ||
|
18:02
rblasch joined
|
|||
| dalek | rrot: r48130 | tcurtis++ | trunk/examples/languages/squaak/src/Squaak (2 files): [squaak] Get tests passing. |
18:04 | |
| rrot: r48131 | mikehh++ | branches/html_cleanup/lib/Parrot/Docs/PodToHtml.pm: fix codetest failure - trailing whitespace |
|||
| kthakore | hi folks | ||
| tcurtis | kthakore: Hi. | ||
| kthakore | tcurtis: can I read how pmc files work? | ||
|
18:05
theory joined
|
|||
| kthakore | tcurtis: where ^ | 18:05 | |
| tcurtis | kthakore: docs.parrot.org/parrot/latest/html/...c.pod.html is the PDD | 18:06 | |
| kthakore | ok | ||
| tcurtis | kthakore: docs.parrot.org/parrot/latest/html/...ss.pl.html describes how to create them. | 18:07 | |
| kthakore: docs.parrot.org/parrot/latest/html/...s.pod.html is more information about them. | |||
| kthakore | tcurtis: thanks | 18:08 | |
| tcurtis | kthakore: docs.parrot.org/parrot/latest/html/...s.pod.html looks like a more tutorial-ish description. | ||
| kthakore | woot! | 18:09 | |
| cotto_work | "work" should be in quotes. | ||
| kthakore | tcurtis: how do two pmcs work together | ||
| cotto_work | kthakore, is there something specific you're looking for? | 18:11 | |
| kthakore | cotto_work: I am working on a ticket to swap out string.pmc useage in stringhandle.pmc with stringbuilder.pmc | 18:12 | |
| cotto_work | ok. Is the use of string a performance issue for something you care about? | 18:13 | |
| kthakore | cotto_work: well it is supposed to be a newbie ticket | ||
| cotto_work: bacek_at_work put me on it | |||
| cotto_work | then it's safe to assume it's worth doing | ||
| dalek | TT #1707 created by mikegrb++: attempt to mmap 2325622477335777280 bytes when printing utf8 in perl6 | 18:14 | |
| TT #1707: trac.parrot.org/parrot/ticket/1707 | |||
| kthakore | cotto_work: TT #1639 | ||
| cotto_work | That is not a small number. | ||
| kthakore | cotto_work: the number matters? | ||
| kthakore is feeling a bit lost now | 18:15 | ||
| cotto_work | referring to #1707 | ||
| kthakore | oh ok | ||
| cotto_work: holy shit ... that is scary | 18:16 | ||
| wth? | |||
| purl | wth is, like, Flavour | ||
| chromatic | Sounds like binary incompatibility. | ||
| kthakore | chromatic: there was a sound? | ||
| chromatic | Everything makes a sound. | ||
| kthakore | chromatic: maybe the RAM exploding | 18:17 | |
| Coke | especially chromatic. | ||
| kthakore | Coke: hi | ||
| ok reading time for kthakore ... | |||
| learning new shit ... :D | |||
| Coke ponders calling chromatic Shi Er Lüfrom now on. | 18:18 | ||
|
18:20
eternaleye joined
|
|||
| tcurtis | kthakore: what happens if you replace "ATTR STRING *stringhandle" to "ATTR PMC *stringhandle" and the "if (STRING_IS_NULL(old_string)) {" block in the open method with whatever the syntax for new in PMCs is? | 18:21 | |
| kthakore: more specifically, how much does it explode? ;) | |||
| kthakore | tcurtis: lets find out :D | 18:22 | |
| tcurtis: I was stupidly thinking I need to change Parrot_str_new | |||
| as that is how it initializes in open | |||
| line 198 | 18:23 | ||
|
18:23
macroron joined
|
|||
| tcurtis | kthakore: Well, you would need to get rewrite that bit, since PMCs are created differently that STRINGs in C. | 18:24 | |
| kthakore | it uses init() from src/pmc/string.pmc right? | 18:25 | |
| and for the STRING_IS_NUL | |||
| we can use get_bool() ? | |||
| Coke | You'd want to create a new StringBuilder pmc, which is more like pmc_new(interp, enum_class_StringBuilder ) | ||
| kthakore | but isn't there already a StringBuilder pmc? | 18:26 | |
| particle | you need an instance of the class | ||
| kthakore | 0o | 18:27 | |
| ok | |||
| kthakore goes reading some more | |||
|
18:29
joeri joined
|
|||
| kthakore | particle: um .... sorry newb question again ... how do I do that in *.pmc files | 18:29 | |
| particle: I know in PIR we do newclass right? | |||
| particle: is it newclass('StringHandler') | 18:30 | ||
| tcurtis | kthakore: in PIR, creating an instance of the class is with "new WhateverClass" | ||
| kthakore | ok | ||
| particle | pmc_new | ||
| tcurtis | kthakore: I think in C, it's what Coke said: "pmc_new(INTERP, enum_class_StringBuilder)" | ||
| kthakore | ah ok | ||
| so in open() | |||
| I do pmc_new | |||
| cotto_work | ideally with a hllmap thrown in for good measure | 18:31 | |
| kthakore | and then set that too the ATTR PMC *stringhandler ? | ||
| cotto_work: hllmap? | |||
| how do I access the StringBuilder methods ? | |||
| wait ... | 18:32 | ||
| purl | i think wait ... is that one of his other silly conventions? placing a 'G' in front of any account that he thinks is global? | ||
| cotto_work | HLLs can override Parrot's built-in types with their own. | ||
| kthakore | cotto_work: 0o | ||
| particle | purl, forget wait ... | ||
| purl | particle: I forgot wait | ||
| whiteknight | purl wait is <reply>Sure, I can wait. I've got plenty of time. It's you mortal meat bags that need to hurry | 18:33 | |
| purl | OK, whiteknight. | ||
| cotto_work | Just pass enum_class_StringBuilder through Parrot_get_ctx_HLL_type() before you use it. | ||
| pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP, enum_class_StringBuilder)); | 18:34 | ||
| kthakore | ok | ||
|
18:34
dolmen joined
18:36
bluescreen joined
|
|||
| kthakore | cotto_work: ok so in open() I am doing new_string = pmc_ ... | 18:36 | |
| hmm | 18:37 | ||
| cmpilign | |||
| tcurtis | kthakore: you'll probably end up having to change lots of string API calls to vtable calls, unfortunately. | ||
| dalek | rrot: r48132 | tcurtis++ | trunk/examples/languages/squaak/doc/tutorial_episode_9.pod: [squaak] Fix a reference to old location of print built-in. |
18:38 | |
| kthakore | tcurtis: ok | ||
| tcurtis: I am willing to try ... but honestly I feel totally lsot | |||
| lost | |||
| tcurtis: how do people break into this? | |||
| I am reading the docs but I don't see anything about hll stuff in pcmc | 18:39 | ||
| or even why I need to do that | |||
| kthakore is level -1 again :D | |||
| NotFound | cotto_work: I think that the StringBuilder should be an internal detail of the StringBuilder, nothing that HLL must worry. | ||
| of the StringHandle, I mean | |||
| particle | kthakore++ for your enthusiasm, your tuits, and your good questions | ||
| tcurtis | NotFound: especially since neither StringBuilder nor StringHandle currently handle anything but STRING *. | 18:40 | |
| kthakore | particle: hey when you spend as much time at level -1 as I do it is good to smile :D | ||
| dalek | nxed: r565 | NotFound++ | trunk/winxedst1.winxed: some more const float expression optimizations |
||
| tcurtis | kthakore: I'm pretty sure magic and lots of questions are usually involved. | 18:41 | |
| tcurtis personally isn't really capable of mucking about in the C bits of Parrot yet. | |||
| NotFound | tcurtis: some days I think that no one really is %-) | 18:42 | |
| "really" is such a strong word... | |||
| particle | s/Parrot/IMCC/ and i agree fully. no one is. | 18:43 | |
| kthakore | ok so I am doing a 'ack -l string_make' to find out where it comes for as StringHandle::open uses it to make the unicode string | ||
| but if I make a new_pmc now | |||
| StringBuilder should do unicode now right? | |||
| instead of string_make | |||
| tcurtis | kthakore: I think StringBuilder will handle the encoding stuff, yes. | ||
| kthakore | ok | 18:44 | |
| lets see ... | |||
| ok woo! | 18:45 | ||
| it does it in the internal buffer it self | |||
| ok | |||
| for push_string | |||
| so now that I have a new_string that is a StringBuilder | 18:46 | ||
| I just need to push_string() to init it? | |||
| um ... I did make | 18:47 | ||
| but it won't recompile the pmc | |||
| ... | |||
| well the test passed | |||
| ... | |||
| but I don't think the new pmc compiled | 18:48 | ||
| hmm | |||
| cotto_work | you can nuke the object file | ||
| though it should recompile | |||
| kthakore | cotto_work: ah good point | ||
| cotto_work | or the C file, though that sounds like it's merely papering over a different problem | 18:49 | |
| kthakore | oh boy lots of warnings | ||
| incompatible pointers | 18:50 | ||
| hah | |||
| cotto_work | Warnings are great. They tell you something's probably wrong. | ||
| kthakore | yeah | ||
| I think change the attr proolly messed with other things | |||
| cotto_work: um .... another newbie ... so I did new_pmc .. StringBuilder | 18:51 | ||
| cotto_work: I access push_string with new_string->push_string() right? | |||
|
18:51
darbelo joined
|
|||
| kthakore | or push_string( INTERP, new_string) | 18:51 | |
| wtf ... the test passed | 18:52 | ||
| but that makes no sense? | |||
| purl | Chewbacca! | ||
| kthakore | oO | ||
| whiteknight | kthakore: VTABLE_push_string(INTERP, pmc, new_string) | ||
| kthakore | whiteknight: ah | ||
| where do parameteres go? | |||
| chromatic | What parameters? | 18:53 | |
| purl | parameters are definitely in the scope of the callee | ||
| whiteknight | for push_string? | ||
| push_string takes two parameters: the PMC target and the new string | 18:54 | ||
| dalek | rrot: r48133 | mikehh++ | trunk/examples/languages/squaak/src/Squaak (4 files): add shebang line to prevent examples/languages/squaak/src/Squaak/*.pm files being tested by perlcritic |
18:55 | |
| kthakore | chromatic: well what I am trying to do is replace make_string | 18:57 | |
| for unicode | |||
| with StringBuilder's push_string | |||
| line 198 src/pmc/stringhandle.pmc | |||
|
18:58
bubaflub joined
|
|||
| kthakore | hmm ... GET_ATTR_stringhandle won't work with PMC | 18:58 | |
| instead of STRING | |||
| ok ... | |||
| acking for GET_ATTR | 18:59 | ||
| no ... wait | |||
|
18:59
AndyA joined
|
|||
| kthakore | GET_ATTR_stringhandle(INTERP, SELF, stringhandle); | 19:00 | |
| so if I am trying to get the stringhandle attr but from SELF | 19:01 | ||
| and put it in PMC stringhanle | |||
| handle | |||
| it should work | |||
| I think | |||
| hrmmm | 19:02 | ||
| tcurtis | PMC *stringhandle, you mean? | 19:03 | |
| kthakore | yeah | ||
| tcurtis | You changed the ATTR to "ATTR PMC", right? and you declared a "PMC *stringhandle;" variable? | 19:06 | |
| kthakore | ok ... | 19:07 | |
| tcurtis: yeah | |||
| tcurtis: can I so you the diff so far? | |||
| tcurtis | kthakore: Sure. Frankly, I'm not sure I can provide much help. | ||
| tcurtis is mostly familiar with the PIR/NQP/HLL side of things. | 19:08 | ||
| kthakore | tcurtis: ok | ||
| tcurtis | kthakore: but I'll try. :) | ||
| kthakore | tcurtis: so will I | ||
| :D | |||
| nopaste | "kthakore" at 192.168.1.3 pasted "StringHandler" (43 lines) at nopaste.snit.ch/22173 | 19:09 | |
| kthakore | tcurtis: ^^ | 19:10 | |
| cotto_work | #ps in 111. Don't forget chromatic's request: lists.parrot.org/pipermail/parrot-d...04517.html | ||
| kthakore | crap ... why can it not find the VTABLE_init(INTERP, StringBuilder | ||
| whut gives | |||
| cotto_work | One of the special things about pmc2c is that if your code is slightly misformatted, VTABLE functions and METHODs can get silently dropped on the floor. | 19:11 | |
| kthakore | cotto_work: really? | ||
| er .... | |||
| cotto_work | yes | ||
| chromatic | +\tVTABLE_get_string(INTERP, StringHandle, buffer); | ||
| kthakore | XS time again! | ||
| chromatic | There's no StringHandle in scope there; you have a casing error. | ||
| kthakore | errr | 19:12 | |
|
19:12
cxreg joined
|
|||
| kthakore | StringBuilder | 19:12 | |
| purl | i guess StringBuilder is better at doing concats than String. | ||
| kthakore | shit | ||
| chromatic | More than that, you mean buffer = VTABLE_get_string(INTERP, stringhandle); | ||
| kthakore | oh ... | 19:13 | |
| ok | |||
| chromatic | ... and probably drop the VTABLE_init(). | ||
| VTABLE_set_string_native() is better. | |||
| (init() gets called implicitly from pmc_new()) | |||
| (I (remember `(lisp))) | 19:14 | ||
| kthakore | oh ok | ||
| chromatic | ... although you don't need to call VTABLE_set_string_native() here at all either. | ||
| tcurtis | chromatic: don't you mean (remember I `(lisp))? | 19:15 | |
| kthakore | but it says ... StringBuilder not declared | ||
| GET_ATTR_stringhandle(INTERP, SELF, stringhandle); | |||
| oops | |||
| chromatic | You have no variable named StringBuilder. You've declared PMC *stringbuilder. | ||
|
19:15
rurban joined
|
|||
| kthakore | o hright | 19:16 | |
| I thought it was by namespaces | |||
| err sorry | |||
| chromatic | Think of VTABLE_foo() like really ugly method dispatch. | ||
| It's always VTABLE_foo(INTERP, invocant, ....) | |||
| kthakore | ah ok | 19:18 | |
| so I have to get_attr each time | |||
| I want to use it on stringhandle | |||
| hmm ... | |||
| yay! | 19:21 | ||
| ... | |||
| some working | |||
| level -0.999999998 achieved | |||
| :D | 19:22 | ||
| it gets all the way to | 19:23 | ||
| rror: āStringBuilderā undeclared (first use in | |||
| oops | |||
| not that | |||
| make: *** [src/dynoplibs/io_ops.c] Segmentation fault | 19:24 | ||
| I think I need to fix the warnings | |||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34980), fulltest) at r48133 - Ubuntu 10.04 amd64 (g++) | ||
| kthakore | I don't need to Parrot_gc_mark_STRING_alive right? | 19:27 | |
| as it is a PMC? | |||
| chromatic | Parrot_gc_mark_PMC_alive | 19:28 | |
| kthakore | show I do Parrot_gc_mark_PMC_alive? | ||
| chromatic: :D | |||
| I got that one. wooo! | |||
| sorear | chromatic: #phasers is asking about you. | ||
| chromatic | What's #phasers? | 19:30 | |
| purl | well, #phasers is asking about you. | ||
| sorear | the new name of #rakudosketch | ||
| on freenode | |||
| R* planning | |||
| 14:28 < PerlJam> Do we have a press date for the book from chromatic? Or do we need to tell him when? | |||
| etc | |||
| chromatic | thanks | ||
| moritz | on freenode | 19:32 | |
|
19:32
LoganLK joined
19:37
gbacon joined
19:40
rblasch_ joined
|
|||
| kthakore | hi moritz | 19:40 | |
| moritz | hi | ||
| kthakore | moritz: I am learning pmc :D | 19:41 | |
| moritz | fun :-) | ||
| tcurtis | chromatic: what was the code you refer to at news.ycombinator.com/item?id=1527392 ? | 19:42 | |
| chromatic | Test::Builder | 19:43 | |
| purl | it has been said that Test::Builder is the underlying mecahnism for doing the ok/not ok. | ||
| kthakore | chromatic: how come I cannot call get_string_length (METHOD in stringbuilder.c) using VTABLE_get_string_lenght | 19:44 | |
| chromatic | Methods and VTABLEs are different things. | 19:45 | |
| kthakore | oh .. | ||
| I can't fine 'calling Method for pmc ' in the wiki | |||
| ... | |||
| chromatic | SELF.method(args) | 19:46 | |
| dalek | rrot: r48134 | khairul++ | branches/gsoc_instrument (9 files): Rough cut of instrumenting methods + vtable overrides + Regenerated vtable stubs. |
||
| kthakore slaps himself | |||
| chromatic: wait ... I can't do new_string.get_string_length | 19:49 | ||
| .... it is a PMC* | |||
| Chandon | Why, in Parrot_pmc_new_init, is the init arg an ARGOUT? | ||
| chromatic | kthakore, can you post another diff? | ||
| kthakore | chromatic: sure | ||
| nopaste | "kthakore" at 192.168.1.3 pasted "StringHandler... line 383" (121 lines) at nopaste.snit.ch/22174 | 19:50 | |
| kthakore | chromatic: ^^ | ||
|
19:51
mmcleric_ joined
|
|||
| kthakore | oops I need to use buffer_size there | 19:51 | |
| chromatic | kthakore, seems to me you could use status = Parrot_str_byte_length(INTERP, buffer) before performing any concatenations and updates. | 19:54 | |
| Then you don't need to call methods. | |||
| Oh, except you need the new string length. | |||
| You definitely don't need this: + SET_ATTR_stringhandle(INTERP, SELF, old_string); | |||
| kthakore | ok | 19:55 | |
| chromatic | For the new string length, do it in two steps. VTABLE_get_string(), then Parrot_str_whichever | ||
|
19:55
whiteknight joined
19:56
NotFound joined
|
|||
| kthakore | chromatic: that makes more sense | 19:56 | |
| chromatic: however how do I call methods of other PMC here? | 19:57 | ||
| chromatic | It's two steps instead of one, but it's straightforward and much faster. | ||
| Parrot_pcc_invoke_method_from_c_args(...) | |||
| kthakore | ok | 19:58 | |
| chromatic: ok I got it done I think | 19:59 | ||
| I will make and test | |||
| thank you very much | |||
| dalek | nxed: r566 | NotFound++ | trunk/examples/fly.winxed: some refactoring and minor visual changes in example fly |
20:05 | |
| kthakore | I had to change io | ||
|
20:06
patspam joined
|
|||
| kthakore | crap ... it segfaults at io_ops.c | 20:07 | |
| :\\ | |||
| yay :( | 20:09 | ||
| crappy reisntall | |||
| this shouldn't affect anything in imcc ? right? | 20:11 | ||
| chromatic | Right. | 20:13 | |
| ish | |||
| kthakore | hehe | 20:14 | |
| ok | |||
| cause io_ops thingy is segafualt | 20:15 | ||
| in | |||
| tcurtis | kjs? | 20:17 | |
| purl | kjs is Klaas-Jan Stol <mailto:parrotcode@gmail.com> from The Netherlands or KHTML (read Safari/Koqueror)'s JavaScript engine... or called kj these days. or known as kj | ||
| tcurtis | kj? | ||
| purl | kj is Klaas-Jan Stol or mailto:parrotcode@gmail.com or known as kjs | ||
| tcurtis | Is kj/kjs still involved with Parrot? | ||
| cotto_work | tcurtis, he wrote the original version of the squaak tutorial | ||
| not very actively of late | 20:18 | ||
| He's dropped by once or twice in recent memory. | |||
| seen kj | |||
| purl | kj was last seen on #parrot 9 days, 9 hours, 15 minutes and 37 seconds ago, saying: ooh ok. [Jul 11 11:02:57 2010] | ||
| kthakore cries | |||
| ./ops2c --dynamic src/dynoplibs/io.ops --quiet | 20:19 | ||
| make: *** [src/dynoplibs/io_ops.c] Segmentation fault | |||
| ~ | |||
| crap | |||
| Chandon | That looks like a ton of fun. | 20:20 | |
| kthakore | Chandon: all I did was play in String | 20:21 | |
| :( | |||
| nopaste | "kthakore" at 192.168.1.3 pasted "this is all I messed with" (201 lines) at nopaste.snit.ch/22175 | 20:22 | |
| kthakore | tcurtis: HALP! | 20:24 | |
| tcurtis: I broke it :( | |||
| ok I will jsut update the ticket and call it a day | 20:26 | ||
| chromatic | #ps in 1 | 20:29 | |
| darbelo | #ps in 0 | 20:31 | |
| whiteknight | #ps in -1 | ||
| dalek | kudo: 2783660 | moritz++ | src/core/IO.pm: dir() now defaults to filtering out . and .. |
20:32 | |
| kthakore | #ps wth/ | 20:33 | |
| whiteknight: hi | |||
| whiteknight | hello kthakore | 20:34 | |
| kthakore | Is there a dep on io.ops from io/api.pmc from stringhandle.pmc ? | ||
| tcurtis | #ps? | ||
| purl | #ps is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch | ||
| darbelo | kthakore: The ops in io.ops probably use functions from io/api.c if that's what you mean. | 20:35 | |
| kthakore | darbelo: oh | ||
| darbelo: can you see TT#1639 | |||
| I am stuck and I can't debug | |||
| chromatic | Anyone for making auto_attrs the default? TT #1506 | 20:36 | |
| kthakore | darbelo: also how do I accept that ticket? | 20:37 | |
| Coke | chromatic: that ticket is closed... | 20:38 | |
| chromatic | Right, but it suggests deprecating manual attrs and making auto_attrs the default. | 20:39 | |
| kthakore | Coke: close it HARDER! | ||
| darbelo | chromatic: +1 here. | ||
| tcurtis | +0.5 as I'm not familiar enough with PMC/C-land to know if there's any reason not to. | 20:40 | |
| chromatic | Basically it removes manual memory management from PMCs. | ||
| Coke | chromatic: I don't think it's worth picking a default. having it be a required field is fine. | 20:41 | |
| nice, but very low on my priority list. | |||
| chromatic | That was the only experimental item I cared sufficiently about. | ||
| kthakore | so ... | 20:42 | |
| oh well | |||
| chromatic | kthakore, the random indentation changes in the patch are confusing. | 20:45 | |
| kthakore | chromatic: oh ok | ||
| is there a parrottidy? | |||
| chromatic | There are coding standards tests under t/ | 20:46 | |
| Mostly "please, no tabs" | |||
| darbelo | 'make codetest' will run them all and complain if you go wrong. | ||
| kthakore | chromatic: ok | 20:47 | |
| chromatic | This doesn't make sense to me: | 20:48 | |
| +\t new_string = pmc_new(INTERP, Parrot_get_ctx_HLL_type(INTERP, enum_class_StringBuilder)); | |||
| +\t VTABLE_set_string_native(INTERP, new_string, buffer); | |||
|
20:48
rblasch__ joined
|
|||
| chromatic | If you're creating a new string, store only that in the existing StringBuilder. | 20:48 | |
| No need to create a new SB unless you don't already have one. | |||
| kthakore | that is where ther isn't one | ||
| chromatic | That's not how I read the code. | 20:49 | |
| + if (STRING_IS_NULL(buffer)) { | |||
| That's very different from if (PMC_IS_NULL(stringbuilder)) { ... } | |||
| kthakore | ah ok | ||
| so ... | |||
| we have to check PMC_IS_NULL there | |||
| because it is open() | 20:50 | ||
| chromatic | If there's no valid SB, this line won't do what you want: +\tstring_result = VTABLE_get_string(INTERP, stringhandle); | ||
| ... but the name stringhandle there seems inappropriate, because isn't a stringbuilder? | 20:51 | ||
| This doesn't make sense either: | 20:52 | ||
| +\tVTABLE_i_concatenate_str(INTERP, old_string, to_print); | |||
| +\tbuffer = VTABLE_get_string(INTERP,old_string); | |||
| RETURN(INTVAL status); | |||
| Why assign to buffer if you don't use it? | |||
| kthakore | um ... that was stupid | ||
| chromatic | Fix the problem in open() and your bug will probably go away. | 20:53 | |
| kthakore | ok | ||
| chromatic | You might need to write a static helper function fetch_or_create_stringbuilder(). | 20:54 | |
| kthakore | chromatic: also fro get_bool in stringbuilder? | 20:55 | |
| or empty | |||
|
20:56
theory joined
|
|||
| chromatic | I haven't audited the whole of the code, but any place you want to use a SB (and not just see if one exists and return early if not) it may help. | 20:56 | |
| It may not be useful anywhere other than open(). | |||
| kthakore | ok | 20:57 | |
| Coke | "I, for one, welcome our new Parrot-based Overlords" - ingy | ||
| dalek | nxed: r567 | NotFound++ | trunk/examples/fly.winxed: use fixed frame rate to avoid eating too much cpu in example fly |
21:04 | |
|
21:05
hercynium joined
|
|||
| whiteknight | Maybe I missed something: what is POC? | 21:08 | |
| tcurtis | poc? | ||
| purl | poc is this chat, which is running under same in vmware or proof of concept. or piece of crap | ||
| tcurtis | proof of concept, I'd guess. | ||
| whiteknight | ah, okay | ||
| NotFound | I hope is not the last aception. | ||
| darbelo | purl poc is also Pint of Custard | 21:09 | |
| purl | okay, darbelo. | ||
| kthakore | wooot! it worked! | 21:11 | |
| moritz | poc is also Point of Contact | ||
| purl | okay, moritz. | ||
| kthakore | um ... | 21:14 | |
| wtf | |||
| Failed allocation of 5011178570016358400 bytes | |||
| Parrot VM: PANIC: Out of mem! | |||
| C file src/gc/gc_ms.c, line 1380 | |||
| but I adde PMC to the gc | |||
| but it doesn't delete | |||
| or die | |||
| crap | 21:15 | ||
| chromatic | Do you have a backtrace? | ||
| kthakore | chromatic: how do I do that? | 21:21 | |
| chromatic | gdb ./parrot | ||
| r some_program arg1...argn | |||
| -= CRASH =- | |||
| bt | |||
|
21:21
AndyA_ joined
|
|||
| kthakore | ah ok ... | 21:22 | |
|
21:24
AndyA__ joined
|
|||
| Coke | leaving now | 21:27 | |
| kthakore | chromatic: ok ... I updated the patch | 21:29 | |
| chromatic: I have to go home I will try again | 21:30 | ||
| chromatic: can you give me access so I can accept the ticket? | |||
| chromatic | If I'm not here, someone will be able to review it for you. | ||
| kthakore | chromatic: thank you so much | ||
| tcurtis | Coke: should I add a NEWS entry for Squaak or let you do so? | 21:36 | |
| mikehh | tcurtis: I would say add it - if Coke doesn't like it he can change it :-} | 21:39 | |
| tcurtis forgot Coke had to leave. | |||
| dalek | rrot: r48135 | tcurtis++ | trunk/examples/languages/squaak/MAINTAINER: Make myself MAINTAINER of Squaak. |
21:42 | |
| rrot: r48136 | tcurtis++ | trunk/NEWS: Add NEWS entry for Squaak tutorial update. |
|||
| dukeleto | hola | ||
| purl | niihau, dukeleto. | ||
| dukeleto | did 2.6 hit the interwebs yet? | ||
| tcurtis | dukeleto: not yet. | 21:43 | |
| dukeleto | tcurtis++ on maintaining squaak | 21:44 | |
| darbelo | dukeleto: Nopes, coke hasn't tagged it yet. | 21:45 | |
|
21:48
joeri left
|
|||
| kthakore | :D | 21:51 | |
| darbelo: can I get access on Trac to accept tickets? | |||
| darbelo | kthakore: I have no idea, I'm not a Trac admin. Coke, particle, chromatic and allison are IIRC. | 21:53 | |
| kthakore | ok | 21:57 | |
|
21:57
rblasch_ joined
|
|||
| dukeleto | kthakore: you should be able to accept a ticket if you have a trac account | 21:59 | |
| tcurtis | cotto_work: I'm planning to write up a long list of questions about what Lorito should be like tonight and put them on the wiki somewhere. Less structured than LoritoRoadmap and such, but hopefully that will mean it will have a lower barrier to entry so that more people will feel comfortable to pop in and add their view on the best answer to one of them or to add more. | 22:06 | |
|
22:06
hercynium joined
|
|||
| chromatic | +1 tcurtis | 22:06 | |
| cotto_work | tcurtis, great | 22:07 | |
| kthakore | dukeleto: I cant | ||
| tcurtis | Including some that I'm pretty sure of the answer to already, but it still might be helpful to clarify and ensure that there's agreement on the matter. | 22:08 | |
| cotto_work | tcurtis, throw it on the wiki | 22:09 | |
| dukeleto | kthakore: which ticket are you talking about? | ||
| cotto_work | Having a question with a known answer would make the wiki page more accessible. | ||
| chromatic | TT #1639, dukeleto. | ||
| tcurtis will add more to his current list and put it on the wiki later tonight. | 22:10 | ||
| kthakore | dukeleto: it was more coupled then previously tought | ||
| dukeleto: I need more time | |||
| so I want to accept ticket | 22:11 | ||
| darbelo | coverage? | 22:12 | |
| purl | coverage is, like, cv.perl6.cz or tapir2.ro.vutbr.cz/cover/cover-results/ | ||
| darbelo | Chandon: ^ | ||
| Chandon | Neat. I'll have to check that out. | 22:13 | |
| kthakore | dukeleto: maybe even just assign me that ticket? | 22:14 | |
| oh well gtg | |||
|
22:15
Hunger joined
|
|||
| cotto_work | msg Coke Don't forget to include SHA1 checksums with the release announcement. | 22:19 | |
| purl | Message for coke stored. | ||
|
22:20
blazes816 joined
22:21
blazes816 joined
22:22
TylerSmith joined
|
|||
| tcurtis is assuming #ps is over. | 22:24 | ||
| tcurtis -> away. | |||
| dalek | TT #1708 created by Chandon++: ParrotThread PMC depricated | 22:26 | |
| TT #1708: trac.parrot.org/parrot/ticket/1708 | |||
| TT #1709 created by Chandon++: Task PMC depricated | |||
| TT #1709: trac.parrot.org/parrot/ticket/1709 | |||
| Coke | msg cotto_work - if it's in the doc, it'll get done. | 22:27 | |
| purl | Message for cotto_work stored. | ||
| Coke | Chandon: it's "deprecated" | 22:28 | |
|
22:28
theory joined
|
|||
| Coke | also, deprecating something and not giving an upgrade path is not boss. | 22:28 | |
| Chandon | Sweet. I can totally spell. | ||
| Coke | I think you're better off marking those PMCs experimental. | ||
| which amounts to the same thing from your standpoint, but means we don't know how they will be shaped in the future. | 22:29 | ||
| also, IWBNI they warned when instantiated, under "parrot -w". | |||
| darbelo | Rule of thumb: Current code is deprecated, additions are experimental. | 22:30 | |
| Coke | darbelo: yes, but in this case, that's wrong. =-) | ||
| Chandon | That makes sense, but it contradicts what the pod file says (experimental features have never shipped not-experimental). | 22:32 | |
| darbelo | Coke: Meh, fits my luck. | ||
| dalek | rrot: r48137 | Chandon++ | trunk/DEPRECATED.pod: Threading and concurrency deprecations for gsoc_threads branch. |
||
|
22:33
gbacon joined
|
|||
| darbelo | I thought it was: experimental features have never shipped not-experimental *in a supported release* | 22:33 | |
| Chandon | IWBNI? | ||
| purl | hmmm... IWBNI is "it would be nice if" | ||
| darbelo | Or, that's the approach I've taken in the past. | ||
| Chandon | How do warnings work? | 22:34 | |
| Coke | Chandon, darbelo: fixing. | 22:35 | |
| darbelo | Chandon: Parrot_warn(interp, PARROT_WARNINGS_ALL_FLAG, "Waring text"); | ||
| mikehh | Coke: html_cleanup - apart from ch01_introduction.pod.html not getting generated in docs/html/docs/book/pct and some href diffs docs/html/book looks ok | ||
| nopaste | "cotto" at 192.168.1.3 pasted "sha1 checksum addition to the release announcement" (15 lines) at nopaste.snit.ch/22179 | ||
| darbelo | I'm not so sure about the PARROT_WARNINGS_ALL_FLAG part. | 22:36 | |
| cotto_work | someone mind applying that before Coke starts following those instructions? | ||
| mikehh | Coke the diffs in pir/chap04 are, I think, to changes in trunk | ||
| Coke | mikehh: if you can remerge trunk to branch, that'd help. | 22:39 | |
| mikehh | Coke: will give it a try - now or after the release? | 22:40 | |
| Coke | Chandon: are you /sure/ you want this stuff marked as "going to change"? | ||
| mikehh: now would be nice. | |||
| you're basically saying "anything is better than this crap" | |||
| Chandon | Coke: ParrotThread basically doesn't work. Task will change if my branch gets merged. | 22:41 | |
| Coke | Chandon: why did you call it "Task" and not "SpiffyTask" ? | ||
| and "Doesn't work" == bug, not Deprecation. | 22:42 | ||
| I would say, rename your Task PMC to something new, and when we have that, we'll mark /that/ as experimental. | |||
| (or Then mark the old task as deprecated in favor of SpiffyTask | 22:43 | ||
| cotto_work | "NotExtravagantlyBrokenTask" | ||
| Coke | I am not a fan at all of "this will eventually change" deprecation notices. we can't have any more of those. | ||
| cotto_work | +1 to what Coke said | 22:44 | |
| darbelo | Coke: I'm applying cotto_work's patch to the release manager's guide. +/-1? | 22:45 | |
| Chandon | I totally should have predicted this conversation and either prepared a better argument for stealing the word Task or did it earlier. | ||
| As far as I can tell, the current Task PMC probably doesn't do anything that anyone uses. | |||
| Coke | you would have had to steal it before you joined the project. | ||
| Chandon: ok. but if you don't have a ticket for "this is how the interface is changing", now is not the time to slip in a notice. | 22:46 | ||
| wait until you know what the new interface looks like and then we can talk. | |||
| Having a new name for Task in the meantime is a very simple way to avoid this whole issue. | 22:47 | ||
| i'm going to close those tickets. | |||
| Chandon | Coke: That puts off any merge of my project until October, which isn't necessarily wrong, but seems excessive for stuff that probably has never worked. | 22:48 | |
| darbelo | If it has never worked, then we don't need to deprecate it. | ||
| It's a bugfix. | 22:49 | ||
| Chandon | darbelo: With a completely different interface. | ||
| Coke | Chandon: it only puts off the merge of yoru project if you insist on using "Task" | ||
| which you haven't finalized yet, right? | |||
| Chandon | Coke: ParrotThread is not going to survive in my branch in any case. The current Task may not surivive either, from an API perspective. | 22:50 | |
| darbelo | seen plobsing? | ||
| Coke | if you don't have the interface 100% /right now/, the deprecation is meaningless. (speaking in general terms, not for "stuff that probably has never worked". | ||
| purl | plobsing was last seen on #parrot 5 days, 16 hours, 33 minutes and 44 seconds ago, saying: NotFound: good to see. still, reading/analysis feel a little underpowered. [Jul 15 06:16:33 2010] | ||
| dalek | rrot: r48138 | darbelo++ | trunk/docs/project/release_manager_guide.pod: Add a step for computing SHA1 sums to the Release Manager Guide. |
||
| darbelo | Crap. Forgot to mention cotto++ in the commit message | 22:51 | |
| cotto++ # For good measure. | |||
| cotto_work | OH NOES! | ||
| Coke | $DINNERTIME | ||
| NotFound | Can't you call it 'Tasklet' or something like that? | ||
| Coke | I will nom before doing anything else with the tickets. | ||
| darbelo | GreenTask :) | 22:52 | |
| Chandon | Coke: Your call. I'm not too worried about getting bumped to October - that'll probably be correct - just wanted to make other decisions possible if doing so would be reasonably straightforward. | ||
| Renaming my Task PMC seems like a really reasonable plan, except it seems a lot like the current Task PMC doesn't do anything except prevent me from using the standard jargon for the CS concept (per Intel TBB and friends). | 22:56 | ||
| cotto_work | darbelo: thanks | ||
| dalek | tracwiki: v3 | cotto++ | LoritoOps | 23:15 | |
| tracwiki: updates from #ps | |||
| tracwiki: trac.parrot.org/parrot/wiki/LoritoO...ction=diff | |||
| Coke | well, if you were starting from scratch, task might be a fine name. we just have to cope with the fact that there's prior art here, even if it doesn't meet our needs. | ||
| accident of implementation. | |||
| I'll be happy to work with you when it's time to merge back to avoid any deprecation issues. | |||
| Tene | Just call it "Taaask" | ||
| Chandon | Coke: The current Task PMC represents an Event. There's a wonderful API discussion to be had, not now. The only question is whether publishing a potentially incorrect Experimentalness is more annoying than constraining that discussion when we do have it. | 23:16 | |
| cotto_work | I think darbelo has provided us with an elegant solution. Just call it TƤsk. | 23:17 | |
| dalek | TT #1709 closed by coke++: Task PMC experimental | ||
| TT #1709: trac.parrot.org/parrot/ticket/1709 | |||
| Chandon | cotto_work: Yes. That's obviously the correct solution. Best API ever. | ||
| cotto_work | You're welcome. | 23:18 | |
| dalek | nxed: r568 | NotFound++ | trunk/winxedst1.winxed: delete some redundant checks |
||
| Coke | we're not constraining the new discussion. | ||
| by going with something-not-called-task, you're pretty much free to do the right thing. | |||
| Chandon | Coke: Except the right thing is to rename the current Task to Event and probably drastically change its API. | 23:19 | |
| Coke | is that new Event not the Task you're working on in your branch? | ||
| Chandon | I mean, the position I would be arguing in that discussion is that the right thing... | ||
| Coke | is there an Event AND a Task? | 23:20 | |
| Chandon | My branch currently has Task *and* Event, where Event is what's called Task in trunk. | ||
| Coke | Ok. so rename your other Task to <some appropriate name>, and everything is still incredibly kosher. | 23:21 | |
| Chandon | Except that then you have to say new 'Camel' to get a Goat, and if you say new 'Goat' you get a dog. | 23:22 | |
| Coke | Chandon: there is prior art here. I cannot make that go away. | 23:23 | |
| I am sure we can come up with a name that is very much like Task but isn't. If that's the hardest part of your project, I think you'll have done great. =-) | |||
| dalek | rrot: r48139 | mikehh++ | failed to fetch changeset: merge html_cleanup branch with trunk |
23:24 | |
| Chandon | So you're saying that API changes can't happen? | ||
| dalek | rrot: r48140 | coke++ | trunk/DEPRECATED.pod: Remove these 2 notices; system and new in place simultaneously to allow anyone to cut over through a supported release, then remove the old versions. |
||
| Coke | Chandon: we really need to have /both/ APIs in place simultaneously to allow cutovers. | ||
| otherwise there is NO easy upgrade path. | 23:25 | ||
| here's the process: | |||
| 1) add glorious new API | |||
| 2) deprecate old crappy API. | |||
| (that happens at a supported release). | |||
| 3) with that deprecation, publish notes on how to use the new API. | 23:26 | ||
| immediately after the release, rip out the old API. | |||
| by the time the /next/ supported release hits, it will contain only the new API. | |||
| but people using parrot in the meantime have an upgrade path that doesn't involve "oh, crap, I only upgraded one supported release and now my code doesn't work." | 23:27 | ||
| If this API involves new methods on Task? that's fine. as long as people can continue to use it the old way as well. | |||
| whiteknight | Coke: nobody uses the "old crappy API" because it's fundamentally broken and doesn't work | 23:28 | |
| Coke | if you are making Task.foo() now do something else entirely, that's a problem, yes. | ||
| whiteknight: Yes, well, we should have thought of that before releasing it. | |||
| Chandon | There is no one using ParrotThread who has working code. It is possible that someone uses Task, but I'd happily bet $100 that no-one in the world relys on it it because it doesn't really do anything useful. | ||
| Coke | There is a very simple, easy, workable way to get the new functionality in. | 23:29 | |
| Chandon | The only reason I'm arguing this point at all is this: In order for the "old" functionality to be included in 2.9 non-trivially, I'd have to write it. I'd rather not do that. | 23:30 | |
| whiteknight | Coke: we didn't "release" it in any real sense. The code was there, broken, before our deprecation policy was enacted | ||
| nobody fixed it or used it since. There's no expectation that it's usable | 23:31 | ||
| Coke | Chandon: the old functionality is "what's out there right now" - I'm not suggesting anyone write any more code for current Task or ParrotThread than what's in trunk right nwo. | ||
| whiteknight: Be that as it may, how does doing it the right way going forward hurt anyone? | |||
| Coke is rapidly losing steam for doing the release. whee. | 23:32 | ||
| NotFound | Adding a deprecation notice the day of the release is not nice, at least. | 23:33 | |
| Tene | Coke: the objection is that the cost is either: 1) have incorrect names in the API for the rest of the releases, or 2) have a name-changing deprecation cycle on the next supported release right after adding the new, working functionality. | ||
| Coke | Which is so trivial i cannot believe people are complaining about it. | 23:34 | |
| Chandon | Coke: Just go ahead and do the release without the notices. I honestly should have started this discussion a week ago if I wanted it to go in. | ||
| NotFound | If the point is that the code is completely broken and changing it will not harm anyone and thus don't need a deprecation notice, there is no point to add the deprecation notice. | 23:35 | |
| Coke | Chandon: who is your mentor? | ||
| dalek | TT #1708 closed by coke++: ParrotThread PMC experimental | ||
| TT #1708: trac.parrot.org/parrot/ticket/1708 | |||
| Chandon | Coke: whiteknight | 23:36 | |
| purl | whiteknight is mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/ | ||
| Coke | NotFound: no point, perhaps. but given that it's trivial to do it "right", I don't see why not to. | ||
| NotFound | Coke: it we do it "right", no deprecation notice required, isn't it? | 23:37 | |
| No urgent need for it, I mean. | 23:38 | ||
| Coke | no, if we /did/ it right. That ship has sailed. | ||
| we are now living in an imperfect repository. | |||
| cotto_work | Coke, no wai | ||
| mikehh a perfect parrot - whee | 23:39 | ||
| cotto_work | "perfect" is the name for the 6.0 release. | ||
| Coke | I think I'm going to declare 'make html' bust for this release. | 23:40 | |
| (at least, my rewrite of it.) | |||
| NotFound | Coke: my point is: if we use a new name, there is no urgency for a deprecation notice now, it can be done later. | ||
| whiteknight | So what's the complaint? can we not put in a deprecation notice for Tasks/Threads? | 23:42 | |
| NotFound | And if they want to keep discusing the issue and convince enough people that the old name can be reused without deprecation, there is no need for a deprecation notice. | ||
| So, in any case there is no urgent need for the notice. | 23:43 | ||
| darbelo | www.synonyms.net/synonym/task | ||
| darbelo wants a "chore" PMC | |||
| Tene | whiteknight: Coke's assertion is that we need to have both systems included in the same supported release, so that people have a supported release to migrate from the old to the new, and you can't have both in a supported release if they're the same name. | 23:44 | |
| NotFound | whiteknight: deprecating a subsystem a few minutes before a release looks ugly to me. | ||
| whiteknight | so that's an argument about ever improving any subsystem in-place | ||
| s/about/against/ | |||
| darbelo | It's not improved in place, it's getting ripped out and replaced with an incompatible alternative. | 23:45 | |
| I'll give you improvement, but not in-place. | 23:46 | ||
| Tene | darbelo: The current code does not work for anything. It's broken and not useful. | ||
| darbelo | Tene: Sure. That's why amputation is an improvement. | ||
| whiteknight | darbelo: in this case yes, it's a straight replacement | ||
| Coke | here's the thing: Chandon had it exactly right; this discussion should have happened at LEAST a week ago. | 23:47 | |
| darbelo | That too. | ||
| whiteknight | but in the larger sense, we lose a lot of ability to make improvements because we can't simulaneously have both the old and the new systems after a refactor/improvement | ||
| Coke | I would argue my position the same way even if we had a month to go, though. | ||
| whiteknight: of course you can have both systems in place at the same time. | |||
| you just can't give them both exactly the same name. | 23:48 | ||
| whiteknight | Coke: bologna | ||
| Coke | if they have completely different behavior. (Not: "fixed" behavior vs. "broken" behavior) | ||
| whiteknight | in the strict case of threading yes, you probably can (though it would be a huge waste). In other cases which are easy to imagine, impossible | ||
| Coke | but in any case, deprecation notices of "this thing will change in random ways in the future" that are not "experimental" should be disallowed. | 23:49 | |
| darbelo | If I read the situation correctly, Chandon's branch does for threads what bacek did to strings. Gut them and replace them with something better. | ||
| Coke | even if there is no way to have both in place simultaneously. | ||
| Tene | "The current Task is deprecated and will be removed." is fine, though. | 23:50 | |
| whiteknight | Coke: there's no "random" ways about it. Chandon has a well-documented and public plan for his changes | ||
| Coke | whiteknight: really? I haven't seen it mentioned once in this discussion. | ||
| whiteknight | and even if we don't replace it, current Tasks and Threads should be deprecated and removed no matter what | ||
| Tene | "Removed or replaced with a functional reimplementation" might be better. | ||
| whiteknight | Coke: his GSoC proposal, and weekly blog series | ||
| Coke | whiteknight: too bad that won't happen until 2.9 | ||
| whiteknight | That's fine, so long as it happens | 23:51 | |
| Coke | -> afk to work on the release. | ||
| whiteknight | I find it particularly unsettling that the deprecation policy can be used to both provide no protection for users against highly disruptive changes (i.e. the opcode deprecations) and at the same time prevents us from removing "features" which are completely broken and unused | 23:52 | |
|
23:52
bubaflub joined
|
|||
| Coke | whiteknight: the opcode stuff should not have gone in that way, either. | 23:52 | |
| Nothing is preventing you from removing this broken crap. | 23:53 | ||
| just not. right. now. | |||
| whiteknight | Coke: should not, maybe. But at the time it was a perfectly valid interpretation of the policy | ||
| and swinging the pendulum all the way to the other side and preventing the removal of garbage is just as bad | |||
| Coke | whiteknight: ok. really leaving now, because this conversation is seriously impairing my ability to get the release out the door. | 23:54 | |
| whiteknight | ok | ||
|
23:54
Coke left
|
|||
| whiteknight absolutely hates the deprecation policy | 23:56 | ||
| as if I don't say that enough | |||
|
23:56
Psyche^ joined
|
|||
| Tene | whiteknight: +1 | 23:58 | |
| purl | 1 | ||
| Tene | purl: I wasn't talking to you | ||
| purl | Tene: excuse me? | ||
| darbelo | whiteknight: I'm generally on your side of the policy hating thing, but I do have to agree with Coke that 'a few hours before a release' falls short of sufficient advance notice. | ||
|
23:58
Coke joined
|
|||
| Coke | trac picked a great time to go out into the weeds. | 23:58 | |
| whiteknight | Coke: up for me. What's wrong? | 23:59 | |