Parrot 4.10.0 "[Red-eared Parakeet]" parrot.org/ | Log: irclog.perlgeek.de/parrot
Set by moderator on 21 November 2012.
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:01
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:03
nqp is not ready for threads 00:04
whiteknight tomorrow is the release? Who's running it?
rurban me
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?
rurban no, always. I just enabled the task kill test
00:05 Psyche^ joined
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
whiteknight And, what do you mean that select is broken with threads? 00:06
rurban I still need to test win32 and solaris
whiteknight like, it's completely broken after the merge, or it's only broken when used from threads?
rurban The worst as GC with threads
is GC with threads
./parrot examples/threads/chameneos.pir always fails on darwin, and sometimes on linux 00:07
So I wonder if I should add a Configure.pl --without-threads
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.)
whiteknight Coke: Yeah, we're in a particular bad point right now 00:08
rurban: threads is still "experimental" right now, so as long as single-threaded operation doesn't fail it's not a problem
rurban smaller thread examples work fine. So it's good for experimentation and code-rewrites.
Single threaded works fine, yes. 00:09
ok, good
whiteknight rurban: doc.cat-v.org/inferno/concurrent_gc/ 00:10
I think we're going to want that GC algorithm eventually
that should fix our GC-related problems, if we don't find a better fix before that
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:12
not a real deadlock, more like stack corruption 00:13
caused by both threads running GCs
Or GC and malloc 00:14
whiteknight right, we need to have only one GC that is process-global and only runs by itself 00:15
rurban But still, the other task will do a malloc, from the main GC pools 00:16
We need to lock that.
00:32 Reini joined 00:50 kid51 joined 00:59 benabik joined 01:14 Mike-PerlRecruiter_ joined 02:20 benabik joined 02:35 woosley joined 02:51 woosley joined 02:58 woosley joined 03:21 woosley joined 03:30 woosley1 joined
dalek rrot/rurban/fix-gc-thr-gh880+gh875: f716cf4 | rurban++ | / (3 files):
[GH #880/#875] Try to fix some GC thread bugs

Do not ascent into parent_interpreter with a threaded interp. (No influence) Do not mark PMCs when threaded interp is different to the current interp
  (Parrot_gc_mark_PMC_alive)
05:29
kudo/nom: a045381 | moritz++ | docs/release_guide.pod:
release name suggestion: Sonoma.pm
06:22
kudo/nom: 0b96624 | moritz++ | docs/ (2 files):
fix typo, japhb++
06:25
kudo/nom: 9fcbcb6 | moritz++ | docs/deprecations:
deprecation notice for sink context
06:30
08:22 eternaleye joined 09:23 Reini joined
dalek kudo/nom: 47b8766 | jnthn++ | docs/deprecations:
Deprecations update.
09:51
09:57 Reini joined 10:37 bouncy joined 10:58 Reini joined
dalek kudo/outer-bound: 0199241 | jnthn++ | src/ (2 files):
Make "my $a; { $a; my $a } an error.

This commit doesn't break any tests and actually makes a TODO test pass. However, it's a bit close to release to include it now, so it goes in a branch for now and can be merged afterwards.
11:04
kudo/nom: 7794edf | jnthn++ | docs/deprecations:
Mention future "my $a; { $a; my $a }" error.
11:07
11:58 Reini joined 12:59 Reini joined 13:06 pmichaud joined 13:07 pmichaud joined 13:13 Mike-PerlRecruiter_ joined 13:59 Reini joined 14:12 PacoAir joined 14:33 Reini joined 15:17 Reini joined
dalek rrot: 65a44c0 | rurban++ | lib/Parrot/Configure/Options/Conf.pm:
[doc] --without-threads Build parrot without OS thread support

The threads API - Task, Scheduler, concurrency - works as with threads, just not on native OS threads.
15:29
rurban testing windows (mingw, msvc), --without-threads, then preparing release 15:34
tadzik so when --without-threads it all runs on green threads? 15:41
rurban yes, compat but slow
the scheduler just cycles through 15:42
not really concurrent
The API is the same, but there are no Proxy objects created 15:44
15:44 travis-ci joined
travis-ci [travis-ci] parrot/parrot#714 (master - 65a44c0 : Reini Urban): The build was fixed. 15:44
[travis-ci] Change view : github.com/parrot/parrot/compare/1...a44c0c8771
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/3723080
15:44 travis-ci left
tadzik I see 15:45
oh, so the nqp bug with calling fuctions will not reproduce?
rurban I have not tested --without-threads that far. 15:58
tadzik I'll check it out once I get back home 15:59
rurban yes, please.
tadzik my pleasure
rurban Somehow my msvc installation got corrupted. lots of parrot files as MSVC SDK headers 16:00
dalek kudo/nom: 358f486 | (Timo Paulssen)++ | src/core/ (2 files):
throw X::Item for @a[NaN] or Inf.

Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
16:05
16:10 dmalcolm joined
dalek rrot: 63c1890 | rurban++ | t/pmc/task.t:
[t] GH #886 skip task.kill on windows/cygwin. NYI
16:21
16:30 benabik joined
benabik ~~ 16:32
rurban hi benabik, can you have a look at rurban/fix-gc-thr-gh880+gh875 16:33
the failing example is examples/threads/chameneos.pir 16:34
16:35 travis-ci joined
travis-ci [travis-ci] parrot/parrot#715 (master - 63c1890 : Reini Urban): The build was broken. 16:35
[travis-ci] Change view : github.com/parrot/parrot/compare/6...c1890b7630
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/3723802
16:35 travis-ci left
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:39
rurban The problem is to keep GC into its own thread. Do not step the border to the other threads 16:41
But it does not work :)
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
benabik Which is overly strict, I thiink.
dalek kudo/nom: 1e37817 | (Timo Paulssen)++ | src/Perl6/Grammar.pm:
throw Missing on repeat without while/until.

