Camelia, the Perl 6 bug

IRC log for #parrot, 2012-12-18

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 whiteknight I probably don't have long until my computer craps out for the night, but I can answer any questions, if you have some particular ones in mind
00:03 rurban I wonder with what caveats we should ship parrot tomorrow. cygwin cannot send signals, select is broken with threads enabled, darwin fails on bigger threads examples
00:04 rurban nqp is not ready for threads
00:04 whiteknight tomorrow is the release? Who's running it?
00:04 rurban me
00:05 rurban I have some crazy test failures still.
00:05 whiteknight has cygwin always not been able to send signals, or is that a new regression?
00:05 rurban no, always. I just enabled the task kill test
00:05 Psyche^ joined #parrot
00:05 whiteknight if it's not a regression, ignore it for now. We can make the test go away again for the releas
00:05 rurban nine thought it should work, as alarms are now handled platform independently, in a timer thread
00:06 whiteknight And, what do you mean that select is broken with threads?
00:06 rurban I still need to test win32 and solaris
00:06 whiteknight like, it's completely broken after the merge, or it's only broken when used from threads?
00:06 rurban The worst as GC with threads
00:06 rurban is GC with threads
00:07 rurban ./parrot examples/threads/chameneos.pir always fails on darwin, and sometimes on linux
00:07 rurban So I wonder if I should add a Configure.pl --without-threads
00:07 Coke whiteknight: yes, got the email - thanks for replying, I appreciate it. I realize how busy we all get (there's a reason I didn't stand again.)
00:08 whiteknight Coke: Yeah, we're in a particular bad point right now
00:08 whiteknight rurban: threads is still "experimental" right now, so as long as single-threaded operation doesn't fail it's not a problem
00:08 rurban smaller thread examples work fine. So it's good for experimentation and code-rewrites.
00:09 rurban Single threaded works fine, yes.
00:09 rurban ok, good
00:10 whiteknight rurban: http://doc.cat-v.org/inferno/concurrent_gc/
00:10 whiteknight I think we're going to want that GC algorithm eventually
00:10 whiteknight that should fix our GC-related problems, if we don't find a better fix before that
00:12 rurban I tried to check the problematic parts in our GC, mark phase, but it was an endless battle. CallContext PMCs and Continuations deadlocked essentially
00:13 rurban not a real deadlock, more like stack corruption
00:13 rurban caused by both threads running GCs
00:14 rurban Or GC and malloc
00:15 whiteknight right, we need to have only one GC that is process-global and only runs by itself
00:16 rurban But still, the other task will do a malloc, from the main GC pools
00:16 rurban We need to lock that.
00:32 Reini joined #parrot
00:50 kid51 joined #parrot
00:59 benabik joined #parrot
01:14 Mike-PerlRecruiter_ joined #parrot
02:20 benabik joined #parrot
02:35 woosley joined #parrot
02:51 woosley joined #parrot
02:58 woosley joined #parrot
03:21 woosley joined #parrot
03:30 woosley1 joined #parrot
05:29 dalek parrot/rurban/fix-gc-thr-gh880+gh875: f716cf4 | rurban++ | / (3 files):
05:29 dalek parrot/rurban/fix-gc-thr-gh880+gh875: [GH #880/#875] Try to fix some GC thread bugs
05:29 dalek parrot/rurban/fix-gc-thr-gh880+gh875:
05:29 dalek parrot/rurban/fix-gc-thr-gh880+gh875: Do not ascent into parent_interpreter with a threaded interp. (No influence)
05:29 dalek parrot/rurban/fix-gc-thr-gh880+gh875: Do not mark PMCs when threaded interp is different to the current interp
05:29 dalek parrot/rurban/fix-gc-thr-gh880+gh875: (Parrot_gc_mark_PMC_alive)
05:29 dalek parrot/rurban/fix-gc-thr-gh880+gh875: review: https://github.com/parrot/parrot/commit/f716cf40bc
06:22 dalek rakudo/nom: a045381 | moritz++ | docs/release_guide.pod:
06:22 dalek rakudo/nom: release name suggestion: Sonoma.pm
06:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a045381457
06:25 dalek rakudo/nom: 0b96624 | moritz++ | docs/ (2 files):
06:25 dalek rakudo/nom: fix typo, japhb++
06:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0b96624242
06:30 dalek rakudo/nom: 9fcbcb6 | moritz++ | docs/deprecations:
06:30 dalek rakudo/nom: deprecation notice for sink context
06:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9fcbcb6089
08:22 eternaleye joined #parrot
09:23 Reini joined #parrot
09:51 dalek rakudo/nom: 47b8766 | jnthn++ | docs/deprecations:
09:51 dalek rakudo/nom: Deprecations update.
09:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/47b87665a2
09:57 Reini joined #parrot
10:37 bouncy joined #parrot
10:58 Reini joined #parrot
11:04 dalek rakudo/outer-bound: 0199241 | jnthn++ | src/ (2 files):
11:04 dalek rakudo/outer-bound: Make "my $a; { $a; my $a } an error.
11:04 dalek rakudo/outer-bound:
11:04 dalek rakudo/outer-bound: This commit doesn't break any tests and actually makes a TODO test
11:04 dalek rakudo/outer-bound: pass. However, it's a bit close to release to include it now, so it
11:04 dalek rakudo/outer-bound: goes in a branch for now and can be merged afterwards.
11:04 dalek rakudo/outer-bound: review: https://github.com/rakudo/rakudo/commit/0199241400
11:07 dalek rakudo/nom: 7794edf | jnthn++ | docs/deprecations:
11:07 dalek rakudo/nom: Mention future "my $a; { $a; my $a }" error.
11:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7794edf338
11:58 Reini joined #parrot
12:59 Reini joined #parrot
13:06 pmichaud joined #parrot
13:07 pmichaud joined #parrot
13:13 Mike-PerlRecruiter_ joined #parrot
13:59 Reini joined #parrot
14:12 PacoAir joined #parrot
14:33 Reini joined #parrot
15:17 Reini joined #parrot
15:29 dalek parrot: 65a44c0 | rurban++ | lib/Parrot/Configure/Options/Conf.pm:
15:29 dalek parrot: [doc] --without-threads    Build parrot without OS thread support
15:29 dalek parrot:
15:29 dalek parrot: The threads API - Task, Scheduler, concurrency - works as with threads, just
15:29 dalek parrot: not on native OS threads.
15:29 dalek parrot: review: https://github.com/parrot/parrot/commit/65a44c0c87
15:34 rurban testing windows (mingw, msvc), --without-threads, then preparing release
15:41 tadzik so when --without-threads it all runs on green threads?
15:41 rurban yes, compat but slow
15:42 rurban the scheduler just cycles through
15:42 rurban not really concurrent
15:44 rurban The API is the same, but there are no Proxy objects created
15:44 travis-ci joined #parrot
15:44 travis-ci [travis-ci] parrot/parrot#714 (master - 65a44c0 : Reini Urban): The build was fixed.
15:44 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/10dd30916956...65a44c0c8771
15:44 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/3723080
15:44 travis-ci left #parrot
15:45 tadzik I see
15:45 tadzik oh, so the nqp bug with calling fuctions will not reproduce?
15:58 rurban I have not tested --without-threads that far.
15:59 tadzik I'll check it out once I get back home
15:59 rurban yes, please.
15:59 tadzik my pleasure
16:00 rurban Somehow my msvc installation got corrupted. lots of parrot files as MSVC SDK headers
16:05 dalek rakudo/nom: 358f486 | (Timo Paulssen)++ | src/core/ (2 files):
16:05 dalek rakudo/nom: throw X::Item for @a[NaN] or Inf.
16:05 dalek rakudo/nom:
16:05 dalek rakudo/nom: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
16:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/358f486bb6
16:10 dmalcolm joined #parrot
16:21 dalek parrot: 63c1890 | rurban++ | t/pmc/task.t:
16:21 dalek parrot: [t] GH #886 skip task.kill on windows/cygwin. NYI
16:21 dalek parrot: review: https://github.com/parrot/parrot/commit/63c1890b76
16:30 benabik joined #parrot
16:32 benabik ~~
16:33 rurban hi benabik, can you have a look at rurban/fix-gc-thr-gh880+gh875
16:34 rurban the failing example is examples/threads/chameneos.pir
16:35 travis-ci joined #parrot
16:35 travis-ci [travis-ci] parrot/parrot#715 (master - 63c1890 : Reini Urban): The build was broken.
16:35 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/65a44c0c8771...63c1890b7630
16:35 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/3723802
16:35 travis-ci left #parrot
16:39 benabik rurban: Quick code review: looks like it would do it.  Why limit gc_mark_PMC_alive to only the main thread?  Also, why limit it inside the function and in the macros?
16:41 rurban The problem is to keep GC into its own thread. Do not step the border to the other threads
16:41 rurban But it does not work :)
16:42 benabik Well, because it looks like you're limiting the GC to the main thread only.
16:42 rurban In honor to perl-1.0 I should post parrot-4.11.0 today to news://alt.sources
16:42 benabik Which is overly strict, I thiink.
16:43 dalek rakudo/nom: 1e37817 | (Timo Paulssen)++ | src/Perl6/Grammar.pm:
16:43 dalek rakudo/nom: throw Missing on repeat without while/until.
16:43 dalek rakudo/nom:
16:43 dalek rakudo/nom: Signed-off-by: Moritz Lenz <mlenz@noris.net>
16:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e37817534
16:44 dalek rakudo/nom: 22518b8 | (Timo Paulssen)++ | src/Perl6/Grammar.pm:
16:44 dalek rakudo/nom: replace .panic: "missing..." with .missing: ...
16:44 dalek rakudo/nom:
16:44 dalek rakudo/nom: Signed-off-by: Moritz Lenz <mlenz@noris.net>
16:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/22518b88dd
16:48 rurban tadzik: I'm testing nqp with parrot --without-threads now
16:48 tadzik ok, awesome
16:57 rurban tadzik: works fine. so you have a fallback
16:58 rurban See test t/nqp/67-threads.t in branch gh67-threads
16:58 tadzik woo-hoo
16:58 tadzik don't tell anyone
16:58 tadzik maybe they don't read logs
16:59 tadzik and I'll implement Threads.pm and it'll be an advent post for tomorrow :)
16:59 rurban problem is the nqplexpad.
16:59 tadzik yeah
16:59 tadzik but the bug I stumbled upon doesn't occur on green threads, correct?
17:00 tadzik or did I misunderstand
17:03 Reini joined #parrot
17:55 Reini Can I add Brian Gernhardt (benabik) as Core Developer?
17:56 tadzik absolutely, imho
17:56 tadzik from the non-core perspective :)
17:57 rurban tadzik: no, your bug is only with proxy as foreign lexicals
17:57 tadzik excellent
17:57 rurban "a task may only read from foreign shared variables, for writing it must schedule an updater sub"
17:58 rurban nqplexpad does not follow this API yet
17:58 tadzik makes sense
17:58 tadzik so I can write threading API for rakudo, which will so far work only with green threads
18:01 rurban better would be to fix nqplexpad to work with proxies
18:02 rurban something like disabling the current nqplexpad hacks with HAS_THREADS and use the parrot lexpad instead.
18:04 tadzik I know, but that's beyond my capabilities, I'm afraid
18:04 moritz if nqp has its own lexpad, it likely has a good reason for that
18:11 tuxit joined #parrot
18:23 rurban moritz: it was a performance hack
18:23 rurban I'll add pod2man for our man pages before the release
18:23 rurban make install-man
18:56 dalek parrot/install-man-gh687: 25773e7 | rurban++ | / (4 files):
18:56 dalek parrot/install-man-gh687: [GH #687] Install man pages for all generated main binaries
18:56 dalek parrot/install-man-gh687:
18:56 dalek parrot/install-man-gh687: Defaults to /usr/local/man.
18:56 dalek parrot/install-man-gh687: Skipped on windows and if pod2man is not found.
18:56 dalek parrot/install-man-gh687: Without the proposed #228 tools/docs/mk_pod2man.pl script
18:56 dalek parrot/install-man-gh687: Get the man subpage from the generated file extension (.1),
18:56 dalek parrot/install-man-gh687: to allow .3 or .3pir man pages in the future also.
18:56 dalek parrot/install-man-gh687: review: https://github.com/parrot/parrot/commit/25773e7561
19:45 MikeFair joined #parrot
19:55 tadzik rurban: what's some good example code using threads?
19:55 Coke in parrot or out?
19:55 tadzik as in: what can I use aside from the wait() opcode. Some synchronization primitives?
19:55 rurban examples/threads
19:56 rurban sync is only done via wait()
19:56 tadzik heh, I'm blind :) Thanks
19:56 rurban tools/release/cut.pl COMPRESS_BZIP created a GZIP .bz2!
19:56 rurban I blame perl5 later
20:01 tadzik seen nine
20:01 aloha nine was last seen in #parrot 67 days 9 hours ago joining the channel.
20:28 rurban g d
20:44 rurban and just while release testing I found a linker problem with our dynpma/libglut.so
20:44 rurban dynpmc
20:49 Coke who is doing the release today?
20:49 Coke you?
20:52 rurban me
20:52 rurban there is a new rakudo:docs/parrot-relationship.txt doc
20:52 rurban :)
21:02 dalek nqp-rx/rurban/find_codepoint-error: a352bfb | rurban++ | src/HLL/Actions.pm:
21:02 dalek nqp-rx/rurban/find_codepoint-error: Failed attempt to fix find_codepoint errors
21:02 dalek nqp-rx/rurban/find_codepoint-error:
21:02 dalek nqp-rx/rurban/find_codepoint-error: --without-icu
21:02 dalek nqp-rx/rurban/find_codepoint-error: review: https://github.com/perl6/nqp-rx/commit/a352bfb957
21:08 tadzik gah, implementing semaphores using wait() and (enable|disable)_preemption sucks :/
21:10 tadzik or I'm just doing it wrong
21:17 rurban I'm also not the expert on this topic, sorry.
21:18 tadzik I'll look around for nine
21:24 tadzik okay, it's just me doing it wrong :)
21:44 rurban found a few more windows bugs
21:49 dalek parrot: 25773e7 | rurban++ | / (4 files):
21:49 dalek parrot: [GH #687] Install man pages for all generated main binaries
21:49 dalek parrot:
21:49 dalek parrot: Defaults to /usr/local/man.
21:49 dalek parrot: Skipped on windows and if pod2man is not found.
21:49 dalek parrot: Without the proposed #228 tools/docs/mk_pod2man.pl script
21:49 dalek parrot: Get the man subpage from the generated file extension (.1),
21:49 dalek parrot: to allow .3 or .3pir man pages in the future also.
21:49 dalek parrot: review: https://github.com/parrot/parrot/commit/25773e7561
21:49 dalek parrot: 019f4ae | rurban++ | docs/binaries/parrot.pod:
21:49 dalek parrot: [docs] Document --numthreads in docs/binaries/parrot.pod (the manpage)
21:49 dalek parrot: review: https://github.com/parrot/parrot/commit/019f4aeb1f
21:49 dalek parrot: 31a5f7e | rurban++ | / (11 files):
21:49 dalek parrot: Release 4.11.0 - All together - Happy Birthday Lovebird
21:49 dalek parrot:
21:49 dalek parrot: Added install-man step [GH #687]. Add man-clean to clean. Fix auto::pod2man on windows.
21:49 dalek parrot:
21:49 dalek parrot: OS threads with proxied PMCs are now default. Use perl Configure.pl --without-threads
21:49 dalek parrot: to use the old green threads API, just without Proxies and without native OS threads
21:49 dalek parrot: (and possible GC problems when running threaded tasks).
21:49 dalek parrot:
21:49 dalek parrot: Fix linking dynext/libglutcb.so without installed libparrot.so
21:49 dalek parrot: Warn about Archive::Tar COMPRESS_BZIP
21:49 dalek parrot: review: https://github.com/parrot/parrot/commit/31a5f7e3d8
21:50 tadzik hah, I thought --numthreads may be something like GOMAXPROCS. Was not disappointed :)
21:51 rurban GOMAXPROCS is for the number of max cpu's go uses. -numthreads can extend the number of cpu's by far.
21:51 rurban you can use --numthreads 5000 of 4 cores
21:51 tadzik oh, you can't in Go?
21:52 rurban I though in GO you want to limit it, to let others also have some core for themselves
21:52 rurban So you say GOMAXPROCS=3 with 4 cores
21:52 tadzik indeed, it's about CPUs
21:53 tadzik I think some time ago they just defaulted to 1 and you had to increase it on your own
21:53 rurban they did?
21:54 tadzik I may remember wrongly
21:54 tadzik anyway, do we eventually want to have green threads scheduler not block the entire interpreter on IO?
22:05 travis-ci joined #parrot
22:05 travis-ci [travis-ci] parrot/parrot#716 (master - 31a5f7e : Reini Urban): The build was fixed.
22:05 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/63c1890b7630...31a5f7e3d825
22:05 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/3728546
22:05 travis-ci left #parrot
22:05 rurban sure
22:10 dalek website: rurban++ | Parrot 4.11.0 "All together - Happy Birthday Lovebird" Released!
22:10 dalek website: http://www.parrot.org/news/2012/Parrot-4.11
22:19 rurban who is twitter use parrotvm?
22:19 Coke dukeleto, mebbe?
22:28 dalek website: rurban++ | Parrot threads on the perl6 advent calendar - Day 11
22:28 dalek website: http://www.parrot.org/news/parrot-t​hreads-perl6-advent-calendar-day-11
22:37 Topic for #parrot is now #parrot Parrot 4.11.0 "[All together - Happy Birthday Lovebird]" --with-threads | http://parrot.org/ | Log: http://irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
22:42 rurban pmichaud wants us to add a hyper examples to be added to the examples/threads in pir
22:42 rurban I'll add a ticket for that
22:52 rurban Was there never a branch for jharper1's GSOC security api?
23:01 dalek parrot/rurban/fix-gc-thr-gh880+gh875: d3ef71d | rurban++ | / (3 files):
23:01 dalek parrot/rurban/fix-gc-thr-gh880+gh875: [GH #880/#875] Try to fix some GC thread bugs
23:01 dalek parrot/rurban/fix-gc-thr-gh880+gh875:
23:01 dalek parrot/rurban/fix-gc-thr-gh880+gh875: Do not ascent into parent_interpreter with a threaded interp. (No influence)
23:01 dalek parrot/rurban/fix-gc-thr-gh880+gh875: Do not mark PMCs when threaded interp is different to the current interp
23:01 dalek parrot/rurban/fix-gc-thr-gh880+gh875: (Parrot_gc_mark_PMC_alive)
23:01 dalek parrot/rurban/fix-gc-thr-gh880+gh875: review: https://github.com/parrot/parrot/commit/d3ef71d29e
23:02 dalek parrot/cyg-desparse-gh888: aee8fdc | rurban++ | / (2 files):
23:02 dalek parrot/cyg-desparse-gh888: [GH #888] Add a cyg-desparse post-linker step
23:02 dalek parrot/cyg-desparse-gh888:
23:02 dalek parrot/cyg-desparse-gh888: The cygwin linker up until 1.17.18 creates all its exes and shared libs
23:02 dalek parrot/cyg-desparse-gh888: as sparse files, which reduces startup time of executables by a large percentage
23:02 dalek parrot/cyg-desparse-gh888: (8-10x slower) because the code cannot be mmap'ed and not cached, it must be read
23:02 dalek parrot/cyg-desparse-gh888: byte by byte. Again and again.
23:02 dalek parrot/cyg-desparse-gh888:
23:02 dalek parrot/cyg-desparse-gh888: See http://cygwin.com/ml/cygwin-de​velopers/2012-12/msg00011.html
23:02 dalek parrot/cyg-desparse-gh888: review: https://github.com/parrot/parrot/commit/aee8fdcb64
23:02 dalek parrot/cyg-desparse-gh888: 6e63a19 | rurban++ | src/dyn (2 files):
23:02 dalek parrot/cyg-desparse-gh888: [GH #888] More dll cyg-desparse post-linker steps
23:02 dalek parrot/cyg-desparse-gh888: review: https://github.com/parrot/parrot/commit/6e63a19b1e
23:03 dalek parrot/rurban/icu_version: 375744e | rurban++ | config/auto/icu.pm:
23:03 dalek parrot/rurban/icu_version: [GH #867] Provide icu_version config value
23:03 dalek parrot/rurban/icu_version:
23:03 dalek parrot/rurban/icu_version: icu4.4 ships with an -Werror=strict-prototypes incompatible
23:03 dalek parrot/rurban/icu_version: header file. Currently we disable this warning for  src/string/encoding/shared.c
23:03 dalek parrot/rurban/icu_version: but we should rather check which icu versions ships this header, and change the
23:03 dalek parrot/rurban/icu_version: Configure logic (and order) to strip -Werror=strict-prototypes only with a bad icu_version
23:03 dalek parrot/rurban/icu_version: review: https://github.com/parrot/parrot/commit/375744e356
23:04 rurban rebased some branches I'll work on on top of master
23:35 schmoo joined #parrot
23:36 Reini joined #parrot
23:49 Liz joined #parrot
23:50 woolfy joined #parrot

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

Parrot | source cross referenced