#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: fix line number annotations | Finish GSoC applications
Set by moderator on 6 April 2010.
00:00 hercynium joined
whiteknight on more than one occasion I've had a question, googled for it, and found th answer on a page I wrote 00:01
00:07 brooksbp_ joined 00:15 Andy joined 00:22 snarkyboojum joined
dalek kudo: 8b256a9 | (Solomon Foster)++ | src/core/operators.pm:
Fix series operator bug in the initial elements of a series.
00:31
Coke (votes on proposals) I haven't received any instructions on voting this year as we have in the past, so I haven't voted at all. 00:39
dukeleto Coke: yeah, i haven't really given instructions on voting, i guess 00:40
whiteknight: what do you mean by HLL map FileHandle? 00:41
whiteknight dukeleto: make your own filehandle type, HLL map it so IO ops use your type instead of FileHandle, and use it to throw exceptions on all operatoins you want to restrict 00:42
dukeleto whiteknight: interesting. how do I "HLL map" something? I need this in PIR 00:45
00:55 abqar joined
Coke dukeleto: github.com/partcl/partcl/blob/maste...st.pir#L19 00:56
dukeleto Coke: that looks interesting, but I don't think that helps me block people from accessing the FileHandle PMC from PIR 00:58
Coke: end users will be writing stored procedures in PIR and I need to disallow certain ops 00:59
Coke: the method you are showing me would work for HLL's running on top of PL/Parrot, though
Austin Dukeleto: Why not just register a different class on that name? 01:00
Coke dukeleto: it was in answer to "how do I HLL map something." 01:02
nopaste "Austin" at 68.37.47.32 pasted "For DukeLeto++: Replace FileHandle with something less accomodating" (15 lines) at nopaste.snit.ch/20248 01:14
whiteknight dukeleto: I'm just trying to find an elegant solution to the problem, especially without adding a huge runtime cost for every op to check that it's permissable before it's executed, every time it's executed 01:18
so we don't want to add checks to the runloop or even to the ops themselves to see if they are permissable, because that adds a huge cost to the common case 01:19
dukeleto Austin: that is an idea
whiteknight We could overwrite entries in the optable and replace them with exception-throwing stubs, but that adds huge complexity
dukeleto whiteknight: i am fine with removing/replacing ops once at PIR-compile-time
Austin As far as I can tell, if you get there first, you're done. Nobody can create a FileHandle, since the connection from string to class is made through that hash. They'd have to do it in C.
whiteknight well, that's an idea too. Add logic to IMCC to not emit certain ops 01:20
if Ops are basically wrappers around PMCs, we can replace offending PMC types with harmless replacements
dukeleto yeah, removing ops from the actual parrot binary is probably safest 01:23
Austin: so, I am assuming that I can do what you did there in PIR and basically override the FileHandle PMC ?
Austin Sure. NQP <= PIR. 01:24
Just change the numbers in the interpreter's class hash ( [0] ) to indicate a different pmc type.
Including a custom pmc-type that is a class in whatever language you want, like NQP, as shown.
The funnest part would probably be to replace FileHandle with StringHandle. 01:25
Or maybe permit reading but not writing..
Whatever your evil little heart desires... :)
dukeleto Austin: :) . Basically I want to disable all filesystem access, but yes, much more fun/evil stuff is possible 01:26
Austin Well, there's the possibility that other PMCs might permit filesystem access. 01:27
dukeleto Austin: I will hunt them
Austin There's also the possibility that you might need to re-enable filesystem access for loading bytecodes and such.
(for example, dlopen(NULL) can access parrot internal C functions)
01:27 whiteknight left
dukeleto Austin: hadn't thought of that. makes life a lot more fun 01:28
Austin Yeah, this thing isn't really designed for secure.
01:31 leprevost joined
dukeleto Austin: the sooner Parrot starts thinking about security, the easier it will be 01:35
Austin: i wonder how PL/Perl deals with the issue of stored procedures loading libraries
Austin Probably a different approach to security. 01:36
If you've got access to developing and running stored procedures, you're probably already too far in for us to worry about securing ...
nopaste "plobsing" at 69.172.106.100 pasted "stringnull spooky action at a distance" (19 lines) at nopaste.snit.ch/20249 01:52
01:54 snarkyboojum joined
dukeleto Austin: i hear what you are saying, but being able to sandbox resources is a big win for sysadmins and DBAs 02:03
tcurtis dukeleto: also for the subset of hosting companies that allow databases and executing code on the server but don't want to allow actual direct access to the server. 02:13
02:19 kid51 joined
kid51 msg moritz Can you try un-kicking purl? 02:23
02:23 eternaleye joined
kid51 Oops, no purl -> no message storing. 02:24
02:26 petdance joined
petdance who is peter lobsinger and does he IRC? 02:30
plobsing me and yes 02:33
petdance hey 02:37
I liek what you're doing 02:38
I'm hacking interpreter.h to make STRING_IS_NULL like PMC_IS_NULL
and I think we will all be happy
plobsing the dual life thing is a good idea. 02:39
if you're looking to do that, you'll also want to disable src/string/api.c:323 in the same pass
s/disable/conditionally disable/ 02:41
petdance yeah
why do we have both str_is_null and string_is_null? 02:42
02:42 janus joined
plobsing no idea 02:43
I've been using the macro
petdance ok, working on it
running a compile
will commit when all is well
i'm on the branch, natch.
tests pass, committed 03:02
plobsing sweet.
how do I enable STRINGNULL = NULL ?
petdance turn off PARROT_CATCH_NULL 03:05
oh whoops
Austin Dukeleto: I don't think you heard what I was saying. :) It was an answer to your question about how plperl does it - I was hypothesizing that they didn't worry too much about it.
dalek rrot: r45576 | petdance++ | branches/stringnull (2 files):
Make the STRING_IS_NULL stuff behave like PMC_IS_NULL
03:06
plobsing hmmmm... dissabling PARROT_CATCH_NULL causes some major build failures 03:08
petdance I wonder if it's actually gonna be faster to NOT be checking against STRINGNULL
plobsing: Yeah, I see those, gonna work on 'em when I get home.
plobsing petdance: checking against stringnull is a possible cache miss, so conceivably not checking might be faster 03:10
petdance But also don't most processors opitmize comparisons to zero?
plobsing that too
hmmm... easy fix: define STRINGNULL same as PMCNULL for when CATCH_NULL is off. 03:11
miniparrot now builds. not so easy problem: things depend on libparrot exporting PMCNULL and STRINGNULL 03:12
problem with Null.set_pointer - you can set PMCNULL to an arbitrary value 03:17
dalek rrot: r45577 | petdance++ | branches/stringnull/include/parrot/interpreter.h:
final tweaks of some macros
03:22
rrot: r45578 | plobsing++ | branches/stringnull/include/parrot/interpreter.h:
define STRINGNULL when CATCH_NULL is disabled
petdance back in 15
dalek rrot: r45579 | plobsing++ | branches/stringnull/src/interp/inter_create.c:
only set PMCNULL to NULL if it is a real symbol
03:38
03:39 petdance joined
petdance back 03:41
plobsing petdance: I've got most of the build issues fixed. But I'm having a tough time on Null.pmc
03:41 petdance_ joined
plobsing petdance_: I've got most of the build issues fixed. But I'm having a tough time on Null.pmc 03:41
petdance_ how are you building? 03:42
plobsing the problem is the singleton interface creates a new pmc header when get_pointer returns null - which it will do every time
with PARROT_CATCH_NULL = 0 03:43
sorear dagbrown, mendel, warewolf and kd <- I managed to extract a contact list from purl 03:46
plobsing then again, it doesn't really make sense to have a Null class when CATCH_NULL is false
petdance_ so does it fail the build or what? 03:49
I'm doing a build right now
plobsing it does fail. Null.pmc attempts to assign to PMCNULL which isn't an lvalue
I'm just pondering whether having Null.pmc around makes any sense considering it is merely the backing class for PMCNULL when it isn't NULL 03:50
plobsing segfaults his brain
petdance_ for now I think we can just #ifdef it out 03:53
yes?
plobsing fair enough. 03:54
petdance_ doing that now
plobsing I'm just beginning to wonder if maybe HLLs need pmcnull to be a real object. Ruby, for example, has methods on nil. 03:55
cotto dukeleto, piiiiiiiiiiiiiiiiiiiiing
petdance_ bah, a segfault 03:59
sorear petdance_: null != undef 04:00
plobsing: rather
maybe NULL should be removed. does any HLL actually use NULL?
most HLLs 'nil' maps to Parrot Undef 04:01
petdance_ our prob is that the str_init stuff isn't getting called, I think.
plobsing petdance_: my backtrace seems to show this is realated to ARGMOD() not allowing NULL 04:03
petdance_ where?
plobsing gdb --args ./miniparrot config_lib.pasm
which is where the build failed 04:04
petdance_ but why do you think the ARGMOD is bad, and which ARGMOD?
plobsing it fails with the message 'src/io/unix.c:310: failed assertion 'filehandle'
petdance_ why would it be OK to pass NULL into that? 04:05
oh wait, it's done wrong
plobsing yeah. I think that may be happening a lot with argument guards. 04:06
petdance_ ok hold on
shoot, I oughta fix it on trunk
well, wait
you really want to wait a week to merge to trunk?
plobsing nope, not really. I think this issue is independant.
and deserves its own branch.
cotto msg dukeleto Could you take a look at my public comment in the Perl 6/DLR proposal and post whether you think it'd be fine? 04:07
d'oh
petdance_ plobsing: I deal with it all the time, no need for a branch.
sorear When is the general public going to see the accepted project list?
04:09 chromatic joined
plobsing petdance_: so I'll merge this into trunk, after which it this issue can be resolved. is that ok? 04:09
petdance_ yeah
when you merging?
Now?
dalek rrot: r45580 | petdance++ | trunk/config/gen/makefiles/root.in:
fix the way SPLINTFLAGS is built
04:11
plobsing I'd like to give a chance for ppl to check their email and tell me that my ideas are wrong first. ~24 hours notice is my rule of thumb minimum.
so ~22 hours from now 04:12
petdance_ :-( 04:13
ok, then I'm gonna merge up one of my commits.
04:17 darbelo joined
petdance_ two of 'em. 04:23
darbelo Hm, does anyone actually use the 'lint' make targets? 04:24
04:25 bacek_at_work joined
petdance_ yes 04:25
you mean splint?
darbelo No, I meant lint, sunlint and bsdlint.
petdance_ And I would love to get the Solaris lint working. 04:26
yes, I do.
I created them, and would love to have them be consistently usable.
darbelo I'm on (Open)BSD and bsdlint doesn't work at all.
petdance_ ok
dalek rrot: r45581 | petdance++ | trunk/src/io/unix.c:
fix the annotation for Parrot_io_fdopen_unix. consting.
04:27
rrot: r45582 | petdance++ | branches/stringnull (83 files):
merging up some changes from trunk that Andy needs for build problems
plobsing petdance_: you aren't Andy? 04:29
petdance_ yes
but Andy is logged in at work
plobsing fails at names
darbelo There's also another Andy that shows up from time to time. 04:30
petdance_ AndyA is Andy Armstrong.
I'm the one who does ack and WWW::Mechanize and perlbuzz.com
darbelo I was thining of Andy Dougherty, so add a third one ;) 04:31
petdance_ oh that one yeah 04:32
plobsing ah! too many andy's!
you must battle to the death! there can be only one!
petdance_ OK, i win.
the others lose by default
darbelo petdance_: I'm guessing bsdlint is meant to work with the FreeBSD one, right? 04:34
petdance_ yes
plobsing petdance_: r45582 merges some changes from stringnull yes? if so which commits so I don't double merge tomorrow? 04:35
petdance_ svn takes care of that for you.
darbelo Ha!
cotto good punchline 04:36
petdance_ but 45580-45581
Has always done fine for me.
plobsing orly? That's much more pleasant than any of my experiences with svn.
darbelo petdance_: People stare at me when I say that of CVS ;)
petdance_ ok, i'm done on the stringnull branch, unless you tell me to do otherwise 04:37
plobsing nope, I think that little tangent is done
petdance_ So really, at this point, I didn't need to merge those up. :-) 04:38
plobsing petdance_: I'm curious, does consting local variables make a difference? Can't all but the most naive compilers detect the single assignment? 04:42
petdance_ "make a difference" how?
plobsing I assume consting is for performance
petdance_ No
Safety
Clarity
"This is set once, it shouldnt' be modified below"
darbelo It might help the compiler a bit, but I wouldn't really count on it spped-wise. 04:43
petdance_ Not the intent at all 04:44
darbelo s/spped/speed/
petdance_ I LOVE SPLINT 04:45
dalek rrot: r45583 | petdance++ | branches/stringnull/include/parrot/gc_api.h:
remove redundant declarations. Thanks, splint!
petdance_ what happens if you pass NULL to parrot_hash_destroy
plobsing same as divide by zero - universe explosion
darbelo A kitten gets devoured. 04:46
chromatic I read your code and say "That's the problem right there. Why are you doing that?"
petdance_ Do we want parrot_hash_destroy to not accept NULL?
the opposite of how free() sees it?
I will make up an ARGFREE_NOTNULL macro 04:47
chromatic +1
plobsing petdance_: consistency would argue for an ARGFREE_NULLOK macro
also I like my bikesheds blue 04:48
petdance_ yes, but
for ARGIN and ARGMOD and ARGOUT, non-null is the rule, not the exception
the opposite of ARGFREE
plobsing maybe its observation bias, but I've seen a lot of 'if (x) free(x)' 04:49
even though its redundant
petdance_ not in parrot that I've seen
plobsing true
chromatic It's common in destroy VTABLEs. 04:50
sorear plobsing: despite being specifically allowed by C89, free(NULL) segfaults on many legacy OSes 04:55
perl 5 has a Safefree macro which automates the check on bad libcs
Chandon Wait a second, free(0) is guaranteed legit in C89? 04:56
sorear only if free has been declared in the current scope 04:57
petdance_ and we specifically don't care if you free(0)
we = Parrot
Chandon Neat. Learn something new every day. 04:58
sorear 4.10.3.2. "If ptr is a null pointer, no action occurs. Otherwise..."
chromatic How cute, a C standard.
petdance_ you're showing your age, Chandon.
sorear from flash-gordon.me.uk/ansi.c.txt <- bookmark references like these
the drafts are perfectly adequate for stuff like this 04:59
if you're really paranoid, check both final drafts. if it was true in 1988 and 1998, it was probably true in 1989
plobsing sorear: if your C library is that bad, you've got it coming 05:00
chromatic I am Jack's broken vendor library. 05:01
petdance_ Of course it's company policy never to, imply ownership in the event of a segfault. Always use the indefinite article, "a segfault", never "your segfault." 05:04
sorear Is the protocol VTABLE_iter return values are expected to implement documented anywhere?
chromatic Blame must always be assigned by passive voice.
plobsing Is there a good way to get a memory buffer in parrot? I've been toying with the idea of adding an allocate method to ManagedStruct. 05:11
sorear mem_sys_alloc
plobsing sorear: from a hosted language 05:12
although I suppose you could dlfunc it
sorear er, isn't ManagedStruct a PMC?
can't you just add an allocate METHOD? 05:13
plobsing why not?
PMCs can have methods
sorear right
IMO it's a "good way"
plobsing that's all the confirmation I need. 05:14
sorear wooh, I'm relevant now
chromatic You shouldn't even need to go that far.
plobsing hmmm.... set_integer_native already sort of does what I want - but backwards 05:16
it expects you to know how many bytes a struct will take
I'd rather tell it the shape of my struct and then to allocate 05:17
chromatic Consider this part of the NCI system that needs some rethinking.
dalek rrot: r45584 | gerd++ | trunk (2 files):
Delete the separate makefile: docs/Makefile.pdf
plobsing I do. In fact the (Un)?ManagedStruct interface probably needs more work than the dlfunc interface
plobsing Can I just deprecate the whole subsystem?
chromatic Not without breaking way too much.
plobsing it almost seems it would be easier to enumerate the changes i *don't* want to make to the NCI system 05:23
sorear The most important feature of an NCI system is that it work now.
plobsing it does, fsvo work 05:24
sorear After all, if we had infinite time, we'd just rewrite all the world's software in Perl 6 and make Lorito as good as gcc
(or other Parrot-hosted language)
Austin sings, "...the Scythians fell by the river Jaxartes, then Egypt fell to the Macedon king as well, and he founded the city called Alexandria!" 05:25
sorear Is there any documentation for iterators, or should I just copy what HashIterator does?
chromatic docs/book/pir/ch04_variables.pod 05:29
sorear Is there any documentation on documentation, or should I just ask here after searching docs/pdds and src/ops ?
dukeleto sorear: what do you want to know? 05:31
dalek rrot: r45585 | petdance++ | trunk (9 files):
Created the new ARGFREE_NOTNULL annotation
05:34
sorear dukeleto: answers to questions analagous to the one chromatic just answered, without bothering chromatic 05:35
chromatic ack -i searchterm docs/pdds 05:36
sometimes merely docs/
plobsing I mostly just 'lack searchterm' where lack = less + ack 05:39
sorear how do you combine less with ack?
petdance_ --pager flag 05:40
plobsing alias lack="ack --pager=less"
sorear hmm
I wonder what's wrong with my ack install, --pager= alone doesn't work
petdance_ ack --version ?
sorear 1.90 05:41
petdance_ 1.92 is latest
not sure that's your prob though
plobsing mine is 1.88 and it works fine
petdance_ yes, that's your prob. 1.92 fixes it
dalek parrot: 5fea30b | dukeleto++ | (2 files):
Update TODO and ROADMAP
05:42
petdance_ chromatic: what is "331ing"? 05:43
chromatic Banning the use of a technology because "it doesn't provide the quality experience we expect", a la His Jobsness. 05:44
petdance_ why 331?
sorear where did chromatic use the phrase? 05:45
petdance_ twitter.com/chromatic_x/status/12030544038
chromatic Because of Apple's iThing SDK agreement, section 3.3.1. 05:46
petdance_ link?
chromatic www.taoeffect.com/blog/2010/04/stev...ion-3-3-1/
dalek rrot: r45586 | petdance++ | trunk (2 files):
use the new ARGFREE_NOTNULL on default_destroy and PackFile_destroy
05:50
TT #1548 created by plobsing++: [DEPRECATION] new_callback_p_p_p_s 05:54
TT #1548: trac.parrot.org/parrot/ticket/1548
petdance_ chromatic: Thanks for the pointer. Reinforcing my not wanting an iPhone.
chromatic Yeah, I don't much want to get Steve Jobbed, myself. 05:55
06:07 uniejo joined
dalek TT #1549 created by plobsing++: [DEPRECTION] NCI for "raw" pointers 06:11
TT #1549: trac.parrot.org/parrot/ticket/1549
kudo: 0334df6 | plobsing++ | src/binder/bind.c:
use STRINGNULL tests where appropriate in bind.c

