Parrot 4.2.0 "Ornithopter" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 21 March 2012.
dalek kudo/nom: c2f008d | pmichaud++ | src/core/Array.pm:
Make use of existing scalar instead of repeating getattr.
00:14
kudo/nom: e2ebf39 | pmichaud++ | src/core/Array.pm:
Add a comment to hotpath checks added in c10792f (RT #111848).
bacek_at_work ~~ 00:37
wow! pmichaud is back!
whiteknight yes, now if only we could get bacek back too! 00:43
dalek rrot/remove_sub_flags: 67eb23f | Whiteknight++ | / (22 files):
Fix several broken tests, opsc and a few others
01:03
bacek_at_work whiteknight, never heard about a guy with such funny name
dukeleto bacek_at_work: me neither 01:07
dalek sella: 3d7ed48 | Whiteknight++ | src/unstable/net/ (11 files):
[Net] Add in some prototype stubs and outlines for a new networking library. Initially inspired by Uri::* Http::*, LWP::*, Mime::* and others from the parrot standard library
02:03
sella: 21dc852 | Whiteknight++ | src/template/Template.winxed:
[Template] Add in a helper method to read the text of a template file, given a path name
sella: b77cee5 | Whiteknight++ | src/unstable/net/ (8 files):
[Net] Start fleshing out a few methods. Rearrange files so Protocol falls under the http portion of the library
02:04
02:33 alester joined
alester So i'm thinking about PARROT_STATIC_ASSERT 02:38
trying to think of where to throw some tests
02:49 parthm joined 03:07 benabik joined 03:08 ascent joined
dalek rrot: 2f0e851 | petdance++ | / (2 files):
const a local variable. Minor spacing tweaks
03:33
rrot: 707e83c | petdance++ | / (2 files):
Added compile-time assertion macros, and added our first check that INTVAL and opcode_t are the same size
aloha (parrot/parrot) Issues closed : 746 (Create PARROT_STATIC_ASSERT) by petdance : github.com/parrot/parrot/issues/746 03:37
dalek rrot: 6f23924 | petdance++ | include/parrot/api.h:
fixed an incorrectly-built error name
03:42
rrot: 4e31706 | petdance++ | config/auto/warnings.pm:
Turn off warning for unused local typedefs, because that is how we do PARROT_STATIC_ASSERT
bacek_at_work alester, I do like it. Really do. 03:45
alester yay
I don't like having to turn off the unused local typedefs warning.
but I figure that's the least bad. 03:46
Other options have unused code, or unused function declarations. So I figured the typedef method was the least annoying.
I just wonder what else we can check on.
04:31 nbezzala joined 06:02 nbezzala_ joined 06:14 nbezzala_ joined 06:29 benabik joined
dalek kudo/nom: 4a247b1 | moritz++ | src/core/ (5 files):
make != redispatch to not ==

this fixes both a hang of != with complex numbers, and not-raising with Junctions only natively typed variants of != and a (Mu, Mu) candidate remain
06:43
06:45 fperrad joined 06:55 benabik_ joined 07:00 benabik joined
dalek rrot: 8ec7bb6 | dukeleto++ | docs/configuration.pod:
[ci skip][doc] s/Trac ticket/Github issue/
07:24
07:32 benabik joined, perlite joined
nine Good morning, #parrot 07:36
07:48 benabik_ joined
dalek rrot/breed: 3dcef54 | dukeleto++ | breeds/embedded.breed:
Create the beginning of an embedded Parrot "breed"

I was previously calling this a "flavor", but particle++ suggested breed and so it shall be.
This embedded breed leaves out everything except the very core functionality of Parrot and hence is best suited to small resource embedded systems. In particular, it does not include GMP, ICU, OpenGL, gettext or any other convenience library.
07:54
08:02 mj41 joined
tadzik ooh 08:15
08:20 pjcj joined 09:28 lucian joined
dalek sella: 49052aa | Whiteknight++ | src/ (2 files):
[Date] add ww and WW formats for week day and week day name
09:46
10:06 fperrad joined 11:36 jlaire joined 11:48 he joined 12:46 hercynium joined 13:02 jashwanth joined 13:07 jashwanth_ joined 13:08 contingencyplan joined 13:23 jashwanth_ joined 13:25 jashwanth joined
nine Just to be sure: there's nothing wrong with adding lots and lots of PARROT_ASSERTs, is there? 13:47
13:56 jashwanth_ joined, jashwanth joined 14:01 ascent joined 14:08 dmalcolm joined 14:10 JimmyZ joined 14:23 not_gerd joined
dalek rrot: e29d4a8 | (Gerhard R)++ | config/init/hints/darwin.pm:
Fix fallout from increased warning levels on Mac OS
14:32
rrot: 8060b09 | petdance++ | config/init/hints/darwin.pm:
Merge pull request #748 from gerdr/gerdr/darwin-fix

Fix fallout from increased warning levels on Mac OS
14:48 whiteknight joined
aloha (parrot/parrot) Issues opened : 747 (Release 4.2.0 fails to build if ICU headers are installed in a non-system location) by gerdr : github.com/parrot/parrot/issues/747 14:51
whiteknight good morning, #parrot 15:06
nine Good morning, whiteknight 15:07
whiteknight hello nine, how are you doing? 15:08
moritz: ping
nine Very well, thanks
moritz whiteknight: pong 15:09
15:09 fperrad joined
nine whiteknight: I got a working chameneos implementation! Our first benchmark :) 15:09
whiteknight moritz: if you see any students interested in working with rakudo for GSOC, make sure to let me know about them. I want to make sure if I get proposals or requests for info that I recognize the names
moritz: I'm sure those students hang out more in #perl6 than in #parrot 15:10
nine: chameneos?
moritz whiteknight: will do. So far tadzik++ has voiced some interest
tadzik aye
nine whiteknight: cedric.cnam.fr/PUBLIS/RC474.pdf
whiteknight moritz: Then let me officially voice some interest in masak++
nine whiteknight: a nice little game useful for benchmarking thread synchronization performance
whiteknight: the important point being: this is actual real life code which does work on our threading implementation :) 15:11
whiteknight nine: that's awesome
dalek kudo/nom: 4d6754b | pmichaud++ | src/core/ (3 files):
Fix .count for subs with slurpy positionals. Partially addresses RT #111646.
15:12
whiteknight nine: this game looks really interesting. I'm going to have to read it over more closely after work
nine whiteknight: I guess this is pretty much the worst case imaginable for our performance since it's 100% synchronization and writes to shared data. With a bit of training, you could probably perform it faster manually ;) 15:13
whiteknight nine: How's the performance look on it? In the ballpark of what you would expect? 15:14
15:14 PacoAir joined
nine whiteknight: well I expected it to be dead slow in such a case and it for sure didn't disappoint me. But even here I hope to be able to improve the situation greatly. For example, I do not use the wait op, since it does not yet work in a threaded system. Instead I do it manually in PIR which can only be much slower. 15:16
whiteknight: some atomic xchng op would also help drastically. But for now I'll try to find a benchmark which is more like 80 % read and 20 % write. 15:20
whiteknight nine: We used to have a non-portable set of atomic operations. 15:22
dalek kudo/typed-ex-hash: c812679 | moritz++ | src/Perl6/Actions.pm:
allow "anon sub" again
15:36
kudo/typed-ex-hash: e55477f | moritz++ | src/core/List.pm:
try to optimize the common case of List.Bool
15:40 not_gerd left
dalek kudo/nom: 69920db | pmichaud++ | src/core/Signature.pm:
Refactor Signature.count to properly handle arity for capture parameters. Fixes RT #111646.
15:40
whiteknight nine: We used to have those ops but they got removed because they weren't being used. If you find like an atomic op library that you like and want to use, go for it
nine: should probably be portable to windows, etc 15:41
msg not_gerd: you interested in a commit bit yet? 15:46
aloha OK. I'll deliver the message.
15:46 Psyche^ joined
dukeleto ~~ 15:49
15:58 ascent joined
dukeleto good localtime(), folks 16:06
whiteknight hello dukeleto 16:07
dalek rrot/threads: da8e94e | nine++ | / (9 files):
Lots of assertions for debugging memory separation violations
16:08
rrot/threads: 460b9b5 | nine++ | src/pmc/proxy.pmc:
Proxy workaround for TT #1219, see Parrot_ns_find_namespace_global
16:09
rrot/threads: 49e19be | nine++ | src/oo.c:
Remove debug output
rrot/threads: 8fd2890 | nine++ | / (3 files):
Avoid calling init_world_once again for each thread

