Camelia, the Perl 6 bug

IRC log for #parrot, 2013-07-31

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:18 benabik joined #parrot
01:31 rurban1 joined #parrot
01:42 kid51 joined #parrot
02:51 davidfetter joined #parrot
03:25 preflex_ joined #parrot
03:47 rurban1 joined #parrot
04:33 Khisanth joined #parrot
04:52 rurban1 joined #parrot
05:31 denis_boyun joined #parrot
05:52 rurban1 joined #parrot
06:29 Mike-PerlRecruiter_ joined #parrot
06:52 rurban1 joined #parrot
07:44 dalek rakudo/nom: b159716 | (Elizabeth Mattijsen)++ | src/core/HashIter.pm:
07:44 dalek rakudo/nom: Start of work to give HashIter its own file
07:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b15971647c
07:47 dalek rakudo/nom: 847fb55 | (Elizabeth Mattijsen)++ | src/core/HashIter.pm:
07:47 dalek rakudo/nom: I don't want to be the git blame of this file :-)
07:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/847fb55c52
07:53 rurban1 joined #parrot
07:57 dalek rakudo/nom: 5d66563 | (Elizabeth Mattijsen)++ | src/core/HashIter.pm:
07:57 dalek rakudo/nom: Second try, if this doesn't work, I guess I *will* be its git blame
07:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d66563188
08:06 dalek rakudo/nom: 32e055e | (Elizabeth Mattijsen)++ | src/core/HashIter.pm:
08:06 dalek rakudo/nom: There we go again
08:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/32e055e8c5
08:32 dalek rakudo/nom: b52153a | (Elizabeth Mattijsen)++ | src/core/HashIter.pm:
08:32 dalek rakudo/nom: Copy of EnumMap, to give HashIter its own file, as per jnthn++ request
08:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b52153ab9b
08:32 dalek rakudo/nom: 92a2b85 | (Elizabeth Mattijsen)++ | / (4 files):
08:32 dalek rakudo/nom: Give the HashIter class its own file
08:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/92a2b85d44
08:53 rurban1 joined #parrot
09:16 dalek rakudo/nom: 4a608a7 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
09:16 dalek rakudo/nom: Remove Hash.(classify|categorize), as it is no longer specced
09:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4a608a700f
09:53 rurban1 joined #parrot
10:54 rurban1 joined #parrot
11:23 denisboyun joined #parrot
11:27 denis_boyun_ joined #parrot
11:49 kid51 joined #parrot
11:54 rurban1 joined #parrot
12:06 benabik joined #parrot
12:54 rurban1 joined #parrot
13:15 FROGGS joined #parrot
13:15 PacoAir joined #parrot
13:22 FROGGS Hi there
13:22 FROGGS I played with threads right now, and I wonder about the output of a modified example: https://gist.github.com/FR​OGGS/c5b9fd6a72d98cdfdb5f
13:23 FROGGS I have an core i3, so I have two cores + HT, so 4 threads
13:23 FROGGS I had expected to get the output of the forth task too, am I doing something wrong?
13:26 FROGGS it really looks like I can't have four running tasks, because when I don't schedule the first one, the output consists of <[bc.]>
13:29 Coke FROGGS: building a copy to tes.t..
13:29 rurban1 joined #parrot
13:30 FROGGS fwiw, my parrot is This is Parrot version 5.5.0-devel built for amd64-linux
13:31 darbelo joined #parrot
13:33 bluescreen joined #parrot
13:35 Coke arglebargle. still can't run a just-built parrot.
13:35 denisboyun joined #parrot
13:38 FROGGS Coke: you have no nqp/parrot?
13:39 Coke I'm doing this with a straight parrot.
13:39 Coke so I get:
13:40 Coke https://gist.github.com/coke/6122064
13:43 Coke note that I get the same errors using "./parrot -h"
13:43 Coke be nice if parrot adopted the default install path of ./install so I didn't have to reconfigure and rebuild to get a working installed-locally parrot.
13:47 Coke FROGGS: same output here - no "."s
13:48 Coke at a guess, you're forgetting to count the main thread.
13:48 FROGGS k, if you comment out "schedule $P0", it shows up
13:49 FROGGS Coke: yeah, I was thinking that this might be the case
13:49 Coke I think you might need to yield or something so any starved threads have a chance to work
13:50 Coke if there's no reference to the Task available in .sub task, though, I'm not sure how you'd do the yield.
13:50 FROGGS but tbh, I would expect that if I schedule thousands of tasks, that they start simultaneously, or better: I have to figure out how to limit the iteration per task
13:50 FROGGS yeah
13:51 Coke interp.'current_task'()
13:52 FROGGS k, without the loops it shows all, and then waits the given 3 seconds
13:52 FROGGS I think that is alright
13:53 Coke oh!
13:53 Coke you put it into an infinite loop.
13:54 Coke FROGGS: .sub task never terminates with that loop. it finishes the loop and then starts again.
13:54 Coke if you made it return from the sub, then you'd not deadlock yourself.
13:55 FROGGS Coke: I know that are the tasks infinite in the example...
13:56 Coke ok. yah, then you need a way to yield.
13:56 Coke but I don't see any yield examples for threads.
13:57 FROGGS when I add 'return(0)' right before .end of the task, I only get 'a' as output
13:57 * FROGGS needs to learn more about pir
13:58 Coke the task is the sub that runs for the life of the Task - if you want to have an infinitely looping task, but do more tasks than you have CPUs for, something is going to get starved, I think.
13:59 FROGGS sure
13:59 FROGGS :o)
14:00 FROGGS now I want to have more (finite) tasks than cpus
14:00 Coke ah. here's one that works:
14:01 Coke https://gist.github.com/coke/6122236
14:02 Coke note that you get very different results if you sleep for 0 or 0.000000001
14:02 Coke vs. the 0.1 in teh example.
14:02 FROGGS okay, that shows that the implementation is sort of sane, yes
14:02 Coke seems like we'd want a real yield here.
14:03 FROGGS and I want it to finish a task ('return(0)' ?) without stopping the app
14:04 Coke as long as there are tasks running, it won't finish. if you .return out of .sub task, the task is done.
14:04 Coke AIUI.
14:05 FROGGS Coke: try it
14:05 FROGGS I only get 'a'
14:05 Coke FROGGS: sample code.
14:05 Coke (here, I get ab.c)
14:06 FROGGS https://gist.github.com/FR​OGGS/c5b9fd6a72d98cdfdb5f
14:07 Coke it's not return, it's .return, no?
14:07 FROGGS ohh
14:08 FROGGS Coke++
14:08 bluescreen joined #parrot
14:23 denisboyun joined #parrot
14:37 Psyche^ joined #parrot
14:55 denisboyun joined #parrot
15:38 mmoser63_ joined #parrot
15:55 mmoser63_ seen atrodo
15:56 benabik ENOSEENBOT
16:06 denis_boyun joined #parrot
16:43 FROGGS joined #parrot
16:45 FROGGS so after playing with tasks, how do I get the result of a task? I can schedule and wait, but there is no yield or join AFAICS
16:50 denis_boyun joined #parrot
17:06 darbelo joined #parrot
17:27 Coke FROGGS: Guessing that you need to share data or send a message.
17:39 FROGGS If I could share an RPMCA across all tasks... that would be sweet
17:52 rurban diakopter wants to add this threads leak test:  main thread enters a sub. then creates pmcarray A, then puts Integer pmc B in A[0]. Passes A to a task C, then sleeps 2 seconds then forces a GC by allocating a ton of objects. Task C creates pmcarray D, then takes A[0] (which is B) and puts it in D[0], and sets A[0] to null/undef.. then sleeps 5 seconds and then tries to access B
17:54 darbelo That's… unlikely to end well.
17:56 rurban See https://github.com/parrot/parrot/issues/975
17:57 rurban I'm pretty busy with php horde stuff right now.
18:21 FROGGS joined #parrot
18:26 Mike-PerlRecruiter_ joined #parrot
19:10 drift joined #parrot
19:39 rurban1 joined #parrot
20:17 FROGGS getting something back from a Task is not made easy ó.ò
20:20 FROGGS joined #parrot
20:42 benabik joined #parrot
20:48 benabik joined #parrot
21:00 FROGGS uhh, I think I got it
21:09 darbelo joined #parrot
22:11 benabik joined #parrot
23:12 benabik joined #parrot
23:27 FROGGS https://github.com/parrot/parrot/issues/889 # comments welcome

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

Parrot | source cross referenced