Parrot 4.6.0 "Wild Parrots of Telegraph Hill" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 19 August 2012.
00:46 kid51 joined 01:19 l3l1p joined 01:23 MikeFair joined 01:54 benabik joined 02:36 l3l1p joined 03:52 preflex joined 04:07 contingencyplan joined 04:10 contingencyplan joined 04:18 contingencyplan joined 04:23 contingencyplan joined 04:26 MikeFair joined 04:29 l3l1p joined 05:04 contingencyplan joined 05:05 contingencyplan joined 05:06 contingencyplan joined 05:19 contingencyplan joined
dalek kudo/nom: 2193a86 | moritz++ | src/ (2 files):
pass attribute name to X::Attribute::{No,}Package
05:50
06:25 fperrad joined 06:33 rurban_mobile joined
rurban_mobile hi #parrot. some hours left before yapc starts 06:36
has some long talks with stefan seifert (nine) and leont about our remaining threads problems. nine is on it. if he could only reproduce it. 06:37
dalek rrot/gh816-unstatic-dying-check: 29545e9 | (Bart Wiegmans)++ | src/exceptions.c:
[GH #816] Check if you're dying by interp->final_exception

In a branch of mod_parrot designed to ease the writing of exception handlers, I noted that the API cannot catch exceptions twice. On throwing an exception and the interpreter 'dies', it returns to the api call via longjmp(), and sets some values upon the interpreter object. Based upon these values, the api call returns 0, upon which the exception is retrieved and inspected. Best example: show_last_error_and_exit.
We should just check for the last_exception being PMCNULL; if so you can jump out (we are already dying) and if not set already_dying.
06:57
07:09 brrt joined
rurban_mobile brrt: I fixed your whitespace and created a gh816-... branch on parrot. 07:15
do you have a test case for it also?
brrt hey, i saw 07:17
ehm, not yet a test case, but i can write one
rurban_mobile brrt: I fixed your whitespace and created a gh816-... branch on parrot. 07:21
do you have a test case for it also?
oops. sorry for 2x. yes, a test would be awesome. 07:22
I'm off now for 40min, and will continue with the vms port fixes. 07:23
07:56 lucian joined 08:16 rurban_mobile joined
dalek kudo/nom: c5f8b87 | moritz++ | src/ (2 files):
include placeholder name in X::Signature::Placeholder
08:28
08:45 simcop2387 joined
brrt msg rurban I just pushed a test case to my repo 08:54
aloha OK. I'll deliver the message.
brrt msg rurban see commit github.com/bdw/parrot/commit/d0bfd...c0d12d393e 08:57
aloha OK. I'll deliver the message.
08:58 FROGGS joined
rurban_mobile brrt: thanks. I'll try. anyone knows what's up with the release? 09:04
moritz no idea 09:06
who's the release manager this month?
"Please note: I've recorded Reini as the Release Manger for the July 17, 2012 - 09:07
4.6.0 release, and whiteknight for Aug 21, 2012 - 4.7.0 release."
09:07 mvorl joined
moritz from Alvis on parrot-dev 09:07
rurban_mobile exactly 09:09
09:09 mvorl left 09:13 mvorl joined
dalek rrot/gh816-unstatic-dying-check: a0dda3a | (Bart Wiegmans)++ | t/src/embed/api.t:
Added test case for dying twice
09:21
rurban_mobile bdw: can you please git pull --rebase or even git reset --hard from the new branch gh816-unstatic-dying-check 09:24
brrt rurban_mobile: will do 09:31
rurban_mobile: i find this tricky 09:44
09:50 fperrad joined
dalek rrot/nqp-p6: 4e965fd | rurban++ | / (3 files):
use nqp-p6 from the perl repo as new nqp
09:52
rrot/nqp-p6: a355f44 | rurban++ | ext/nqp-rx/ (65 files):
remove ext/nqp-rx
tadzik oh niec
rurban_mobile who from perl6 can comment on my questions in github.com/parrot/parrot/issues/818 i.e. does nqp wants to use p5 Parrot/Configure libs to ease the makefile syntax and parrot integration? 09:56
I guess I should provide a pull request for that, right? So that you can see what I suggest.
moritz rurban_mobile: maybe talk to pmichaud 09:59
09:59 mvorl left
pmichaud I don't have any desire to use Parrot's Configure libs for nqp's makefiles. 10:05
dalek kudo/nom: 1054d13 | moritz++ | src/core/ (2 files):
awesomify error message for X::Role::Initialization
10:23
rrot/nqp-p6: 7799cb0 | rurban++ | / (3 files):
use nqp-p6 from the perl repo as new nqp
10:35
rrot/nqp-p6: a5320e8 | rurban++ | / (66 files):
remove ext/nqp-rx
rurban_mobile ok thanks. So we will just use what it's there in perl6/nqp. 10:36
dalek rrot/nqp-p6: 1041f0d | rurban++ | / (3 files):
use nqp-p6 from the perl repo as new nqp
10:44
rrot/nqp-p6: 1ff8e27 | rurban++ | / (66 files):
remove ext/nqp-rx
rurban_mobile brrt: assume your ro parrot remote is called parrot; git fetch --all; git reset --hard parrot/gh816-unstatic-dying-check 10:48
dalek rrot/nqp-p6: fa1d099 | rurban++ | / (5 files):
use nqp-p6 from the perl repo as new nqp
11:25
rrot/nqp-p6: ead25e1 | rurban++ | / (66 files):
remove ext/nqp-rx
brrt rurban_mobile: that leaves me off the branch 12:00
and whats more 12:02
its not really important :-)
12:02 whiteknight joined
whiteknight good morning, #parrot 12:02
moritz good morning, whiteknight
whiteknight hello moritz
brrt goot morning whiteknight
whiteknight hello brrt
brrt (i'm filling in my evaluation right now... its considerably more detailed than the mid-term one) 12:03
whiteknight yeah. I already did mine. The ones for the mentors isn't so bad 12:04
basically, "is your student a complete goober?" and "pass/fail?" 12:05
brrt reference failure at 'goober' 12:06
ah, a peanut 12:07
12:10 JimmyZ joined
whiteknight it's a fun way to say "incompetent" 12:12
don't worry, I told google you're very competent 12:13
JimmyZ lookes like there won't be a parrot release this month? 12:14
rurban_mobile whiteknight: problems with the release? 12:18
brrt well yay for me :-) 12:29
oh i should read up #ps
moritz brrt++
whiteknight rurban_mobile: yes, problems with my main memory
moritz yay for me too. I backup-mentored, which consisted of reading brrt++'s blog and idling on IRC :-)
whiteknight rurban_mobile: also, problems with my ability to read a calendar. Release is coming shortly
moritz and I'll get a gsoc t-shirt for that, I think :-) 12:30
whiteknight moritz: Yes, one of the big benefits to backup mentorship
brrt no #ps yesterday? 12:31
shirts ftw 12:32
dalek kudo/nom: 7b068ea | moritz++ | src/core/Exception.pm:
improve error message for X::Composition::NotComposable, lumi_++
JimmyZ hmm, what's the blocker of io_cleanup1? 12:35
whiteknight JimmyZ: moritz is still seeing some socket-related failures in Rakudo. I haven't had time to track them down 12:36
JimmyZ oh 12:37
whiteknight if you are able to try and reproduce them, that would be a help
moritz tries again 12:38
whiteknight moritz: I definitely trust that you are seeing the failures, I just haven't had time to reproduce myself 12:39
the more troubling question is why it looks right on my system. I'm probably relying on some weird undefined behavior, or uninitialized variable somewhere or something 12:40
moritz whiteknight: thing is, I'm lose track which patches I have applied and which not
I want to be very certain that it's not a messup on my side 12:41
because that would be a waste of debugging tuits
Coke rurban_mobile: do you know Will Braswell? 12:46
rurban_mobile whiteknight: no prob. I'll try to help in io_cleanup1 also.
Coke: not yet, but I'll meet with him in August and Sept.
Coke ok. he emailed me directly about some perl5 stuff. weird. 12:47
rurban_mobile whiteknight: It's only that I accidently almost submitted some patches to master. check the linearity
whiteknight okay6
rurban_mobile coke; he is very excited. yes, weird.
Coke (and mentioned he had already talked to you and some other fivers.)
whiteknight I'm fulltesting master now. As soon as that passes we have a release 12:48
rurban_mobile master should be super stable.
whiteknight yes, it's looking like that
moritz ok, on my server I'm now down to two failing socket tests, with nom (no custom io_cleanup related patches) 12:49
I'll try it on my notebook when I get home
whiteknight okay, that's exactly what I was seeing. So I suspect those are encoding related?
moritz aye
rurban_mobile whiteknight: origin/master looks okay me. 12:51
For the next release I can update the vms port, pasm can be removed, threads and io_cleanup1 should be ready hopefully, and nqp-rx can be replaced by nqp-p6. 12:53
I have no idea about the state of lorito. perl6 is definitely needing this most. 12:54
JimmyZ rurban_mobile: opsc is using nqp-rx, FYI 12:55
Coke (next release pasm) ok, ok, I'll check into that while I'm travelling this week.
rurban_mobile JimmyZ: Already replaced in the nqp-p6 branch. Looks almost finished, just some portability fixed needed. 12:56
Coke makes a note to git fetch everything before heading on teh plane.
rurban_mobile s/fixed/fixes/
whiteknight nqp-rx can't be completely replaced by nqp-p6 until Parrot gets 6model
rurban_mobile whiteknight also has a rm_pasm branch
JimmyZ whiteknight: why?
whiteknight and I'll start on 6model as soon as io_cleanup1 or threads is merged
JimmyZ: Well, I guess it isn't strictly necessary to do it that way, but it makes more sense 12:57
Coke nqp-rx contains its own 6model.
er, nqp-p6
whiteknight right, and the plan is to merge that down into Parrot core
rurban_mobile Interesting, lets discuss this after 4.7.0
Coke ETOOMANYPERLS
whiteknight ok
rurban_mobile maybe perl6 has to abstract 6model into its own shared repo. 12:58
JimmyZ thinks most *.pm files will be removed after porting to m0
dalek rrot: 9df0b60 | Whiteknight++ | / (10 files):
Parrot release 4.7.0, 'Hispaniolan'
whiteknight Okay, there she is. A day late and a dollar short, but we have a tagged release commit 12:59
I'll send out release notes through the day, and probably get the tarballs posted and the website updated tonight 13:00
nine great!
whiteknight++
whiteknight now, if everybody would please be so kind, BREAK MASTER UNTIL IT'S BROKEN
thank you
moritz whiteknight: it seems explicitly setting the encoding on a socket handle causes it return empty strings (?)
nine whiteknight: merge threads? 13:01
tadzik OH HELL YES
atrodo whiteknight: that sounds too simple 13:05
whiteknight moritz: That part of the logic might have gotten broken by the last round of readline changes. I'll have to go back and make sure everything is sane 13:19
dalek rrot/nqp-p6: 5208149 | rurban++ | config/gen/makefiles/root.in:
rename parrot-nqp to nqp

