Parrot 3.7.0 "Wanda" | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 6 September 2011.
cotto_work whiteknight: same failure 00:17
whiteknight drat 00:18
okay, no merge tonight. I'll have to play with it 00:22
Tene no kill_threads? :( 00:29
whiteknight not yet. is borked 00:32
cotto ~~ 01:17
Coke anyone know how long it takes to actually upload a file to smolder? 01:38
(wonder how long it takes smolder to process a .tgz)
\\o/ CPAN 01:48
diag out comes /after/ the test line typically, yes? 01:52
so if I have "ok 3\\n# hi there\\nok 4" you want the diag output with test 3, yes?
sorear depends on the relative order of the diag call and the ok call
oh
I would say yes
01:53 whiteknight left
sorear since Test::More and friends sometimes generates "not ok 5\\n# Expected: foo\\n# Got: bar\\n" 01:53
Coke I am now parsing all of a sample parrot .tgz test file, but I'm ignoring the "extra_files" that are sent. they're just raw text, so not really searchable. 01:54
If we want more information, we can pile on to "extra_properties" in the meta.yml.
Coke ponders doing the DB inserts before sleeping. 01:55
cotto sorear, you might know this. Is there a good reason for M0 to support 2-byte short ints? 01:57
(or have some relevant prior knowledge)
sorear cotto: yes fsvo "support" 01:58
dalek rrot/whiteknight/kill_threads: 2b6a933 | jkeenan++ | / (4 files):
Prompted by 3 failures in t/codingstd/c_args_assert.t, run 'make headerizer'

Parrot_ext_try(). (It's not clear which protector should be applied.) Correct misspelling in inline comment; t/pmc/timer.t still has 1 failure.
01:58 benabik joined
cotto sorear, ok. fwvo "support"? What kind of applications find them useful? 01:59
sorear cotto: shorts are very useful for reducing RAM/cache footprint of large data structures 02:00
it's probably not necessary to support short registers, but we ought to have a way to store shorts in structs and arrays 02:01
cotto sorear, ok. Thanks.
sorear what kind of support does m0 have for bytes? 02:02
Coke bleargh. sqllite doesn't have sequences? blarg.
bleargh, perlmonks is slow. ;) 02:03
cotto sorear, I'm thinking about that now. It won't get far if it doesn't provide at least some basic ability to manipulate them (load, store, compare, bitwise operations) 02:04
sorear cotto: the established way is to provide just load and store 02:05
jvm/clr automatically convert to ints when loading byte/short 02:06
cotto same with nanojit 02:07
dalek rrot/whiteknight/native_attrs: 3d9ab92 | jkeenan++ | src/ops/object.ops:
[codingstd] Add barebones documentation of variants for setattribute().
02:11
02:30 woosley joined
Coke \\o/ - I now have a command line script that'll take parrot .tgz test file and import it into a sqlite3 DB. 02:52
github.com/coke/muddle/blob/master...ut_smolder
takes about six seconds, we can kill the .tgz, and one report takes up about 717K in the DB. 02:55
and the UI isn't going to be generating any temp files. 02:56
03:50 rfw joined
bubaflub Coke++ 03:57
Tene okay, so I need to... update pdd31_hll.pod ? 03:58
Coke feather.perl6.nl:2653/ - the mojo app. It's got a single test run in the DB, but isn't doing much else at the moment. 04:00
(only showing a list of the 4 projects at the moment. that click through is next, but tomorrow.) 04:01
cotto Tene, we can move things that are in the wrong place 04:06
Coke needs to figure out how to do dynamic routes in mojo. 04:07
Tene cotto: just trying to work out what people have asked me to work on
dukeleto Tene: do you have something written? 04:11
cotto Tene, thanks. I'm just saying that if that pdd turns out to be the wrong place, we can move your work somewhere else.
dukeleto Tene: basically, i read through parrot.pir and i don't exactly know what is going on. If you can add some POD there explaining how to use parrot.pir, that would be helpful 04:12
04:23 fperrad joined
Coke feather.perl6.nl:2653/parrot/ now ``works'' 04:54
(this wouldn't be taking so long if I ever did web apps in perl. ;)
cotto coke++
Tene www.sqlite.org/testing.html -- very impressive 04:57
cotto they have an insane test setup 05:06
05:33 SHODAN joined 06:02 Kulag joined 07:35 mj41 joined 08:02 lucian joined 08:27 Shozan joined
nine I'm trying to bring the gsoc_threads branch up to date wrt current master. Code compiles, but make bootstrap-ops fails and I have no idea how to tackle this: paste.scsys.co.uk/144054 08:48
10:07 lucian_ joined 10:36 redicaps joined
plobsing nine: assuming this failure is happening during the rebuild of opsc, it is possible that some PBC was not rebuilt after adding the ops. you could try cleaning and rebuilding again. 10:43
10:49 mj41 joined 11:01 ligne joined
dalek kudo/optimizer: 58589e3 | jnthn++ | src/main.nqp:
Make it possible to actually pass --optimize=0 to turn off the optimizer.
11:06
kudo/optimizer: a2fae73 | jnthn++ | / (3 files):
First cut of infrastructure for supporting us being able to call right into the multi-dispatcher without invoking the onlystar proto. Not optimized yet.
kudo/optimizer: c93f36d | jnthn++ | src/Perl6/Optimizer.pm:
Fill out inline_proto in the optimizer.
kudo/optimizer: b60d8b4 | jnthn++ | src/binder/multidispatch.c:
Fix bug in multi-dispatch junction failover, exposed by optimizer work.
nine plobsing: tried a make distclean, but did not help 11:09
plobsing: but I remember some conflicts in the native_pbc directory and I think I just took one of the versions. How can I rebuild them? 11:10
plobsing nine: that failure wouldn't be in native_pbc 11:23
and ops-bootstrap would try calling an 'appropriate' make cleaning routine. what I'm suggesting is the cleaning routine is deficient. 11:24
use git clean
dalek kudo/optimizer: 925c37d | jnthn++ | src/ (3 files):
Cache the MD thunk, so we avoid creating a load of GCables.
11:33
11:35 Psyche^ joined 11:44 benabik joined
benabik o/ 11:50
nine plobsing: fails as well. Seems to be some merge problem 11:54
benabik nine++ # tackling threads 11:55
dalek kudo/nom: 113d9e5 | jnthn++ | src/Perl6/SymbolTable.pm:
Fix things like 'role A::B { }; class A { has A::B $!x }', which stopped Pies working.
11:59
12:09 bluescreen joined 12:12 mj41 joined 12:43 whiteknight joined
whiteknight good morning, #parrot 12:44
nine morning whiteknight
whiteknight hello nine
nine whiteknight: paste.scsys.co.uk/144054 any idea would be appreciated :) 12:45
whiteknight: trying to bring gsoc_threads up to date with a current master
whiteknight oh, weird
as sanity, did you make realclean, reconfigure, and uninstall any previous parrots? 12:46
since gsoc_threads was last touched, new ops and pmc types were added, so pbcs built earlier will show weird corruption issues
nine whiteknight: tried that, did not help 12:49
whiteknight okay. Awesome. Do you have the update pushed anywhere? I can try to take a look at it
nine whiteknight: git@github.com:niner/parrot.git green_threads branch 12:50
whiteknight okay, give me a minute to pull it down and build
nine just pushed a commit 12:51
whiteknight building now 12:55
12:56 Kulag joined
whiteknight yeah, I get the same error 12:57
extremely weird. I don't see why it would be having that problem inside NQP 13:04
nine whiteknight: tell me :)
whiteknight: I remember some conflicts in the native_pbc directory and I think I just took random versions. Put plobsing doesn't think it's related and I have no idea... 13:05
benabik What's "unimplemented key type 1" mean? 13:12
whiteknight benabik: where are you seeing that error? 13:19
nine: No, that native_pbc thing is just for tests
benabik whiteknight: load_bytecode 'Test/More.pbc' ; load_bytecode 'perl6.pbc'
whiteknight: I'm golfing a test failure in nom. I think it's our failure, not theirs. 13:20
whiteknight benabik: ack for that failure message text. 13:21
benabik whiteknight: ack meaning "that's bad" or "I see it too"
PerlJam ack meaning betterthangrep.com :) 13:23
whiteknight benabik: grep for that line of text 13:28
atrodo ack++ 13:29
dalek p: ef1c9e3 | jnthn++ | src/6model/reprs/P6opaque.c:
Tweak P6opaque some so we can start doing the indexed attribute lookups.
13:48
p: c89bd60 | jnthn++ | src/ (2 files):
Use hint in order to do indexed lookups of attributes in the v-table delegation case; should be a small win for parsing, invocation, etc.
benabik Oh, ack. I tend to use git-grep... 13:59
(Ack's file type filtering is less reliable than git knowing what files are source controlled) 14:01
I asked first hoping someone might know the why and not just the where. ;-) 14:02
hash.c:Parrot_hash_thaw (or hash.c:Parrot_hash_freeze) 14:03
I'm guessing some global/interp data is getting a little off after Test/More.pbc 14:04
dalek p: 4a0294c | jnthn++ | src/ (2 files):
Regularize attribute access opcode set, and remove a level of indirection along the way.
14:25
p: b829866 | jnthn++ | src/ops/nqp.ops:
Variants of attribute access opcodes that take hint for indexed access.
p: 0e9d828 | jnthn++ | src/ops/nqp.ops:
Missing write barriers.
p: b9cf1cb | jnthn++ | src/ (9 files):
Fix some insanity in the hint_for API.
14:41
p: dbb1a07 | jnthn++ | src/ops/nqp.ops:
Op for getting hold of the attribute lookup hint.
14:56 AzureStone joined 14:57 JimmyZ joined
cotto_work ~~ 15:08
dukeleto ~~
whiteknight ~~ 15:09
benabik Who's good with packfile loading? I lost and don't have the time to figure it out… load_bytecode "Test/More.pbc" ; load_bytecode "perl6.pbc" (with nom installed) fails in Parrot_hash_thaw with "unimplemented key type 1". Only loading those two cause an error so there's some weird interaction/leak happening. 15:14
NotFound whiteknight: ping 15:16
whiteknight pong
benabik: which are you loading first? 15:17
and, can you reverse the order?
benabik whiteknight: Loading in order I said, reversing it works. Trying other PBCs seems to work. 15:18
whiteknight We'll have to look closely at Test/More.pbc then, see what it's doing
NotFound whiteknight: boxing a new value in setattribute looks wasteful, I tought the idea was to use set_integer_native and such.
whiteknight benabik: the state of those old test libraries was a big part of my motivation for writing new test libraries in Rosella 15:19
NotFound (in whiteknight/native_attrs branch)
whiteknight NotFound: it's wasteful now because the vtable doesn't support typed attributes
15:19 eternaleye_ joined
benabik whiteknight: I can believe it. But these feels like an error in packfile loading, so hunting it down is probably a good idea. 15:19
whiteknight NotFound: When we have 6model, it won't be wasteful
NotFound: Right now it's just an interface. We need an internal implementation. Winxed and other HLLs can start using the feature before it becomes efficient 15:20
NotFound whiteknight: yes, but in the meantime we can create a new one only if the current attr is not null.
whiteknight NotFound: That's fine. We can try to make it more efficient 15:21
What I mostly care about is the interface. Is that the interface that Winxed would like to use?
NotFound whiteknight: winxed already does the boxing in operator =, so testing it with winxed will not show much, just avoid one or trow ops
whiteknight NotFound: Yes, but can we start declaring attributes with types? 15:22
NotFound whiteknight: that is mostly the point: with that implementation there is no need or benefit in declaring the type. 15:23
whiteknight or, does that maybe not even make sense
NotFound: okay, we can forget it until we have 6model 15:24
I'm trying to make the transition more smooth, by introducing features slowly
15:25 alester joined
NotFound whiteknight: I like the idea, but preferably introducing ways that make some noticeable difference. 15:25
Maybe is better to do the experiment in winxed, introducing the typed attributes and generating appropiate attribute access code depending on it. 15:26
whiteknight Some kind of experiment will help us figure out what types of opcodes we are going to need in the future 15:27
NotFound I'm not sure what will be the better way. Changing the generated code based on knowledege about the class internals is not a dynamic languages way. 15:29
It may be useful for critical speed code in winxed, tough.
A possible redesign: kill the current set/get attribute ops, use an attributes object implemented as a cpature or something like that. 15:33
That way a class or metaclass can implement attribute acces the way it wants. 15:34
whiteknight what do you mean?
NotFound getattributes attr, object ; attr["attr1"] = somevalue 15:35
benabik Capture isn't a good way to expose it. Requires getting an object, getting another object that might be populated with a lot of data you don't need, then accessing the capture.
I like the idea of a generic getattribute and then typed specialities for speed.
15:36 rurban joined
whiteknight you can already override set_attr_str 15:37
NotFound whiteknight: yes, but if we add typed attributes we'll need a bunch more opcodes and vtables. 15:38
whiteknight 6model doesn't use the vtables, it has other accessors
I think those can also be overridden
moritz well, they are re-dispatched to the REPR
benabik There could be a VTABLE REPR… Probably not the most efficient way to do it, but hey. 15:39
moritz (iiuc)
whiteknight moritz: I thought it was dispatched to the metaobject?
benabik REPR is part of the metaobject… kinda. 15:40
moritz whiteknight: it's been a while since I looked at the code, so I could very easily wrong here
whiteknight moritz: same here. I need to get back into it
NotFound accesors? methods? 15:42
dalek p: 1b3034b | jnthn++ | src/HLL/SerializationContextBuilder.pm:
Always tag SC lookups as having a known compile time value.
15:45
p: 3cb1917 | jnthn++ | src/NQP/Actions.pm:
Make sure that the PAST compiler can get at the actual type object for an attribute's class.
p: d174ebf | jnthn++ | src/6model/reprs/P6opaque.c:
Make sure we did slot allocation before trying to obtain attribute lookup hints.
p: fd72d7a | jnthn++ | src/PAST/SixModelPASTExtensions.pir:
Generate attribute lookups with lookup hints. This means that most lookups are now index based rather than needing a hash lookup.
16:24 alester_ joined 16:29 alester_ joined
dalek p: a6d5b1c | jnthn++ | src/6model/reprs/P6opaque.c:
Start moving away from using the (now otherwise unused) ->spill as the way P6opaque identifies whether something is a type object.
16:32
p: b95251e | jnthn++ | src/6model/reprs/P6opaque.c:
Eliminate all usage of ->spill in P6opaque.
p: f9b7af3 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Remove ->spill from P6opaque. This makes all objects 4 (32-bit) or 8 (64-bit) bytes smaller.
kudo/nom: 77d4dc1 | jnthn++ | / (6 files):
Updates to use latest NQP, to get attribute access performance improvements and lower memory usage.
16:34
16:45 alester_ joined
dalek nxed: b51cc6f | NotFound++ | winxedst1.winxed:
fix Expr.emit_geint and use it in a few more places
16:47
mls Hey, I just sold my soul... 16:54
whiteknight get a good price for it? I hear the market is down
mls Sorry, mistyped, I sent my CLA
whiteknight mls++
mls (pdf to legal@parrot.org) 16:55
cotto_work mls: excellent!
whiteknight cla basically just says ParrotFoundation has a license to use your work, and we're all allowed to come over to your house unannounced and eat your food
benabik Yay food!
cotto_work That last provision comes in handy more than you'd think. 16:56
whiteknight lots of fine print
mls Darn, I should have read it more carefully...
Good thing that the address belongs to my employer ;) 16:57
benabik Ooh, a company cafeteria. Even better.
whiteknight cotto_work: we can please has give mls commit bits?
pretty please, with lol on top? 16:58
cotto_work whiteknight: I just want a verification from someone with access to legal@.
When we have that, I'll flip the bit and do a little happy dance.
whiteknight We got the CLA. I'm looking at it now
and drawing funny pictures on it
mls I can sent lots of copies... 16:59
cotto_work added
whiteknight you might need to. I have a very short attention span
mls++ 17:00
mls ok, github just confirmed it, I'm now in the parrot team
\\o/
whiteknight did that profiler ever get merged? If not, why the hell not?
cotto_work mls: woot. Your first assignment is to move the sub profiler code into the parrot org's repo
mls That should be easy, as both repos are on github 17:01
cotto_work yup
it'
ll be great not having two repos to mess with
whiteknight: I'm not sure it's stopped moving yet. 17:02
whiteknight okay, just making sure we consider the value of the feature very carefully, and move it along as quick as possible 17:03
we want it in master very badly
might get more eyes on it there
cotto_work whiteknight: absolutely. I want it in master too, just after it's cleaned up more.
whiteknight rolls up his sleeves
cotto_work oh noes ;)
whiteknight as soon as we get it moved into the parrot repo, I'll go nuts on it 17:05
mostly in the good way
dalek Heuristic branch merge: pushed 86 commits to parrot/mls/sub-profiler by mlschroe 17:08
cotto_work I like where this is going.
mls ok, the parrot sub-profiler branch is up-to-date 17:10
unfortunately I've to leave now ;(
cotto_work mls: any other plans? 17:11
i.e. will you be doing more work on the branch?
mls Some minor code cleanups, then we'll have to dicuss how to put it in master 17:12
I.e., theres this static variable that holds the profile state, it should go inter the interpreter
either as new element of the intrp struct or as iglobal
(For iglobal we also need a PMC, right?) 17:13
Also, the profile output shouldn't go to stderr IMHO
it should open a file, like valgrind --tool=callgrind does 17:14
And then there's the rdtsc issue 17:15
maybe that should be some option, the default could be Parrot's hires timer
so, still a couple of things to discuss and decide 17:16
whiteknight okay. Can we add the static profile state variable to the runloop structure?
i dont remember if we have space there
mls As long as it's shared with nested runloops
But what about multiple interpreters? 17:17
anyway, I really gotta go now. Talk to you tomorrow...
dalek kudo/nom: b9ad532 | jnthn++ | src/Perl6/ (2 files):
Be smarter about string constants, so we avoid various expensive unboxes when we should just have a PIR-level string constant.
17:18
kudo/nom: 884113e | jnthn++ | src/core/Any.pm:
A missing explicit unbox.
cotto_work whiteknight: sure. The only caveat is that GCables past the end of the default profile runloop struct need special treatment. 17:19
whiteknight is the static profile data a GCable? 17:20
cotto_work not now
dalek p: 17c38b2 | jnthn++ | src/PAST/NQP.pir:
Flesh out typed variants of some NQP ops.
17:22
cotto_work whiteknight: any luck with that kill_threads test failure? 17:23
whiteknight cotto_work: I haven't looked at it today 17:27
we may want to hold off a little bit anyway. nine is trying to bring gsoc_threads branch up to date with master and seeing enough issues already without that coming out from under him 17:28
dalek nxed: 6df8847 | NotFound++ | winxedst1.winxed:
put indexed expr special case for string into a separate class
cotto_work whiteknight: wfm
17:30 benabik joined
dalek kudo/nom: fce9f45 | jnthn++ | tools/build/NQP_REVISION:
Get latest nqp:: ops.
17:33
kudo/nom: 8620e9c | jnthn++ | src/core/Any.pm:
Further optimize Any so it does not create loads of intermediate Parrot String objects only to immediately throw them away.
kudo/nom: 67ff893 | jnthn++ | src/core/Capture.pm:
Optimize Capture.Str.
17:43 JimmyZ joined 17:49 fperrad joined
dalek nxed: ce91c38 | NotFound++ | winxedst1.winxed:
implement emit_getint in IndexedExpr to generate get_integer_keyed in uses like: a[1] | i
18:16
18:19 Coke joined 18:23 contingencyplan joined 18:37 Kulag joined
dalek sella: c39b657 | Whiteknight++ | s (2 files):
Add in a default harness, installed as 'rosella_harness'
19:03
sella: 3924380 | Whiteknight++ | .gitignore:
Update .gitignore to exclude the generated binaries
nxed: 3bda9c8 | NotFound++ | winxedst (2 files):
operator ~ (bitwise not)
19:20
kudo/nom: 07991fb | jnthn++ | src/Perl6/Actions.pm:
Avoid a bunch of common nested runloops.
19:23
kudo/nom: 843aa4e | tadzik++ | src/Perl6/Actions.pm:
Merge branch 'nom' into wherefore-gc-bug
19:33
19:48 benabik joined
benabik o/ 19:54
20:00 wagle joined
dalek kudo/nom: 8e3408f | jnthn++ | src/pmc/perl6lexpad.pmc:
Optimize lexical lookup/storage a little.
20:04
cotto_work quiet day today 20:05
whiteknight not if you're jnthn and the code he's optimizing 20:15
tadzik I can hear the code crying. Loud 20:16
"please, please, I want to be big and heavy again!"
dalek p: de51c5d | jnthn++ | src/PAST/NQP.pir:
Add an nqp::concat_s.
20:17
kudo/nom: 9608337 | jnthn++ | / (2 files):
Fix inefficiency in infix:<~>.
20:23
Coke is self-optimizing. Quite annoying. 20:36
near as I can tell, it involves lots of green leafy things and my arms hurting. 20:43
20:49 TonyC joined
Coke should we add muddle to dalek? 20:53
also, muddle runs on windows. yay.
(really, mojolicious, morbo, and sqlite3 run on windows, and I'm just along for the ride.) 20:54
20:55 nopaste joined
dalek rrot: cd11927 | NotFound++ | src/pmc/parrotinterpreter.pmc:
The answer to the XXX question is "yes"
20:57
cotto_work NotFound++ # excellent use of science 20:58
21:05 perlite_ joined 21:15 jsut joined 21:20 soh_cah_toa joined 21:27 Coke joined 21:42 rfw joined
dalek nxed: c307a83 | NotFound++ | winxedst1.winxed:
refactor DeclareBase amd its child to DRY a bit
21:58
22:04 wagle joined 22:17 Coke joined 22:22 wagle_ joined
dalek rrot/kill-useless-defaults: d58e972 | plobsing++ | t/pmc/resizablepmcarray.t:
RPA does *not* provide a meaningful implementation of get_pointer. This test was misleading, and now broken
23:38
rrot/kill-useless-defaults: 16b0e63 | plobsing++ | / (7 files):
add get_id op to satisfy nqp's usage of get_addr without necessarily using raw pointers
rrot/kill-useless-defaults: e42882f | plobsing++ | / (2 files):
update p6object to use new get_id opcode for uniquely identifying PMCs
rrot/kill-useless-defaults: 57d79de | plobsing++ | t/src/extend_vtable.t:
test get_pointer on something that is actually pointer-like
cotto ~ 23:46
plobsing o/ 23:52
dalek rrot/kill-useless-defaults: 0473ba6 | plobsing++ | src/hash.c:
[codingstd] cpp comments
23:56