Pulled in a lot of interpreter setup code into clone_interpreter. Not exactly pretty, but this is the only way to avoid running all the stuff which really should only run once for the main thread. At least without a major refactor that is. Also starting from a clean slate makes it much easier to find leaks of unproxied PMCs to other threads.
rrot/threads: 6acce00 | nine++ | src/thread.c:
Don't block on writing to the notifierfd.

If a threads notification pipe is full, we don't need to notify the thread anyway since it will check all expired alarms with a single notification.
rrot/threads: 9ebf0d9 | nine++ | include/parrot/pobj.h:
s/Parrot_Interp */Parrot_Interp/

Parrot_Interp is already a pointer, no need for the asterisk for the orig_interp declaration. Fixes a lot of compiler warnings (otherwise harmless, since we only compare this pointer)
rrot/threads: 5a9e01e | nine++ | src/ (5 files):
Use PARROT_IS_THREAD flag instead of testing for interp->thread_data
rrot/threads: a4b8788 | nine++ | / (4 files):
Flag packfile constants as shared and GC them only on the main thread

Packfiles are no PMCs so we cannot simply create a proxy for them. But they naturally belong to the main thread, so we use the "shared" PMC flag to tell the GC that only the main thread should mark and sweep them.
rrot/threads: c41af29 | nine++ | / (2 files):
Don't create proxies for Subs but clone them