Signed-off-by: Moritz Lenz <mlenz@noris.net>
16:43
kudo/nom: 22518b8 | (Timo Paulssen)++ | src/Perl6/Grammar.pm:
replace .panic: "missing..." with .missing: ...

Signed-off-by: Moritz Lenz <mlenz@noris.net>
16:44
rurban tadzik: I'm testing nqp with parrot --without-threads now 16:48
tadzik ok, awesome
rurban tadzik: works fine. so you have a fallback 16:57
See test t/nqp/67-threads.t in branch gh67-threads 16:58
tadzik woo-hoo
don't tell anyone
maybe they don't read logs
and I'll implement Threads.pm and it'll be an advent post for tomorrow :) 16:59
rurban problem is the nqplexpad.
tadzik yeah
but the bug I stumbled upon doesn't occur on green threads, correct?
or did I misunderstand 17:00
17:03 Reini joined
Reini Can I add Brian Gernhardt (benabik) as Core Developer? 17:55
tadzik absolutely, imho 17:56
from the non-core perspective :)
rurban tadzik: no, your bug is only with proxy as foreign lexicals 17:57
tadzik excellent
rurban "a task may only read from foreign shared variables, for writing it must schedule an updater sub"
nqplexpad does not follow this API yet 17:58
tadzik makes sense
so I can write threading API for rakudo, which will so far work only with green threads
rurban better would be to fix nqplexpad to work with proxies 18:01
something like disabling the current nqplexpad hacks with HAS_THREADS and use the parrot lexpad instead. 18:02
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
rurban moritz: it was a performance hack 18:23
I'll add pod2man for our man pages before the release
make install-man
dalek rrot/install-man-gh687: 25773e7 | rurban++ | / (4 files):
[GH #687] Install man pages for all generated main binaries

Defaults to /usr/local/man. Skipped on windows and if pod2man is not found. Without the proposed #228 tools/docs/mk_pod2man.pl script Get the man subpage from the generated file extension (.1), to allow .3 or .3pir man pages in the future also.
18:56
19:45 MikeFair joined
tadzik rurban: what's some good example code using threads? 19:55
Coke in parrot or out?
tadzik as in: what can I use aside from the wait() opcode. Some synchronization primitives?
rurban examples/threads
sync is only done via wait() 19:56
tadzik heh, I'm blind :) Thanks
rurban tools/release/cut.pl COMPRESS_BZIP created a GZIP .bz2!
I blame perl5 later
tadzik seen nine 20:01
aloha nine was last seen in #parrot 67 days 9 hours ago joining the channel.
rurban g d 20:28
and just while release testing I found a linker problem with our dynpma/libglut.so 20:44
dynpmc
Coke who is doing the release today? 20:49
you?
rurban me 20:52
there is a new rakudo:docs/parrot-relationship.txt doc
:)
dalek p-rx/rurban/find_codepoint-error: a352bfb | rurban++ | src/HLL/Actions.pm:
Failed attempt to fix find_codepoint errors

  --without-icu
