Parrot 3.9.0 "Archaeopteryx" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 19 October 2011.
dukeleto whiteknight: have we updated api.yaml with all the changes from the green_threads merge? 00:07
dalek rrot: 6078766 | dukeleto++ | DEPRECATED-branch.pod:
Remove DEPRECATED-branch.pod which came in on the green_threads merge
00:08
00:49 benabik joined
ingy hi dukeleto 01:14
dukeleto ingy: wazzup 01:55
ingy dukeleto: nuttin hunnee 01:57
dukeleto: I volunteered to speak at the Dec pdx.pm
but I'll get to pdx before then 01:58
dalek rrot-libgit2: 1dfe1d8 | dukeleto++ | / (4 files):
Get closer to fixing #8
02:30
02:34 benabik joined 03:03 nbrown_ joined 03:07 contingencyplan joined, tewk joined 03:22 tewk joined 04:29 tewk joined 04:41 tewk___ joined 05:17 benabik joined
bubaflub msg dukeleto i have some spare time, i can help with libgit2 if ya need it. feel free to shoot me an email or message with where you want me to look 05:21
aloha OK. I'll deliver the message.
benabik ~~
06:33 tewk_ joined
dalek kudo/nom: 36d8299 | moritz++ | tools/build/NQP_REVISION:
bump NQP revision to get a parrot with green threads (just for testing)
07:14
snarkyboojum there is only one test for day04 for advent2010? 09:33
or one enabled test...
dalek kudo/role_diamond: 2f2a5b7 | moritz++ | src/Perl6/Metamodel/RoleToRoleApplier.pm:
try to fix role diamond compsition: a method should never conflicit with itself.

