Parrot 4.3.0 "In Which..." | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 25 April 2012.
dalek rrot/threads: ca82a46 | Whiteknight++ | src/thread.c:
rename a local variable to avoid shadowing a static global
00:15
nxed: dc234c0 | NotFound++ | winxedst (2 files):
drop builtin chomp from stages 0 and 1
00:27
benabik whiteknight++ # 90% + 90% done, 90% to go 01:11
whiteknight benabik: I've been told that the third 90% is the worst 01:12
01:15 Watcher7_ joined 01:16 Watcher7_ left
benabik whiteknight: What's bad is when you find you're on a project with a fourth. 01:23
cotto 'evening, whiteknight 01:32
and benabik
whiteknight hello cotto
benabik o/ cotto
dalek rrot/threads: 413a272 | Whiteknight++ | src/thread.c:
Use a macro instead of an ugly series of casts and derefs.
01:34
rrot/threads: 9b29ffa | Whiteknight++ | src/pmc/ (2 files):
Localize a variable, const a few others
rrot/threads: 19ca116 | Whiteknight++ | include/parrot/thr_ (2 files):
Small nits in the .h files
whiteknight msg nine I pushed a few small cleanups to parrot/threads. 01:35
aloha OK. I'll deliver the message.
whiteknight msg nine We need things to fail gracefully when we configure --without-threads. It does compile, but some examples do weird things.
aloha OK. I'll deliver the message.
01:47 PacoAir joined
dalek nxed: 7035571 | NotFound++ | winxedst2.winxed:
allow use of operator ^ and hash expressions in inline
01:49
whiteknight yay!
NotFound whiteknight: Have you seen local inline? 01:50
whiteknight yes, I saw it earlier 01:51
it makes me very happy
01:51 PacoAir joined
benabik Hm. `function multi_test[method, multi](var test)` produces a `:multi(pmc)` sig... Which doesn't include the implicit self from being a method. 01:55
NotFound benabik: Is defined outside a class? 02:01
benabik NotFound: Yeah.
NotFound benabik: Then you should a explcit signature. 02:02
s/a/use a/
benabik Since PCT is using P6metaclass, I'm not using Winxed's class features... 02:03
I would still expect that an explicitly noted method would include self in its signature. :-/ 02:04
I'll use explicit ones anyway, since I actually want a (_,_) sig.
NotFound Well, the automatic signature with self is a Winxed class feature ;)
benabik Fair enough, I suppose.
NotFound benabik: It's not exactly an explicitly noted method. Is a function with a modifier that Winxed pass to PIR without looking at it. 02:07
whiteknight I'm out for the night. See you tomorrow
benabik Ah. I thought Winxed took note of the modifiers.
'night whiteknight
NotFound benabik: it looks at the ones it handles, the others are just assumed to be handler by PIR literally. 02:08
benabik: maybe it will be better to not use the method modifier, but adding an explicit self to the parameter list. 02:12
benabik I think I need to give explicit multi sigs anyway, so I'll leave it for now... 02:14
NotFound You can have problems with self usages if the compiler doesn't know about it. 02:17
benabik I haven't had any problems yet, which is why I thought it had taken note of [method] 02:18
Granted, pretty much the only thing PCT uses self for is method calls.
NotFound For example, if you use it in a closure. 02:19
benabik Does Winxed support finding subs by subid? 02:45
cotto nbrown, ping 02:55
03:29 JimmyZ joined
dalek nxed: fab0539 | NotFound++ | winxedst1.winxed:
drop yield from stage 1
04:56
nxed: ec248ed | NotFound++ | winxedst2.winxed:
fix qualified class declarations - Issue 24 benabik++
05:27
07:24 fperrad joined 07:39 sri joined
moritz oh hai 08:38
what do you think about merging the kill_current_object branch?
the only reason it wasn't merged right after it was created was because it was shortly before a release 09:00
dalek rrot/threads: 6ecb09f | jimmy++ | / (2 files):
fixed build on windows, but chameneos.pir is not stable, sometimes it only outputs "going to sleeps"
09:19
p/dyncall-wb: 2fb45b9 | (Arne SkjƦrholt)++ | src/ops/nqp_dyncall.ops:
Handle non-concrete objects properly in write barriers.
10:04
p/dyncall-wb: bcf4b25 | (Arne SkjƦrholt)++ | src/6model/reprs/CArray.c:
[CArray] Handle non-concrete objects correctly in bond_pos_boxed.
10:36 lucian joined 10:38 PacoAir joined 10:48 whiteknight joined
nine Good morning whiteknight 10:54
dalek rrot/threads: 534f0a4 | jimmy++ | include/parrot/thr_windows.h:
revert part of 6ecb09f0ed, it's not the right way
10:56
10:58 JimmyZ joined
whiteknight good morning, nine 11:06
moritz \\o * 11:11
whiteknight: any thoughts on merging kill_current_object?
whiteknight moritz: I wasn't aware it was close to being mergable 11:12
moritz whiteknight: it was mergeable right after its creation. Only the immanent release held it off
whiteknight Yeah, we can do that. 11:14
It might break Rosella a little, I think I was using current_object for something. I'll work around that when the merge lands
dalek rrot/threads: 1fd0162 | nine++ | src/scheduler.c:
Make sleep op work --without-threads