Also mark TODO portability in the makefile. As discussed with pmichaud, we should git submodule to some safe-points,such as nqp tags. jonathan is planning to revamp 6model a bit later, which should not affect us.
  pmichaud does not want to abstract 6model into a seperate git repo, so we should
either copy it, or use it from ext/nqp-p6.
13:20
whiteknight Getting readline semantics correct has been the single hardest part of this entire refactor 13:31
rewriting buffering logic? Breaking out per-type logic into separate io_vtables? Unifying semantics between different handle types? These things were all very easy in comparison 13:32
In hindsight, I probably should have tried to do some of those things in separate branches, and merged parts earlier 13:33
13:34 bluescreen joined
brrt submitted 13:41
13:42 dmalcolm joined
whiteknight brrt++ 13:43
brrt i said i was pretty happy actually :-) it has been a good experience for me 13:44
whiteknight good, I'm happy to hear that
brrt educational, and you guys are truly a good and supportive community
a small one but a very good one
moritz brrt: funny, I had the impression that most of your e-mails went by without a substantial answer 13:45
whiteknight moritz: "substantial" is such a strong word
moritz: A lot of the issues had been addressed or resolved off-list
and some I'm ignoring, because they're too hard :)
brrt on irc :-)
well, yeah, thats what i wanted to say too 13:46
moritz whiteknight: answering stuff off-list would explain that, yes
brrt i know of only one really 'too hard to fix' issue
which is the whole gc-thing
and scheduler thing etc, and i think i've had pretty good feedback on most issues
nine brrt: scheduler thing? 13:47
brrt nine: yeah, on the giving-children-the-scheduler-of-parents thing 13:48
i noticed that actually runnin gchild nterprters worked on threads
so i dropped working on that
no good to have to fixes for the same problem 13:49
destroying child interpreters, thats a bit of an issue
whiteknight We definitely need to take some time out and discuss exactly what we want the relationship between interpreters and threads to be, and how we want them all to interact
but that's something that can happen after the threads merge
For instance, once we start on security we're really going to want to be able to have an arbitrary number of child interps running in a single thread, with different security settings
with per-thread parent/child relationships 13:50
that's basically what brrt wants, in mod_parrot. One interp to run the loader with full permissions and one interp to run the user script in lockdown mode 13:51
ideally on the same thread
brrt .. yeah what whiteknight says
nine As I understand that's pretty much how it already works in threads but yes, some explicit docs on what features we want to provide here would be great. 13:52
brrt if not on the same thread then i must be able to 'wait' on it in the parent thread
nine brrt: waiting for tasks to finish is working already.
brrt ok great :-) 13:53
whiteknight nine: Yes, that's basically how it mostly works, but there are bugs and some of those bugs stem from small misunderstandings in places and issues where we haven't written things up explicitly
brrt what i want is:
a: having a few interpreters (as many as there are OS threads) in a pool, that are long-lived and do nothing but serve loaders
whiteknight basically an interp needs to maintain a few relationships: A "parent" in the context of security, through which certain operations are routed, a "parent" in terms of scheduling and task waiting, and a "thread" on which the interp runs 13:54
nine whiteknight: exactly. Without explicitely stated requirements it's far too easy to break stuff.
brrt b: have those interpreters spawn a /short-lived/ child interpreter to run the user script
p6eval b 922500: OUTPUT«Could not find sub &a␤ in main program body at line 22:/tmp/U292AYwc_A␤»
whiteknight yes, so after threads is in and working, we need to get those things laid out so we can start on security
nine so when do we merge threads?
brrt aside from security, i need to be sure garbage (filehandles!) gets collected from my child interpreter 13:55
whiteknight nine: If all tests are passing, we can merge it today
brrt if my child interpreter opens a file through a parent interpreter and then the parent interpreter lives on after the child causing the opened file not to be closed.....
that would be bad
whiteknight I've lost track of any outstanding error reports
but now that the release is out, we can merge whenever if things look good
nine brrt: I admit to have neglected interp shutdown in threads just because it does not affect any tests, but yes, shutdown should be cleaned up 13:56
brrt :-)
whiteknight interp shutdown, and GC finalization in general are on my TODO list
brrt i'm pretty sure we'll figure something out
nine whiteknight: there's still mysterious lockups on some platforms. But I'm completely unable to reproduce them. Not even running VMs helped. Tests will simply pass on any machine I have access to. 13:57
whiteknight: there have now been at least three people looking at the code and not finding anything obviously flawed with it.
whiteknight nine: Okay, I suppose we have two options: 1) is to keep looking and see what we can do, and 2) is to merge it and hope that gives us more eyes on it 13:58
nine whiteknight: and considering that the whole timer stuff is just about 150 LOC, I tend to assume that it's simply correct.
whiteknight: right now, I'm for merging because there's simply nothing more I can do as long as I cannot repro anything
whiteknight I wonder if we can get that thread sanitizer program running on some of these other platforms, to see what we can find?
Do we have a list of platforms where failures have been reported? 13:59
JimmyZ I'm +1 to merge threads too ;) 14:05
nine whiteknight: no list. thread sanitizer actually seems to be a source of problems itslef 14:06
whiteknight heh
tadzik :>
nine whiteknight: it produces a hang consistently but it does so by breaking pthread_cond_wait
whiteknight okay, so is that a bug with thread sanitizer? 14:07
nine very likely. I traced it down to the timer thread wiating in pthread_cond_wait, the other thread pthread_cond_signaling and the timer thread not coming out of the wait.It's simply pbroken 14:08
whiteknight ok
nine wifi is very crowded at YAPC. Having 10 seconds lag on typing
14:08 contingencyplan joined
whiteknight bleh 14:09
nine Btw. my Threading in Parrot talk went very very well. Final head count was at 35-40 people in the audience which is much more than expected. 14:10
whiteknight that is a lot
awesome
nine All very interested (and half of them probably having more experience with threading than me...). Got 15 minutes of great questions before I had to stop
whiteknight did it get video recorded?
nine unfortunately not :/ 14:11
JimmyZ nine: is there a ppt? 14:12
nine JimmyZ: I could put up the slides but really just have a look at my thesis at niner.name/Hybrid_Threads_for_the_Parrot_VM.pdf 14:13
JimmyZ nine: I'v been seeing this pdf all the time ;) 14:14
nine JimmyZ: so you probably know everything I told in the talk already :)
JimmyZ: your next step would be to just go and play around with the code ;) 14:15
14:16 rurban_mobile joined
JimmyZ thread is weird when it doesn't do DWIM 14:17
nine JimmyZ: ?
JimmyZ Do What I Mean 14:18
whiteknight when doesn't it DWIM?
JimmyZ when I use it by mistake? 14:20
nine JimmyZ: how can you use it by mistake? :) 14:21
PerlJam "I don't want a thread. Really, I don't. Gah! You gave me one anyway!"
whiteknight Programs today that don't use threads will continue not using threads after the branch merge 14:22
I mean, besides the default thread, which all programs always have
nine and the timer thread....but the program doesn't see it 14:23
whiteknight We can probably get smarter in the future about not even creating that thread if we don't need it 14:27
but that's a small optimization to worry about much later
dalek rrot/nqp-p6: 0510f6d | rurban++ | config/gen/makefiles/root.in:
chmod nqp to 755 as perl ExtUtils::Command cp is still not copying perms
nine whiteknight: yep, that's probably just a 5 line optimization to lazily create that thread 14:41
dalek rrot/vms: e5e9d47 | rurban++ | / (3 files):
vms: .tmp => _tmp for multi-dot filenames
14:55
rrot/vms: fc01640 | rurban++ | lib/Parrot/ (2 files):
vms: ignore wrong -I and -c in Configure steps

