|
Parrot 3.8.0 "Magrathea" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 21 September 2011. |
|||
| not_gerd | good night, #parrot | 00:02 | |
|
00:26
mtk joined
01:29
jeffreykegler joined,
jeffreykegler left
|
|||
| dalek | rrot: 47b1a49 | soh_cah_toa++ | tools/dev/pbc_to_exe.pir: In pbc_to_exe, wrapped call to Parrot_api_destroy_interpreter() inside an 'if' statement so as not to ignore potential errors. |
01:30 | |
| cotto | ~~ | 01:32 | |
| dalek | rrot: 0777e50 | soh_cah_toa++ | tools/dev/pbc_to_exe.pir: In pbc_to_exe, wrapped call to Parrot_api_string_export_ascii() inside an 'if' statement so as not to ignore potential errors. |
01:50 | |
| soh_cah_toa falls in love w/ splint | |||
| what a great tool :) | |||
| cotto | When I look at Drupal testing, I feel like I'm getting punked. I keep hoping that someone will come up to me and say "Just kidding. We really use TAP." | 02:05 | |
| It's nice to be back here. | |||
| Our code is insane, but it's well-tested. | |||
| sometimes | 02:06 | ||
| soh_cah_toa | so true | ||
|
02:14
benabik joined
|
|||
| dalek | rrot: c42af46 | soh_cah_toa++ | tools/dev/pbc_to_exe.pir: In pbc_to_exe, wrapped call to Parrot_api_string_free_exported_ascii() inside an 'if' statement to catch potential errors. |
02:16 | |
|
02:22
nbrown joined
|
|||
| soh_cah_toa | how is it possible that Parrot_vtable_slot_names is defined w/ static scope in include/parrot/vtable.h, is never used anywhere in that file, but *is* used in src/oo.c? it has static scope, that can't be possible | 02:38 | |
| benabik | .h files are included textually in .c files. | 02:39 | |
| #include "foo.h" is the same as copy/pasting the contents at that spot. | |||
| soh_cah_toa | ah, so it has static scope wherever it's included | ||
| benabik | Yes. | ||
| soh_cah_toa | but that's not so in .c files | ||
| ok | |||
| benabik | soh_cah_toa: Unless you #include "foo.c" somewhere, but then you should be hit. | 02:40 | |
| soh_cah_toa | yup ;) | ||
| interesting, never knew that | |||
| the Parrot_* types (e.g. Parrot_Int) are reserved just for the embedding api, correct? | 02:44 | ||
| and not the extension api? or yes? | |||
| benabik | I certainly don't know. Hopefully someone else is awake. :-D | ||
| soh_cah_toa | cotto: ping | ||
| plobsing | soh_cah_toa: Parrot_* types are most frequently used in the embedding api, but are sometimes used elsewhere. For example, when we need specifically-sized values for StructView. | 02:49 | |
| soh_cah_toa | isn't that sortof abusing the embedding api though? | 02:50 | |
| plobsing | we need to call them something | 02:51 | |
| soh_cah_toa | i see those Parrot_* types used in combination w/ INTVAL, STRING, etc. types in src/extend.c and i want to remove them | 02:52 | |
| plobsing | I highly doubt Parrot_Int, etc started as purely embedding constructs. | 02:53 | |
| soh_cah_toa | that's what i was told, at least | ||
| personally, i think it's dumb to have both INTVAL and Parrot_Int but i'm just trying to keep things consistent | 02:54 | ||
| plobsing | INTVAL and friends are a combination of parrot hackers being lazy, and wanting internals to "look different" | ||
| soh_cah_toa | what a surprise ;) | 02:55 | |
| regardless, i think it's still wise to only use either Parrot_* and friends or INTVAL and friends but not both interchangeably | 02:56 | ||
| plobsing | the embedding api isn't allowed to make assumptions like that, but for internals, anything goes. | ||
| soh_cah_toa | i'm not sure "anything goes" is such a great attitude to have when writing code ;) | 02:57 | |
| if a function returns an INTVAL, then the variable used to store the return value should also be of type INTVAL, not Parrot_Int for instance | 02:59 | ||
| which is the kind of garbage i'm seeing in src/extend.c | 03:00 | ||
| soh_cah_toa dies a little inside every time he looks at parrot's disgusting c code | 03:06 | ||
|
03:07
woosley joined
|
|||
| soh_cah_toa cannot wait for nice, clean mole/m0 code | 03:07 | ||
| benabik | soh_cah_toa: And you'll cry when the mole code is a port of the C, blemishes and all, right? | ||
| soh_cah_toa | i'll do my best to apply some facial cleaner to those blemishes | 03:08 | |
| if we just used a *consistent* naming/style convention, i would be the happiest man alive | 03:10 | ||
| benabik | soh_cah_toa: I wish you luc. | 03:11 | |
| luck, too | |||
| soh_cah_toa | :) | ||
| plobsing | soh_cah_toa: I promise to use whatever naming convention you aren't using. | 03:25 | |
| ;) | |||
| soh_cah_toa | honestly, i could care less what the convention actually is. i just want it followed | 03:26 | |
| and used....always :) | |||
| benabik | soh_cah_toa: But that might let people understand our code and change it. And that's bad, right? | 03:28 | |
| soh_cah_toa | oh yes | ||
| very | |||
| bad | |||
| that would make it too easy for a gsoc student to learn about parrot | |||
| and we don't want that | |||
| plobsing | soh_cah_toa: that presumes you can come up with a convention that deals with all cases we'll ever encounter | 03:29 | |
| flexibility is more important than consistency | |||
| soh_cah_toa | that's debatable ;) | ||
| if you're talking about a "c string" call it *_c_str(). not sometimes *_cstring(), sometimes *_c_string(), sometimes *_cstr() | |||
| benabik | "Consistency is the last refuge of the unimaginative." -- Oscar Wilde | 03:30 | |
| "Consistency is contrary to nature, contrary to life. The only completely consistent people are dead." -- Aldous Huxley | |||
| :-D | |||
| soh_cah_toa | :) | 03:31 | |
| plobsing | soh_cah_toa: that's a tools issue. vim with ctags gives me all the support I need there. And if your code editing solution can't do as much, I suggest you try to improve that situation. | ||
| soh_cah_toa | i also use vim w/ ctags | ||
| but i shouldn't have to go look up some other file to see whether i need an extra _ or whether this time a string is "str" or "string" | 03:32 | ||
| it's just plain stupid to use two different ways to refer to the same thing: a string | 03:33 | ||
| sometimes a packfile is PackFile (by itself) but if it's a packfile-something, then packfile is spelt w/ a lowercase f: PackFile becomes PackfileSomething | 03:34 | ||
| imho, using uppercase F looks horrible but i wouldnt' mind if it *always* was uppercase | 03:35 | ||
| there's way too many "special cases" | 03:37 | ||
|
03:51
jeffreykegler joined
|
|||
| cotto | soh_cah_toa, pong | 03:57 | |
| soh_cah_toa | cotto: i was wondering whether Parrot_Int and friends were reserved just for the embedding api? i'm seeing it used a lot in combitation w/ INTVAL in src/extend.c | 04:02 | |
| and i think i remember you saying something along those lines during the summer. i just wanted to double check | 04:03 | ||
| cotto | soh_cah_toa, that's my understanding | ||
| soh_cah_toa | cotto: so it'd be ok if in src/extend.c i changed a function that returned a Parrot_Int to return an INTVAL instead? sometimes one type is assigned to another (w/o a cast) | 04:04 | |
| cotto | soh_cah_toa, which function? | 04:05 | |
| soh_cah_toa | there's a lot of type mismatches | ||
| Parrot_PMC_typenum() | 04:06 | ||
| Parrot_PMC_null() | |||
| a couple others | |||
| Parrot_PMC_new() | |||
| Parrot_get_root_namespace() | 04:07 | ||
| Parrot_PMC included in those | |||
| nopaste | "soh_cah_toa" at 192.168.1.3 pasted "Type Mismatches Detected by Splint" (30 lines) at nopaste.snit.ch/82261 | 04:09 | |
| cotto | Hmmm. | ||
| soh_cah_toa | yeah, i know :\\ | 04:10 | |
| cotto | Small changes to improve consistency are fine, but I'm not sure I like that we're exposing type numbers. | ||
| soh_cah_toa | why is that? | 04:11 | |
| cotto | They should be a well-hidden implementation detail, if anything. | ||
| plobsing | They should go away eventually | 04:12 | |
| IIUC, they prevent types from being fully gcable | |||
| cotto | We shouldn't encourage their use. | ||
| soh_cah_toa | i guess it does the same thing as pmc->vtable->type == enum_class_Foo | ||
| cotto | better, we should discourage their use | ||
| soh_cah_toa | which is better | ||
| actually, i don't even see that function being called anywhere except for inside tests and being explained in some documentation | 04:14 | ||
| cotto | Do HLLs make use of it/ | ||
| ? | |||
| soh_cah_toa | that's what i'm wondering | ||
| i'm not sure how you'd find out | |||
| efficiently, that is :) | 04:15 | ||
| cotto | *cough*all_hll_test*cough* | ||
| plobsing | I do. wee have some cottomated testing framework to handle that kind of thing | ||
| soh_cah_toa | so delete it, run all_hll_test and watch? | ||
| cotto | that's one way to do it | 04:16 | |
| soh_cah_toa | ah, now i see why you wrote that | ||
| cotto | you should be aware of what a baseline test run looks like on your system though | ||
| soh_cah_toa | sure | ||
| well, i've got some physics h/w to do now but tomorrow i'll take care of the Parrot_* types w/ a quick patch and nuke Parrot_PMC_typenum() | 04:17 | ||
| cotto | Hmmm. If all_hll_test downloaded everything first, you could also grep. | ||
| soh_cah_toa | does doing that require a deprecation or are we doing away w/ that whole process | 04:18 | |
| cotto | soh_cah_toa, it depends on whether anyone's using it. If they are, have a replacement in place before nuking it. If not, fire at will. | ||
| soh_cah_toa | i read your email to parrot-dev, i just don't know if it has "gone into effect" | ||
| ok | |||
| benabik | Judging from the current broken state of NQP, I'd say we're away from depreciations. | 04:19 | |
| soh_cah_toa | ugh...that whole mess :( | ||
| cotto | benabik, the handling of that was sub-optimal | ||
| benabik | cotto: Really? ;-) | ||
| cotto | though I thought it'd have been fixed by now | ||
| soh_cah_toa | yeah, i know | 04:20 | |
| benabik | I think they're waiting for a release before merging⦠but the release is held up by lack of tuts to clear out some bugs/missing features. | ||
| *tuits | |||
| cotto | benabik, ok. I didn't know that the release had been held up. | ||
| benabik | cotto: pmichaud has some regex work nearly ready, but $LIFE is getting in the way. (AFAICT) | 04:21 | |
| cotto | the easy fix would be to make all-hll-test checkout the right nqp branch | ||
| benabik, yes. From #phasers last week it sounded like it'd clear up. From experience, it looks like not. | |||
| benabik | They don't have much time before it'll be a 2011.10 release. :-/ | 04:22 | |
| Ah, well. Life happens. | 04:23 | ||
| cotto | they can call it whatever they like. | ||
| for all you know, 3.9.0 could be "2010.3" | |||
| soh_cah_toa | cotto: about how long does a full all_hll_test run take? | 04:24 | |
| cotto | soh_cah_toa, it depends very heavily on your computing power. | 04:25 | |
| it's not too bad if you comment out spectest_regression | |||
| that'd defeat some of the purpose though | 04:26 | ||
| but if a program depends on a C function, testing that the build works should be sufficient | |||
| s/program/hll/ | |||
| soh_cah_toa | ok | ||
| did you deliberately make the output non-verbose or am i just hanging? | 04:27 | ||
| cotto | I made it quiet. | ||
| you can use -v | |||
| soh_cah_toa | ok, phew | 04:28 | |
| plobsing | is there a way to make it output a verbose log file? | ||
| cotto | plobsing, it already does | ||
| plobsing | where? | ||
| cotto | /tmp/parrot_xxx/logs | ||
| fsvo "xxx" | |||
| plobsing | I don't recall the tool telling me about these files. | 04:29 | |
| cotto | stdout and stderr from every stage of the build are logged | ||
| it's a lazy tool | |||
| plobsing | perhaps in the terse output you could point users to the appropriate verbose logs? | ||
| what I wound up doing was going in and retesting things that failed | 04:30 | ||
| cotto | hard to argue with that logic | ||
| that's the exact situation I wanted to avoid | |||
| soh_cah_toa | +1 to having an irc bot run all_hll_test continuously and reporting failures | ||
| great idea | |||
| plobsing | I'd -inf the idea unless it only reported *deltas* | 04:31 | |
| possibly with a queriable/browsable interface for current status | 04:32 | ||
| cotto | My original intent was to make an irc bot, but having a script was easier and meant that I could get something workable faster. | ||
| there you go | 04:34 | ||
| dalek | rrot: b2e419b | cotto++ | tools/dev/all_hll_test.pl: let users know where the logs are stored |
||
| plobsing | \\o/ | 04:35 | |
| cotto | whiteknight may have forgotten to add a file to Rosella | 04:39 | |
| soh_cah_toa | yeah, it's failing for me | ||
| as well as parrot-gmp and parrot-linear-algebra | |||
| but that might just be me | |||
| plobsing | it's not just you | 04:40 | |
| cotto | pla wfm. You have to install a linear algebra library for it. | ||
| plobsing | when I wrote to parrot-dev saying my branch didn't cause any new breakage, I included a not-so-subtle hint that there was a lot of existing breakage. | ||
| cotto | odd. Rosella seems to build fine | 04:41 | |
| dalek | umage: 941a2bd | soh_cah_toa++ | docs/hacking/add-command.pod: Plumage does have a manpage now so the 'Documentation' section of add-command.pod needed to be updated. |
04:44 | |
| soh_cah_toa | results for all projects: | 04:45 | |
| PASS: Parrot, Winxed, ohm-eta-wink-kzd, Plumage, Lua | |||
| FAIL: | |||
| Rosella (build), parrot-gmp (build), parrot-linear-algebra (build), nqp (build), Rakudo (configure), Partcl-nqp (test) | |||
| that is some serious breakage | |||
| cotto++ for making that script though. very nice | 04:46 | ||
| cotto | rakudo is because of nqp | ||
| soh_cah_toa | right | ||
| cotto | lemme fix that | ||
| plobsing | rakudo was failing on master for me | ||
| before useless-defaults | |||
| dalek | rrot: 9b8c473 | soh_cah_toa++ | tools/release/auto_release.pl: Added ^ and $ anchors to the regex used to parse the release version in auto_release.pl. Without them, a number like 1.2.3.4.5.6 would otherwise be acceptable. |
04:53 | |
| plobsing | soh_cah_toa: you mean we're never going to see a 1.2.3.4.5.6 release? I was really holding my breath for that one! | 04:54 | |
| soh_cah_toa | :) | 04:55 | |
| plobsing | we still have time to change our versioning scheme to be like pugs (assymptotically approach 2pi) | 05:00 | |
| moritz | retro fitted on top of 1.2.0 maybe :-) | ||
| plobsing | moritz: sadly, there are likely more languages that "work" on 1.2.0 than on HEAD | 05:01 | |
| soh_cah_toa | and that's a wrap... | 05:03 | |
| cotto | plobsing, it's a non-trivial temptation | 05:04 | |
| not sure what number we'd use though. Nothing terribly interesting is close to 3.9 | 05:11 | ||
| though I'm not a math nerd | |||
| I'm sure dukeleto would have something | |||
| moritz | 4 is an interesting number :-) | 05:12 | |
| plobsing | moritz: I prefer 3.9999999....... ;) | 05:24 | |
| xkcd.com/899/ | 05:26 | ||
| dalek | rrot: f4397b9 | petdance++ | tools/release/auto_release.pl: Merge branch 'master' of github.com:parrot/parrot |
05:28 | |
| rrot: 063b6f5 | petdance++ | src/runcore/subprof.c: Change the __inline__ to PARROT_INLINE. Remove some unused local variables. Const a couple of local vars. Rerun the headerizer. |
|||
|
05:44
rfw joined
05:52
alvis joined
06:11
jsut_ joined
07:23
mj41 joined
|
|||
| dalek | kudo/nom: 4b23759 | moritz++ | / (41 files): Merge branch 'nom' into nom-exceptions |
08:13 | |
| kudo/nom: b522144 | moritz++ | src/core/Exception.pm: only unwrap CONTROL_ERROR exceptions |
|||
| kudo/nom: 287b0d8 | moritz++ | src/core/ (4 files): Merge branch 'nom-exceptions' into nom |
|||
|
08:17
lucian joined
|
|||
| mls | morning perl6! | 08:41 | |
| oh no, an exception update! I hops it doesn't collide with my code... | |||
| oh, wrong channel ;) | 08:43 | ||
| morning parrot! | |||
|
09:01
mj41 joined
09:09
woosley joined
|
|||
| dalek | kudo/nom: cf31a11 | moritz++ | / (3 files): list of contributors |
09:19 | |
| kudo/nom: ede97de | masak++ | docs/announce/2011.09: [docs/announce/2011.09] underpromise, overdeliver Rephrasing to be a bit more conservative. |
09:26 | ||
| kudo/nom: 900ccf3 | moritz++ | docs/announce/2011.09: [announce] note that people who are afraid of regressions should use 2011.07 |
09:36 | ||
| kudo/nom: 41ecebe | moritz++ | docs/announce/2011.09: [announce] call it Riga |
09:38 | ||
| kudo/nom: 97b518c | moritz++ | tools/build/NQP_REVISION: bump NQP_REVISION to 2011.09 tag |
09:59 | ||
| kudo/nom: 43be162 | moritz++ | docs/announce/2011.09: [announce] mention Pod and BEGIN |
10:01 | ||
|
10:09
preflex_ joined
10:25
schmooster joined
11:36
Psyche^ joined
11:41
benabik joined
|
|||
| benabik | o/ #parrot | 11:43 | |
|
11:49
mtk joined
12:01
whiteknight joined
|
|||
| dalek | kudo/nom: cec5770 | tadzik++ | docs/announce/2011.09: [announce] Expand some Pod news |
12:05 | |
|
12:15
lateau joined
|
|||
| dalek | kudo/nom: f83304d | moritz++ | docs/release_guide.pod: [docs] markup fix |
12:19 | |
| rrot: f74dd8b | benabik++ | t/dynpmc/select.t: select.t: add a TODO due to undefined behavior From opengroup.org: "[...] what constitutes an exceptional condition is file type-specific. [...] For [non-socket] file types it is implementation-defined." This test fails on OS X and possibly other BSDs because they differ from Linux's behavior. The entire test should probably use sockets because, if nothing else, select on files doesn't work in Windows. |
12:55 | ||
| benabik | I've been holding onto that patch for a while. Might as well commit it so we can have one less test failure. | ||
| There's a bit of a discussion on #perl6 about what async API to use. May want to steal whatever they decide on. ;-) | 12:56 | ||
|
13:09
preflex_ joined
13:16
mj41 joined
|
|||
| benabik | aloha: aloha? | 13:23 | |
| aloha | benabik: aloha is simple Bot::BasicBot::Pluggable hosted on github.com/bacek/aloha | ||
| benabik | aloha: why aren't you on #perl6? | ||
| aloha | benabik: Dunno. | ||
| Coke | aloha, seen bacek? | ||
| aloha | Coke: bacek was last seen in #parrot 117 days 2 hours ago joining the channel. | ||
| benabik | If I ran a bot, I would make it respond to kicking by reinitializing. Or doing error checks or something. | 13:26 | |
| benabik kicks aloha. | |||
|
13:40
bluescreen joined
|
|||
| dukeleto | ~~ | 13:56 | |
|
14:34
plobsing_ joined
15:22
nbrown joined
15:39
bluescreen joined
|
|||
| dalek | rrot/mls/pct_exceptionhandlers: 8d35fe3 | mls++ | compilers/pct/src/PAST/Compiler.pir: also correct the result handling for block handlers |
15:47 | |
|
15:56
dmalcolm joined
|
|||
| dalek | p: bd69bd1 | pmichaud++ | src/PAST/SixModelPASTExtensions.pir: Merge branch 'master' of github.com:perl6/nqp |
16:17 | |
| p: 99933fc | pmichaud++ | src/NQPQ/Actions.pm: Add 'self' register to regexes created via regex|token|rule . |
|||
| p: fbfccdf | pmichaud++ | src/NQPQ/Actions.pm: Make sure that regex/token/rule set 'self' (both register and lexical). |
|||
| p: e839242 | pmichaud++ | src/QRegex/Cursor.nqp: Add first version of NQPCursor.parse() method. |
|||
| p: dfef2ef | pmichaud++ | src/Q (3 files): Add support for QRegex action methods. |
|||
|
16:26
dodathome joined
16:27
zby_home joined
|
|||
| dalek | kudo/nom: 6b21ca0 | pmichaud++ | / (3 files): Add action methods to regexes. |
16:50 | |
|
17:12
fperrad joined
|
|||
| cotto_work | ~~ | 17:20 | |
|
17:30
dmalcolm joined
17:33
bluescreen joined
17:35
contingencyplan joined
17:37
whiteknight joined
|
|||
| whiteknight | good afternoon, #parrot | 17:45 | |
| tadzik | good evening whiteknight | ||
| how are you doing? | 17:46 | ||
| dalek | kudo/nom: 54dff96 | moritz++ | docs/announce/2011.09: we do action methods, pmichaud++ |
18:08 | |
| cotto_work | #ps in 44 | 18:46 | |
|
18:52
mj41 joined
|
|||
| dalek | p: e3d5c8b | pmichaud++ | src/QRegex/Cursor.nqp: Add !LITERAL method to NQPCursorRole to simplify HLL literal matching. |
19:02 | |
| kudo/nom: f2d7d26 | pmichaud++ | src/ (2 files): Add simple variable literal interpolation. |
19:04 | ||
| kudo/nom: 4659b25 | pmichaud++ | tools/build/NQP_REVISION: Bump NQP_REVISION. |
|||
| NotFound | ~~ | 19:05 | |
| dalek | kudo/nom: b1481ba | moritz++ | src/core/Exception.pm: in EXCEPTION, check for the payload rather than the excpetion type, which varies more than I thought it does |
19:08 | |
| kudo/nom: e314924 | moritz++ | src/core/Str.pm: allow negative count on infix:<x> |
|||
| kudo/nom: 33300b0 | moritz++ | src/Perl6/Metamodel/BOOTSTRAP.pm: give Grammar a stash |
|||
|
19:12
pyrimidine joined
|
|||
| whiteknight | NotFound: ping | 19:14 | |
| NotFound | whiteknight: pong | ||
| whiteknight | NotFound: do you have any examples of the new multi specifiers? | ||
| NotFound | whiteknight: not yet, I've got few time this week | ||
| whiteknight | okay, that's a feature I do want to use. | 19:15 | |
| NotFound++ | |||
| NotFound | whiteknight: multi[int, class Foo.Bar] | ||
| Or "int" | |||
| whiteknight | okay, so that's a modifier? | ||
| function foo[multi(int, class Foo.Bar)]() ? | 19:16 | ||
| NotFound | whiteknight: yes, I think will be easier to start with the modifier and then think about an easier syntax. | ||
| whiteknight | okay | ||
| I like that | |||
| NotFound | function foo[multi(int, class Foo.Bar)](int i, var f) | 19:17 | |
| nopaste | "NotFound" at 192.168.1.3 pasted "Test file I've been using for 'multi'" (50 lines) at nopaste.snit.ch/82333 | 19:19 | |
| whiteknight | okay, nice | 19:20 | |
| NotFound | whiteknight: the branch NotFound/fix_sleep can be deleted? | 19:23 | |
| whiteknight | yes, it's merged | ||
| sorry | 19:24 | ||
| NotFound | whiteknight: you merged it into the kil_threads branch, isn't it? | 19:27 | |
| NM, closing ticket | 19:30 | ||
|
19:31
benabik joined
|
|||
| NotFound | And branch deleted | 19:31 | |
|
19:32
Tene joined
|
|||
| whiteknight | yeah, I merged it into kill_threads, and merged both into master | 19:32 | |
| cotto_work | #ps time | ||
| dalek | TT #2192 closed by NotFound++: Parrot_cx_scheduler_sleep is wrong in the no threads case | 19:37 | |
| TT #2192: trac.parrot.org/parrot/ticket/2192 | |||
|
19:45
bluescreen joined
|
|||
| benabik backlogs. | 19:48 | ||
| Oooh winxed multis. | |||
| cotto_work | +ooh | ||
| whiteknight | benabik: yeah, I want to talk to you about that. I just tested it out and they look good. What else would a PCT rewrite need? | 19:49 | |
| I might like to get started with such a project soonish | |||
| cotto_work | I like where this is going. | ||
| winxed pct would be much more approachable. | 19:50 | ||
| benabik | whiteknight: IIRC, that was the big missing feature... Easy inheritance from p6metaclass would help. | ||
| whiteknight | well, ideally the rewrite won't rely on p6metaclass the same way, that's an NQPism | ||
| that is, a rewrite could be much lighter weight | |||
| NotFound | I think that having a compiler example with actions written with winxed for testing before dealing with PCT itself will be good. | ||
| whiteknight | yes | 19:51 | |
| benabik | whiteknight: Ish. It's part of the inferface at the moment. | ||
| whiteknight | benabik: well, I always assumed a rewrite might have a different intereface | ||
| or, would be free to have a different interface if necessary | |||
| NotFound | Inehritance from p6metaclass: There is some known problem with that? | 19:52 | |
| benabik | NotFound: I haven't tried it. | ||
| whiteknight: If we lose things like Class.new(:attr=>val), then we break existing users of it. | |||
| whiteknight | I don't think it's normal inheritence, it;'s a separate registration step | ||
| benabik: two points: A rewrite could be a separate codebase existing in parallel. Also, winxed has constructors that can be made to take named arguments | 19:53 | ||
| so no p6metaclass needed in that case, you just have to be explicit about what you pass to the constructors and what constructors might take | |||
| benabik shrugs. | |||
| NotFound | First we must know if winxed master is already able to do the work. Then we can add lacked features or syntactic sugar if required. | 19:54 | |
| whiteknight | We're not going to know what we need until we start laying code | ||
| benabik | whiteknight: I'd either do a complete rewrite from scratch or try to translate 95% faithfully before changing it. | ||
| whiteknight: But, to some extent, that's because of the way I think. | 19:55 | ||
| whiteknight | okay. We can start with the translation if that's what your more comfortable with. I don't mind that | ||
| benabik | If I'm tossing it out, toss it. If I'm changing it, do one thing at a time. | ||
| NotFound | "already able", modulo completeness and testing of "multi" | ||
| whiteknight | benabik: which is going to lead us to the better result, in the long term? | ||
| I've always suspected that a new system written ground-up might be less constrained | |||
| benabik | whiteknight: Probably a wholesale rewrite. I'm not sure how to transition POST as-is to something that generates bytecode sanely. | 19:56 | |
| cotto_work | NotFound: does winxed multi support non-builtin types? | ||
| NotFound | cotto_work: yes | ||
| benabik | But I also think a lot of thought needs to go into a rewrite and a conversion would give us hackability faster. | ||
| whiteknight | benabik: so let's start planning that. A new compiler toolkit, written in parallel to the old PCT and not trying to stay compatible with it | ||
| cotto_work | NotFound: sweet. When did you add that? | ||
| benabik | (And the rewrite can steal from the conversion) | ||
| cotto_work | NotFound++ | ||
| NotFound | cotto_work: last week, snapshot into parrot in 5d88ac2e9b9d3fb5b28c6c20cd43d2a685bd24df | 19:57 | |
| whiteknight | it's important that it be written with bytecode in mind primarily, and that we keep things like an optimization framework well-integrated into it | ||
| benabik | whiteknight: +1 | ||
| whiteknight | those are the two big things that people want, but which don't bolt on to PCT correctly | ||
| cotto_work | whiteknight: I hope we've learned that lesson from POST. | ||
| benabik | Needs things like pervasive types... PAST is currently a little lazy about that. | 19:58 | |
| And optimization framework falls out nicely if the stages are well designed and separated. | |||
| whiteknight | yeah, I just want to make sure we have it as an integral part of the design, because adding it on after the fact it messy | 19:59 | |
| better to have it be a fundamental part of how trees are constructed, that they be able to be traversed, pruned, and modified | |||
| and backreferenced | |||
| frameworks for traversing the trees could have plenty of benefits too, like static code analysis | 20:00 | ||
| and debug metadata generation | 20:02 | ||
| benabik: do you have such good design and separations in your mind? | 20:09 | ||
| benabik | whiteknight: Mostly, I want to mirror best practices in compiler writing... We're very flat and simple at the moment. | 20:11 | |
| whiteknight: Initial notes were: gist.github.com/05267b2b46beca86b8da | |||
| whiteknight | right, I had seen that gist before | 20:12 | |
|
20:12
japhb joined
|
|||
| cotto_work hasn't | 20:12 | ||
| benabik | I want stages to be separate and reusable. context stored in stage object rather than dynamic vars or passed info. | ||
| Stages should mostly have a similar tree-walking style, which can be somewhat abstracted into a supertype | 20:13 | ||
| cotto_work | this is starting to sound like tcurtis++' gsoc project | 20:15 | |
| benabik | Very much want to steal from/include tree-optimizer | ||
| Many stages won't need matching, since they'll need to work on most nodes in the tree. But having the ability baked in helps. | 20:16 | ||
| Pattern matching makes compilers simpler. | |||
| I'll try to find some tuits to add to my gisted notes. | 20:30 | ||
| dalek | kudo/nom: d7757b0 | jnthn++ | src/Perl6/Actions.pm: Unconflate two things that should not have been conflated; improve sink handling thanks to PAST::Want. Fixed eval('sub { 1 }') sub found by pmichaud++. |
21:01 | |
| kudo/nom: 154292e | pmichaud++ | src/ (3 files): Add regex interpolation. |
21:07 | ||
|
21:19
bluescreen joined
|
|||
| dalek | kudo/nom: 317f89d | jnthn++ | src/Perl6/Actions.pm: Eliminate bogus warning from regex { a } style constructs. |
21:33 | |
|
21:34
soh_cah_toa joined
21:47
bluescreen joined
|
|||
| soh_cah_toa | cotto_work: ping | 21:50 | |
| cotto_work | soh_cah_toa: poing | 22:06 | |
| soh_cah_toa | cotto_work: so i'm working on nuking Parrot_PMC_typenum(). however, in docs/embed.pod, it says that the 'typenum' parameter to Parrot_PMC_new() should be obtained by calling Parrot_PMC_typenum() | 22:07 | |
| cotto_work: should this be changed to say that the value should be obtained using enum_class_*? i don't know if the enum_class_* enumeration is visible from the extension/embedding api | 22:08 | ||
| (i had to do just that in src/io/api.c but i know enum_class_* is visible from there) | |||
| cotto_work | How it should be replaced depends on how it's being used. | 22:09 | |
| That's not a very helpful answer though. | |||
| soh_cah_toa | i suppose i could find out by modifying the tests which i'm doing now. i was just curious before i starting testing | ||
| hmm...not sure i follow. either the extension api can use enum_class_* or it can't :\\ | 22:12 | ||
| cotto_work | roles would be correct if they meant anything in Parrot guts | ||
| looking at the type name is probably the best option | 22:13 | ||
| soh_cah_toa | you mean pass it a string? that would require *a lot* of refactoring | 22:15 | |
| and Parrot_pmc_new() (w/ lowercase) uses an enum_class_* integer as it is so it would be more consistent as well | 22:16 | ||
| cotto_work | It may not be worth doing right now. | 22:17 | |
| soh_cah_toa | yeah | 22:18 | |
| actually, it looks like using enum_class_* as an argument to Parrot_PMC_new() works fine. that's what i did in t/src/extend.t and everything passes | |||
| btw, what is the difference between the Parrot_PMC_* and Parrot_pmc_* functions? am i right to assume that the former is exclusive to the extension api and the later is exclusive to parrot's internals? | 22:20 | ||
| cotto_work | yes | ||
| soh_cah_toa | ok | ||
|
22:21
wagle_ joined,
AzureSto_ joined
22:27
Kulag joined
22:39
soh_cah_toa joined
22:57
bubaflub joined
|
|||
| soh_cah_toa | does t/dynoplib/io.t fail for anybody else? | 23:05 | |
| Unable to open filehandle from path '/foo' | |||
| current instr.: 'open_delegates_to_filehandle_pmc' pc 229 (t/dynoplibs/io.t:60) | |||
| called from Sub 'main' pc 47 (t/dynoplibs/io.t:26) | |||
| i didn't think any of my changes would affect dynoplib | |||
| cotto_work: i think i might have run into a problem | 23:17 | ||
| cotto_work: according to src/dynpmc/README.pod, dynpmcs must use Parrot_PMC_typenum() to determine a pmc's type at runtime since it cannot determine it at compile time using enum_class_* | |||
| which might explain the failures in t/dynoplib/io.t | 23:19 | ||
| cotto_work | Making parrot correct isn't usually easy. | 23:21 | |
| There's not much benefit in removing that function. It's lta, but it's also not breaking anything. | |||
| soh_cah_toa | sure, i suppose | 23:22 | |
| i'll leave it alone then | 23:23 | ||
| dalek | rrot: 94cbd48 | soh_cah_toa++ | / (3 files): Renamed docs/dev/pccmethods.pod to docs/dev/pcc_methods.pod so that it is more consistent with docs/dev/pcc_state.pod. |
23:26 | |
|
23:33
particle joined
|
|||
| soh_cah_toa | cotto_work: also, there are some codingstd failures in src/runcore/subprof.c. i fixed most of them except for one. i noticed that the offending lines where edited by mls so i emailed him but haven't heard back from him. you were the only other person to have edited the file so maybe you might know what's wrong | 23:33 | |
| the failures are in t/codingstd/c_parens.t and complain about several delinquent parentheses that i think are related to the calls to parrot_hash_iterate() at +846, +862, +1014, and +1031. i didn't want to touch these myself because they make such little sense that i couldn't even guess what it's actually supposed to be | |||
| i know you're at work right now but i just wanted to let you know b/c it's the only thing that's causing 'make fulltest' to fail | |||
| cotto_work | Parrot_hash_iterate is special. | 23:37 | |
| lemme look | |||
| soh_cah_toa | sure | ||
| cotto_work | line numbers would be nice on that test | 23:39 | |
| soh_cah_toa | yeah, i know | 23:40 | |
| cotto_work | I don't like how that test applies to parrot_hash_iterate. It's easy to fix but it doesn't make the code easier to understand. | 23:42 | |
| soh_cah_toa | :\\ | 23:43 | |
| cotto_work | that macro feels like something a kernel hacker would write | 23:44 | |
| soh_cah_toa | yeah, it's certainly "hacky" alright | 23:45 | |
| cotto_work | but useful | 23:46 | |
|
23:55
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 23:58 | |
| soh_cah_toa | o/ | ||