Regresses the RT #72856 tests in t/spec/S14-roles/composition.t
09:35
snarkyboojum perhaps a requirement for this year's advent calendar would be to write a test suite first *ducks* 09:37
09:38 fperrad joined
snarkyboojum I wonder if macros will make it into such a thing ;) 09:40
moritz snarkyboojum: (wrong channel, should be #perl6) 10:07
snarkyboojum moritz: whoops
moritz snarkyboojum: I don't think that adding a barrier to contribution is a good thing
10:15 jsut joined
dalek rrot: 874cd8f | moritz++ | MANIFEST:
update MANIFEST, DEPRECATED-branch.pod is gone
10:22
10:45 mj41 joined 10:59 nbrown joined 11:02 fperrad joined 11:15 whiteknight joined
whiteknight good morning, #parrot 11:25
nine good morning, whiteknight 11:31
whiteknight hello nine. How are you doing today? 11:32
nine Just fine, ready for action
whiteknight awesome. I like action 11:33
you got your new threads branch on github?
nine I do
11:38 Psyche^ joined
dalek p/bigint: dfd536f | moritz++ | src/ops/nqp_bigint.ops:
wrap more libTomMath subs in dynops
12:05
p/bigint: 93dc058 | moritz++ | src/PAST/NQP.pir:
add nqp::<matop>_I opcodes for bigints
p/bigint: 05755ba | moritz++ | src/ (3 files):
add bigint comparison ops; load nqp_bigint_ops by default
p/bigint: 879b700 | moritz++ | src/NQP/SymbolTable.pm:
set up bigints at startup
nine whiteknight: I synced my green_threads branch with master and backported the patch moving enable_preemption and enable_scheduling to private flags (slipping in a fix for your codingstd violation) 12:20
whiteknight: there's now a Parrot_cx_preemption_enabled for consistency 12:21
dalek p/bigint: f3d73f0 | moritz++ | t/nqp/60-bigint.t:
add bigint test file -- 5/9 fail
12:24
p/reprapi2: 1167c9f | jnthn++ | src/6model/sixmodelobject.h:
Extend the REPR API a little in preparation for supporting inlining of more complex types in objects. Most immediately this is for bigint support, but it's also the basis for compact structs, and later compact arrays and nested structs in NCI.
12:26
p/reprapi2: adaffcc | jnthn++ | src/ (15 files):
First small step of the move to a new REPR API. This splits out instance_of out into allocate and initialize, and starts to make the differentiation between full objects and one object flattened into another's body. Various other updates so we can build/pass NQP test suite still.
p/bigint: a5a450c | moritz++ | src/ops/nqp_bigint.ops:
save a GCable in nqp_bigint_div, jnthn++
13:22
14:21 bluescreen joined 14:24 nbezzala joined
dalek p/reprapi2: bea2110 | jnthn++ | src/ (12 files):
This step of the representation refactor switches [get|set]_[int|num|str] over to the new API. We temporarily lose a few error checks, which will get moved elsewhere. Also P6opaque needs further updates to handle these in a more delegatory fashion. Builds and passes NQP tests.
14:27
14:36 JimmyZ joined
dalek p/reprapi2: 4035569 | jnthn++ | src/6model/ (8 files):
We'll use a common way, encased by a couple of macros, to flag type-object-ness now. This introduces them and makes a start at ensuring sure we consistently flag type objects as being so.
14:52
p/reprapi2: 065622f | jnthn++ | src/ (12 files):
Eliminte defined from the REPR API; now it's all done through the IS_CONCRETE macro.
umage: 587eea2 | fperrad++ | src/lib/Plumage/NQPUtil.nqp:
fix after merge branch 'green_threads'
15:04
p/reprapi2: 52e8a70 | jnthn++ | src/ (9 files):
Update GC marking to new API. For the representations, this is a simplification; they don't have to duplicate marking the common bits. Some lose their mark routines entirely.
15:11
p/bigint: b2263f6 | moritz++ | src/ (2 files):
lcm, gcd
15:21
p/bigint: 216ecda | moritz++ | tools/build/Makefile.in:
[build] missing dependency on P6bigint.{c,h}
p/bigint: cbd6c19 | moritz++ | / (2 files):
make P6bigint {set,get}_int accept negative numbers

For some reason the get_int variant doesn't seem to work (returns only positive numbers), though I don't understand why
p/reprapi2: 2c9bafd | jnthn++ | src/ops/nqp.ops:
Re-instate the checks to make sure we don't try and unbox type objects, but this time at the op level (so it needn't be factored in to every single repr).
15:23
p/reprapi2: 4f25688 | jnthn++ | src/ (9 files):
Rename repr data marking functions to actually be clear about what they do.
15:30
p/bigint: 46221b1 | moritz++ | t/nqp/60-bigint.t:
fix some of the bigint tests
15:33
p/reprapi2: 5cb979a | jnthn++ | src/ (9 files):
Replace all value type attribute lookups with a common approach; this means we'll be able to use it for getting hold of more complex nested value types too.
16:07
p/reprapi2: fcd3f85 | jnthn++ | src/ops/nqp.ops:
Get ops to check they're not looking up attributes in a type object, so we don't have to spread this over all the reprs.
p/reprapi2: 815ede2 | jnthn++ | src/6model/reprs/ (2 files):
Remove a couple of now unrequired checks.
16:10 whiteknight_ joined
whiteknight_ good afternoon, #parrot 16:11
nine whiteknight_: good afternoon. Read my message from 12:20 UTC? 16:12
whiteknight_ nine: okay, nice 16:15
Like I said, flags do save us a pointer dereference. Of course, they're a little bit less obvious and require lots of documentation, etc
nine: the Sub PMC is a great example of a PMC that uses flags but they aren't well documented 16:16
nine whiteknight_: do you see any reason why the headerizer would completely ignore this function? paste.scsys.co.uk/154970 16:19
whiteknight_ nothing obvious
can you try putting a newline between static and PMC*? 16:20
or moving the * closer to the PMC?
(i'm taking wild guesses)
nine Unfortunately no success. Strangely enough the definition looks almost identical to: 16:21
PARROT_CAN_RETURN_NULL
static PMC *
Parrot_thread_make_local_copy(PARROT_INTERP, ARGIN(Parrot_Interp from), ARGIN(PMC *arg))
which was no problem
Oh, I think it's not ignoring the function, but the file 16:26
benabik o/ #parrot 16:29
whiteknight_ nine: if it's ignoring the entire file, that's probably a makefile issue 16:31
nine Good evening, benabik
whiteknight_ the headerizer rule in the makefile takes a list of .o files from one of the makefile variables
hello benabik 16:33
nine whiteknight_: Makefile looks sane, srv/thread.o is listed. But the headerizer can't read it if it's not there because the file does not compile because of the missing forward reference... 16:35
16:36 bluescreen joined
benabik nine: Add the reference manually and then run headerizer? 16:37
nine benabik: did that just now. It worked in so far as the headerizer processing the file again. But it just removes my manual additions 16:38
whiteknight_ headerizer is a fickle mistress 16:47
she giveth, and she taketh away
moritz when is @cc_o_out@ in the parrot Makefile set to something non-empty? 17:55
whiteknight_ moritz: I have no idea. Ask kid51 or Coke 17:56
all that configure/makefile stuff is like a foreign language to me 17:57
moritz oh 18:00
it's the '-o' that you need tell the compiler where to put files
dalek p/bigint: 2f16a24 | moritz++ | src/6model/reprs/P6bigint.c:
fix C89 violation
18:50
p/bigint: 1bede84 | moritz++ | tools/build/Makefile.in:
[build] separate rules for libtommath files

That way unnecessary rebuilds of .o files are avoided, and we can parallelize the build process with `make -j3` etc.
p/bigint: 04fbeb4 | moritz++ | tools/build/Makefile.in:
[build] I should not use variables that I do not understand :-)
19:07
p/bigint: 154d613 | moritz++ | src/ops/nqp_bigint.ops:
fix nqp_bigint_to_str (was adding \\0 at the end)
19:27
p/reprapi2: b40e7bc | jnthn++ | src/ (10 files):
Switch to new API for looking up boxed attributes. Note that P6opaque needs to handle it a bit smarter, but this is a start.
19:42
kudo/role_diamond: 8e75858 | moritz++ | src/Perl6/Metamodel/RoleToRoleApplier.pm:
add missing sigil, jnthn++. Sadly it does not fix the problems with composition.t
19:51
p/reprapi2: 0fd5c74 | jnthn++ | src/6model/sixmodelobject.h:
Add new copy_to operation to the REPR API.
20:22
p/reprapi2: 337cd40 | jnthn++ | src/6model/reprs/ (7 files):
Implement copy_to methods for all the reprs; untested.
NotFound ~~ 20:40
cotto ~~ 20:48
20:55 contingencyplan joined
nine benabik: finally I found the source of my headerizer problem 20:59
benabik nine: Oh? 21:00
nine benabik: a single space in an empty line preceeding the function.
tadzik eek
benabik ...
:-P
nine benabik: the funny thing is that I even configured my vim to mark these in blood red but for some reason it just didn't do it for this file 21:01
benabik: should I patch the headerizer to ignore these or at least warn about them? The warning would trigger on quite a few files though 21:03
benabik nine: Feels like a bug in headerizer to me. 21:05
nine: If you can make it work in that case, do it. :-)
nine I think it's both a bug in the headerizer and bad style to leave trailing whitespace...
benabik I think there's supposed to be a test for that in codingstd 21:06
dalek p/reprapi2: 0225bd8 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Start refactoring the way P6opaque handles flattened in attributes; mostly this prepares for getting box/unbox righter and storing s-tables of flattened in things.
21:09
p/reprapi2: 648845a | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Box/unbox operations in P6opaque now delegate to the representation managing that flattened attribute.
nine benabik: paste.scsys.co.uk/155170?tx=on&...rmat+it%21 21:13
tadzik this headerizer does not look very whitespace-friendly
nine tadzik: whitespace is only one of the problems... 21:14
cotto there's a codingstd test for trailing space, but you wouldn't think to run it when debugging headerizer specialness
*spaces 21:15
nine cotto: I run fulltest before every commit. But I can't test if I cannot compile and cannot compile till the headerizer did its work...
cotto nine, exactly
a patch to headerizer wouldn't raise any eyebrows. everyone gets scars from dealing with it
+1 if you were annoyed enough to write one 21:18
nine cotto: paste.scsys.co.uk/155170?tx=on&...mat+it%21+ 21:19
cotto: paste.scsys.co.uk/155170?tx=on&...rmat+it%21
NotFound -1 for special-casing common mistakes in headerizer. 21:24
It's already ugly enough.
nine NotFound: this cost me three hours and a lot of motivation. The trailing space would have been cought later on by a coding std test anyway. Do you really think it's better to waste so much instead of adding a trivial patch to the regex? 21:26
NotFound nine: if you have a time machine and send the patch back in time, fine. If not, your time is already wasted. 21:28
benabik NotFound: So the next person who screws up trailing whitespace can do the same?
nine NotFound: and you think this will be the only time that someone tries to copy&paste code out of a patch and only removes the +- but forgets about space in the first column?
NotFound The next person may watse its time because of unexpected consequences of a too quick fix. 21:29
We all know that headerizer is a ugly beast. IMO, write a better one or leave it alone. 21:30
nine NotFound: I just improved it.
NotFound It that space is wrong, leaving it pass without any error or warning is not an improvement for me. 21:32
nine NotFound: a better headerizer is one that can deal with more things that C allows. C allows trailing space. My patch allows the headerizer to deal with trailing space. 21:33
NotFound: but of course if its more important to you to waste hours and frustrate programmers, feel free to just ignore the patch and keep waiting for a perfect headerizer. 21:34
NotFound: I for one will not waste any more time on Parrot today.
NotFound nine: a generic headerizer for C, maybe. This one is just for parrot.
nine msg whiteknight sorry for wasting your time with my headerizer problem. Was a trailing space on an empty line and my copy & paste fault. Trivial patch in paste.scsys.co.uk/155170?tx=on&...rmat+it%21 could have prevented it, but its usefulness for Parrot seems to be controversial. 21:40
aloha OK. I'll deliver the message.
Coke I don't think letting headerizer ignore coding standard violations is a problem. That's not it's job. 21:56
(didn't read patch)
21:59 nbrown joined
dalek p/reprapi2: 281bfbf | jnthn++ | src/ (11 files):
Make allocate operation more consistent with the rest of the API. Get P6opaque's get_attribute_boxed handle the flattened case (untested yet, but probably rightish).
22:05
p/reprapi2: 8f536de | jnthn++ | src/ (9 files):
Switch binding of natively typed attributes over to the new REPR API. Seems to work fine.
NotFound Coke: I'm not going to say even one more word about that. 22:08
dalek rrot: f71e980 | jkeenan++ | src/pmc/task.pmc:
[codingstd] No space before open paren.
22:13
22:17 kid51 joined
dalek rrot: 847615f | jkeenan++ | src/pmc/task.pmc:
Merge branch 'master' of git@github.com:parrot/parrot
22:18
p/reprapi2: a76cd8b | jnthn++ | src/ (10 files):
Switch normal attribute binding over to the new REPR API.
22:31
22:37 jsut_ joined
dalek p/reprapi2: b446492 | jnthn++ | src/ (9 files):
Update hint_for for consistency with the rest of the REPR API.
22:44
whiteknight nine: I configure my editor to automatically remove trailing whitespace when I save a document. Not all editors do that, but I greatly enjoy it 22:52
dalek p/reprapi2: 7218de5 | jnthn++ | src/ (9 files):
Update is_attribute_initialized to be consist with the rest of the REPR API.
22:53
whiteknight lots of nqp action today 22:54
the more important change to headerizer would be to say *why* certain function definitions were rejected. Of course, Headerizer doesn't parse. It uses brain-dead regexes so such diagnostics are not likely 22:56
headerizer is what it is, and if we're serious enough about fixing the shortcomings we're going to have to rewrite it eventually
sorear but we have a C parser now
whiteknight sorear: for some value of "C parser" and "we have" 22:57
the C parser would need to be expanded, would need to be taught a lot more about macros (I can't imagine our current parser is going to handle PARROT_INTERP and ARGIN()/ARGMOD() macros, etc) 22:59
or ASSERT_ARGS(), which by convention should *not* be followed by a semicolon unlike most other C statements
(and ASSERT_ARGS is also expected to come before variable declarations, despite C89 requiring that no code comes before the declarations) 23:00
dalek Heuristic branch merge: pushed 17 commits to parrot/threads by Whiteknight 23:08
whiteknight msg nine I am mirroring your threads branch on parrot/parrot. I'll follow along from there.
aloha OK. I'll deliver the message.
23:22 alester joined 23:36 rfw joined