Parrot 3.9.0 "Archaeopteryx" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 19 October 2011.
cotto dukeleto: ping 00:17
00:18 whiteknight joined
cotto 'evening, whiteknight 00:19
whiteknight 'ello, cotto
cotto whiteknight: I appreciated the house blogging. It's nice to know what's been keeping you occupied. 00:21
whiteknight We've got another house lined up now, and I'm pretty hopeful about this one 00:25
We've been actively house-hunting for over three years now, with the most bizarre streak of bad luck that anybody has ever heard of
benabik It'll just make you appreciate your house that much more when you do get it. :-D 00:26
benabik looks for the silver lining.
I should really get the RAM I've been looking at. Compiling Rakudo forces most of my normal programs into swap and it takes a long time to become responsive again. 00:28
whiteknight Do we have anybody who regularly uses Windows now? 00:30
I can do some light testing on Windows intermittently, but that's hardly enough to port a whole threading implementation
cotto uses, yes. can do in-depth hacking, no. 00:31
whiteknight well, that's what we need most, somebody who is regularly using and hacking on windows 00:32
I sent out notice about green_threads almost two weeks before the merge, and in that time not a single person tested it on windows. nine does't have access to windows and my access is extremely uncommon 00:33
so that's worrisome
cotto I'll try a build now, but yes, it's quite worrisome. 00:35
kid51 The only person I've heard of who qualifies as "regularly using and hacking on windows" is jnthn
cotto same here
whiteknight and jnthn is clearly not interested in doing any parrot core development
It's not just a matter of having regular testers, because ttbot can do that (when it's working)
kid51 Going into the July release, IIRC, coke had access to a Windows box on which we got to PASS on make test 00:36
whiteknight we are going to need to do some serious development to get threads working there in the not-so-distant future
kid51 That was as good as we managed.
whiteknight and green threads don't work there now
cotto We can manage *if* the code we need to write is similar to the small snippets in src/platform, but we will have difficulty doing more than that given our current set of hackers. 00:37
whiteknight I have windows on my work computer. I can do testing in the background and very very small fixes, but I can't afford to clock out and do major development there 00:39
cotto same thing here 00:45
small and medium fixes are fine, but I am technically being paid to work on $dayjob things 00:46
whiteknight What I'm going to have to do is write a bunch of windows code here without being able to test it, commit to branch, and then try to test it at work 00:55
and that's not exactly a setup for quick turnaround
cotto no
00:56 RobertLJ joined
whiteknight I think we're going to have to move src/alarm.c to src/platform/generic/alarm or similar, and then add a win32 variant of the fle 01:00
file 01:01
kid51 Heh! Reading cpantesters report on one of my recent CPAN uploads, I have a failure the correction of which will require ... that I work on a Windows box! 01:02
whiteknight well, I'm going to have to completely rewrite the alarm code 01:27
the API is not amenable to portability
benabik Sadface
whiteknight it's not a lot of code 01:29
cotto limited damage is good 01:36
dalek rrot/green_threads_win: 4fce7f8 | Whiteknight++ | / (7 files):
Throw some crap together to start porting alarm to Win32. not finished, but I'm out of time tonight.
rrot/green_threads_win: 4fce7f8 | Whiteknight++ | / (7 files):
Throw some crap together to start porting alarm to Win32. not finished, but I'm out of time tonight.
whiteknight I'll keep playing tomorrow
and I'm out for the night
benabik whiteknight++ # descriptive commit messages 01:38
01:46 woosley joined
plobsing_ someone throw those up on commits from last night 01:47
benabik … That actually exists. www.commitlogsfromlastnight.com/ 01:51
plobsing_ yeah that one 01:52
02:38 RobertLJ1 joined 03:02 nbezzala joined
cotto woot. commitlogsfromlsatnight links to commits now 03:36
layout is broken on non-large screens 03:37
dukeleto ~~ 03:54
plobsing_ cotto: it doesn't look broken on my screen. maybe I need to buy a bigger screen to see the intended layout :P 04:00
05:07 nbrown_ joined 05:08 schmooster joined
cotto does anyone know what kid51's reposition_archive_tarball branch did? 06:08
looks like it's not too big of a change 06:09
07:25 SHODAN joined 08:02 nbrown joined 08:15 contingencyplan joined
nine Good morning, #parrot 08:37
moritz good am, 9 08:38
nine So what do I have to get a commit bit? It sucks to see people fixing things that I already fixed in my repo. 08:39
moritz nine: have you submitted a parrot CLA already?
nine: that's the first requirement. Then you need enough committers to be in favor of giving you a commit bit, which most likely won't be a problem 08:40
nine moritz: no, where do I find this agreement?
moritz nine: www.parrot.org/sites/www.parrot.org...ot_cla.pdf 08:41
nine moritz: thanks 08:42
cotto nine, yup. A current committer has to nominate you for a commit bit and one or two others need to second it. That and a cla will get you your bit.
moritz nominates nine for a commit bit.
cotto traditionally we do it at #parrotsketch, though I don't know if that's required.
moritz cotto: since the next one is in 6 days, would an email to parrot-dev work too? 08:43
cotto moritz, I'd call it good.
and I'll second 08:44
moritz sends the mail
08:47 mj41 joined
nine CLA sent to legal@parrot.org 08:57
08:59 particle joined 09:09 mj41 joined 09:55 particle joined
dalek kudo/check-vars: 430c564 | moritz++ | src/Perl6/Actions.pm:
align code vertically, no functional changes
10:08
kudo/check-vars: c18c888 | moritz++ | src/Perl6/Actions.pm:
complain about undeclared variables

