Camelia, the Perl 6 bug

IRC log for #parrot, 2012-08-09

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:23 kid51 joined #parrot
00:39 benabik_ joined #parrot
01:10 dukeleto joined #parrot
01:10 dukeleto ~~
01:11 kid51 Yo!
01:12 dukeleto kid51: how goes it?
01:12 * dukeleto has been under a rock lately
01:13 kid51 Postgres good.  SQL bad.
01:13 dukeleto kid51: yeah, that is pretty much how I feel as well :)
01:14 kid51 The problem is that until now I've never had to have *active* knowledge of sql, i.e, compose fresh queries as opposed to being able to explain what existing queries do.
01:14 kid51 Does there exist an "SQL Cookbook"?
01:15 kid51 Hmm, the internet says there is.
01:18 dukeleto kid51: yeah, but beware that everybody implements a different "flavor" of SQL. Postgres is considered to be the closest to the spec
01:19 dukeleto kid51: but the basics are all the same across implementations
01:19 sorear where do you draw the line between basics and nonbasics?
01:20 dukeleto sorear: things that are implementation specific, such as non-specific datatypes and the semantics of stored procedures, I guess
01:20 sorear ah.
01:20 sorear I have not used stored procedures at all
01:20 dukeleto sorear: you are lucky :)
01:20 kid51 I'm quite a ways away from stored procedures, at this point.
01:21 dukeleto kid51: i have a book recommendation, but the title escapes me so I will let you know when I can search my bookshelf for it :)
01:21 dmalcolm joined #parrot
01:50 dukeleto no more updates about new github tickets anymore?
02:03 dukeleto msg whiteknight can you see if you can reproduce the t/pmc/nci.t failures using clang + address sanitation on linux? Reini seems to be able to...
02:03 aloha OK. I'll deliver the message.
02:09 Coke dukeleto: github changed their api, bots need to compensate.
02:09 Coke thought someone had done that in #p6
02:09 Coke -> zzzes
03:03 sivoais joined #parrot
03:15 benabik joined #parrot
03:50 benabik_ joined #parrot
06:10 TonyC joined #parrot
06:18 nopaste joined #parrot
07:07 Saravanan joined #parrot
07:07 brrt joined #parrot
07:08 brrt hi #parrot
07:08 Saravanan i like to contribute to perl 6
07:08 Saravanan Hi
07:11 brrt hi Saravanan
07:11 brrt what would you like to do?
07:11 Saravanan bug fixes or documents
07:11 Saravanan i'm new
07:12 sorear if you want to be a *perl 6* contributor, they have their own channel, #perl6 on irc.freenode.net
07:13 sorear this is the channel for the Parrot virtual machine
07:13 Saravanan ok..
07:13 sorear which was created for Perl 6 and closely associated with Perl 6, but nevertheless they are separate projects
07:13 Saravanan ok..
07:13 sorear (in particular, there are several Perl 6 implementations for non-Parrot platforms)
08:03 lucian joined #parrot
09:26 particle joined #parrot
09:32 particle1 joined #parrot
10:58 whiteknight joined #parrot
11:19 JimmyZ joined #parrot
12:20 whiteknight good morning, #parrot
12:20 tadzik good morning whiteknight
12:24 whiteknight hello tadzik. how are you doing?
12:25 tadzik not bad. Sitting at $dayjob, ranting on the internet, usual stuff
12:25 tadzik How are things?
12:27 whiteknight things are alright here. I'm home for the day with my kid because daycare is closed
12:37 whiteknight msg dukeleto: I can't seem to duplicate failures on master with address-sanitizer, but I might not be using it correctly
12:37 aloha OK. I'll deliver the message.
12:40 JimmyZ whiteknight: Reini reproduced it on threads branch, not master
12:40 whiteknight oh, okay
12:40 JimmyZ ;)
12:40 whiteknight I'm building that branch now. I'll look around
12:40 JimmyZ whiteknight++
12:52 whiteknight nope, no failures on the threads branch either
12:52 nine My "Threading in Parrot" talk got accepted for YAPC::EU :)
12:52 whiteknight nice++
12:52 JimmyZ nine++ indeed, I saw the schedule
12:52 whiteknight is that nci test the only failing test on any platform?
12:52 JimmyZ whiteknight: are you using clang?
12:53 whiteknight JimmyZ: yessir
12:57 whiteknight I'm building it in winxp now
13:02 Saravanan left #parrot
13:09 JimmyZ whiteknight: do you mean t/pmc/nci.t ?
13:14 JimmyZ joined #parrot
13:14 JimmyZ hmm, I can't reproduce either
13:17 whiteknight yeah, t/pmc/nci.t
13:17 whiteknight the whole nci callback system is bad, and we've known it's bad for years
13:18 whiteknight the opengl guys used to complain about it all the time
13:18 brrt ... i kind of rely on nci
13:21 bluescreen joined #parrot
13:22 whiteknight brrt: Sure, several people do. That doesn't mean the system is good, or well-designed. And it doesn't mean we can't and shouldn't do better
13:24 brrt i know, but one step in 'making it better' usually means 'lets break it'
13:24 JimmyZ we should merge it and continue 6model and then rewrite nci part
13:24 brrt not that i'm blaming you :-) but still
13:25 * JimmyZ hates the current nci and doesn't like it as a blocker
13:25 brrt ... in that context
13:25 brrt yeah, i kind of agree
13:26 whiteknight actually, the nci system is fine. It's the nci callbacks that are bad
13:26 whiteknight and they've always been bad
13:27 tadzik http://cdn.memegenerator.net​/instances/400x/24682439.jpg
13:27 tadzik ;)
13:27 tadzik eh, it was supposed to be "and they've always been bad" at the bottom
13:28 brrt well, you may break nci callbacks for me
13:28 brrt i care nothing :-)
13:29 whiteknight tadzik: heh
13:29 JimmyZ well, I mostly hate current parrot OO ;)
13:38 nine I cannot reproduce those nci.t failures even when slowing down my system so the test takes 1:50 minutes instead of 1.3 seconds.
13:40 brrt what kind of awesome setup do you have?
13:42 nine brrt: just a Core i5-2540M. Slowed it down by disabling 3/4 CPU cores and setting the frequency to 800 MHz and running 20 xterms each one executing cat /dev/urandom > /dev/null with -20 priority. Takes half a minute just to switch to the other console to execute the test...
13:43 nine Had to give each cat it's own xterm because the Linux kernel would put them into the same scheduling group if executed from the same terminal. It's actually pretty hard nowadays to bog down the system :)
13:49 nine How exactly does the current cb system work? I'd naively assume that tasks would lend themselves perfectly for this task.
14:23 dmalcolm joined #parrot
15:19 whiteknight hmmm... I got some test failures on threads on windows. I don't know if that's noise or not
15:30 alester joined #parrot
15:43 jashwanth joined #parrot
16:12 rurban hi. I'm finally back from scrum training
16:12 rurban t/pmc/task.t also fails for me in the same way as the nci tests
16:13 rurban I run it inside a mips and sparc qemu instance with 200MHz. Should I publish the images now?
16:17 rurban ppc http://smolder.parrot.org/app/​projects/report_details/30456 mips http://smolder.parrot.org/app/​projects/report_details/30444 (but master, not threads) mips threads passed today http://smolder.parrot.org/app/​projects/report_details/30458
16:20 rurban and that's the clang asan failure in threads http://smolder.parrot.org/app/​projects/report_details/30427
16:24 Coke I wonder if we can avoid NCI issues by eliminiating NCI and pulling back in rakudo's choice. Having 2 ways to do this across the projects is crazy, no?
16:25 rurban I would not eliminate nci, just sanitize the parallel nci tests and fix the deadlock.
16:27 whiteknight Coke: Standardizing on Rakudo's version definitely seems like a good path to go in the future
16:27 whiteknight or, since our system is pluggable, integrating Rakudo's version in besides our other versions might be good too
16:28 whiteknight rurban: What's the incantation you use to build Parrot with address-sanitizer?
16:29 rurban whiteknight: can see it in http://smolder.parrot.org/app/​projects/report_details/30427 ?
16:30 whiteknight rurban: that only shows me the compiler, not the commandline you passed to Configure.pl
16:32 rurban perl5.17.3d-asan Configure.pl :)
16:32 rurban and perl has all the ccflags and linkflags
16:32 rurban linkflags += -faddress-sanitizer
16:32 rurban ldflags += -faddress-sanitizer
16:32 rurban cc = clang
16:33 rurban ld = clang
16:33 rurban perldoc5.17.3 perlhacktips
16:36 rurban http://perl5.git.perl.org/perl.gi​t/blob/HEAD:/pod/perlhacktips.pod /AddressSanitizer
16:36 rurban http://perl5.git.perl.org/perl.git/b​lob/HEAD:/pod/perlhacktips.pod#l1163
16:37 rurban But I rather want to try now http://code.google.com/p/data-​race-test/wiki/ThreadSanitizer
16:41 rurban http://pastebin.com/gKRDTkh3
16:42 rurban There's clearly a race
16:43 rurban With t/pmc/nci.t I get a similar race report
16:48 rurban the problem is the sleep 0.01 in t/pmc/nci_37.pasm
16:49 rurban With the sleep call removed the tests succeeds
16:50 rurban So it's sleep broken with threads, not the test.
16:54 rurban I updated https://github.com/parrot/parrot/issues/808 with that info
17:11 dalek nqp/toqast: 319bb8d | jnthn++ | src/QAST/Compiler.nqp:
17:11 dalek nqp/toqast: Implement default parameter handling, winning the optional and named argument tests back.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/319bb8d173
17:11 dalek nqp/toqast: 4b85a2e | jnthn++ | src/NQPQ/ (2 files):
17:11 dalek nqp/toqast: Get + and ~ prefixes workingish again.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4b85a2e2b5
17:11 dalek nqp/toqast: 67a605c | jnthn++ | src/NQPQ/ (2 files):
17:11 dalek nqp/toqast: Compile =:= again.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/67a605ca2a
17:32 dalek Heuristic branch merge: pushed 25 commits to parrot/threads by rurban
17:34 rurban threads look good to merge now. I'll give it another run on my farm
17:35 benabik joined #parrot
17:36 benabik ~~
17:42 benabik_ joined #parrot
17:45 dalek nqp/toqast: 00c649e | jnthn++ | src/NQP/Actions.pm:
17:45 dalek nqp/toqast: Fix bug in v-table method installation.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/00c649e8d9
17:45 dalek nqp/toqast: 507d55c | jnthn++ | src/NQPQ/Actions.pm:
17:45 dalek nqp/toqast: Port previous fix to NQPQ.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/507d55cc5c
17:45 dalek nqp/toqast: 93a716f | jnthn++ | src/core/NQPMu.pm:
17:45 dalek nqp/toqast: Add some missing methods to NQPMu.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/93a716fd59
17:45 dalek nqp/toqast: ce81241 | jnthn++ | src/QAST/Operations.nqp:
17:45 dalek nqp/toqast: Add a QAST op for throwing control exceptions.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/ce81241a2a
17:45 dalek nqp/toqast: 26b5b5b | jnthn++ | src/NQPQ/Actions.pm:
17:45 dalek nqp/toqast: Get next/last/redo working again.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/26b5b5b6d9
17:49 rurban Nope, still a threads issue with task.t https://github.com/parrot/parrot/issues/810
17:57 whiteknight rurban: is it the sleep that is broken, or is the sleep interval too short for the test?
17:57 whiteknight Can we increase sleep 0.1 to sleep 10 and make the test pass?
17:58 rurban nope. tried that. it's the sleep implementation which is racy
17:58 rurban I suspect it's some kind of alarm/sleep interaction
17:59 whiteknight ok
17:59 rurban But I haven't analyzed niners code yet. The while loop in Parrot_thread_wait_for_notification looks wrong to me.
17:59 rurban And I found another threads race with #810
18:01 whiteknight that loop likes ok to me. I haven't really analyzed it either
18:05 darbelo joined #parrot
18:11 dalek parrot: c535cfd | Whiteknight++ | compilers/imcc/pbc.c:
18:11 dalek parrot: Improve an IMCC error message to include just a little bit more information about what register set was received and which were expected. jashwanth++ for running into this error
18:11 dalek parrot: review: https://github.com/parrot/parrot/commit/c535cfd9b6
18:30 dalek parrot/threads: 9f5055b | rurban++ | / (8 files):
18:30 dalek parrot/threads: [CAGE] fix most t/codingstd/copyright.t issues
18:30 dalek parrot/threads:
18:30 dalek parrot/threads: Only imcc has some Copyright (C) 2002 Melvin Smith <melvin.smith@mindspring.com> left.
18:30 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/9f5055b94d
18:30 dalek parrot/threads: c535cfd | Whiteknight++ | compilers/imcc/pbc.c:
18:30 dalek parrot/threads: Improve an IMCC error message to include just a little bit more information about what register set was received and which were expected. jashwanth++ for running into this error
18:30 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/c535cfd9b6
18:30 dalek parrot/threads: f185f07 | rurban++ | / (9 files):
18:30 dalek parrot/threads: Merge remote-tracking branch 'origin/master' into threads
18:30 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/f185f0755b
18:30 whiteknight rurban++
18:31 whiteknight just got a "severe storm warning". I'm told to "expect hail and damaging winds" and to "stay away from windows"
18:31 whiteknight so, if I lose power, that's why
18:32 rurban We have severe storm warnings in Houston every two weeks with radio and TV alarms, and nobody really cares. power outages and spikes are common though.
18:34 whiteknight it's 90 degrees outside, so it's weird to think about hail
18:35 benabik storms are like that
18:39 Coke rurban: houston! I do not miss my Chimney Rock apartment. ;)
18:41 rurban I think for practical purposes only the new #810 is blocking threads now. Should be easy to fix. Is niner somewhere around?
18:43 rurban Because there is a wrong assumption in his code and paper. threads.c:313 "there can be no active runloops at this point" - there is
18:44 rurban I'm building now with -DRUNLOOP_TRACE
18:45 benabik rurban++
18:51 PerlJam joined #parrot
18:58 dalek parrot/threads: f1eff70 | Whiteknight++ | src/alarm.c:
18:58 dalek parrot/threads: Several code cleanups, more comments, improved documentation for alarm.c. No functional change
18:58 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/f1eff708a9
18:58 dalek parrot/threads: d86d27a | Whiteknight++ | src/thread.c:
18:58 dalek parrot/threads: Small cleanups to thread.c. No functional changes
18:58 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/d86d27adfd
19:01 rurban runloop diffs bad vs good at https://github.com/parrot/parrot​/issues/810#issuecomment-7623557
19:02 benabik Does the bad case really say "exiting loop 1 level 1" twice?
19:02 benabik (in a row)
19:03 rurban yes, and I clearly see the violation of threads.c:313 "there can be no active runloops at this point"
19:03 benabik Huh.  That trace is strange.  It seems to regularly say "exiting loop 1, level 1" without saying it entered it.
19:04 dalek nqp/toqast: 476a500 | jnthn++ | src/guts/multi_dispatch.c:
19:04 dalek nqp/toqast: Don't look into freed memory.
19:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/476a500ac2
19:04 dalek nqp/toqast: 9341160 | jnthn++ | src/NQPQ/ (3 files):
19:04 dalek nqp/toqast: Partially fix multi-method dispatch.
19:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/9341160d03
19:04 dalek nqp/toqast: 4e3159b | jnthn++ | src/QAST/Operations.nqp:
19:04 dalek nqp/toqast: Fix code-gen bug.
19:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4e3159b19e
19:04 nine rurban: I am around
19:05 rurban Hi, Do you understand the #810 runloop_id_counter race with threads, t/pmc/task.t ?
19:06 nine rurban: you are absolutely right. That comment is from the time when there was only green threads. The runnloop id counter should be moved into the interp. There's absolutely no reason to share it between threads.
19:06 rurban :) sigh
19:06 rurban So this is the remaining blocker
19:07 rurban nine: Can you fix this so we can merge threads into master?
19:07 nine Well actually the nci.t hangs got me worried. I guess the timer stuff is racy on some platforms. Tried to reproduce it today but there's just no way to get my linux boxes to show any fault.
19:07 nine rurban: on it
19:08 nine I'll just get me a cup of coffee and start hacking
19:13 rurban The nci hang in sleep was not easy to repro. It hangs only sometimes on linux with asan but always with tsan. on darwin/ppc I got the best stacktrace which led me to this race.
19:15 nine rurban: Slowed it down by disabling 3/4 CPU cores and setting the frequency to 800 MHz and running 20 xterms each one executing cat /dev/urandom > /dev/null  with -20 priority. Takes half a minute just to switch to the other console to execute the test
19:15 nine But still it would simply pass
19:15 rurban 800MHz is still too fast :)
19:15 rurban I got virtual 200MHz machines (essentially an IRIX Indigo 2)
19:16 nine Any chance I could access those?
19:16 rurban I'll publish it on my website soon as qemu images. ~1GB compressed.
19:17 rurban But I only have network routes out, not in.
19:19 whiteknight rurban++, nine++
19:20 whiteknight let me know if you guys need me to do anything
19:20 whiteknight I'm just reading the code over and making small cleanups now
19:21 rurban The threads docs maybe. #809
19:21 rurban As long as you have power
19:22 dalek parrot/threads: 39d88fc | Whiteknight++ | src/scheduler.c:
19:22 dalek parrot/threads: Several small cleanups, comments and a few TODO notes in scheduler.c. No functional changes
19:22 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/39d88fccb6
19:25 dalek nqp/toqast: 9ccb91c | jnthn++ | src/QAST/Operations.nqp:
19:25 dalek nqp/toqast: Fix lexotic compilation bug.
19:25 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/9ccb91c616
19:25 dalek nqp/toqast: 4780b8e | jnthn++ | src/NQPQ/ (2 files):
19:25 dalek nqp/toqast: Fix return; this also brings it inline with the mechanism we use to do it in Rakudo.
19:25 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4780b8e99c
19:26 rurban Stefan: Bist du auch Oesterreicher? (nine)
19:27 nine rurban: positiv
19:27 dalek parrot/threads: 0a11e25 | nine++ | / (2 files):
19:27 dalek parrot/threads: Unshare runloop_id_counter to fix races
19:27 dalek parrot/threads:
19:27 dalek parrot/threads: runloop_id_counter should be local to the interp instead of global.
19:27 dalek parrot/threads: There's no reason to share it between threads. Leaving it global was an oversight.
19:27 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/0a11e25628
19:27 dalek parrot/threads: 3451668 | nine++ | src/scheduler.c:
19:27 dalek parrot/threads: Merge branch 'threads' of github.com:parrot/parrot into threads
19:27 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/345166892a
19:27 rurban :) /Die Oestereicher haben die threads gerettet/
19:27 nine *ggg*
19:28 benabik What does Hash use for PMC keys?  If I just set the key type, will it Just Work?
19:30 benabik I guess not?
19:30 benabik Or maybe that's winxed's assumption...
19:31 benabik Nope.
19:34 benabik Hm.  PMC_ptr type key appears to do what I want.
19:34 nine rurban: can you re-test with the runloop stuff fixed?
19:34 rurban sure, just running three smokers
19:34 benabik or not
19:35 benabik or I didn't update everything.  Coding is an emotional roller-coaster.
19:35 benabik This _should_ fix the labels for multis.
19:36 dukeleto joined #parrot
19:36 dukeleto whiteknight: ping
19:36 benabik Or not.  Blarg.
19:40 benabik Or yes.
19:40 benabik Roller coaster, I say.
19:43 dalek PACT: 72a30ea | benabik++ | src/PACT/Packfile.winxed:
19:43 dalek PACT: Packfile.Subroutine: Build from a core Sub
19:43 dalek PACT:
19:43 dalek PACT: This also stores the Sub inside the Subroutine for future reference.
19:43 dalek PACT: review: https://github.com/parrot/PACT/commit/72a30ea3a1
19:43 dalek PACT: d03e104 | benabik++ | / (2 files):
19:43 dalek PACT: Packfile.Decompile: Use Subroutine in constants
19:43 dalek PACT:
19:43 dalek PACT: Instead of using the raw Sub, store a Packfile.Subroutine built from
19:43 dalek PACT: it.
19:43 dalek PACT: review: https://github.com/parrot/PACT/commit/d03e104fe8
19:43 dalek PACT: b2b50d7 | benabik++ | src/disasm.winxed:
19:43 dalek PACT: disasm: Catch up with the new Subroutine world
19:43 dalek PACT:
19:43 dalek PACT: This tracks labels based on Subroutine identity instead of name, which
19:43 dalek PACT: is far more reliable.  This also means that we handle labels for
19:43 dalek PACT: multis correctly now!
19:43 dalek PACT: review: https://github.com/parrot/PACT/commit/b2b50d79b4
19:49 brrt joined #parrot
19:52 rurban Is someone smoking threads on windows? I'm soon finished with linux/amd64, darwin/ppc, debian/mips and debian/sparc.
19:54 rurban nine: tsan-r4356-amd64-linux-self-contained.sh ./parrot t/pmc/task.t is still hanging in the Parrot_thread_wait_for_notification while loop
19:55 nine rurban: I think this was to be expected. Everything points to timer handling suffering from a race
19:57 rurban t/pmc/signal.t also does not work on linux/threads
19:57 rurban I guess because of the sleep 2 there
19:58 nine Interesting. signal.t gives me: t/pmc/signal.t .. skipped: Signals currently disabled
19:58 rurban you have to enable the tests
19:59 rurban plan tests => 3;
20:00 rurban ok, one fix after another
20:00 dukeleto rurban++
20:03 rurban dukeleto: For you to reread today's story http://blogs.perl.org/users/rurb​an/2012/08/threadsanitizer.html
20:03 nine rurban: windows build in progress
20:06 rurban I think the new sleep design is too easily disturbed by other signals. We gather no list of signals. So a lot of signal tests fail if there's also a sleep involved.
20:06 rurban alarm/sleep interaction flawed
20:06 nine rurban: the irony is that the new sleep implementation does not even use signals any more.
20:07 rurban but threads. can we either maintain a list of to be delivered signals, or create a new thread for each signal?
20:07 rurban or something like this?
20:07 benabik Is there documentation of what's in a multisig?
20:07 rurban the old sleep was more reliable.
20:09 rurban I would call the remaining threads problem sleep-alarm deadlock
20:09 nine rurban: well the old sleep did not work at all on Windows, so I'm not exactly sure about more reliable ;)
20:10 rurban yes, windows is better now.
20:11 rurban But I' more concerned about signals and the sleep deadlock, which is kinda fragile, since we do not keep a list of signals for our waiting thread.
20:12 nine I have no idea how parrot's signal handling actually works or should work, so I don't have any suggestions
20:12 benabik Random integers in my multisig?
20:13 rurban So we leave it to whiteknight
20:19 nine Windows build is broken for me. Get a Null PMC access in get_string() when executing .\ops2c.exe --dynamic src/dynoplibs/obscure.ops --quiet
20:25 whiteknight rurban: I'm trying to build on windows right now
20:25 whiteknight I get a lot of false negatives on that platform though, so I'll see what I can do
20:28 rurban I'll try to understand blocked signals by sleep in the meantime. Maybe the loop has to be loosened somehow to let some signals through.
20:37 whiteknight what signals?
20:37 whiteknight Also, while we're using that word, we might be able to start trapping some OS signals, and handling them as alarms or something
20:41 whiteknight being able to capture sigint would be good. sigfpe for some numerics applications
20:42 whiteknight sigtrap and maybe sigprof would be very useful for some tools
20:46 brrt is there, in C, a cross platform directory separator defined?
20:46 benabik no
20:46 whiteknight brrt: HAHAHAHAHA
20:46 whiteknight brrt: HAHA
20:46 sorear Does C require the host platform to support directories?
20:47 Tene On which platforms is / not accepted as a directory separator, btw?
20:47 brrt .... i feel like i'm being laughed at
20:47 brrt also, good question
20:47 brrt ok, does parrot happen to define a directory separator?
20:47 sorear Tene: vms?
20:48 benabik Some C on Windows, I think
20:49 sorear modern windows supports /, I'm not sure when it was added but it goes at least back to 95
20:49 Tene Apparently : was used on classic MacOS
20:49 benabik : is still used on OS X, I think.
20:49 Tene Wikipedia claims that OS/2 only used \
20:50 sorear OS X is Unix
20:50 sorear it uses /
20:51 benabik Ah.  Lack of : is a HFS limitation then?
20:54 brrt ... maybe apache has it
20:54 brrt thats actually quite likely
20:55 rurban whiteknight: I think of OS and HW signals. But also SW signals are blocked. SIGHUP e.g. in the t/pmc/signals.t
21:01 rurban Tene: VMS, Old MacOS Classic and Win95 do not understand /
21:01 rurban Everything else can do /
21:02 rurban I'm not sure about VOS os390 os400 posix-bc vmesa riscos amigaos beos mpeix, os2,dos,bsdos are off.
21:04 brrt beos does /
21:05 rurban I'm keeping this list in a perl module of mine, where I refuse to support non-/ dirseps
21:10 whiteknight brrt: For most cases, Parrot will automatically convert / to \ on windows
21:11 Tene whiteknight: why?  windows understands / fine.
21:12 rurban win95 backwards compat probably
21:12 whiteknight Tene: src/library.c:cnv_to_win32_filesep
21:12 whiteknight Tene: I don't know why we do it. I only know that we *do* do it
21:12 * Tene nods.
21:12 whiteknight Tene: if only there were somebody around here who knew better and had the skills to fix it...
21:12 nine rurban: nothing should prevent signal delivery from what I can see. But AFAIK it's unspecified in POSIX which thread receives a signal sent to the process unless it's masked in all but one thread.
21:13 rurban I know about it. There's not much to fix.
21:13 rurban nine: thanks
21:13 Tene Hmm... working on Parrot again...
21:13 * Tene updates git checkout.
21:14 brrt whiteknight: i'm working from the module (C) layer. AFAIK windows supports the /
21:14 dalek PACT: 73b1149 | benabik++ | src/ (2 files):
21:14 dalek PACT: Store and print multisigs
21:14 dalek PACT:
21:14 dalek PACT: Involves updating Packfile.Subroutine to store the sig and disasm to
21:14 dalek PACT: print it.
21:14 dalek PACT: review: https://github.com/parrot/PACT/commit/73b1149b01
21:14 dalek PACT: e2fc30b | benabik++ | src/PACT/Packfile.winxed:
21:14 dalek PACT: Packfile: update dumper for Subroutine and Multi
21:14 dalek PACT: review: https://github.com/parrot/PACT/commit/e2fc30b18f
21:14 brrt and 9x we shouldn't care about anyway
21:14 dalek PACT: d0a2ada | benabik++ | src/disasm.winxed:
21:14 dalek PACT: disasm: switch from say(a + b) to say(a, b)
21:14 dalek PACT:
21:14 dalek PACT: Lets me remove a lot of string() conversions
21:14 dalek PACT: review: https://github.com/parrot/PACT/commit/d0a2ada2c7
21:14 dalek PACT: f4a48b2 | benabik++ | src/disasm.winxed:
21:14 dalek PACT: disasm: Move printing of type
21:14 dalek PACT:
21:14 dalek PACT: I'd like to remove all the PACT types from the constant output, so
21:14 dalek PACT: lets let each type handle displaying the type.
21:14 dalek PACT: review: https://github.com/parrot/PACT/commit/f4a48b261e
21:14 dalek PACT: e8e6a43 | benabik++ | src/disasm.winxed:
21:14 dalek PACT: disasm: Separate out displaying op argument
21:14 dalek PACT:
21:14 dalek PACT: I'm about to reuse it to display Key contents
21:14 dalek PACT: review: https://github.com/parrot/PACT/commit/e8e6a43d1f
21:14 dalek PACT: d17a7b4 | benabik++ | src/disasm.winxed:
21:14 dalek PACT: disasm: Show Keys
21:14 dalek PACT: review: https://github.com/parrot/PACT/commit/d17a7b4930
21:14 whiteknight brrt: yeah, we shoudn't. Every time I suggest cutting official support for an older platform like that, there's pushback
21:15 rurban cygwin also stopped supporting win95 and even win200 some years ago.
21:15 rurban win 2000
21:16 Tene Since the last time I updated: 570 files changed, 24268 insertions(+), 19789 deletions(-)
21:16 rurban The main problem with / on windows is the cmd.exe interaction
21:16 Tene You guys have been busy. :)
21:17 benabik How can I determine if a sub is the main sub?  Or should I just ask the PAckfile for main and then convert?
21:17 rurban Tene: bignum.pmc needs some love I guess.
21:18 whiteknight benabik: ask the packfile for main
21:18 whiteknight benabik: That's the only official way to do it, although a more powerful mechanism (:tag) is available if we ever have the guts to use it
21:21 benabik whiteknight: init and load are tags now?
21:21 whiteknight yessir
21:21 benabik whiteknight++
21:21 benabik I'll have to add a phase to load that stuff and store it in appropriate places.
21:21 benabik It would be kinda nice to ask a Sub for a list of tags though.
21:24 Tene whiteknight: looks like your last blog post was about the io cleanups branch?  could you use any help there?
21:25 whiteknight benabik: The lookup table doesn't really lookup in that direction
21:25 whiteknight Tene: It's basically code-complete, but there were some test failure reports on BSD and darwin, I think
21:25 Tene Ahh; can't help there.
21:25 whiteknight Tene: if you have access to any "exotic" systems for testing and development, that would be great
21:25 whiteknight Tene: If you want to just look through and review/critique any of the code, that would be great too
21:26 nine Ok tried again without parallel make and now the windows build of the threads branch succeeded. Running tests
21:28 whiteknight nine: I'm building on my winxp vm right ow
21:28 whiteknight now
21:28 whiteknight last time I tried and ran tests it failed a few, but those failures were suspicious and my luck with this platform is low
21:29 whiteknight also, i may not have been up-to-date
21:35 rurban Testing now threads and io_cleanup1 on openbsd. solaris next.
21:39 dalek parrot/threads: 78cb477 | Whiteknight++ | src/pmc/alarm.pmc:
21:39 dalek parrot/threads: Cleanup Alarm PMC. Add some comments/docs. Cleanup some code. Add the ability to get the alarm time as a PMC from get_pmc_keyed_int, in case anybody wants to try that.
21:39 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/78cb4778c8
21:39 dalek parrot/threads: 33a45e3 | Whiteknight++ | src/pmc/scheduler (2 files):
21:39 dalek parrot/threads: A few small cleanups to scheduler and schedulermessage PMCs. No functional changes
21:40 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/33a45e388f
21:48 * rurban setting up a netbsd-5.1.2/amd64 kvm vm from ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-​5.1.2/amd64/installation/cdrom/boot.iso
21:48 brrt joined #parrot
21:54 nine I got test failures in t/src/checkdepend.t, t/src/threads_io.t (which I thought I disabled on Windows), t/dynpmc/os.t and t/library/nciutils.t.
21:55 nine Except for the threads_io.t, none look threading related
21:55 rurban cygwin threads hang at nci.t 40
21:56 nine I guess cygwin suffers from the same problem as other non-Linux POSIX implementations.
21:58 nine Well, I'm off to bed now. Good night, #parrot
21:59 rurban Oh my. nci_40.pir also has a little sleep which hangs now on cygwin
22:33 PacoAir joined #parrot
22:43 PacoAir joined #parrot
22:53 benabik whiteknight: Is there a way to get a list of the tags?
22:53 benabik whiteknight: (all tags used in a Packfile, I mean)
22:59 benabik whiteknight: Actually, I only see a way to trigger subs by tag, not get a list.
23:01 benabik whiteknight: nm, I see "subs_by_tag" in the source.  Undocumented, tisk tisk.  Still would like a "list of all tags in packfile"
23:10 benabik And packfile.view() is giving me 7?
23:11 benabik Arg.
23:17 dmalcolm joined #parrot
23:52 whiteknight benabik: list of all tags? That's doable
23:53 benabik whiteknight: Yes.  It would be nice to say "hey, what tags exist" then iterate than "guess what tags exist" and iterate.  :-D
23:53 benabik whiteknight: My most immediate issue though is that "packfile.view()" appears to return 7
23:53 whiteknight ...lolwat?
23:54 benabik That was about my responce.
23:54 benabik response?
23:55 dalek parrot: 7926733 | Whiteknight++ | src/pmc/packfileview.pmc:
23:55 dalek parrot: Document PackfileView.subs_by_tag. benabik++ for pointing out the omission.
23:55 dalek parrot: review: https://github.com/parrot/parrot/commit/7926733cc9
23:56 benabik whiteknight: If it helps, this is the Packfile generated by disasm.winxed by doing new 'Packfile'.unpack(string(file.readall()))
23:57 whiteknight it's returning 7, as in the pointer value 7, or a PMC with integer value 7?
23:57 benabik PMC Integer 7
23:57 whiteknight okay, that's F'd up
23:58 benabik It was.... somewhat unexpected.

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

Parrot | source cross referenced