fixes t/op/time.t when Parrot is configured --without-threads
11:16
whiteknight nine++ 11:21
moritz: do you want to merge it or do you want me to? 11:33
or do we wait for bacek?
11:37 cotto joined
nbrown cotto: pong 11:45
moritz whiteknight: I'll do the merge once I've re-tested rakudo on top of it 11:48
whiteknight moritz: okay. I've got Rakudo fixed for the eval_pmc stuff too. If we can find time to coordinate we can push those two patches today
or whenever
moritz whiteknight: just submit a pull requets for rakudo too, and I'll apply them both in a timely manner 11:51
whiteknight submitted 11:53
moritz whiteknight++
whiteknight I can merge the NQP one, apparently I'm a committer there now :)
moritz yes :-)
I hand out commit bits in byte-sized chunks :-) 11:54
(except for rakudo, where we require CLAs)
12:01 kid51 joined
moritz whiteknight: in general it would be nice if you put whitespace changes into separate commits 12:08
I'm having a hard time finding the interesting change in github.com/rakudo/rakudo/pull/64.patch
whiteknight moritz: yeah, I noticed that. My editor is set to automatically clean up whitespace, so those changes were unintentional 12:39
I can try to redo the patch without that, if you want 12:40
kid51 That's an editor on steroids! 12:41
Never use it on the Perl 5 core; they scream if you touch their whitespace ;-) 12:42
dalek rrot: 6e92ffe | jkeenan++ | src/exceptions.c:
[codingstd] Correct misplaced '--back'.
12:53
rrot: 8f5eff6 | bacek++ | / (17 files):
Get rid of CallContext.current_object. It's useless
12:59
rrot: de3545f | moritz++ | src/pmc/sub.pmc:
remove unused variable
rrot: 5c81f3e | moritz++ | / (17 files):
Merge remote branch 'origin/kill_current_object'
12:59 brrt joined
dalek nxed: 0cacc91 | NotFound++ | winxedst1.winxed:
drop support for qualified namespace and class declaratons from stage 1
13:49
nxed: 7c9943f | NotFound++ | winxedst1.winxed:
drop support for $include from stage 1
14:05
14:32 brrt joined
brrt can't build parrot 14:33
moritz brrt: what's the problem? 14:34
14:38 brrt1 joined
dalek nxed: a0bd771 | NotFound++ | winxedst2.winxed:
allow try, labels, goto and pirops with labels in inline
14:49
nxed: c9988fe | NotFound++ | winxedst1.winxed:
delete no longer used Reflabel class in stage 1
14:52
rrot/threads: 427b5f8 | nine++ | / (6 files):
Replace timer thread with time checks and sleep for --without-threads