breaks the build
kudo/check-vars: 0381c3c | moritz++ | src/core/ (2 files):
move declarations of $Inf and $NaN before its first usage
kudo/check-vars: 9464ea5 | moritz++ | src/core/Enum (2 files):
work around variable interpolation issues in the setting; restores the build
kudo/check-vars: 430c564 | moritz++ | src/Perl6/Actions.pm:
align code vertically, no functional changes
kudo/check-vars: c18c888 | moritz++ | src/Perl6/Actions.pm:
complain about undeclared variables

breaks the build
kudo/check-vars: 0381c3c | moritz++ | src/core/ (2 files):
move declarations of $Inf and $NaN before its first usage
kudo/check-vars: 9464ea5 | moritz++ | src/core/Enum (2 files):
work around variable interpolation issues in the setting; restores the build
10:35 alin joined
dalek kudo/check-vars: c6bbbf8 | moritz++ | src/core/EnumMap.pm:
fix typo in EnumMap.pm
10:55
kudo/check-vars: 5a22e59 | moritz++ | src/Perl6/Actions.pm:
work around over-eager complaints about things that might turn out to be variables in double-quoted strings
kudo/check-vars: c6bbbf8 | moritz++ | src/core/EnumMap.pm:
fix typo in EnumMap.pm
kudo/check-vars: 5a22e59 | moritz++ | src/Perl6/Actions.pm:
work around over-eager complaints about things that might turn out to be variables in double-quoted strings
11:13 particle joined 11:38 Psyche^ joined 11:46 particle1 joined 12:01 woosley left
dalek rrot: 6fe1c97 | mls++ | / (4 files):
fill_params: fill unused registers with default values if error checking if off

The default is that error checking is off for call results. The calling.t test relied on this(!), so it now checks for that the result gets overwritten with PMCNULL. Also, two bugs in PGE::Exp and Test::More were detected and fixed because of this change.
12:14
rrot: 6fe1c97 | mls++ | / (4 files):
fill_params: fill unused registers with default values if error checking if off

