Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 15 May 2012.
00:00 davidfetter joined 00:06 whiteknight joined
whiteknight blah 00:06
kid51 builds and tests Parrot for the first time ever with perl 5.16.0 00:21
Coke kid51: I did that once with RC0, all was fine 00:48
01:11 pmichaud joined 01:44 whiteknight left
cotto I 02:08
'm excited to see kjs starting to think about m1
and to see something finally generating m0
02:09 plobsing joined
cotto (apart from humans, who are generally poor code-generators) 02:09
02:17 bacek_at_work joined, aloha joined 05:17 adu joined 06:19 fperrad joined 06:29 kjs joined 07:30 japhb joined 07:33 brrt joined
brrt just a quick question, using the parrot embedding api multithreadedly - that is, multiple threads, single interpreter instance - probably isn't a good idea, right? 07:45
sorear it wasn't; it might have changed 08:08
brrt lets assume that it isnt 08:22
08:59 lucian joined 09:07 kjs joined 09:35 mdupont_ joined 11:12 kjs joined
dalek website: brrt++ | GSoC starts today 11:43
website: www.parrot.org/content/gsoc-starts-today
12:02 mdupont joined 12:06 whiteknight joined 12:17 bluescreen joined
whiteknight good morning, #parrot 12:33
kjs morning whiteknight 12:38
brrt noon 12:39
whiteknight hello kjs, brrt 12:44
kjs whiteknight: my m1 stuff is in a branch now 12:45
whiteknight kjs: I saw that yesterday. Awesome
kjs++
kjs however, i don't know how to get it..
cotto++ for doing it.
whiteknight git clone git@github.com:parrot/m1.git
I think that's the name of the repo
kjs it is. i'll try that.
12:46 Woodi joined
whiteknight for that you need to have setup an account at github and added an ssh key there 12:46
otherwise you need to use a url like git://github.com/parrot/m1.git
kjs i have the account
which ssh key do i add there? 12:47
whiteknight whatever your public key is
kjs ehm. ok, i'm a noob here on that.
whiteknight On the github page, upper-right. there's a link for "Account Settings". Click that, then click "SSH Keys" on the left of the page
kjs yes, i'm there now 12:48
title?
whiteknight whatever you want to call it. "My computer" or something like that
kjs and the key?
whiteknight There's a link on the top of that page for "setting up Git and SSH keys" that should walk you through the process 12:49
that's how I did it, because I'm not an expert either
kjs oki, thanks. will check that out
12:53 Khisanth joined
kjs whiteknight: ok, set up the key, did the git clone 12:55
12:55 PacoAir joined
kjs i made changes in my own local copy, so i'll just copy the new changed file into the repo and the commit., that should work 12:55
(right?) 12:56
whiteknight yeah, once you make changes it's a lot like svn 13:05
"git commit" Commits things, and "git push" sends your commits to the server
"git add" is used to add changes to the next commit. "git commit -a" adds all changes, like what svn commit does 13:06
13:07 Psyche^ joined
brrt whiteknight: i need to know a few things from you 13:10
whiteknight brrt: You can always ask any question you want 13:11
brrt alright :-)
i want to 'redirect' parrot standard input / output to the relevant apache functions 13:12
whiteknight brrt: Okay, so what does that require? Are there standard FILE* things to redirect to, or are they functions we need to call? 13:13
kjs ah git push. thanks. i was looking for that
brrt function calling 13:15
i was hoping - and it used to be - that i could get a handle on the raw sockets
but the filtering api prohibits that
so instead, i need to call ap_write() 13:16
whiteknight okay, we don't currently have anything like a way to redirect IO to a function. We would need to add something
brrt with a pointer to the request_req structure
whiteknight I wonder why we've never had such a thing, but we don't 13:17
brrt well the alternative is buffering all output and returning it to the c layer
which means copying
but apache already does buffering, so that would be double work
buffering also prohibits http streaming, which is a Handy Feature 13:18
whiteknight Is there a libapache or something that your extension is linking to? 13:20
because if we can get a reference to that library, we can use an NCI call to ap_write
brrt probably there is 13:21
i'll find out
whiteknight okay, do that
This situation begs for a better solution. I'll brainstorm some things today
A SubHandle IO type that redirects IO requests to an invokable (where that invokable could be an NCI) would do the trick 13:30
brrt hmm, reading apache makefiles is not really helpful 13:31
the thing is, that invokable also needs to be called with an apache-specific (opaque) pointer 13:32
so either you have an invokable, or some sort of IO PMC
where the IO pmc could keep the handle somewhere 13:33
whiteknight We may need to create a custom PMC type to handle this kind of stuff 14:04
If you use a custom object as a handle, the IO subsystem will just fall back to invoking methods on that object if it's not a known type 14:05
so if you create a PMC which implements the necessary methods, that should work
brrt that is reassuring 14:06
whiteknight I really need to get in there and clean that system up so it becomes a little bit more obvious what is happening 14:07
brrt pointers to (pm)?c files are good enough 14:08
whiteknight rok
brrt yay,gsoc package! 14:23
whiteknight brrt++ 14:28
brrt little notebook this year, nice :-) 14:30
do mentors also receive a package?
whiteknight They usually get a shirt
brrt: When is a good time for you and I to have weekly meetings? Tuesdays tend to be good days because of the #parrotsketch meeting 14:32
brrt that depends a bit on social requirements, but i think tuesday is good for me 14:37
usually
:-)
i'll try to get #parrotsketch daily
eh, weekly
whiteknight we can pick whatever day and time are best for you 14:40
www.scriptol.com/programming/quotes.php 14:46
"If Java had true garbage collection, most programs would delete themselves upon execution."
atrodo There are not nearly enough quotes for C or C++ 14:47
whiteknight Here's one I would add, though I forget the attribution: "If Your only tool is a hammer, every problem looks like a nail. If C++ is your hammer, every problem looks like your thumb" 14:48
atrodo whiteknight++ 14:49
rurban I started a jvm converter some years ago. code.google.com/p/parrot-jvm/
(that was an answer to dadada) 14:50
brrt weekends are bad, for me, usually social stuff :-) 14:55
whiteknight that's fine. Weekends are bad for me too 14:58
too much yard work
dalek p/qbootstrap: aee8809 | pmichaud++ | src/Q (2 files):
Fix bug with subcaptures receiving empty hash entries from outer match quantified captures (RT #111286).
15:00
p/qbootstrap: dfb6d5a | tadzik++ | VERSION:
bump VERSION to 2012.05
15:00 dmalcolm joined
p/qbootstrap: 770e9f2 | moritz++ | src/Regex/P6Regex/ (2 files):
implement <|w> and <|c> regex assertions
p/qbootstrap: 31fdcee | moritz++ | / (3 files):
oops, should have implemented <|w> in qregex right away. With basic tests this time
p/qbootstrap: 4bac8c3 | jnthn++ | / (8 files):
Merge branch 'master' into qbootstrap
brrt so, tuesday is ok for me, otherwise friday
will see how it sorts out for me
whiteknight okay 15:01
the only important part is that I see you every week. If you're here in #parrot a lot, that's easy
15:01 brrt left 15:02 brrt joined
brrt i like the one about php :-) 15:02
whiteknight heh
I'm actually surprised there aren't more quotes about PHP on there. It's a common topic of complaint 15:03
brrt i think the quote sums it up nicely
whiteknight maybe the people who complain about PHP aren't usually very quotable
brrt especially when compared with perl
anyway, i was planning on writing a planned architecture document this evening 15:19
which should outline the direction i want to take 15:20
for example, i think that - possibly using different bootstrapping files - mod_parrot could support different running enviroments 15:21
so that one enviroment might be cgi, which is simple and effective
whiteknight that is a good idea
brrt and another might be psgi, which is also simple and effective in its own right, but which requires - for example - a starting routine
whiteknight I would very much like to see such a document 15:22
brrt good :-) oh, and another thing; using a single mod_parrot instance multithreadedly is probably not a good idea, right?
whiteknight not at the moment 15:25
We've got threads support in a branch that's probably going to be merged before the end of the summer, but we don't really have it in master now 15:26
brrt i'll assume a per-thread instance 15:27
whiteknight okay 15:28
that's a good start. Later we can change things if we need
brrt right, its best to keep things simple 15:31
brrt leaves 16:05
16:05 brrt left 16:12 japhb joined 16:16 brambles joined 16:30 fperrad_ joined 16:57 PacoAir joined 16:58 zby_home joined 17:00 plobsing_ joined 17:07 contingencyplan joined
aloha (parrot/parrot) Issues closed : 731 (Add apt-get update to .travis.yml) by leto : github.com/parrot/parrot/issues/731 17:38
17:56 PacoAir joined 18:03 crab2313 joined, dukeleto joined
dukeleto ~~ 18:03
whiteknight good afternoon, #dukeleto 18:04
dukeleto whiteknight: howdy! I have arisen from under my rock.
whiteknight awesome. You all settled into the house and hitched and everything? 18:05
dukeleto whiteknight: indeed. Feels surreal. 18:06
whiteknight: how goes gsoc? 18:07
whiteknight: i haven't seen much about lapack. Did I miss something?
benabik I should get working on GSoC, but I have to take care of car stuff today. :-/ 18:08
Thankfully, whiteknight beat me to my week 1 task. :-D 18:09
Sorry, misspelled that: whiteknight++
whiteknight what was your week1 task?
dukeleto: today is the first day of coding. So I don't think you are missing much. I know jashwanth is still tied up with exams this first week
benabik Working on the Key PMC. :-D 18:10
whiteknight I actually haven't seen jashwanth in here in a few days, but I've seen him on facebook so I know he's not missing
benabik: I told you I would do it, and I try my hardest to enable GSOC students
benabik I'll probably work on using your improvements in disasm.winxed at first. 18:11
whiteknight: I like making pessimistic schedules. :-)
whiteknight it's always better to have a pesimmistic schedule and at the end say "holy crap, look at how much more work I did than was expected!" 18:20
benabik The trick is to set the bar low enough that you look impressive at the end, but not so low nobody wants to take your project. 18:21
dukeleto whiteknight: yes, i remember jashwanth saying he had exams the first week 18:25
whiteknight: do you know if he has started any kind of repo or anything yet?
whiteknight github.com/jashwanth
doesn't look like it
dukeleto whiteknight: ok, I will create a skeleton repo to help him get bootstrapped 18:26
whiteknight: I remember staring at a blank screen and a repo with no history. It is intimidating.
Better to give him a little shiny egg that he can improve upon. 18:27
dalek p/qbootstrap: 56d136a | jnthn++ | src/QRegex/NFA.nqp:
First crack at making LTM transitivity extend into protoregexes. Basically, just builds an alternation, as suggested by pmichaud++. Seems to help some with the NQP tests.
18:29
18:42 particle joined 18:43 dukeleto joined
dukeleto blarg to crashy hardware. 18:43
nine What is the minimum software stuff I'd need to compile and test parrot on a Windows machine? Would I need administrative priviledges? 19:14
benabik I installed Strawberry Perl and I think that gave me basically everything I needed. 19:15
nine I'm thinking about abusing some company VM to debug the Windows threading issues. It sucks to not being able to simply test stuff. 19:18
19:22 alester joined 19:25 lucian joined
whiteknight nine: Should only need admin privs on windows if you're trying to install 19:31
nine Are there actually platforms supported by Parrot where FLOATVAL is a float instead of a double? 19:32
whiteknight nine: I was able to build that threads debug branch on my windows VM, but I lost your message telling me what to do next and then I had to go to bed
nine: None that I'm aware of
nine: though I might not be aware of too many
19:32 lucian joined
nine Right now alarms may fire a little early since the conversion of the FLOATVAL to a struct timespec loses precision. Gets rounded down to milliseconds 19:33
19:36 brrt joined 19:41 brrt1 joined
brrt1 ping whiteknight 20:18
whiteknight pong
brrt1 :) 20:19
i was wondering - why can't i get my own nick, for starters - and for another, what happens during GC with object created and manipulated using the C api 20:20
e.g. I load a parrot bytecode file into a pmc
what happens when garbage collection is called? 20:21
benabik brrt1: Did you lose connection for a moment? Looks like brrt was still online for a bit after you logged in.
brrt1: Should be able to get your original nick now.
whiteknight inside Parrot the stack is walked looking for PMC references. That's one of the things the Parrot_api_* functions do, they set a marker to the top of the stack
brrt: In references you hold outside the API, you need to make sure they stay anchored somewhere. Currently packfiles are always anchored 20:22
brrt: There is an api function to pin a PMC so GC marks it. Let me look it up
brrt1 keepalive or something
Parrot_api_pmc_keep_alive(interp, pmc, alive) 20:23
whiteknight Parrot_api_toggle_gc can turn GC on or off for sections of critical code too
brrt1 that is probably important 20:24
20:24 perlite_ joined
whiteknight but yes, Parrot_api_pmc_keep_alive(interp, obj, 1) is what you want for most things 20:24
and then Parrot_api_pmc_keep_alive(interp, obj, 0) when you're done with it 20:25
or once you've anchored it
GC runs during allocations, when we try to get a new PMC but there are none on the free list. So as long as you aren't allocating anything your objects are safe
brrt1 ok, but i will be allocating stuff in fact within C, not much but still 20:26
whiteknight Anything that you pass to an API function is safe, because references are on the stack.
brrt1 the basic gist of it is this: 20:28
* i get a request from apache
* i convert this request into a hash containing its values
* i somehow bind IO to the request
* then i run a packfile with the bootstrapping script
* which will load the HLL language, and if necessary, compiler
* and execute the script
* which will return output either via STDOUT (cgi)
* or via an array of data (psgi)
20:29 crab2313_ joined
whiteknight Yeah, you should keep_alive that hash and any other objects that aren't referenced from inside the interp 20:29
I've got to pack up and go home now. I'll be on later tonight and tomorrow 20:30
later
brrt1 later!
20:39 mdupont_ joined 21:16 kurahaupo joined 21:20 preflex_ joined 21:34 particle1 joined 21:45 kurahaupo joined 22:21 schmooster joined 22:48 Hunger joined 23:23 particle joined 23:35 kurahaupo joined 23:41 plobsing joined, kid51 joined 23:47 whiteknight joined
whiteknight good evening, #parrot 23:55
23:59 Hunger joined