21:02
tadzik gah, implementing semaphores using wait() and (enable|disable)_preemption sucks :/ 21:08
or I'm just doing it wrong 21:10
rurban I'm also not the expert on this topic, sorry. 21:17
tadzik I'll look around for nine 21:18
okay, it's just me doing it wrong :) 21:24
rurban found a few more windows bugs 21:44
dalek rrot: 25773e7 | rurban++ | / (4 files):
[GH #687] Install man pages for all generated main binaries

Defaults to /usr/local/man. Skipped on windows and if pod2man is not found. Without the proposed #228 tools/docs/mk_pod2man.pl script Get the man subpage from the generated file extension (.1), to allow .3 or .3pir man pages in the future also.
21:49
rrot: 019f4ae | rurban++ | docs/binaries/parrot.pod:
[docs] Document --numthreads in docs/binaries/parrot.pod (the manpage)
rrot: 31a5f7e | rurban++ | / (11 files):
Release 4.11.0 - All together - Happy Birthday Lovebird

Added install-man step [GH #687]. Add man-clean to clean. Fix auto::pod2man on windows.
OS threads with proxied PMCs are now default. Use perl Configure.pl --without-threads to use the old green threads API, just without Proxies and without native OS threads
  (and possible GC problems when running threaded tasks).
Fix linking dynext/libglutcb.so without installed libparrot.so Warn about Archive::Tar COMPRESS_BZIP
tadzik hah, I thought --numthreads may be something like GOMAXPROCS. Was not disappointed :) 21:50
rurban GOMAXPROCS is for the number of max cpu's go uses. -numthreads can extend the number of cpu's by far. 21:51
you can use --numthreads 5000 of 4 cores
tadzik oh, you can't in Go?
rurban I though in GO you want to limit it, to let others also have some core for themselves 21:52
So you say GOMAXPROCS=3 with 4 cores
tadzik indeed, it's about CPUs
I think some time ago they just defaulted to 1 and you had to increase it on your own 21:53
rurban they did?
tadzik I may remember wrongly 21:54
anyway, do we eventually want to have green threads scheduler not block the entire interpreter on IO?
22:05 travis-ci joined
travis-ci [travis-ci] parrot/parrot#716 (master - 31a5f7e : Reini Urban): The build was fixed. 22:05
[travis-ci] Change view : github.com/parrot/parrot/compare/6...a5f7e3d825
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/3728546
22:05 travis-ci left
rurban sure 22:05
dalek website: rurban++ | Parrot 4.11.0 "All together - Happy Birthday Lovebird" Released! 22:10
website: www.parrot.org/news/2012/Parrot-4.11
rurban who is twitter use parrotvm? 22:19
Coke dukeleto, mebbe?
dalek website: rurban++ | Parrot threads on the perl6 advent calendar - Day 11 22:28
website: www.parrot.org/news/parrot-threads-...dar-day-11
moderator #parrot Parrot 4.11.0 "[All together - Happy Birthday Lovebird]" --with-threads | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC 22:37
rurban pmichaud wants us to add a hyper examples to be added to the examples/threads in pir 22:42
I'll add a ticket for that
Was there never a branch for jharper1's GSOC security api? 22:52
dalek rrot/rurban/fix-gc-thr-gh880+gh875: d3ef71d | rurban++ | / (3 files):
[GH #880/#875] Try to fix some GC thread bugs

Do not ascent into parent_interpreter with a threaded interp. (No influence) Do not mark PMCs when threaded interp is different to the current interp
  (Parrot_gc_mark_PMC_alive)
23:01
rrot/cyg-desparse-gh888: aee8fdc | rurban++ | / (2 files):
[GH #888] Add a cyg-desparse post-linker step

The cygwin linker up until 1.17.18 creates all its exes and shared libs as sparse files, which reduces startup time of executables by a large percentage
  (8-10x slower) because the code cannot be mmap'ed and not cached, it must be read
byte by byte. Again and again.
See cygwin.com/ml/cygwin-developers/201...00011.html
23:02
rrot/cyg-desparse-gh888: 6e63a19 | rurban++ | src/dyn (2 files):
[GH #888] More dll cyg-desparse post-linker steps
rrot/rurban/icu_version: 375744e | rurban++ | config/auto/icu.pm:
[GH #867] Provide icu_version config value

icu4.4 ships with an -Werror=strict-prototypes incompatible header file. Currently we disable this warning for src/string/encoding/shared.c but we should rather check which icu versions ships this header, and change the Configure logic (and order) to strip -Werror=strict-prototypes only with a bad icu_version
23:03
rurban rebased some branches I'll work on on top of master 23:04
23:35 schmoo joined 23:36 Reini joined 23:49 Liz joined 23:50 woolfy joined