|
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! | |||