Fixes all tests when configured --without-threads
Instead of a timer thread incrementing an alarm serial, we check the current time directly. Should be some performance hit, but without threading support, there's only so much we can do.
When no tasks are active, use usleep or Sleep instead of a condition variable for waiting. Green threads are used instead of real threads for scheduling tasks.
15:10
nine whiteknight: --without-threads is thus fixed :) 15:11
brrt nm, brrt can build parrot after all 15:12
nine whiteknight: interestingly enough, even the threading test programs work --without-threads, since in this case, I just use green threads as fallback.
cotto nbrown, are m0_c_test failures expected in your single deref branch? 15:18
one of the integration tests explodes
m0_args.t 15:19
dalek nxed: 650fdfe | NotFound++ | / (5 files):
drop labels and goto from stages 0 and 1
15:24
rrot/m0-typed-deref: 186f45f | jimmy++ | / (8 files):
update m0 to use new regs struct, and add new set_* op
15:35
rrot/m0-typed-deref: 8b3a6c6 | jimmy++ | src/m0/c/m0_ops.c:
update m0_ops.c to use CONST
rrot/m0-typed-deref: 99719df | jimmy++ | src/m0/c/ (3 files):
removed stdint.h
rrot/m0-typed-deref: 0582ec1 | jimmy++ | src/m0/c/m0_ops.c:
fixed my typo
benabik ~~ 15:39
nbrown cotto: no, hmmm. It doesn't blow up here for me
cotto: I'm getting 100% pass 15:40
15:44 plobsing joined
nbrown cotto: but I did just realize that I didn't remove the TODO from the failure output for m0_args, so it doesn't show up as a failure when it was failing for the perl implementation 15:46
dalek nxed: 4006a0b | NotFound++ | winxedst (2 files):
drop using static from stages 0 and 1
15:50
whiteknight nine: That's exactly the outcome I was hoping for! When we don't have threads, the system should just collapse transparently to normal green threads and nobody is aware of the change 16:04
nine: It's also a great tool for doing some comparison benchmarks. Parrot with and without threads, performing exactly the same tasks to see what the performance change is 16:05
nbrown cotto: and it seems that the test fails with the perl implementation because it gets called as "perl ./src/m0/perl/m0_interp.pl kittens 2 3 4 5" instead of "./src/m0/c/m0.exe kittens 2 3 4 5"
cotto: but either way it doesn't blow up for me
nine whiteknight: I guess Parrot without threads will now be slower even in single threaded workloads because I have to call Parrot_floatval_time() instead of just checking the alarm serial. This is done on every branch op. But on the other hand gettimeofday() should be one of the fastest syscalls using shared memory instead of a context switch to kernel space... 16:09
benabik gettimeofday() has caused notable slowdowns before. 16:10
It would be nice if we could use alarms when available. :-/
whiteknight nine: we can try to optimize that case. We might be able to avoid the call to Parrot_floatval_time if we have only one scheduled task, no schedulers timers or alarms, etc 16:11
nine whiteknight: true, true
The question is: is a non-threaded Parrot important for Rakudo right now?
whiteknight We can ping them, but I suspect it is not 16:12
not in the common case anyway, and like I said, we can optimize the --without-threads case
nine On Windows we wouldn't have alarms anyway. Windows seems to be built around threads.
dalek nxed: b0883df | NotFound++ | winxedst2.winxed:
refactor a bit childnamespace and declarenamespace implementation
16:15
whiteknight I'm going to kick off the ubuntu 12.04 upgrade on my laptop, and after that mess is all wrapped up I'll fire up my windows VM and see if I can get any further with that build 16:17
16:30 jashwanth joined
dalek nxed: f9e2495 | NotFound++ | t/advanced/20experimental.t:
more tests for local inline
16:33
rrot/threads: 3fbeaa9 | nine++ | src/ (2 files):
Use Parrot_usleep instead of reinventing platform abstractions
16:34
16:48 lucian joined 17:01 preflex_ joined
dalek p/toqast: 6f1b074 | masak++ | / (3 files):
added bigint conversion op
17:02
benabik Hm. installing a new version of Parrot while building Winxed doesn't work so well. 17:06
cotto back 17:57
dalek rrot: a5d4e23 | NotFound++ | src/string/api.c:
replace some magic numbers with a define
17:59
cotto jimmyz++ for using the branch I made for him, even though I forgot to mention it. 18:01
nbrown, you still around? 18:02
seen dukeleto 18:07
aloha dukeleto was last seen in #parrot 1 days 22 hours ago joining the channel.
benabik <3s git-bisect 18:23
Coke aye. 18:27
cotto s/-bisect// 18:28
Coke ooh, I can build parrot with -j5 or so on this box. yay.
benabik Of course, the project I use git-bisect on the most is git itself... 18:31
cotto yo dawg 18:33
moritz I maked you a git-bisect, and you git-bisected it! 18:38
nbrown cotto: I'm here for a bit 19:05
what's up?
cotto nbrown, I'd like to merge your branch into m0. Is there anything you'd like to clean up first? 19:09
(I'm also making m0 branch out before jimmy started making the typed deref changes.)
nbrown I've just found that the argv stuff is wrong, but other than that no. And we can clean that up later 19:10
cotto great
and done
dalek Heuristic branch merge: pushed 31 commits to parrot/m0 by cotto
nbrown awesome. thank you very much
cotto thank you for the work you've been doing 19:11
dalek rrot/coke/rm_pasm: f43953a | coke++ | / (2 files):
remove PASM testing functions
19:12
rrot/coke/rm_pasm: e6d985a | coke++ | t/perl/Parrot_Test.t:
Don't test pasm test functions
nbrown no problem, it's been fun
dalek rrot/coke/rm_pasm: 99c3f5b | coke++ | t/pmc/managedstruct.t:
remove commented out references to pasm_output_is
rrot/coke/rm_pasm: 3794663 | coke++ | / (2 files):
Remove stub test file

It tests the wrong thing, and uses PASM to do it.
rrot/coke/rm_pasm: cc90fce | coke++ | t/op/literal-old.t:
remove PASM test (PIR already covered)
rrot/coke/rm_pasm: 55be35a | coke++ | t/pmc/object-meths.t:
convert (unskipped) PASM tests to PIR
rrot/coke/rm_pasm: 6531c79 | coke++ | t/pmc/eval.t:
Remove PASM compiler tests
19:12 brrt joined
cotto bye, pasm 19:12
we won't miss you
coke++
tadzik :) 19:13
Coke going to take some time to clean up t 19:14
what is the point of t/pmc/signal.t? looks like it is always skipped. 19:17
benabik To test skipping tests? 19:18
(Probably not)
dalek rrot/coke/rm_pasm: 68b14f4 | moritz++ | examples/pasm/ (4 files):
remove pasm examples
19:19
moritz steals a bit of Coke++'s karma
tadzik kick him when he's down!
(pasm, of course) 19:20
Coke that looks odd.
did those need to be converted to something else? ;)
moritz no :-)
Coke moritz: you need to update the MANIFEST in parrot whenever you remove files.
moritz++ 19:21
moritz Coke: I'm not done yet :-)
dalek rrot/coke/rm_pasm: 7c875ad | moritz++ | t/examples/pasm.t:
remove tests for PASM examples
Coke thought that if he named the branch coke/*, people would stay away! 19:22
dalek rrot/coke/rm_pasm: 0224b74 | moritz++ | / (2 files):
remove PASM pdd; regen MANIFEST
Coke it's cool, though, I can share. ;) 19:23
moritz runtime/parrot/include/ has lots of generated pasm files 19:24
do we have a PIR equivalent to .macro_const ?
Coke moritz: .macro_const is in pdd19_pir.pod 19:30
does it not work?
it works. 19:31
.sub a\\n.macro_const PI 3.14\\n say .PI\\n.end
moritz: what are you working on so I don't step on you? 19:32
moritz Coke: currently nothing 19:37
Coke: but does it work outside a .sub too? 19:38
moritz tries
dalek rrot/coke/rm_pasm: 9afbc45 | coke++ | t/pmc/io.t:
Convert (unskipped) PASM tests to PIR
moritz ah yes
Coke moritz: PIR doesn't have "outside a sub
"
moritz Coke: it does :-)
Coke ... ah, but .macro_const isn't an opcode. 19:39
nevermind.
moritz Coke: I'll try to teach tools/build/h2inc.pl to emit .pir files
Coke moritz: Danke. 19:40
dalek rrot/coke/rm_pasm: a10a75e | moritz++ | / (32 files):
[build] generate .pir files with constants, rather than .pasm files

Also add the .pir files to the repo; otherwise h2inc.pl will refuse to create them.
19:51
Coke moritz: if the .pasm files weren't added, why add tyhe .pir? 19:55
moritz Coke: my mistake, I thought they were
Coke double check, but I don't think so. 19:56
moritz Coke: you're right
Coke time to head out, back later tonight. 19:58
moritz++
20:19 PacoAir joined
dalek rrot/coke/rm_pasm: 34c160f | moritz++ | runtime/parrot/include/ (31 files):
remove files that I should not have added in the previous commit
20:20
rrot/coke/rm_pasm: 7a6b9dd | moritz++ | config/gen/makefiles/root.in:
change a few .pasm dependencies to .pir
rrot/coke/rm_pasm: 1e2be1a | moritz++ | / (221 files):
more runtime lib pasm -> pir

specifically, include the new .pir files, and instruct h2inc to create .pir instead of .pasm
rrot/coke/rm_pasm: 852ff1a | moritz++ | config/gen/config_pm/config_lib_pir.in:
update config_lib_pir.in to use .pir
rrot/coke/rm_pasm: 0bca6db | moritz++ | include/parrot/ (5 files):
update gen_from_def tags too
rrot/coke/rm_pasm: 12fac49 | moritz++ | config/gen/config_pm/config_pir.in:
fix config.pir
rrot/coke/rm_pasm: 22dbdd5 | moritz++ | / (4 files):
fix references to iglobals.pasm

we finally make it through the build again
moritz Coke: if I knew how much I had to do to make it even build again, I wouldn't have touched it :-) 20:23
dalek rrot/coke/rm_pasm: c05454c | moritz++ | / (3 files):
update more .pasm references to .pir
20:26
20:28 PacoAir joined
cotto nbrown, you around? 20:30
One of the kinda-goals of M0 is to make the binary format mmappable so that a .m0b file can be loaded and executed with minimal fuss. What if instead of the constants table having non-fixed-width constants be inline (e.g. strings), the contents of those constants were included as data at the end of the constants segment and table entry were only a pointer to the data? 20:35
dalek rrot/coke/rm_pasm: 862ec78 | moritz++ | compilers/pct/src/PAST/Compiler.pir:
[PCT] produce .pir includes for constants
20:37
cotto not entirely sure if this would be a good or bad idea, but it'd get rid of the special case in the deref op.
Coke moritz++ # I wasn't going to say anything! ;) 20:49
20:58 lucian joined 21:30 PacoAir joined 21:36 lucian joined 21:57 particle joined
cotto Either way, I want to get the argv test fixed before doing anything crazy. 22:09
22:57 kid51 joined 23:25 whiteknight joined
whiteknight Good afternoon, #parrot 23:26
ubuntu--
actually, back in a minute 23:27
23:30 whiteknight joined
whiteknight I don't know why it's a disaster every time I update ubuntu 23:42
kid51 I had a very pleasant experience with ubuntu at $job this past week. 23:55
It told me I needed to do a "partial upgrade" and then did it correctly!