Camelia, the Perl 6 bug

IRC log for #parrot, 2011-09-27

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 not_gerd good night, #parrot
00:26 mtk joined #parrot
01:29 jeffreykegler joined #parrot
01:29 jeffreykegler left #parrot
01:30 dalek parrot: 47b1a49 | soh_cah_toa++ | tools/dev/pbc_to_exe.pir:
01:30 dalek parrot: In pbc_to_exe, wrapped call to Parrot_api_destroy_interpreter() inside an 'if' statement so as not to ignore potential errors.
01:30 dalek parrot: review: https://github.com/parrot/parrot/commit/47b1a49b1e
01:32 cotto ~~
01:50 dalek parrot: 0777e50 | soh_cah_toa++ | tools/dev/pbc_to_exe.pir:
01:50 dalek parrot: 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 dalek parrot: review: https://github.com/parrot/parrot/commit/0777e50101
01:50 * soh_cah_toa falls in love w/ splint
01:50 soh_cah_toa what a great tool :)
02:05 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 cotto It's nice to be back here.
02:05 cotto Our code is insane, but it's well-tested.
02:06 cotto sometimes
02:06 soh_cah_toa so true
02:14 benabik joined #parrot
02:16 dalek parrot: c42af46 | soh_cah_toa++ | tools/dev/pbc_to_exe.pir:
02:16 dalek parrot: In pbc_to_exe, wrapped call to Parrot_api_string_free_exported_ascii() inside an 'if' statement to catch potential errors.
02:16 dalek parrot: review: https://github.com/parrot/parrot/commit/c42af46f84
02:22 nbrown joined #parrot
02:38 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:39 benabik .h files are included textually in .c files.
02:39 benabik #include "foo.h" is the same as copy/pasting the contents at that spot.
02:39 soh_cah_toa ah, so it has static scope wherever it's included
02:39 benabik Yes.
02:39 soh_cah_toa but that's not so in .c files
02:39 soh_cah_toa ok
02:40 benabik soh_cah_toa: Unless you #include "foo.c" somewhere, but then you should be hit.
02:40 soh_cah_toa yup ;)
02:40 soh_cah_toa interesting, never knew that
02:44 soh_cah_toa the Parrot_* types (e.g. Parrot_Int) are reserved just for the embedding api, correct?
02:44 soh_cah_toa and not the extension api? or yes?
02:44 benabik I certainly don't know.  Hopefully someone else is awake.  :-D
02:44 soh_cah_toa cotto: ping
02:49 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:50 soh_cah_toa isn't that sortof abusing the embedding api though?
02:51 plobsing we need to call them something
02:52 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:53 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
02:54 soh_cah_toa 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"
02:55 soh_cah_toa what a surprise ;)
02:56 soh_cah_toa 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.
02:57 soh_cah_toa i'm not sure "anything goes" is such a great attitude to have when writing code ;)
02:59 soh_cah_toa 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
03:00 soh_cah_toa which is the kind of garbage i'm seeing in src/extend.c
03:06 * soh_cah_toa dies a little inside every time he looks at parrot's disgusting c code
03:07 woosley joined #parrot
03:07 * 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?
03:08 soh_cah_toa i'll do my best to apply some facial cleaner to those blemishes
03:10 soh_cah_toa if we just used a *consistent* naming/style convention, i would be the happiest man alive
03:11 benabik soh_cah_toa: I wish you luc.
03:11 benabik luck, too
03:11 soh_cah_toa :)
03:25 plobsing soh_cah_toa: I promise to use whatever naming convention you aren't using.
03:25 plobsing ;)
03:26 soh_cah_toa honestly, i could care less what the convention actually is. i just want it followed
03:26 soh_cah_toa and used....always :)
03:28 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
03:28 soh_cah_toa very
03:28 soh_cah_toa very
03:28 soh_cah_toa bad
03:28 soh_cah_toa that would make it too easy for a gsoc student to learn about parrot
03:28 soh_cah_toa and we don't want that
03:29 plobsing soh_cah_toa: that presumes you can come up with a convention that deals with all cases we'll ever encounter
03:29 plobsing flexibility is more important than consistency
03:29 soh_cah_toa that's debatable ;)
03:29 soh_cah_toa if you're talking about a "c string" call it *_c_str(). not sometimes *_cstring(), sometimes *_c_string(), sometimes *_cstr()
03:30 benabik "Consistency is the last refuge of the unimaginative." -- Oscar Wilde
03:30 benabik "Consistency is contrary to nature, contrary to life. The only completely consistent people are dead."  -- Aldous Huxley
03:30 benabik :-D
03:31 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.
03:31 soh_cah_toa i also use vim w/ ctags
03:32 soh_cah_toa 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:33 soh_cah_toa it's just plain stupid to use two different ways to refer to the same thing: a string
03:34 soh_cah_toa 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:35 soh_cah_toa imho, using uppercase F looks horrible but i wouldnt' mind if it *always* was uppercase
03:37 soh_cah_toa there's way too many "special cases"
03:51 jeffreykegler joined #parrot
03:57 cotto soh_cah_toa, pong
04:02 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:03 soh_cah_toa 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
04:04 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:05 cotto soh_cah_toa, which function?
04:05 soh_cah_toa there's a lot of type mismatches
04:06 soh_cah_toa Parrot_PMC_typenum()
04:06 soh_cah_toa Parrot_PMC_null()
04:06 soh_cah_toa a couple others
04:06 soh_cah_toa Parrot_PMC_new()
04:07 soh_cah_toa Parrot_get_root_namespace()
04:07 soh_cah_toa Parrot_PMC included in those
04:09 nopaste "soh_cah_toa" at 192.168.1.3 pasted "Type Mismatches Detected by Splint" (30 lines) at http://nopaste.snit.ch/82261
04:09 cotto Hmmm.
04:10 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.
04:11 soh_cah_toa why is that?
04:11 cotto They should be a well-hidden implementation detail, if anything.
04:12 plobsing They should go away eventually
04:12 plobsing IIUC, they prevent types from being fully gcable
04:12 cotto We shouldn't encourage their use.
04:12 soh_cah_toa i guess it does the same thing as pmc->vtable->type == enum_class_Foo
04:12 cotto better, we should discourage their use
04:12 soh_cah_toa which is better
04:14 soh_cah_toa 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/
04:14 cotto ?
04:14 soh_cah_toa that's what i'm wondering
04:14 soh_cah_toa i'm not sure how you'd find out
04:15 soh_cah_toa efficiently, that is :)
04:15 cotto *cough*all_hll_test*cough*
04:15 plobsing I do. wee have some cottomated testing framework to handle that kind of thing
04:15 soh_cah_toa so delete it, run all_hll_test and watch?
04:16 cotto that's one way to do it
04:16 soh_cah_toa ah, now i see why you wrote that
04:16 cotto you should be aware of what a baseline test run looks like on your system though
04:16 soh_cah_toa sure
04:17 soh_cah_toa 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.
04:18 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.
04:18 soh_cah_toa i read your email to parrot-dev, i just don't know if it has "gone into effect"
04:18 soh_cah_toa ok
04:19 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 :(
04:19 cotto benabik, the handling of that was sub-optimal
04:19 benabik cotto: Really?  ;-)
04:19 cotto though I thought it'd have been fixed by now
04:20 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.
04:20 benabik *tuits
04:20 cotto benabik, ok.  I didn't know that the release had been held up.
04:21 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
04:21 cotto benabik, yes.  From #phasers last week it sounded like it'd clear up.  From experience, it looks like not.
04:22 benabik They don't have much time before it'll be a 2011.10 release.  :-/
04:23 benabik Ah, well.  Life happens.
04:23 cotto they can call it whatever they like.
04:23 cotto for all you know, 3.9.0 could be "2010.3"
04:24 soh_cah_toa cotto: about how long does a full all_hll_test run take?
04:25 cotto soh_cah_toa, it depends very heavily on your computing power.
04:25 cotto it's not too bad if you comment out spectest_regression
04:26 cotto that'd defeat some of the purpose though
04:26 cotto but if a program depends on a C function, testing that the build works should be sufficient
04:26 cotto s/program/hll/
04:26 soh_cah_toa ok
04:27 soh_cah_toa did you deliberately make the output non-verbose or am i just hanging?
04:27 cotto I made it quiet.
04:27 cotto you can use -v
04:28 soh_cah_toa ok, phew
04:28 plobsing is there a way to make it output a verbose log file?
04:28 cotto plobsing, it already does
04:28 plobsing where?
04:28 cotto /tmp/parrot_xxx/logs
04:28 cotto fsvo "xxx"
04:29 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
04:29 cotto it's a lazy tool
04:29 plobsing perhaps in the terse output you could point users to the appropriate verbose logs?
04:30 plobsing what I wound up doing was going in and retesting things that failed
04:30 cotto hard to argue with that logic
04:30 cotto that's the exact situation I wanted to avoid
04:30 soh_cah_toa +1 to having an irc bot run all_hll_test continuously and reporting failures
04:30 soh_cah_toa great idea
04:31 plobsing I'd -inf the idea unless it only reported *deltas*
04:32 plobsing 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.
04:34 cotto there you go
04:34 dalek parrot: b2e419b | cotto++ | tools/dev/all_hll_test.pl:
04:34 dalek parrot: let users know where the logs are stored
04:34 dalek parrot: review: https://github.com/parrot/parrot/commit/b2e419b587
04:35 plobsing \o/
04:39 cotto whiteknight may have forgotten to add a file to Rosella
04:39 soh_cah_toa yeah, it's failing for me
04:39 soh_cah_toa as well as parrot-gmp and parrot-linear-algebra
04:39 soh_cah_toa but that might just be me
04:40 plobsing it's not just you
04:40 cotto pla wfm.  You have to install a linear algebra library for it.
04:40 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.
04:41 cotto odd.  Rosella seems to build fine
04:44 dalek plumage: 941a2bd | soh_cah_toa++ | docs/hacking/add-command.pod:
04:44 dalek plumage: Plumage does have a manpage now so the 'Documentation' section of add-command.pod needed to be updated.
04:44 dalek plumage: review: https://github.com/parrot/​plumage/commit/941a2bd588
04:45 soh_cah_toa results for all projects:
04:45 soh_cah_toa PASS: Parrot, Winxed, ohm-eta-wink-kzd, Plumage, Lua
04:45 soh_cah_toa FAIL:
04:45 soh_cah_toa Rosella (build), parrot-gmp (build), parrot-linear-algebra (build), nqp (build), Rakudo (configure), Partcl-nqp (test)
04:45 soh_cah_toa that is some serious breakage
04:46 soh_cah_toa cotto++ for making that script though. very nice
04:46 cotto rakudo is because of nqp
04:46 soh_cah_toa right
04:46 cotto lemme fix that
04:46 plobsing rakudo was failing on master for me
04:46 plobsing before useless-defaults
04:53 dalek parrot: 9b8c473 | soh_cah_toa++ | tools/release/auto_release.pl:
04:53 dalek parrot: 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 dalek parrot: review: https://github.com/parrot/parrot/commit/9b8c473a5d
04:54 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:55 soh_cah_toa :)
05:00 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 :-)
05:01 plobsing moritz: sadly, there are likely more languages that "work" on 1.2.0 than on HEAD
05:03 soh_cah_toa and that's a wrap...
05:04 cotto plobsing, it's a non-trivial temptation
05:11 cotto not sure what number we'd use though.  Nothing terribly interesting is close to 3.9
05:11 cotto though I'm not a math nerd
05:11 cotto I'm sure dukeleto would have something
05:12 moritz 4 is an interesting number :-)
05:24 plobsing moritz: I prefer 3.9999999....... ;)
05:26 plobsing http://xkcd.com/899/
05:28 dalek parrot: f4397b9 | petdance++ | tools/release/auto_release.pl:
05:28 dalek parrot: Merge branch 'master' of github.com:parrot/parrot
05:28 dalek parrot: review: https://github.com/parrot/parrot/commit/f4397b98c1
05:28 dalek parrot: 063b6f5 | petdance++ | src/runcore/subprof.c:
05:28 dalek parrot: Change the __inline__ to PARROT_INLINE.  Remove some unused local variables. Const a couple of local vars. Rerun the headerizer.
05:28 dalek parrot: review: https://github.com/parrot/parrot/commit/063b6f5d94
05:44 rfw joined #parrot
05:52 alvis joined #parrot
06:11 jsut_ joined #parrot
07:23 mj41 joined #parrot
08:13 dalek rakudo/nom: 4b23759 | moritz++ | / (41 files):
08:13 dalek rakudo/nom: Merge branch 'nom' into nom-exceptions
08:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4b237598a8
08:13 dalek rakudo/nom: b522144 | moritz++ | src/core/Exception.pm:
08:13 dalek rakudo/nom: only unwrap CONTROL_ERROR exceptions
08:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b522144123
08:13 dalek rakudo/nom: 287b0d8 | moritz++ | src/core/ (4 files):
08:13 dalek rakudo/nom: Merge branch 'nom-exceptions' into nom
08:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/287b0d85b4
08:17 lucian joined #parrot
08:41 mls morning perl6!
08:41 mls oh no, an exception update! I hops it doesn't collide with my code...
08:43 mls oh, wrong channel ;)
08:43 mls morning parrot!
09:01 mj41 joined #parrot
09:09 woosley joined #parrot
09:19 dalek rakudo/nom: cf31a11 | moritz++ | / (3 files):
09:19 dalek rakudo/nom: list of contributors
09:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cf31a118bc
09:26 dalek rakudo/nom: ede97de | masak++ | docs/announce/2011.09:
09:26 dalek rakudo/nom: [docs/announce/2011.09] underpromise, overdeliver
09:26 dalek rakudo/nom:
09:26 dalek rakudo/nom: Rephrasing to be a bit more conservative.
09:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ede97de4ca
09:36 dalek rakudo/nom: 900ccf3 | moritz++ | docs/announce/2011.09:
09:36 dalek rakudo/nom: [announce] note that people who are afraid of regressions should use 2011.07
09:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/900ccf3bd2
09:38 dalek rakudo/nom: 41ecebe | moritz++ | docs/announce/2011.09:
09:38 dalek rakudo/nom: [announce] call it Riga
09:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/41ecebe2b0
09:59 dalek rakudo/nom: 97b518c | moritz++ | tools/build/NQP_REVISION:
09:59 dalek rakudo/nom: bump NQP_REVISION to 2011.09 tag
09:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/97b518c5a0
10:01 dalek rakudo/nom: 43be162 | moritz++ | docs/announce/2011.09:
10:01 dalek rakudo/nom: [announce] mention Pod and BEGIN
10:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/43be1629cc
10:09 preflex_ joined #parrot
10:25 schmooster joined #parrot
11:36 Psyche^ joined #parrot
11:41 benabik joined #parrot
11:43 benabik o/ #parrot
11:49 mtk joined #parrot
12:01 whiteknight joined #parrot
12:05 dalek rakudo/nom: cec5770 | tadzik++ | docs/announce/2011.09:
12:05 dalek rakudo/nom: [announce] Expand some Pod news
12:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cec5770074
12:15 lateau joined #parrot
12:19 dalek rakudo/nom: f83304d | moritz++ | docs/release_guide.pod:
12:19 dalek rakudo/nom: [docs] markup fix
12:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f83304dd55
12:55 dalek parrot: f74dd8b | benabik++ | t/dynpmc/select.t:
12:55 dalek parrot: select.t: add a TODO due to undefined behavior
12:55 dalek parrot:
12:55 dalek parrot: From opengroup.org:
12:55 dalek parrot:
12:55 dalek parrot: "[...] what constitutes an exceptional condition is file type-specific.
12:55 dalek parrot:  [...] For [non-socket] file types it is implementation-defined."
12:55 dalek parrot:
12:55 dalek parrot: This test fails on OS X and possibly other BSDs because they differ
12:55 dalek parrot: from Linux's behavior.  The entire test should probably use sockets
12:55 dalek parrot: because, if nothing else, select on files doesn't work in Windows.
12:55 dalek parrot: review: https://github.com/parrot/parrot/commit/f74dd8b50c
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.
12:56 benabik There's a bit of a discussion on #perl6 about what async API to use.  May want to steal whatever they decide on.  ;-)
13:09 preflex_ joined #parrot
13:16 mj41 joined #parrot
13:23 benabik aloha: aloha?
13:23 aloha benabik: aloha is simple Bot::BasicBot::Pluggable hosted on https://github.com/bacek/aloha
13:23 benabik aloha: why aren't you on #perl6?
13:23 aloha benabik: Dunno.
13:23 Coke aloha, seen bacek?
13:23 aloha Coke: bacek was last seen in #parrot 117 days 2 hours ago joining the channel.
13:26 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 #parrot
13:56 dukeleto ~~
14:34 plobsing_ joined #parrot
15:22 nbrown joined #parrot
15:39 bluescreen joined #parrot
15:47 dalek parrot/mls/pct_exceptionhandlers: 8d35fe3 | mls++ | compilers/pct/src/PAST/Compiler.pir:
15:47 dalek parrot/mls/pct_exceptionhandlers: also correct the result handling for block handlers
15:47 dalek parrot/mls/pct_exceptionhandlers: review: https://github.com/parrot/parrot/commit/8d35fe3a65
15:56 dmalcolm joined #parrot
16:17 dalek nqp: bd69bd1 | pmichaud++ | src/PAST/SixModelPASTExtensions.pir:
16:17 dalek nqp: Merge branch 'master' of github.com:perl6/nqp
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/bd69bd1064
16:17 dalek nqp: 99933fc | pmichaud++ | src/NQPQ/Actions.pm:
16:17 dalek nqp: Add 'self' register to regexes created via regex|token|rule .
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/99933fc6de
16:17 dalek nqp: fbfccdf | pmichaud++ | src/NQPQ/Actions.pm:
16:17 dalek nqp: Make sure that regex/token/rule set 'self' (both register and lexical).
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/fbfccdf3e0
16:17 dalek nqp: e839242 | pmichaud++ | src/QRegex/Cursor.nqp:
16:17 dalek nqp: Add first version of NQPCursor.parse() method.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/e839242640
16:17 dalek nqp: dfef2ef | pmichaud++ | src/Q (3 files):
16:17 dalek nqp: Add support for QRegex action methods.
16:17 dalek nqp: review: https://github.com/perl6/nqp/commit/dfef2ef79e
16:26 dodathome joined #parrot
16:27 zby_home joined #parrot
16:50 dalek rakudo/nom: 6b21ca0 | pmichaud++ | / (3 files):
16:50 dalek rakudo/nom: Add action methods to regexes.
16:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b21ca09cf
17:12 fperrad joined #parrot
17:20 cotto_work ~~
17:30 dmalcolm joined #parrot
17:33 bluescreen joined #parrot
17:35 contingencyplan joined #parrot
17:37 whiteknight joined #parrot
17:45 whiteknight good afternoon, #parrot
17:45 tadzik good evening whiteknight
17:46 tadzik how are you doing?
18:08 dalek rakudo/nom: 54dff96 | moritz++ | docs/announce/2011.09:
18:08 dalek rakudo/nom: we do action methods, pmichaud++
18:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/54dff968b0
18:46 cotto_work #ps in 44
18:52 mj41 joined #parrot
19:02 dalek nqp: e3d5c8b | pmichaud++ | src/QRegex/Cursor.nqp:
19:02 dalek nqp: Add !LITERAL method to NQPCursorRole to simplify HLL literal matching.
19:02 dalek nqp: review: https://github.com/perl6/nqp/commit/e3d5c8b649
19:04 dalek rakudo/nom: f2d7d26 | pmichaud++ | src/ (2 files):
19:04 dalek rakudo/nom: Add simple variable literal interpolation.
19:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2d7d26aba
19:04 dalek rakudo/nom: 4659b25 | pmichaud++ | tools/build/NQP_REVISION:
19:04 dalek rakudo/nom: Bump NQP_REVISION.
19:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4659b253c7
19:05 NotFound ~~
19:08 dalek rakudo/nom: b1481ba | moritz++ | src/core/Exception.pm:
19:08 dalek rakudo/nom: in EXCEPTION, check for the payload rather than the excpetion type, which varies more than I thought it does
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1481ba770
19:08 dalek rakudo/nom: e314924 | moritz++ | src/core/Str.pm:
19:08 dalek rakudo/nom: allow negative count on infix:<x>
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e314924e5c
19:08 dalek rakudo/nom: 33300b0 | moritz++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
19:08 dalek rakudo/nom: give Grammar a stash
19:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/33300b0598
19:12 pyrimidine joined #parrot
19:14 whiteknight NotFound: ping
19:14 NotFound whiteknight: pong
19:14 whiteknight NotFound: do you have any examples of the new multi specifiers?
19:14 NotFound whiteknight: not yet, I've got few time this week
19:15 whiteknight okay, that's a feature I do want to use.
19:15 whiteknight NotFound++
19:15 NotFound whiteknight: multi[int, class Foo.Bar]
19:15 NotFound Or "int"
19:15 whiteknight okay, so that's a modifier?
19:16 whiteknight 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.
19:16 whiteknight okay
19:16 whiteknight I like that
19:17 NotFound function foo[multi(int, class Foo.Bar)](int i, var f)
19:19 nopaste "NotFound" at 192.168.1.3 pasted "Test file I've been using for 'multi'" (50 lines) at http://nopaste.snit.ch/82333
19:20 whiteknight okay, nice
19:23 NotFound whiteknight: the branch NotFound/fix_sleep can be deleted?
19:23 whiteknight yes, it's merged
19:24 whiteknight sorry
19:27 NotFound whiteknight: you merged it into the kil_threads branch, isn't it?
19:30 NotFound NM, closing ticket
19:31 benabik joined #parrot
19:31 NotFound And branch deleted
19:32 Tene joined #parrot
19:32 whiteknight yeah, I merged it into kill_threads, and merged both into master
19:32 cotto_work #ps time
19:37 dalek TT #2192 closed by NotFound++: Parrot_cx_scheduler_sleep is wrong in the no threads case
19:37 dalek TT #2192: http://trac.parrot.org/parrot/ticket/2192
19:45 bluescreen joined #parrot
19:48 * benabik backlogs.
19:48 benabik Oooh winxed multis.
19:48 cotto_work +ooh
19:49 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 whiteknight I might like to get started with such a project soonish
19:49 cotto_work I like where this is going.
19:50 cotto_work winxed pct would be much more approachable.
19:50 benabik whiteknight: IIRC, that was the big missing feature...  Easy inheritance from p6metaclass would help.
19:50 whiteknight well, ideally the rewrite won't rely on p6metaclass the same way, that's an NQPism
19:50 whiteknight that is, a rewrite could be much lighter weight
19:50 NotFound I think that having a compiler example with actions written with winxed for testing before dealing with PCT itself will be good.
19:51 whiteknight yes
19:51 benabik whiteknight: Ish.  It's part of the inferface at the moment.
19:51 whiteknight benabik: well, I always assumed a rewrite might have a different intereface
19:51 whiteknight or, would be free to have a different interface if necessary
19:52 NotFound Inehritance from p6metaclass: There is some known problem with that?
19:52 benabik NotFound: I haven't tried it.
19:52 benabik whiteknight: If we lose things like Class.new(:attr=>val), then we break existing users of it.
19:52 whiteknight I don't think it's normal inheritence, it;'s a separate registration step
19:53 whiteknight 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 whiteknight 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
19:53 * benabik shrugs.
19:54 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
19:54 benabik whiteknight: I'd either do a complete rewrite from scratch or try to translate 95% faithfully before changing it.
19:55 benabik 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
19:55 benabik If I'm tossing it out, toss it.  If I'm changing it, do one thing at a time.
19:55 NotFound "already able", modulo completeness and testing of "multi"
19:55 whiteknight benabik: which is going to lead us to the better result, in the long term?
19:55 whiteknight I've always suspected that a new system written ground-up might be less constrained
19:56 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?
19:56 NotFound cotto_work: yes
19:56 benabik But I also think a lot of thought needs to go into a rewrite and a conversion would give us hackability faster.
19:56 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
19:56 cotto_work NotFound: sweet.  When did you add that?
19:56 benabik (And the rewrite can steal from the conversion)
19:56 cotto_work NotFound++
19:57 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
19:57 benabik whiteknight: +1
19:57 whiteknight those are the two big things that people want, but which don't bolt on to PCT correctly
19:57 cotto_work whiteknight: I hope we've learned that lesson from POST.
19:58 benabik Needs things like pervasive types...  PAST is currently a little lazy about that.
19:58 benabik And optimization framework falls out nicely if the stages are well designed and separated.
19:59 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 whiteknight better to have it be a fundamental part of how trees are constructed, that they be able to be traversed, pruned, and modified
19:59 whiteknight and backreferenced
20:00 whiteknight frameworks for traversing the trees could have plenty of benefits too, like static code analysis
20:02 whiteknight and debug metadata generation
20:09 whiteknight benabik: do you have such good design and separations in your mind?
20:11 benabik whiteknight: Mostly, I want to mirror best practices in compiler writing...  We're very flat and simple at the moment.
20:11 benabik whiteknight: Initial notes were: https://gist.github.com/05267b2b46beca86b8da
20:12 whiteknight right, I had seen that gist before
20:12 japhb joined #parrot
20:12 * 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.
20:13 benabik Stages should mostly have a similar tree-walking style, which can be somewhat abstracted into a supertype
20:15 cotto_work this is starting to sound like tcurtis++' gsoc project
20:15 benabik Very much want to steal from/include tree-optimizer
20:16 benabik 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 benabik Pattern matching makes compilers simpler.
20:30 benabik I'll try to find some tuits to add to my gisted notes.
21:01 dalek rakudo/nom: d7757b0 | jnthn++ | src/Perl6/Actions.pm:
21:01 dalek rakudo/nom: 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 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d7757b0400
21:07 dalek rakudo/nom: 154292e | pmichaud++ | src/ (3 files):
21:07 dalek rakudo/nom: Add regex interpolation.
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/154292e024
21:19 bluescreen joined #parrot
21:33 dalek rakudo/nom: 317f89d | jnthn++ | src/Perl6/Actions.pm:
21:33 dalek rakudo/nom: Eliminate bogus warning from regex { a } style constructs.
21:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/317f89d60d
21:34 soh_cah_toa joined #parrot
21:47 bluescreen joined #parrot
21:50 soh_cah_toa cotto_work: ping
22:06 cotto_work soh_cah_toa: poing
22:07 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:08 soh_cah_toa 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 soh_cah_toa (i had to do just that in src/io/api.c but i know enum_class_* is visible from there)
22:09 cotto_work How it should be replaced depends on how it's being used.
22:09 cotto_work That's not a very helpful answer though.
22:09 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
22:12 soh_cah_toa 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
22:13 cotto_work looking at the type name is probably the best option
22:15 soh_cah_toa you mean pass it a string? that would require *a lot* of refactoring
22:16 soh_cah_toa and Parrot_pmc_new() (w/ lowercase) uses an enum_class_* integer as it is so it would be more consistent as well
22:17 cotto_work It may not be worth doing right now.
22:18 soh_cah_toa yeah
22:18 soh_cah_toa 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
22:20 soh_cah_toa 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
22:20 soh_cah_toa ok
22:21 wagle_ joined #parrot
22:21 AzureSto_ joined #parrot
22:27 Kulag joined #parrot
22:39 soh_cah_toa joined #parrot
22:57 bubaflub joined #parrot
23:05 soh_cah_toa does t/dynoplib/io.t fail for anybody else?
23:05 soh_cah_toa Unable to open filehandle from path '/foo'
23:05 soh_cah_toa current instr.: 'open_delegates_to_filehandle_pmc' pc 229 (t/dynoplibs/io.t:60)
23:05 soh_cah_toa called from Sub 'main' pc 47 (t/dynoplibs/io.t:26)
23:05 soh_cah_toa i didn't think any of my changes would affect dynoplib
23:17 soh_cah_toa cotto_work: i think i might have run into a problem
23:17 soh_cah_toa 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_*
23:19 soh_cah_toa which might explain the failures in t/dynoplib/io.t
23:21 cotto_work Making parrot correct isn't usually easy.
23:21 cotto_work There's not much benefit in removing that function.  It's lta, but it's also not breaking anything.
23:22 soh_cah_toa sure, i suppose
23:23 soh_cah_toa i'll leave it alone then
23:26 dalek parrot: 94cbd48 | soh_cah_toa++ | / (3 files):
23:26 dalek parrot: 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 dalek parrot: review: https://github.com/parrot/parrot/commit/94cbd48cc1
23:33 particle joined #parrot
23:33 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 soh_cah_toa 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
23:33 soh_cah_toa 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
23:37 cotto_work Parrot_hash_iterate is special.
23:37 cotto_work lemme look
23:37 soh_cah_toa sure
23:39 cotto_work line numbers would be nice on that test
23:40 soh_cah_toa yeah, i know
23:42 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:43 soh_cah_toa :\
23:44 cotto_work that macro feels like something a kernel hacker would write
23:45 soh_cah_toa yeah, it's certainly "hacky" alright
23:46 cotto_work but useful
23:55 whiteknight joined #parrot
23:58 whiteknight good evening, #parrot
23:58 soh_cah_toa o/

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

Parrot | source cross referenced