Also fix /Define= switches for the vms compiler.
rrot/vms: 2342dae | rurban++ | / (2 files):
Change user-facing copyright year from 2011 to 2012
rrot/vms: d038ff7 | rurban++ | /:
fixup $target
rrot/vms: 5b7e1ec | rurban++ | / (2 files):
Change user-facing copyright year from 2011 to 2012
15:14
rrot/vms: cfead25 | rurban++ | config/init/hints/vms.pm:
vms: fix hints

Use the new test_$$ names. LINK default exe is okay for vms.
rrot/vms: 218a7aa | rurban++ | lib/Parrot/ (2 files):
vms: ignore wrong -I and -c in Configure steps

Also fix /Define= switches for the vms compiler.
rrot/vms: f1eabe7 | rurban++ | / (3 files):
vms: .tmp => _tmp for multi-dot filenames
15:30 sivoais joined 16:02 brrt left
dukeleto msg rurban yes, we still use Travis: travis-ci.org/#!/parrot/parrot . There is no way to use a different name other than .travis.yml . Since parrot doesn't use that file at all, I think it is reasonable to leave it alone. 16:37
aloha OK. I'll deliver the message.
17:12 jashwanth joined 17:28 benabik joined
Coke if it's failing a coding standard test, we can whitelist that one file 17:35
18:00 sivoais joined 18:03 benabik joined 18:15 sivoais joined 18:26 lateau__ joined 19:50 davidfetter joined 20:00 lucian joined 20:18 PacoAir_ joined 20:22 PacoAir_ joined 21:03 alvis joined 22:08 whiteknight joined
whiteknight good evening, #parrot 22:08
cotto Thanks for the release, whiteknight. 22:20
whiteknight++
whiteknight blah, don't thank me
next time I'll try to do it on the correct day
cotto ;) 22:21
whiteknight cotto: I have a question for you 22:36
cotto: Would you be against adding a get_pointer vtable, with large warning notes, to some core pmc types like Integer and Float? 22:37
cotto hmm 22:46
it'd return the address of the wrapped primitive?
Are you thinking of something for mod_parrot? 22:47
whiteknight it's for jashwanth's parrot-lapack, mostly 22:53
all fortran parameters are pass-by-reference, even integers, so calling lapack libraries through nci requires it
cotto That's sensible then.
+1
whiteknight well, as sensible as fortran
dalek rrot: f93ef0f | Whiteknight++ | tools/release/release.json:
fix ftp path
23:00
whiteknight tarballs are on the ftp site
I say this every time, but updating the website is WAAAAAY too much work 23:11
for, arguably, very little benefit
blah, the encoding logic for sockets and FileHandles is unified all the way down. I'm not sure why it wouldn't be working correctly for sockets if it works fine for FileHandles 23:30
dalek rrot/whiteknight/io_cleanup1: cdd13f8 | Whiteknight++ | src/pmc/handle.pmc:
Clean up some docs for Handle PMC
23:33
rrot/whiteknight/io_cleanup1: da9adfa | petdance++ | config/auto/warnings.pm:
get rid of the warning about C90 not supporting "long long"
23:39
rrot/whiteknight/io_cleanup1: 9df0b60 | Whiteknight++ | / (10 files):
Parrot release 4.7.0, 'Hispaniolan'
23:40
rrot/whiteknight/io_cleanup1: f93ef0f | Whiteknight++ | tools/release/release.json:
fix ftp path
rrot/whiteknight/io_cleanup1: a767d76 | Whiteknight++ | / (11 files):
Merge branch 'master' into whiteknight/io_cleanup1
benabik ~~ 23:52
whiteknight hello benabik 23:54
benabik o/ whiteknight
I vanished a bit for the last few days... Last minute trip to the in-laws, since school & work are starting up again.
Did my eval though, will do a "final" blah soon 23:55
*blag
whiteknight that's cool
dalek rrot/whiteknight/io_cleanup1: 53282f3 | Whiteknight++ | / (2 files):
Allow null strings in Parrot_io_reencode_string_for_handle, since we may be attempting to reencode a record_separator which hasn't been initialized yet. This fixes an issue exposed by Rosella
23:57