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/