Camelia, the Perl 6 bug

IRC log for #parrot, 2012-05-21

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 davidfetter joined #parrot
00:06 whiteknight joined #parrot
00:06 whiteknight blah
00:21 * kid51 builds and tests Parrot for the first time ever with perl 5.16.0
00:48 Coke kid51: I did that once with RC0, all was fine
01:11 pmichaud joined #parrot
01:44 whiteknight left #parrot
02:08 cotto I
02:08 cotto 'm excited to see kjs starting to think about m1
02:08 cotto and to see something finally generating m0
02:09 plobsing joined #parrot
02:09 cotto (apart from humans, who are generally poor code-generators)
02:17 bacek_at_work joined #parrot
02:17 aloha joined #parrot
05:17 adu joined #parrot
06:19 fperrad joined #parrot
06:29 kjs joined #parrot
07:30 japhb joined #parrot
07:33 brrt joined #parrot
07:45 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?
08:08 sorear it wasn't; it might have changed
08:22 brrt lets assume that it isnt
08:59 lucian joined #parrot
09:07 kjs joined #parrot
09:35 mdupont_ joined #parrot
11:12 kjs joined #parrot
11:43 dalek website: brrt++ | GSoC starts today
11:43 dalek website: http://www.parrot.org/content/gsoc-starts-today
12:02 mdupont joined #parrot
12:06 whiteknight joined #parrot
12:17 bluescreen joined #parrot
12:33 whiteknight good morning, #parrot
12:38 kjs morning whiteknight
12:39 brrt noon
12:44 whiteknight hello kjs, brrt
12:45 kjs whiteknight: my m1 stuff is in a branch now
12:45 whiteknight kjs: I saw that yesterday. Awesome
12:45 whiteknight kjs++
12:45 kjs however, i don't know how to get it..
12:45 kjs cotto++ for doing it.
12:45 whiteknight git clone git@github.com:parrot/m1.git
12:45 whiteknight I think that's the name of the repo
12:45 kjs it is. i'll try that.
12:46 Woodi joined #parrot
12:46 whiteknight for that you need to have setup an account at github and added an ssh key there
12:46 whiteknight otherwise you need to use a url like git://github.com/parrot/m1.git
12:46 kjs i have the account
12:47 kjs which ssh key do i add there?
12:47 whiteknight whatever your public key is
12:47 kjs ehm. ok, i'm a noob here on that.
12:47 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
12:48 kjs yes, i'm there now
12:48 kjs title?
12:48 whiteknight whatever you want to call it. "My computer" or something like that
12:48 kjs and the key?
12:49 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 whiteknight that's how I did it, because I'm not an expert either
12:49 kjs oki, thanks. will check that out
12:53 Khisanth joined #parrot
12:55 kjs whiteknight: ok, set up the key, did the git clone
12:55 PacoAir joined #parrot
12:55 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:56 kjs (right?)
13:05 whiteknight yeah, once you make changes it's a lot like svn
13:05 whiteknight "git commit" Commits things, and "git push" sends your commits to the server
13:06 whiteknight "git add" is used to add changes to the next commit. "git commit -a" adds all changes, like what svn commit does
13:07 Psyche^ joined #parrot
13:10 brrt whiteknight: i need to know a few things from you
13:11 whiteknight brrt: You can always ask any question you want
13:11 brrt alright :-)
13:12 brrt i want to 'redirect' parrot standard input / output to the relevant apache functions
13:13 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
13:15 brrt function calling
13:15 brrt i was hoping - and it used to be - that i could get a handle on the raw sockets
13:15 brrt but the filtering api prohibits that
13:16 brrt 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
13:16 brrt with a pointer to the request_req structure
13:17 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
13:17 brrt which means copying
13:17 brrt but apache already does buffering, so that would be double work
13:18 brrt buffering also prohibits http streaming, which is a Handy Feature
13:20 whiteknight Is there a libapache or something that your extension is linking to?
13:20 whiteknight because if we can get a reference to that library, we can use an NCI call to ap_write
13:21 brrt probably there is
13:21 brrt i'll find out
13:21 whiteknight okay, do that
13:21 whiteknight This situation begs for a better solution. I'll brainstorm some things today
13:30 whiteknight A SubHandle IO type that redirects IO requests to an invokable (where that invokable could be an NCI) would do the trick
13:31 brrt hmm, reading apache makefiles is not really helpful
13:32 brrt the thing is, that invokable also needs to be called with an apache-specific (opaque) pointer
13:32 brrt so either you have an invokable, or some sort of IO PMC
13:33 brrt where the IO pmc could keep the handle somewhere
14:04 whiteknight We may need to create a custom PMC type to handle this kind of stuff
14:05 whiteknight 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 whiteknight so if you create a PMC which implements the necessary methods, that should work
14:06 brrt that is reassuring
14:07 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:08 brrt pointers to (pm)?c files are good enough
14:08 whiteknight rok
14:23 brrt yay,gsoc package!
14:28 whiteknight brrt++
14:30 brrt little notebook this year, nice :-)
14:30 brrt do mentors also receive a package?
14:30 whiteknight They usually get a shirt
14:32 whiteknight 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:37 brrt that depends a bit on social requirements, but i think tuesday is good for me
14:37 brrt usually
14:37 brrt :-)
14:37 brrt i'll try to get #parrotsketch daily
14:37 brrt eh, weekly
14:40 whiteknight we can pick whatever day and time are best for you
14:46 whiteknight http://www.scriptol.com/programming/quotes.php
14:46 whiteknight "If Java had true garbage collection, most programs would delete themselves upon execution."
14:47 atrodo There are not nearly enough quotes for C or C++
14:48 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:49 atrodo whiteknight++
14:49 rurban I started a jvm converter some years ago. http://code.google.com/p/parrot-jvm/
14:50 rurban (that was an answer to dadada)
14:55 brrt weekends are bad, for me, usually social stuff :-)
14:58 whiteknight that's fine. Weekends are bad for me too
14:58 whiteknight too much yard work
15:00 dalek nqp/qbootstrap: aee8809 | pmichaud++ | src/Q (2 files):
15:00 dalek nqp/qbootstrap: Fix bug with subcaptures receiving empty hash entries from outer match quantified captures (RT #111286).
15:00 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/aee88091bd
15:00 dalek nqp/qbootstrap: dfb6d5a | tadzik++ | VERSION:
15:00 dmalcolm joined #parrot
15:00 dalek nqp/qbootstrap: bump VERSION to 2012.05
15:00 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/dfb6d5a3a3
15:00 dalek nqp/qbootstrap: 770e9f2 | moritz++ | src/Regex/P6Regex/ (2 files):
15:00 dalek nqp/qbootstrap: implement <|w> and <|c> regex assertions
15:00 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/770e9f28cc
15:00 dalek nqp/qbootstrap: 31fdcee | moritz++ | / (3 files):
15:00 dalek nqp/qbootstrap: oops, should have implemented <|w> in qregex right away. With basic tests this time
15:00 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/31fdceea60
15:00 dalek nqp/qbootstrap: 4bac8c3 | jnthn++ | / (8 files):
15:00 dalek nqp/qbootstrap: Merge branch 'master' into qbootstrap
15:00 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/4bac8c34bf
15:00 brrt so, tuesday is ok for me, otherwise friday
15:00 brrt will see how it sorts out for me
15:01 whiteknight okay
15:01 whiteknight 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 #parrot
15:02 brrt joined #parrot
15:02 brrt i like the one about php :-)
15:02 whiteknight heh
15:03 whiteknight 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
15:03 whiteknight maybe the people who complain about PHP aren't usually very quotable
15:03 brrt especially when compared with perl
15:19 brrt anyway, i was planning on writing a planned architecture document this evening
15:20 brrt which should outline the direction i want to take
15:21 brrt for example, i think that - possibly using different bootstrapping files - mod_parrot could support different running enviroments
15:21 brrt so that one enviroment might be cgi, which is simple and effective
15:21 whiteknight that is a good idea
15:21 brrt and another might be psgi, which is also simple and effective in its own right, but which requires - for example - a starting routine
15:22 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?
15:25 whiteknight not at the moment
15:26 whiteknight 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:27 brrt i'll assume a per-thread instance
15:28 whiteknight okay
15:28 whiteknight that's a good start. Later we can change things if we need
15:31 brrt right, its best to keep things simple
16:05 * brrt leaves
16:05 brrt left #parrot
16:12 japhb joined #parrot
16:16 brambles joined #parrot
16:30 fperrad_ joined #parrot
16:57 PacoAir joined #parrot
16:58 zby_home joined #parrot
17:00 plobsing_ joined #parrot
17:07 contingencyplan joined #parrot
17:38 aloha (parrot/parrot) Issues closed : 731 (Add apt-get update to .travis.yml) by leto : https://github.com/parrot/parrot/issues/731
17:56 PacoAir joined #parrot
18:03 crab2313 joined #parrot
18:03 dukeleto joined #parrot
18:03 dukeleto ~~
18:04 whiteknight good afternoon, #dukeleto
18:04 dukeleto whiteknight: howdy! I have arisen from under my rock.
18:05 whiteknight awesome. You all settled into the house and hitched and everything?
18:06 dukeleto whiteknight: indeed. Feels surreal.
18:07 dukeleto whiteknight: how goes gsoc?
18:07 dukeleto whiteknight: i haven't seen much about lapack. Did I miss something?
18:08 benabik I should get working on GSoC, but I have to take care of car stuff today.  :-/
18:09 benabik Thankfully, whiteknight beat me to my week 1 task.  :-D
18:09 benabik Sorry, misspelled that: whiteknight++
18:09 whiteknight what was your week1 task?
18:09 whiteknight 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
18:10 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
18:10 whiteknight benabik: I told you I would do it, and I try my hardest to enable GSOC students
18:11 benabik I'll probably work on using your improvements in disasm.winxed at first.
18:11 benabik whiteknight: I like making pessimistic schedules.  :-)
18:20 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:21 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:25 dukeleto whiteknight: yes, i remember jashwanth saying he had exams the first week
18:25 dukeleto whiteknight: do you know if he has started any kind of repo or anything yet?
18:25 whiteknight https://github.com/jashwanth
18:25 whiteknight doesn't look like it
18:26 dukeleto whiteknight: ok, I will create a skeleton repo to help him get bootstrapped
18:26 dukeleto whiteknight: I remember staring at a blank screen and a repo with no history. It is intimidating.
18:27 dukeleto Better to give him a little shiny egg that he can improve upon.
18:29 dalek nqp/qbootstrap: 56d136a | jnthn++ | src/QRegex/NFA.nqp:
18:29 dalek nqp/qbootstrap: 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 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/56d136a432
18:42 particle joined #parrot
18:43 dukeleto joined #parrot
18:43 dukeleto blarg to crashy hardware.
19:14 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:15 benabik I installed Strawberry Perl and I think that gave me basically everything I needed.
19:18 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:22 alester joined #parrot
19:25 lucian joined #parrot
19:31 whiteknight nine: Should only need admin privs on windows if you're trying to install
19:32 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
19:32 whiteknight nine: None that I'm aware of
19:32 whiteknight nine: though I might not be aware of too many
19:32 lucian joined #parrot
19:33 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:36 brrt joined #parrot
19:41 brrt1 joined #parrot
20:18 brrt1 ping whiteknight
20:18 whiteknight pong
20:19 brrt1 :)
20:20 brrt1 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 brrt1 e.g. I load a parrot bytecode file into a pmc
20:21 brrt1 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.
20:21 benabik brrt1: Should be able to get your original nick now.
20:21 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
20:22 whiteknight brrt: In references you hold outside the API, you need to make sure they stay anchored somewhere. Currently packfiles are always anchored
20:22 whiteknight brrt: There is an api function to pin a PMC so GC marks it. Let me look it up
20:22 brrt1 keepalive or something
20:23 brrt1 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
20:24 brrt1 that is probably important
20:24 perlite_ joined #parrot
20:24 whiteknight but yes, Parrot_api_pmc_keep_alive(interp, obj, 1) is what you want for most things
20:25 whiteknight and then Parrot_api_pmc_keep_alive(interp, obj, 0) when you're done with it
20:25 whiteknight or once you've anchored it
20:25 whiteknight 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
20:26 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.
20:28 brrt1 the basic gist of it is this:
20:28 brrt1 * i get a request from apache
20:28 brrt1 * i convert this request into a hash containing its values
20:28 brrt1 * i somehow bind IO to the request
20:28 brrt1 * then i run a packfile with the bootstrapping script
20:28 brrt1 * which will load the HLL language, and if necessary, compiler
20:28 brrt1 * and execute the script
20:28 brrt1 * which will return output either via STDOUT (cgi)
20:28 brrt1 * or via an array of data (psgi)
20:29 crab2313_ joined #parrot
20:29 whiteknight Yeah, you should keep_alive that hash and any other objects that aren't referenced from inside the interp
20:30 whiteknight I've got to pack up and go home now. I'll be on later tonight and tomorrow
20:30 whiteknight later
20:30 brrt1 later!
20:39 mdupont_ joined #parrot
21:16 kurahaupo joined #parrot
21:20 preflex_ joined #parrot
21:34 particle1 joined #parrot
21:45 kurahaupo joined #parrot
22:21 schmooster joined #parrot
22:48 Hunger joined #parrot
23:23 particle joined #parrot
23:35 kurahaupo joined #parrot
23:41 plobsing joined #parrot
23:41 kid51 joined #parrot
23:47 whiteknight joined #parrot
23:55 whiteknight good evening, #parrot
23:59 Hunger joined #parrot

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

Parrot | source cross referenced