The default is that error checking is off for call results. The calling.t test relied on this(!), so it now checks for that the result gets overwritten with PMCNULL. Also, two bugs in PGE::Exp and Test::More were detected and fixed because of this change.
12:21 JimmyZ joined 12:24 whiteknight joined
whiteknight good morning, #parrot 12:31
nine Good morning, whiteknight 12:33
whiteknight hello nine
nine: I started a new green_threads_win branch to refactor the alarms stuff and port it to windows. I'm going to have to rearrange that API pretty significantly to make it portable in a more generic way 12:34
12:34 alin joined
whiteknight if you have any particular insight or requests, let me know 12:34
nine whiteknight: why do you need to change the API? I'd guess that even on Windows a FLOATVAL when should be enough to set an alarm and somehow you can arrange for Parrot_alarm_callback to be called on expiry. I cannot imangine any timer API to be more limited than POSIX' :) 12:40
whiteknight: Parrot_alarm_now is completely unused
whiteknight nine: On windows we're going to need to keep a HANDLE reference to a timer queue object. That means we are either going to have to pass in the PARROT_INTERP to most of those functions, or some other system-specific data struct 12:45
also, I need to add a Parrot_alarm_destroy to mirror Parrot_alarm_init, and cleanup resources at interp exit
Plus, if I can get rid of some of those global variables, that would be awesome 12:46
nine and while we're at it: threads will make this even more interesting since all threads (and thus all their schedulers) have to share the same alarms 12:48
whiteknight the alarm counter can stay global, since all threads can read that value and compare to their current value. We'll deal with the full-threads case when we get to it 12:50
I suspect we really are going to need to break the interp up into two parts, one part of which is a global shared store of data like this for configuring alarms
although, the posix version currently doesn't use a shared state, so we can just avoid initializing the alarms system a second time 12:51
nine btw. I thought Windows was POSIX compatible? 12:53
JimmyZ en.wikipedia.org/wiki/Microsoft_POSIX_subsystem 13:08
13:09 pbaker joined
nine in short: it's not 13:10
whiteknight nine: in short 13:16
mls hi guys! 13:20
moritz o/ 13:21
13:21 rfw joined
mls what's with the support of event handlers in the exception handler array, does anybody use this? 13:22
can I rip out the code? ;) 13:30
whiteknight mls: is it causing a problem? 13:38
mls You mean beside being ugly, slow and useles? Probably not. 13:39
whiteknight mls: you can try ripping it out and seeing if it breaks any tests. I think we're going to replace a lot of eventing code with new green_threads stuff
mls I'm implementing a pop_upto_eh opcode and it somewhat gets in the way 13:40
I don't understand the code at all. And I neither see any documentation nor anybody using it
whiteknight okay, try pulling it out and see what happens. Like I said, we're probably going to replace it with something better anyway 13:41
mls (I understand the code, but not the purpose ;) )
the spec just talks about "adding event handlers to the scheduler"
moritz
.oO( there's a part of parrot that rakudo doesn't use? )
mls the code in question is about adding event handlers to the current context, like with push_eh 13:42
whiteknight moritz: there are several parts of Parrot rakudo doesn't use, and those parts haven't gotten much love
mls (You can push an event handler with push_eh, but you can't pop it with pop_eh...)
whiteknight well, that sounds stupid
mls using push_eh to push an event handler is robably a misuse 13:43
whiteknight yes, I would think so
it also doesn't make sense to me that you would just have a generic event handler attached to the context 13:44
that doesn't seem like a useful mechanism, unless you're lazy and you just want events to be like exceptions but with a different name
mls Currently they can only be removed by calling Parrot_cx_delete_handler_local with a handler_type
whiteknight bleh
mls yes, there's lots of code so that pop_eh really only pops exception handlers and not event handlers... 13:45
I'd rather have another queue in the context than mixing them up 13:46
also, pop_eh does not pop the handler, but nulls the slot in the handler queue 13:47
so if you do lots of push_eh/pop_eh, the queue will get bigger and bigger
whiteknight damnit
okay, that's all terrible
mls ;)
whiteknight kill it. Print the code out on paper, shoot it with a gun, and light it on fire 13:48
mls Ok, I'll create a branch.
moritz this kinda reminds me of the old "how many lines of code did you write this month?" -- "-3000"
nine moritz: sounds like a very good month. Removed code is debugged code. 13:49
Coke unbugged
mls
.oO(another way to bring down the number of bugs)
13:50
you beat me
whiteknight that's what we told the students last year for GCI: There are two ways to increase test coverage: Write more tests, or delete more code
13:50 benabik joined
mls Oh, another thing. It seems that lots of ops do a Parrot_str_new_constant() call. Isn't that expensive? 13:52
whiteknight mls: do you have an example?
mls uh, e.g. pop_eh does Parrot_str_new_constant(interp, "exception") 13:53
That CONST_STRING mechanism doesn't work for ops, I guess
whiteknight Yeah, our handling of constant strings leaves much to be desired 13:54
benabik o/ #parrot
whiteknight hello benabik
mls it probably can't be used for dynops, but it would be nice to have for the core ops
whiteknight If you can find any such case in particular that is slowing things down, we can probably optimize it 13:55
mls I think Parrot_str_new_constant() always does a hash lookup
benabik Could store the string in a static variable… Not sure if that's the best idea, but it could work 13:56
(If we can be ensured that constant strings don't move.)
JimmyZ bacek++ created a branch to delelte Parrot_str_new_constant
mls I think jnthn++ does that for some rakudo key strings that get used very often
whiteknight benabik: I'm thinking we set up a handful of global constants, and use the PObj_is_external_FLAG, or whatever it's called, to prevent GC from playing with it
if you find a particular bad case in the profiles, we can test it out 13:57
Coke hey, didn't bacek commit something recently? did he vanish again?
benabik whiteknight: That works too. I'm not hugely familiar with the internals.
mls Meybe we can use something like CONST_STRING and resolve all constant strings at dynop load time 13:58
benabik Not sure how'd we do that, really... 14:02
Best I can think of is if we have a function that's called when the library is loaded it could do all the setup for strings it'll need.
dalek kudo/nom: 430c564 | moritz++ | src/Perl6/Actions.pm:
align code vertically, no functional changes
14:03
kudo/nom: d307831 | moritz++ | src/ (4 files):
Catch variable use before declaration (RT #61838)

Does not catch unused non-$ variables in double quoted strings.
This also moves $Inf and $NaN to an earlier setting file, because they were used before the declaration.
It also contains a very ugly workaound around a problem with the nqp
  %markhash being global, and reused for multiple evals. This bug
was exposed by other parts of the patch.
kudo/nom: 430c564 | moritz++ | src/Perl6/Actions.pm:
align code vertically, no functional changes
kudo/nom: d307831 | moritz++ | src/ (4 files):
Catch variable use before declaration (RT #61838)

Does not catch unused non-$ variables in double quoted strings.
This also moves $Inf and $NaN to an earlier setting file, because they were used before the declaration.
It also contains a very ugly workaound around a problem with the nqp
  %markhash being global, and reused for multiple evals. This bug
was exposed by other parts of the patch.
moritz so, we have 4 +1 votes on nine++ getting a commit bit 14:10
benabik I'm big on giving a commit bit to anyone who's already created a large branch that we've merged in. :-D 14:21
14:25 JimmyZ joined
whiteknight if he has sent in a CLA, we'll definitely do it 15:09
dalek rrot: c489e0b | mls++ | src/call/args.c:
fix cuddled else
15:10
nine whiteknight: sent by email this morning
rrot: c489e0b | mls++ | src/call/args.c:
fix cuddled else
rrot/mls/kill-events-in-ehqueue: 513be6d | mls++ | / (7 files):
Delete handler_type argument from exception handler functions.

Mixing event and exception handlers seems to be a bad idea, it makes the code very complicated. Also, pop_eh did just zero out the queue element instead of removing it. Also, some code was added to make exception rethrow more robust in case handlers were added/removed.
15:18
rrot/mls/kill-events-in-ehqueue: 513be6d | mls++ | / (7 files):
Delete handler_type argument from exception handler functions.

Mixing event and exception handlers seems to be a bad idea, it makes the code very complicated. Also, pop_eh did just zero out the queue element instead of removing it. Also, some code was added to make exception rethrow more robust in case handlers were added/removed.
mls All tests seem to pass. Please review ;)
15:19 bluescreen joined 15:25 alester joined
NotFound <moritz> this kinda reminds me of the old "how many lines of code did you write this month?" -- "-3000" -> That may have been my first contributions to parrot. 15:33
moritz mls: testing rakudo on top of it 15:35
NotFound I think event handlers are used in nci callbacks. 15:37
mls moritz: thanks! 15:38
NotFound: just for clarification: the branch is about EventHandlers set in CallContexts, not in the Scheduler. The Scheduler ones are unchanged. 15:39
I don't know what NCI uses 15:40
NotFound I think that no one uses those, yes.
dukeleto ~~
moritz ... and t/pmc/nci.t passes on that branch 15:41
15:45 ambs joined
whiteknight nine: I just put your CLA through moderation. It should be showing up on the list soon 15:50
...and there it is 15:51
moritz testf__t/pmc/alarm.t (Wstat: 0 Tests: 7 Failed: 2) Failed tests: 3-4 15:55
on the mls/kill-events-in-ehqueue branch
whiteknight that test fails intermittently for me on master and is probably faulty
moritz ok
whiteknight I need to look at it more closely
nine whiteknight: the test is definitely faulty. It tests for alarms to arrive in a certain order which is guaranteed nowhere 15:57
whiteknight okay, so let's delete the test
nine whiteknight: b1dbbadccd1788f9528b3854c69976027a97358a in master in my repo removes the faulty tests, but leaves those that should work. 16:00
whiteknight nine: I think I just gave you a commit bit to parrot. Can you give it a test? 16:03
dukeleto congrats to the new bit for nine++ 16:06
dalek rrot: b1dbbad | nine++ | t/pmc/alarm.t:
Remove faulty tests from t/pmc/alarm.t

The removed tests tested for alarms firing in a certain order which cannot be guaranteed due to preemption introducing a random element into the mix.
16:07
rrot: e20b3be | nine++ | / (4 files):
Merge branch 'master' of github.com:parrot/parrot
dukeleto nine: if you haven't already, add yourself to CREDITS
nine Seems to work :) 16:08
whiteknight awesome. Definitely make sure you are in CREDITS 16:09
dukeleto i just saw nine++'s CLA go through 16:12
nine btw. who's the hero who changed fulltest to run in a single harness? That awesome change saves quite some time 16:27
whiteknight no idea. Wasn't me 16:30
PerlJam nine: git blame works :) 16:45
16:51 lateau joined 17:02 pbaker joined
dalek kudo/nom: fde126b | jnthn++ | src/Perl6/Optimizer.pm:
Make sure the optimizer knows about PAST::Want nodes; stub for PAST::Var consideration.
17:08
Coke nine,whiteknight: it was kid51++ who also pinged parrot-dev about it. 17:13
ingy dukeleto: are you going to the lucky lab tomorrow? 17:14
Coke ho, ingy. 17:17
ingy Coke: hi. are you in pdx? 17:30
dukeleto ingy: privmsg 17:31
Coke nah. though my wife just flew out of SEA this morning.
ingy dukeleto: still waking up
cotto ~~ 17:47
17:54 fperrad joined 18:08 bluescreen joined
cotto dukeleto++ 18:28
dukeleto cotto: what did i do? 18:37
cotto dukeleto: the new shiny osuosl machine you posted about to parrot-dev. You didn't actually do anything, but I don't consider that a barrier to karma. 18:40
dukeleto cotto: wfm
dalek kudo/nom: 58c4721 | jnthn++ | src/Perl6/Actions.pm:
Include and propagate a bit more type information.
18:43
kudo/nom: 325ea3c | jnthn++ | src/Perl6/Actions.pm:
Various improvements to handling of native types; get back to producing stuff the inliner can do well with.
kudo/nom: 5b98ef4 | jnthn++ | src/core/Int.pm:
Start to simplify various of the native ops thanks to native handling improvements; don't need the nqp::want rigmarole any more.
19:02 schmooster joined 19:32 contingencyplan joined
dalek kudo/native-ints: 41359ec | moritz++ | src/core/Int.pm:
get rid of nqp::want in Int.pm
19:46
19:57 mj41 joined
NotFound dukeleto: ping 19:58
dukeleto NotFound: pong 20:00
NotFound dukeleto: What's the task in cardinal #19? Merge the pull request and fix it? 20:01
dukeleto NotFound: make "winxed setup.winxed test/smoke" work, then merge 20:04
NotFound: someone submitted a setup.winxed, but the test and smoke stages don't work
NotFound I'm not so confident with git and github to do that in a clean way. Is ok to just get the setup.winxed file? 20:05
dukeleto NotFound: github.com/lateau/cardinal/commit/...eb040.diff 20:06
NotFound: you can add .diff or .patch to most github URLs
20:06 ambs joined
dukeleto NotFound: then run "git apply foo.diff" on the diff file you download, to apply it to your local repo 20:07
NotFound: or you can download the setup.winxed file. Whatev
NotFound That's the same, the diff file does not provide autorship et al.
benabik .patch should 20:08
dukeleto what benabik++ said
NotFound $ parrot setup.pir test -> does not pass, gives TAP format errors. Is this expected? 20:09
(in cardinal) 20:10
20:13 jsut_ joined
dukeleto NotFound: not sure. patches welcome :) 20:14
NotFound The failing test file is: t/01-stmts.t
Patches for cardinal? I know nothing about ruby.
dukeleto NotFound: the issue was getting setup.winxed to actually run tests 20:16
NotFound: it was not able to find the tests. Can you fix that issue?
NotFound Flat with a string? WTF? 20:20
dalek rdinal/winxed_setup: 3f3b4a7 | NotFound++ | setup.winxed:
setup.winxed from pull request 19 with my fixes
20:57
NotFound dukeleto: here is
dalek p: d75deea | moritz++ | src/PAST/NQP.pir:
more math nqp:: ops
21:14
p: 3400e44 | moritz++ | src/PAST/NQP.pir:
more nqp:: math ops
kudo/nom: aecd2fc | jnthn++ | src/Perl6/Optimizer.pm:
Remove fossil analysis from optimizer.
21:18
21:29 benabik_ joined
dalek p: 7e4bb20 | moritz++ | src/PAST/NQP.pir:
forgot nqp::sinh_n
21:31
kudo/nom: b441203 | tadzik++ | / (2 files):
Implement splice(); run S32-array/splice.t
21:32
22:20 whiteknight joined 22:27 arnsholt joined
NotFound Historical event: now winxedxx support closures. 22:35
22:39 hernan joined 22:40 hernan joined 22:41 hernan joined 22:42 hernan joined 22:43 hernan joined 22:44 hernan joined
Coke NotFound++ 23:14
23:33 zpmorgan joined 23:59 rfw joined