PMCNULL for pmcs. In the past it didn't get a lot of use, most null strings simply being set to NULL. I have recently created a branch in parrot to use STRINGNULL more extensively. My changes cause problems in C code that erroneously assumes null parrot strings are NULL, such as rakudo's binder.c. Closes RT #74272. Signed-Off-By: Moritz Lenz <moritz@faui2k3.org>
06:16
plobsing woot
06:19 fperrad joined
dalek rrot: r45587 | petdance++ | trunk/include/parrot/interpreter.h:
properly parenthesize macro
06:22
petdance_ holy cow, plobsing, the problems with the build were because PMC_IS_NULL was incorrect. See -r45587 06:23
plobsing ah, the joy of macros
I saw that and wondered
but then thought, if that caused the problems I think it would, we'd have bigger issues right now 06:24
petdance_ But we never build without PARROT_CATCH_NULL
I wonder if chromatic the benchmarker might find a speed increase with it off 06:25
06:27 snarkyboojum joined 06:28 fperrad_ joined
chromatic My instinct says no, but I'm curious. 06:28
dukeleto 'ello 06:42
dalek rrot: r45588 | gerd++ | trunk/MANIFEST:
Remove also 'docs/Makefile.pdf from MANIFEST
06:55
TT #1550 created by fperrad++: lexical lost when cloning a Sub 06:59
TT #1550: trac.parrot.org/parrot/ticket/1550
TT #1551 created by plobsing++: [DEPRECATION] UnManagedStruct handling nested structure
TT #1551: trac.parrot.org/parrot/ticket/1551
TT #1552 created by plobsing++: [DEPRECTION] UnManagedStruct initializer structure
TT #1552: trac.parrot.org/parrot/ticket/1552
TT #1553 created by plobsing++: [DEPRECATION] UnManagedStruct get_integer, set_integer_native
TT #1553: trac.parrot.org/parrot/ticket/1553
TT #1554 created by plobsing++: [DEPRECATION] ManagedStruct automatic resize on shape change 07:00
TT #1554: trac.parrot.org/parrot/ticket/1554
chromatic bacek, only 8 tests in coretest fail on the immutable string branch now. I fixed your least favorite substr op. 07:04
07:11 szabgabx joined 07:14 brooksbp joined
dalek rrot: r45589 | plobsing++ | trunk/DEPRECATED.pod:
NCI deprecations
07:14
rrot: r45590 | chromatic++ | branches/immutable_strings_part1/src/ops/string.ops:
[ops] Fixed substr_s_s_i_i_s op with correct (if complex) semantics.
rrot: r45591 | chromatic++ | branches/immutable_strings_part1/src/string/api.c:
[str] Tidied code and cleaned up some warnings; no functional changes.
rrot: r45592 | chromatic++ | branches/immutable_strings_part1/src/pmc/resizablepmcarray.pmc:
[PMC] Optimized ResizablePMCArray's push_pmc() to avoid unnecessary allocations.
rrot: r45593 | plobsing++ | trunk/DEPRECATED.pod:
mark NCI_FB_CB AND NCI_FB_UD as experimental
07:15 iblechbot joined 07:42 aukjan joined 07:46 payload joined 07:48 AndyA joined
dalek rrot: r45594 | gerd++ | trunk/config/gen/makefiles/root.in:
Add the "pdf" target also to the main makefile.
08:03
08:19 lucian joined
dalek tracwiki: v3 | fperrad++ | OSInterfaceAdditions 08:41
tracwiki: trac.parrot.org/parrot/wiki/OSInter...ction=diff
rrot: r45595 | mikehh++ | trunk/config/gen/makefiles/docs.in:
fix codetest failure - trailing whitespace
08:54
mikehh how can we get purl back - all the recent karma is not being recorded :-{ 08:56
moritz just tried /invite purl 09:02
09:07 clinton joined 09:14 Essobi joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33127), fulltest) at r45595 - Ubuntu 10.04 beta amd64 (g++ with --optimize) 09:20
mikehh can /query purl but she does not seem to be recording stuff - maybe slavorg needs to do something 09:25
09:30 mst joined
mst for reference. 09:30
if you want to quiet bots during a meeting
use a /voiceall script or something
unvoice the bots
then set +m
this is, in the long run, much less annoying than having to run around to get your bots back :) 09:31
mst hopes that idea saves you from hassle next time round, and bids good day
09:31 mst left, cognominal joined 09:52 purl joined 10:15 mikehh joined
bacek aloha 10:24
purl, hello
purl hola, bacek.
bacek good girl
purl thanks bacek :)
bacek msg chromatic r45590 - I do want to introduce op <replace> to support pure replace semantic... 10:31
purl Message for chromatic stored.
10:54 mst joined, mst left
dalek kudo: fd40e2a | (Martin Berends)++ | src/core/Temporal.pm:
[core/Temporal.pm] explicitly create a DefaultFormatter where implicitly was not doing it
11:01
kudo: 077325a | (Martin Berends)++ | build/Makefile.in:
[build/Makefile.in] add Temporal.pm back in following recent spec changes
11:24
bacek msg chromatic We down to one failing test on branch - reading utf8 in chunks. Whoo-hoo! (Yes, I removed few tests) 11:32
purl Message for chromatic stored.
dalek rrot: r45596 | bacek++ | branches/immutable_strings_part1/src/io/utf8.c:
Store updated string inside iterator after reading next chunk of data.
11:37
rrot: r45597 | bacek++ | branches/immutable_strings_part1/t/pmc/string.t:
Remove test for update string inplace.
rrot: r45598 | bacek++ | branches/immutable_strings_part1/t/op/string.t:
Remove test for update string inplace.
rrot: r45599 | bacek++ | branches/immutable_strings_part1/t/op/string.t:
Update exception message test.
rrot: r45600 | bacek++ | branches/immutable_strings_part1/t/op/string.t:
Remove inplace string update test.
rrot: r45601 | bacek++ | branches/immutable_strings_part1/t/op/string.t:
Remove string inplace update tests.
rrot: r45602 | bacek++ | branches/immutable_strings_part1/src/string/api.c:
Skip NULL strings in Parrot_str_join
rrot: r45603 | bacek++ | branches/immutable_strings_part1/src/string/api.c:
Fix compiler warning.
rrot: r45604 | bacek++ | branches/immutable_strings_part1/t/op/string.t:
Fix plan
bacek plobsing, ping 11:43
dalek tracwiki: v3 | bacek++ | PerformanceImprovements
tracwiki: Add branches for particular tasks.
tracwiki: trac.parrot.org/parrot/wiki/Perform...ction=diff
bacek msg plobsing Can you also deprecate OrderedHash.push_foo methods? They are exists only to support *ManagedStruct.init 11:46
purl Message for plobsing stored.
11:52 Mokurai joined
dalek rrot: r45605 | bacek++ | branches/immutable_strings_part1 (70 files):
Merge branch 'master' into str_local
11:54
rrot: r45606 | gerd++ | trunk/config/gen/makefiles/root.in:
Changes it to that, what I think, was the original intention. I tested the changes on Windows 7 with the Visual Studio 2010 Release Candidate in a configuration as a 32 bit environment.
plobsing bacek: do they really serve no other purpose? Using an ordered hash for NCI seems pretty silly considering it doesn't buy you anything over using an RPA 11:59
bacek plobsing, nope. OH.push_foo is ugly hack with auto-creating of invalid strings as keys 12:00
12:00 tetragon joined
plobsing bacek: I'd feel a little more comfortable deprecating them if they had a large "XXX: this is ugly" or something beside them, but push_foo does seem a little fishy 12:02
bacek plobsing, I can add such comments :)
plobsing why do we even have an ordered hash? 12:03
bacek msg chromatic We did it! "All tests successful"!!!
purl Message for chromatic stored.
bacek plobsing, in "core" or "in general"? 12:04
plobsing both, but mainly in core. 12:05
bacek It can be quite useful. E.g. "HLL" can store class parents in OH and iterate over it to find method overrides. (Rakudo used to have something like this but then Pm switched to List+Hash because OH was way too crappy) 12:07
And HLL_info stored in OH as well (just because we want to keep order of registered HLLs) 12:08
plobsing does it matter which order HLLs were loaded in/ 12:09
?
but fair enough, I'll file it under only mostly useless for the time being 12:10
bacek I don't know about value of HLL register order. It probably has some merits. 12:11
dalek rrot: r45607 | bacek++ | branches/immutable_strings_part1/src/io/utf8.c:
Update *buf after reading utf8 chunk from IO.
12:11 whiteknight joined
whiteknight good morning, parrot 12:12
bacek whiteknight, good morning Mr. Whitworth :)
whiteknight and to you, Mr. Chekalkin
bacek whiteknight, 1-1 :) 12:13
whiteknight you are a worth adversary :)
worthy* 12:14
plobsing bacek: removing push_* from OrderedHash causes some interesting deep-looking bugs in eg dynlexpad 12:15
bacek plobsing, ouch...
plobsing, hmmm... I can't spot any pushes in DynLexPad. 12:16
plobsing hmmm... looks like Parrot_register_HLL / new_hll_entry push to OrderedHash 12:21
not sure if they should be though
bacek plobsing, they shouldn't. Let me check 12:24
plobsing, hll.c +98 12:25
looks like we have to keep OH.push...
plobsing I really don't understand what that code is doing, so I'll take your word for it 12:27
bacek OH.push creates new string key "\\Xfoo" (where X == OH.keys) and save it. 12:29
Just "convenient" way to add records into OH without providing real key...
plobsing and then when I do have a real key I want to use and it conflicts by chance? 12:30
lovely
bacek plobsing, yeah... 12:31
\\X will create single character with code X, so it's virtually impossible to get conflict here. 12:32
Until you create about 30 "anonymous" entries... 12:33
dalek kudo: 862d42c | (Martin Berends)++ | src/core/Temporal.pm:
[core/Temporal.pm] update the now() constructor with timezone and DefaultFormatter
12:34
bacek msg chromatic Rakudo epically failing during make test on branch 12:44
purl Message for chromatic stored.
bacek And with this positive note I'm going to bed
Night all
13:08 iblechbot joined 13:09 dalek joined 13:27 atrodo joined 13:30 nopaste joined 13:33 mikehh joined 13:49 nopaste joined, patspam joined 14:05 ruoso joined 14:16 PacoLinux joined 14:18 aukjan joined, lucian joined
particle is far back in scrollback-land reviewing the pvds he missed 14:20
moritz particle: when you're done, please write a summary :-) 14:22
14:23 bubaflub joined
particle feh. i knew that was coming. 14:24
Coke I am not convinced about the change in trac usage, since we don't really have a workflow for our existing usage, but if someone is excited about it, +0 from me. 14:39
msg austin - holy crap, you did failindex too when working on [string] ? I owe you a beer. =-) 14:47
purl Message for austin stored.
dalek rrot: r45608 | petdance++ | trunk (2 files):
fixing annotations on functions
14:59
Coke tries to figure out an NQP problem.
with grammars and actions. 15:00
this test is failing: is [list \\{ \\}] {\\{ \\}} {braces} {TODO NQPRX}
Coke goes silent. 15:03
Coke woots as he figures it out. 15:10
15:17 theory joined 15:28 lucian joined 15:31 darbelo joined 15:40 khairul joined 15:45 tcurtis joined 15:51 tetragon joined 16:18 davidfetter joined 16:40 brooksbp_ joined 17:16 cotto_work joined 17:26 chromatic joined
dalek rrot: r45609 | darbelo++ | trunk/src (2 files):
Make sure we point at the of the string, which might not be the same as the start of the buffer after substring operations.
17:29
cotto_work still no purl? 17:30
purl i think no i am funky or a bit shy bot
cotto_work that answers that question
Coke silence purl? 18:02
purl sorry, mother....
Coke quiet purl?
quiet purl is See the IRC log for #parrot on 4/12/2010 from mst 18:03
18:05 whiteknight_ joined
darbelo quiet purl is also irclog.perlgeek.de/parrot/2010-04-12#i_2220863 18:05
purl okay, darbelo.
Coke darbelo: ... that's a better link, just replace mine. 18:07
chromatic msg bacek I have a patch to make Rakudo build against our branch, but can't find the error in a sea of debugging. We need to fix line numbers or get someone from #perl6 to have a flash of insight. 18:09
purl Message for bacek stored.
allison does anyone know if there's a way to shrink down the twitter box on parrot.org?
it's ginormous
allison wonders if it's time to take up a little more screen realestate on parrot.org, now that we have substantial content 18:10
Coke would prefer a theme that doesn't require a fixed width of the main content. 18:12
allison: you mean, height wise?
(yes, that widget is very editable.)
cotto_work it'd be nice if it fit in with the color scheme too 18:13
Coke www.parrot.org/admin/build/block/co...re/block/8
cotto_work: sure. 18:14
let me run a color picker...
chromatic Looks like the immutable strings branch is 4.842% faster on my Rakudo benchmark. 18:16
Still a ways to go.
cotto_work Coke: 0to255.com/
darbelo chromatic: How far do you think you can push that path?
chromatic I'd like another 2% 18:17
My estimate was 7%
Oh, but it's missing some trunk improvements, so it's a bad benchmark. Nice. 18:18
It's going to be close to 7%, when I fix that. 18:19
darbelo So, it's ~5% vs trunk, not vs branch point?
Even better.
chromatic Yes.
Coke cotto_work: how's that? 18:21
allison: I trimmed it down to last 3 tweets instead of last 4. cotto_work: I updated the color scheme a bit. 18:22
cotto_work Coke: much better. Thanks.
Coke cotto_work: much easier now that parrot.org isn't caching everything. =-)
cotto_work Drupal caching is ... special 18:23
Coke turns out it wasn't drupal.
it was <some thing that the osuosl admins had installed> to improve parrot.org - just needed some exceptions for things that weren't simple web content. 18:24
chromatic 5.608% with the optimization I was thinking of. 18:28
9.852% 18:40
purl 0.09852
chromatic ... but we have to be a little more clever in compact_pool to make that work correctly. 18:43
We need to do that anyway, but 7% performance improvement from constant strings is well within our reach.
darbelo Nice. 18:45
chromatic msg bacek If we fix the conmpact_pool nonsense, we get a lot more performance out of our immutable strings branch. 18:46
purl Message for bacek stored.
18:49 dngor joined
cotto_work What are thoughts on an nqp-rx or pir-based pir compiler? istr something about such a beast but don't recall if there are plans to get one working. 18:55
chromatic Eventually it would be nice. 18:56
darbelo bacek has one on github, I did some amateur nocromancy on the build system, but was unable to get it running again.
cotto_work ok. so there's no current plan
darbelo We can plan to plan one later. 18:57
chromatic Not to my knowledge.
particle coke: that something is varnish 19:02
19:13 joeri joined, hercynium joined
darbelo ls -l 19:24
19:30 weirdo joined, ash_ joined 19:46 uniejo joined 19:50 theory joined, tewk joined, senf_statt_oel joined
bacek ~~ 19:55
Good morning 19:56
purl Good Morning Mr Rogers
darbelo Good morning. (fsvo morning)
bubaflub fsvo good 19:57
20:07 hudnix joined
bacek msg chromatic fixing compact_pool would be nice but it's out of scope of branch. 20:13
purl Message for chromatic stored.
chromatic It's another easy 4% performance improvement/ 20:14
bacek chromatic, may be even more.
But making Rakudo works is higher priority.
chromatic I removed the "If there's nothing on the free list, run the GC" code and it's a 4% improvement. 20:15
particle moritz: trac.parrot.org/parrot/wiki/pds-2010-04 20:20
moritz particle++ 20:21
Coke (trac changes) I disagree that a separate ticket is a good thing for adding tests. 20:23
particle coke: me too, but that's just a summary, not my thoughts.
we should address them in parrotsketch
or update the wiki
Coke makes more work for the person who fixed the bug, and more work for the person writing the tests. 20:24
dalek kudo: 9e39ecb | (Martin Berends)++ | src/core/Temporal.pm:
[core/Temporal.pm] change '_' in identifiers to '-' as per spec change about to be written by masak++, and add a parse(StrISO8601) method
20:28
Andy Y'know, I'd like to think the splint target is pretty solid at this point 20:29
if a bit noisy.
dalek rrot: r45610 | petdance++ | trunk/src/pmc/string.pmc:
consting
20:31
Andy Parrot_str_append makes me cry. It oughta be something that can't fail.
chromatic Fixed on branch. 20:32
... or at least made differently ugly.
Andy what branch
moritz there can only be one branch!
probably immutable strings
chromatic Right. 20:33
Andy ok
dalek tracwiki: v1 | particle++ | pds-2010-04 20:35
tracwiki: notes from the parrot developer summit meeting
tracwiki: trac.parrot.org/parrot/wiki/pds-201...ction=diff
20:37 elmex joined
Coke Andy: you had an evil plan to change split to be a compiler you specify via Configure.pl - that still on the table? 20:37
Andy sure
in my CFT
right now I'm just rolling in the splint slop
darbelo perl Configure.pl --cc=splint ? 20:38
Andy although I may just keep it the way it is now, because it works really nicely.
darbelo: right
but not sure it's worth doing
darbelo Very nice.
20:38 senf_statt_oel left
Coke Andy: there will be less incentive to bother once I put all the split targets into an .include'able makefile. 20:39
(which is on MY CFT list.)
Andy there's only one target
well, basically
dalek rrot: r45611 | petdance++ | trunk (2 files):
str_split actualy can return null
20:47
rrot: r45612 | coke++ | trunk/config/gen/makefiles/root.in:
fixup dead link to old wiki
20:48
kudo: b9aaa31 | moritz++ | t/spectest.data:
two more passing test files
20:52
GeJ Good morning everyone. 21:00
Coke GeJ: ~~
21:02 dngor_ joined
dalek rrot: r45613 | petdance++ | trunk (2 files):
Parrot_str_length is sometimes used to force calculations, so ignoring the result is actually OK
21:04
21:04 Mokurai1 joined 21:08 Whiteknight joined
Whiteknight good afternoon, #parrot 21:14
darbelo afternoon Whiteknight 21:19
Whiteknight how are you doing today, darbelo? 21:20
dalek rrot: r45614 | petdance++ | trunk/config/gen/makefiles/root.in:
fix a broken flag name
Whiteknight dukeleto: ping
or, particle: ping
darbelo Breaking parrot horribly, with small changes that shouldn't. 21:21
Whiteknight darbelo: what are you working on to cause breakages?
darbelo Strings.
purl strings is a cool movie
Whiteknight purl forget strings 21:22
purl Whiteknight: I forgot strings
chromatic Someone (and by this, count you all volunteered) should clean up the mess that is src/string/api.c.
Whiteknight darbelo: the immutable strings branch?
chromatic: sure thing. Once immutable strings lands I'll do it
I don't want to interfere with that work
particle Whiteknight: what's up?
bacek chromatic, I can't figure out why Rakudo's bind_signature fails so epically...
chromatic Good point.
bacek, does it work on trunk? 21:23
Whiteknight particle: any news on GSoC slot allocations yet?
bacek chromatic, of course...
particle no, should there be?
dukeleto Whiteknight: pong, with a one foot out the door
chromatic Did you fix up all of the Parrot_str_substr() calls there?
Whiteknight particle: I thought slot estimates were due out today, which is why we rushed to blindly assign mentors to them yesterday
particle the calendar says that happens tomorrow throguh thursday 21:24
Whiteknight particle: okay, thanks
dukeleto: particle got it. Thanks
bacek chromatic, yes. It builds. Even something like 'my $a =42; pir::say($a)' works
Whiteknight particle: I've got the patience of a 4 year old boy 21:25
bacek chromatic, but 'say "hi"' fail inside binder
Whiteknight bacek: need more debugging eyes? 21:26
chromatic We may have to ask Jonathan to take a look.
bacek Whiteknight, it will be helpful
Whiteknight bacek: sure thing. Steps to reproduce?
1) get immutable strings branch, 2) try to build rakudo, 3) ??? 4) profit?
bacek chromatic, jonathan drinking vodka^W^W quite busy in Russia
Whiteknight, you have to patch rakudo. 21:27
chromatic He may have been drinking heavily when writing that code.
nopaste "bacek" at 192.168.1.3 pasted "Patch to build rakudo on immutable strings branch" (39 lines) at nopaste.snit.ch/20254 21:28
bacek Whiteknight, step3 - ./perl6 -e 'say "hi"'
Whiteknight okay, i'll look at it soon 21:29
bacek
.oO( Interesting IP in nopaste )
cotto_work cft?
purl i think cft is Copious Free Time or london.pm.org/pipermail/london.pm/W...08654.html or CGI::Form::Table
darbelo Whiteknight: No, I'm doing unrelated cleanup work. 21:33
A small change, to make strings lie a bit less, broke argument passing. 21:34
Is anyone else seeing a *long* stream of "src/nci/extra_thunks.c:3020: warning: passing arg 2 of `Parrot_pcc_get_signature_func' discards qualifiers from pointer target type 21:52
in their builds?
chromatic I hadn't, but I'm not surprised. 21:53
darbelo It looks like it's coming from generated code.
dalek rrot: r45615 | petdance++ | trunk/tools/build/headerizer.pl:
add notes about checking pointers
plobsing darbelo: I noticed that code has been generating errors for a while, which is odd, because it was warnings-clean when I left it. 21:55
darbelo Maybe a new warning got added with Coke's work on that? 21:56
Or, if we decide it's not a big deal, we can add an exeption for that warning on that file. 21:57
We have the infrastructure for that now.
plobsing it looks like we're consting something we shouldn't be 21:59
or rather, passing it to a series of functions that treat their arguments as const but don't mark them as such 22:01
darbelo Andy has been soing a lot of consting lately. But he's been very careful about it too.
Andy Always.
consting is one of those things you can pretty much do without thinking 22:02
and watching TV
purl somebody said watching TV was for TV-watching people.
plobsing fixed 22:05
darbelo const PMC * const ctx = CURRENT_CONTEXT(interp); 22:06
Andy was that something I did?
plobsing I took the easy way out. Didn't feel like fighting my compiler to convince it that Parrot_pcc_get_signature treats ctx as constant
darbelo Parrot_pcc_get_signature is two things, wether you optimize or not. 22:07
plobsing 2 things?
purl 2 things are required for a "talk"
plobsing purl, who let you back in?
purl plobsing: i haven't a clue
22:08 payload joined
Andy plobsing: what si the problem you're running into? 22:08
Let me help you fix it, or tell me and I'll fix it.
plobsing its already fixed
it was the line darbelo mentioned 22:09
Andy yes, where?
When I see "Didn't feel like fighting my compiler" it sounds like "forced my away around a useful-but-incorrect warning"
chromatic I repeat, "How cute, a C standard." 22:10
Andy Snark aside, it's probably something I can actually deal with, chromatic
dalek rrot: r45616 | petdance++ | trunk (2 files):
move function declarations into a proper header file.
plobsing oh that. like I said, I'm fairly sure that Parrot_pcc_get_signature treats ctx as constant, but it involves calling down to other functions in places 22:11
rrot: r45617 | plobsing++ | trunk (3 files):
fix warnings in NCI thunks - Parrot_pcc_get_signature doesn't mark ctx as constant, so we can't either
cotto_work color picker?
color picker is 0to255.com/
plobsing colour picker is 0to255.com/
i18n++ 22:12
darbelo plobsing: It get's defined to be one of two different thing based on NDEBUG being #defined.
see include/parrot/context.h
chromatic Both of those should be const safe though.
darbelo 557:# define Parrot_pcc_get_signature(i, c) (__C(c)->current_sig)
618:# define Parrot_pcc_get_signature(i, c) Parrot_pcc_get_signature_func((i), (c))
Yes, but only one of the warns ;)
Andy let me dig.
darbelo You won't see the warning if you --optimize 22:13
Annotating Parrot_pcc_get_signature_func() should be enough to quiet the compiler.
chromatic Andy, if you const src/call/context_accessors.c you should quiet a lot of warnings here.
Nothing unsafe or tricky jumps out at me there. 22:14
Andy But it depends on what's using it.
why is src/nci/core_thunks.c getting committed? 22:16
It's a generated ifle
chromatic Because you need a working Parrot to generate it.
plobsing Andy: bootstrap
purl i heard bootstrap was jsut for the .elc files or a statistical method that replaces theoretical assumptuions with simulation
Andy plobsing: in "const PMC * const ctx" only the first const should have been removed 22:17
ok so how are you building such that you can make this consting run afoul? 22:18
plobsing perl Configure.pl && make -j3 22:21
Andy ok, but nothin' to make the NDEBUG be off?
plobsing linux x64 gcc 4.4.3
nothing intentional
just the standard stfu and build command
Andy and what file fails the build?
plobsing no failures, warnings. I didn't look to far into it. 22:22
also maybe I did it wrong. I don't use const a lot.
Andy ok, what file throws warnings
plobsing can't recall, I've moved on to merging stringnull 22:23
sorry, I'm just not that interested in annotating generated files for the purpose of catching manual programming errors.
Andy Right, but I am.
22:24 Mokurai1 joined 22:25 snarkyboojum joined, theory joined 22:26 kid51 joined, TiMBuS joined
dalek rrot: r45618 | fperrad++ | trunk (4 files):
[distutils] split distutils/osutils
22:30
cotto_work blog.mozilla.com/dwitte/2010/03/12/...js-ctypes/ 22:35
Andy So what is the "fast" part of get_context_struct_fast ? 22:36
darbelo The part that doesn't stop at the encapsulation boundary. 22:37
Andy I guess I don't get it, and what it's not a macro for that matter
chromatic It could be a macro; go ahead. 22:38
Andy macros have the benefit of not mucking with constedness 22:40
22:42 theory joined 22:43 preflex joined
plobsing wheeee svn merge = commiting files I've never even openned! 22:44
cotto_work Yeah. It's like that.
Andy With the 2nd M? It's subversion properties. 22:45
dalek rrot: r45619 | plobsing++ | failed to fetch changeset:
merge stringnull
22:48
cotto_work plobsing++ 22:53
darbelo Hm. Maybe that solves my breakage. 22:55
plobsing darbelo: what's your breakage? 22:57
darbelo I'm trying to make 'external' strings be honest about their lack of a internally-allocated buffer. 22:58
plobsing hmmm... I don't think that branch will solve your issues. 22:59
but if you're lucky...
darbelo That broke stuff all over, I got ImageIO working pretty easily, buyt now I have broken argument passing.
plobsing who needs arguments? or functions? or structured programming in general? 23:00
darbelo I think it's mis-concatenating stuff. But it took me a while to realize it.
dalek rrot: r45620 | plobsing++ | branches/stringnull:
branch merged
23:04
plobsing has half a mind to start labeling "branch merged" commits as "yak shaved" 23:10
darbelo +1
purl 1
cotto_work hands plobsing a hairy yak
plobsing tosses it into the pile 23:11
cotto_work Have fun. We have plenty for everyone.
cotto_work starts singing "99 unshaven yaks" to the tune of 23:17
"99 bottles of beer"
particle have you been close to a yak? let me tell you, they don't get out of your way, even if the trail is only two feet wide, with a cliff on one side and a drop on the other. 23:18
cotto_work not to mention that "99 unshaven yaks" would be a good release name *and* a great name for a rock band
plobsing a key difference between yaks and beer - by the time you finish the last yak, the first one needs to be redone. sadly not the same way with beer.
darbelo For a moment, I expected you to say "99 red balloons".
You and I in a little toy shop / Buy a bag of yaks with the money we've got / shave them all at the break of dawn ... 23:20
cotto_work Worst date ever. 23:22
chromatic And now for something completely different. 23:33
purl MORE DONGS
plobsing chromatic: I have config as a HoS fully working now. Any suggested benchmark? 23:36
dalek rrot: r45621 | plobsing++ | trunk (5 files):
change config_lib script to be in pir so I can call methods
23:37
purl dalek: that doesn't look right
cotto_work It's always nice to see PASM code go away. 23:38
Whiteknight I'm not sure purl is really appropriate for this venue
23:39 fperrad_ joined 23:43 payload joined, mariano joined 23:44 tcurtis joined, payload1 joined
ttbot Parrot trunk/ r45623 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/261681.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 23:51
plobsing how do I get the build bots to reconfig? 23:52
dalek rrot: r45622 | fperrad++ | trunk (7 files):
[TAP] add Harness & Formatter
23:54
rrot: r45623 | plobsing++ | trunk/config/gen (3 files):
convert config to Hash of Strings.

nearly eliminates vtable calls involved in thawing of config.
purl I don't know how to convert config to Hash of Strings..