When executing a proxied Sub, the context belonging to the foreign interp would be used. This context for example contains globals and namespaces. get_global in this Sub would therefore fetch a global from an unproxied namespace and get an unproxied global in return without any chance for us to catch this and create a proxy.
Better to clone the sub and create proxies for all its PMC attributes
  (most of all namespaces)
rrot/threads: 031e968 | nine++ | lib/Parrot/Pmc2c/PMC/Proxy.pm:
Run proxied VTABLE methods with the threads interp

Even read only methods can cause garbage collection (e.g. with parameter passing). This would have catastrophic results, since a foreign thread would be running this GC and it would find both threads' PMCs. Even worse, the proxied interp could be running the GC at the same time.
Blocking the foreign GC is not possible without lots of locking since even if we Parrot_block_GC_mark, the foreign interp could already be running its GC.
a63fd3f | nine++ | examples/threads/ (3 files): Example programs using threads
Just some examples to show how Tasks and threads might be used.
nine OMG I killed dalek!
moritz in Dr. Who, dalek kills you!
atrodo moritz++
whiteknight nine: killed her with awesomeness 16:11
16:11 dalek joined
dukeleto nine++ 16:14
nine So...this should be the essentials needed for creating useful threaded programs :) I'd call this a major milestone! 16:16
whiteknight nine++ indeed
nine Should I put my threading test programs into examples/threads? 16:19
whiteknight yes 16:22
17:06 davidfetter joined
dalek rrot/threads: 9037751 | nine++ | include/parrot/ (2 files):
Fix unwrapped macro args
17:08
rrot/threads: 0a9d8df | nine++ | include/parrot/thread.h:
Decrease readability to satisfy coding standards
rrot/threads: f237aca | nine++ | src/pmc/proxy.pmc:
Remove trailing whitespace
rrot/threads: 54965b2 | nine++ | MANIFEST:
Add new example files to MANIFEST
17:19 mj41 joined
dalek rrot/threads: 3b5ee3c | nine++ | / (158 files):
Merge branch 'master' into threads

Conflicts:
  \tsrc/gc/gc_ms2.c
  \tsrc/scheduler.c
17:21
nine Parrot_dt_get_datatype_enum? WTF? 18:13
whiteknight it could be worse
nine how? *g* 18:14
whiteknight well, it could just randomly overwrite files in your directory and then segfault
nine ah of course there's that, yes 18:15
whiteknight Some code like that is from before my time
nine I'm thinking about submitting a talk about threading in Parrot for YAPC::EU 2012 18:21
whiteknight that would be awesome 18:28
nine Thanks, your talk submission has been recorded as Threading support in Parrot. 18:32
cotto wheee 18:35
dalek rrot: f64dce9 | jkeenan++ | config/gen/makefiles/root.in:
Add a dependency so that t/src/checkdepend.t again passes.
18:58
19:01 jsut_ joined 19:23 PacoAir joined
dalek kudo/nom: a4c78fb | pmichaud++ | src/core/Parcel.pm:
Use "$()" in Parcel.perl to show when a Parcel is in a scalar container.

I'm not sure that the spec ultimately end up with something like
  "scalar Parcels" (cf. "scalar arrays"), but since they exist in Rakudo
for the time being we should at least make their presence clearer to the people who encounter them.
19:23
dukeleto whiteknight: thanks for the update re: rejected gsoc orgs 19:26
nine: you submitted a talk somewhere?
whiteknight dukeleto: no problem 19:27
19:28 alester joined
nine dukeleto: act.yapc.eu/ye2012/talk/4071 19:38
dukeleto nine: seems like that link is only for logged in users 20:07
nine: but good to know that you will be at yapc:eu 20:08
dukeleto thinks hard about YAPC::EU 20:09
this looks interesting: github.com/Dazo-org/zerovm and www.zerovm.org 20:52
Wow. An entire OS written in Assembly. On purpose: github.com/ReturnInfinity/BareMetal-OS 20:53
dalek rrot: 8997125 | jkeenan++ | src/global_setup.c:
[codingstd] Make file pass c_parens standard.
21:16
rrot: 1b1fe71 | jkeenan++ | include/parrot/api.h:
[codingstd] Make api.h pass c_parens and c_operator tests.

It's still failing c_macro_args due to "PARROT_STATIC_ASSERT has unwrapped arg: X".
rrot: 52063c3 | NotFound++ | include/parrot/api.h:
add parens to humor codetest
21:56
cotto is enjoying a drupal sprint (a.k.a. hackathon) in his "Perl Is My Paycheck" shirt. 22:05
22:18 alester joined
dukeleto cotto: :) 22:44
22:47 davidfetter_ joined
dukeleto davidfetter: wazzup 22:50
davidfetter: how goes vpostgres stuff?
23:38 whiteknight joined 23:41 jsut joined
whiteknight good evening #parrot 23:58
cotto hi whiteknight 23:59
whiteknight hello cotto