Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches | Review and vote GSoC applications
Set by moderator on 20 April 2010.
bacek Good morning my biological friends 00:09
lambda-the-ultimate.org/node/3926
"VMKit: a Substrate for Managed Runtime Environments"
Any one read it?
cotto I was going to watch the video. 00:14
It sounds interesting, especially the part about not having really slow performance.
00:20 ruoso joined 00:22 ZeroForce joined
cotto time for some merging 00:52
dalek rrot: r45948 | cotto++ | failed to fetch changeset:
sync branch with trunk
00:53
00:55 tcurtis joined
sorear Apparently, if you install Parrot with --enable-optimize, your dynpmcs will be built stripped. 00:56
Or at least with -g0. 00:57
01:00 hercynium joined
dukeleto how do I make a P6object inherit from a core PMC, in PIR? 01:05
cotto yay for runcore purging 01:15
also, yay for svn not being quite as painful with a fast internet connection. 01:17
dukeleto has anybody looked at MMTk? jikesrvm.org/MMTk 01:19
cotto I'd be really surprised if whiteknight hadn't. 01:21
dalek rrot: r45949 | cotto++ | trunk (162 files):
[runcore] merge runcore_purge; the cgoto, cgp and switch runcores are history
01:27
rrot: r45950 | cotto++ | branches/runcore_purge:
deleting merge branch
rrot: r45951 | mikehh++ | trunk/src/dynpmc/gziphandle.pmc:
fix codetest failure - There should be no space between a function name and the following open parenthesis
rrot: r45952 | mikehh++ | trunk/MANIFEST.SKIP:
re-generate MANIFEST.SKIP
TT #1563 closed by cotto++: Deprecation of unused runcores 01:31
TT #1563: trac.parrot.org/parrot/ticket/1563
dukeleto cotto++ # fulltest just got a lot faster 01:33
mikehh trying it now :-} 01:36
cotto I get the feeling there won't be a lot of backlash against this change. 01:51
01:51 atrodo joined
Coke moritz: found some missing C deps that should be fixed shortly. (were you complaining about || build recently?) 01:55
01:56 Andy joined
cotto Coke++ 01:56
I was seeing some parallel build goofs too 01:57
01:58 Psyche^ joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33416), fulltest) at r45952 - Ubuntu 10.04 RC i386 (g++ with --optimize) 02:00
in testf: t/op/exit.t - TODO passed: 6
cotto oh noes. Better make it not pass. ;) 02:05
mikehh cotto :-}
02:09 plobsing_ joined
bacek ~~ 02:23
bacek just made fulltest even faster :) 02:25
02:26 patspam joined
Coke ugh. people keep committing things. I test, recommitt... I'm out of date. =-) 02:29
bacek! did you remove compilers/ncigen first?
sorear is dalek broken?
Coke ugh. bacek, want me to remove those empty directories? 02:30
bacek Coke, hmmm. Which directories? 02:31
Coke compilers/nqp et al. fixed and comitted.
bacek ah, ok.
dalek rrot: r45953 | bacek++ | trunk (44 files):
Remove deprecated compiler/nqp. Welcome to brave new world of nqp-rx.
02:32
rrot: r45954 | bacek++ | trunk/DEPRECATED.pod:
Remove compilers/nqp from DEPRECATED.pod.
rrot: r45955 | coke++ | trunk/compilers/nqp:
Remove empty directories left over after nqp purge.
Coke bacek: Also, I had claimed TT #1462. 02:33
also, see TT #1573..
bacek Coke, hang on. I closed TT#1462 02:34
Coke Yes, I know you did. 02:35
I'm saying that that ticket was assigned to me. 02:36
bacek Ah...
Coke and it had a pre-req.
bacek Want me to kill ncigen?
Coke I've assigned that ticket to you. :P
bacek :) 02:37
Andy hey bacek
bacek Hey Andy
Andy What do you know about str_copy?
dalek TT #1462 closed by bacek++: compilers/nqp
TT #1462: trac.parrot.org/parrot/ticket/1462
Andy What will it take to make it const-happy?
Coke there, more dependency fixups. 02:38
bacek Andy, mutable PObj part...
Andy, basically (without compiler support) we should pass const strings into str_copy and str_hashval and do const-casting inside. 02:40
Andy I don't get the part about mutable PObj part 02:41
bacek Andy, we update string->flags to set "COW". And flags belong to "PObj" part of string. 02:42
Andy But we don't need COW now that everything's immutable, right?
bacek Andy, we do. 02:43
Andy or maybe I misunderstand
bacek It's not "COW", it's just shared buffer.
Because substring creating reuse same buffer. 02:44
Andy ok
bacek We should probably rename "COW" flag into "shared_buffer".
Just to reflect current semantics.
Coke, can you check for leftover empty dirs?
Andy OK, so the flags in parrot_string_t are the same as the flags in a PObj? 02:45
bacek Andy, yes.
Andy we're basically faking subclassing
Here's the thing
bacek Andy, exactly.
Coke bacek: sure.
Andy we can't fake the qualifiers
We need to not lie to the compiler about constness 02:46
Coke bacek: done.
bacek Andy, yes... And we can't make all string const-correct. 02:47
Andy right
bacek all strings.
E.g. gc_mark_string updates PObj.flags.
str_hashval cache commutated value inside string. 02:48
Andy What we need is a real str_copy
like a str_copy_that_we_are_going_to_modify
tkae a look at Parrot_str_chopn
There's no point in setting the COW flag because we're immediatley going to modify the string. 02:49
dalek rrot: r45956 | coke++ | trunk (3 files):
Fixup many dependencies.
rrot: r45957 | bacek++ | trunk (22 files):
Remove compilers/ncigen. Closing TT#1573.
rrot: r45958 | coke++ | trunk/compilers/ncigen:
remove empty directories.
bacek Andy, not quite true. Original string and new string share same buffer. That's why we need flag set on original string 02:50
Andy What I'm saying is that in the general case that should be
bacek OTOH, if we reverse traversing strings in compact_pool we can set COW flag on result string. 02:51
Or we can move this flag into buffer. There is plenty of space there.
Andy OK, help me out some 02:52
dukeleto TimToady++ # "Fear is the Mind Killer"
Andy PObj_COW_SET is setting the COW flag to mean....
what?
As I understand it, COW means "I'm pointing at someone else's actual buffer, I'm just piggybacking" 02:53
Is that right?
bacek Currently, "COW" means - I own then buffer, but someelse piggybacking into it.
dalek TT #1573 closed by bacek++: remove compilers/ncigen 02:54
TT #1573: trac.parrot.org/parrot/ticket/1573
bacek Andy, look at compact_pool. 02:55
Andy That's not how I real the comments in include/parrot/pobj.h
bacek Actually move_one_buffer in src/gc/alloc_resources.c
I don't read comments, I read code :)
Andy That's great, but I have to read comments.
Do the comments in pobj.h seem wrong to you then?
bacek /* Mark the contents as Copy on write */ 02:56
This one?
Andy yes
bacek Letmethink 02:57
Ah.
We set COW on both strings.
Andy and the one after it
Right, that seems very wrong to me.
bacek Because we do STRUCT_COPY after setting it.
(in str_copy)
Andy To me it seems that COW means "I'm piggybacking", and is_COWable means "I can let someone piggyback off me"
But you're saying that's backwards? 02:58
bacek "We are piggypacking"
I was wrong, sorry.
Andy ok
dukeleto anybody see t/dynpmc/rotest.t failing?
Andy bacek: "We are piggybacking on someone else" is COW, right? 02:59
Coke dukeleto: not i
Andy and is_COWable is "you may COW off of me."
bacek Andy, something like this. But it's better to use "shared_buffer" and "is_shareable". 03:00
Andy ok
bacek Because buffers are not belong to particular string.
dukeleto Coke: smolder.plusthree.com/app/projects/...ails/33417 03:01
bacek Sigh...
I broke t/compilers/pct/complete_workflow. 03:02
03:02 bubaflub joined
Coke guesses "by removing compilers/nqp". =-) 03:03
mebbe? 03:04
purl somebody said mebbe was ok as pure inflate class
bacek Coke, yeah... 03:06
Andy OK, so now I get it
A STRING is an overlay over a Buffer
which is an overlay over a PObj
sneaky 03:07
You're faking a union without using a union.
you = we :-)
dalek rrot: r45959 | mikehh++ | trunk/MANIFEST.SKIP:
re-generate MANIFEST.SKIP
rrot: r45960 | mikehh++ | trunk/config/gen/makefiles/root.in:
fix codetest failure - trailing space
rrot: r45961 | dukeleto++ | trunk (2 files):
[io] Make Parrot_io_open delegate to the FileHandle PMC and allow HLL mapping
rrot: r45962 | bacek++ | trunk/t/compilers/pct/complete_workflow.t:
Update test to use nqp-rx.
bacek Andy, feel free to "fix" it :) 03:10
Andy No, I'm just trying to understand. 03:11
then again, it's all just pointers to god
03:12 patspam joined, eternaleye joined
dalek kudo: 543d672 | (Solomon Foster)++ | src/core/ (4 files):
Minor tweak to Complex.abs, added Real.exp and Real.infix:<**>, removed Num.exp.
03:15
Coke ... it is failing for me now, dukeleto 03:17
bacek dukeleto, +1 for Coke 03:21
Coke fails in harness but not directly. 03:22
dukeleto load_bytecode does not seem to work when you call it from PIR with Parrot_compile_string
i.e. if I have PIR that calls load_bytecode, and then compile that PIR string with Parrot_compile_string, it can't find things like P6object.pbc 03:23
dalek rrot: r45963 | petdance++ | trunk/include/parrot/pobj.h:
clarify some comments
03:24
dukeleto which runcores just got axed?
rrot: r45964 | mikehh++ | trunk/src/io/api.c:
fix codetest failure - line length
mikehh dukeleto: Cgoto, cgp and switch 03:25
dukeleto mikehh++ 03:26
mikehh it was cotto++ 03:27
dukeleto mikehh: that was for the info :)
mikehh thought I would add something though :-}
hmmnn - testing - where was I 03:28
svn update -u reports ? runtime/parrot/languages/data_json - I fixed some svn:ignore stuff a couple of days ago - can't remember = mind you it is 4:30am for me 03:31
Coke wonders why t/codingstd/pod_syntax.pl is complaining about makefile.pl 03:32
Andy OK, here's what I don't get, bacek 03:39
why are we calling PObj_COW_SET(s) in Parrot_str_copy()? 03:40
bacek To compact_pool properly
Coke ... ah, stale pod cache files. blah. 03:41
Andy Go on.
bacek move_one_buffer in gc/alloc_resources.c
mikehh Coke: I was going to query that - ok for me :-}
bacek When we moved one buffer all other strings have to be updated to point to new one 03:42
that's the reason why we set "COW" flags on both strings.
Andy So the new buffer becomes the new master from which to piggyback? 03:43
bacek after move - yes
Andy So we never ever can have a truly const STRING.
bacek I don't get it...
Andy Becuase the act of copy from a string modifies the STRING 03:44
bacek not quite true.
We are compacting allocated string "bodies"
And it causing updates of original STRING* 03:45
Andy right
Coke is nearly ready to kill compilers/json ...
bacek Coke, kill it!
Andy, but what we can do is consting all STRING* in our API. 03:46
(fsvo "all")
Andy bacek: No we can't.
because anything on the back end can't be const
and lying to the compiler about const via casting is bad news.
bacek No, we can.
Non-const pointers stored inside GC Fixed_Size_Pools
Andy right, but take for example... 03:47
any of the get_codepoints functions
they can't take const strings because they call Parrot_str_copy
rather, they can't take const STRING *s 03:48
therefore Parrot_str_substr() can't take a const STRING *
03:48 dalek joined
bacek "Or we can move this flag into buffer. There is plenty of space there." 03:48
Andy ok, go on 03:49
bacek All buffers allocated with small header in front.
Andy We change from the STRING being COWable to the Buffer being COWable?
bacek Check pobj.h
no.
Ok.
Wrong dictionary.
STRING and Buffer consists of GC-able header and storage behind. 03:50
Andy strappy
bacek Allocated "storage" has additional header in front.
Andy right
storage being Buffer
bacek It referenced as "ref_count" in pobj.h but it's actually not. 03:51
Currently there is only on flag in storage header - Buffer_moved_FLAG.
We can easily move "PObj_COW_FLAG" inside of allocated storage.
Andy ok 03:52
bacek Then only one non-const method will be gc_STRING_mark.
Which updates PObj.flags
Andy Does anything that's not a STRING use PObj_COW_FLAG? 03:53
bacek C<Buffer>
Andy and STRING is a "subclass" struct of Buffer
bacek yes
Andy well, i'm all for it. 03:54
dukeleto loading core .pbc's from the embed interface doesn't seem to work
bacek Andy, I'll try to move "COW" flag later tonight.
Andy ok
bacek And if can lie compiler a little bit in gc_string_mark we can make all STRING* constant :) 03:55
Andy but that's playing with fire
because the compiler can make assumptions based on const 03:56
bacek yes
Andy Wouldn't you need to also move the is_COWable flag?
bacek Nope
We do need it in Buffer. 03:57
Because "storage" can be allocated from system memory or constant segment without "storage header"
Andy ok
bacek But I will rename it into something like "is_shareable" 03:58
Andy the COW flag is going to go from one bit in the PObj header to a UINTVAL in the Buffer?
or are you gonna set up bitflags in the Buffer too
bacek Yes
dukeleto anybody know what is going on here?
bacek No, I mis-read 03:59
dukeleto gist.github.com/377451
bacek COW flag going inside allocated storage. Next to Buffer_moved_FLAG
sorear dukeleto: Sanity check: Are you on Windows?
dukeleto that is on trunk (r45965) on ubuntu 9.10 04:00
Andy oooh, all the way that far down
dukeleto sorear: the answer to that question is always no :)
bacek Andy, yes :)
sorear dukeleto: why? 04:01
those memory addresses are quite bizarre for linux.
mmap must be sick
Andy so is ref_count not actually a ref_count
Coke (kill it) need to convert t/compilers/json to use data_json first. Despite the label on the tin, it's not a dropin replacement. 04:02
dukeleto sorear: github.com/leto/plparrot/blob/secur...plparrot.c is the code that generates that error
sorear: search for Parrot_load_bytecode 04:03
sorear: i don't think loading core pbc's works for embedded apps
bacek Andy, yes. There is some leftovers in move_one_buffer. But we check only Buffer_moved_FLAG actually.
dukeleto sorear: load_bytecode 'P6object.pbc' does not work for embedded apps, as far as I can see
Andy so ref_count is bitflags anyway.
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33419), fulltest) at r45967 - Ubuntu 10.04 RC i386 (gcc with --optimize) 04:04
in testf: t/op/exit.t - TODO passed: 6
Coke mikehh: saw that also. 04:05
nopaste "bacek" at 192.168.1.3 pasted "Andy, patch for move_one_buffer. I'm going to commit it after test." (87 lines) at nopaste.snit.ch/20351 04:07
"coke" at 192.168.1.3 pasted "This dies" (11 lines) at nopaste.snit.ch/20352 04:08
dukeleto sorear: sorry, that backtrace was on OS X
sorear: i am going to try that code on ubuntu now 04:09
Coke bah, missed the .'compile' call.
04:09 janus joined
Coke ah, great, json and data_json don't even behave the same way. 04:10
whee.
bacek afk # rl 04:11
Andy bacek: so you got the changes in place? 04:12
bacek Andy, I didn't move COW flag yet ;) 04:13
Coke urm. premature rant? 04:14
Andy hooboy do we need real dependencies. :-/ 04:18
Coke wow. found uses of 'Array' still around.
Andy: I'm sorry? 04:19
Andy automated at least
Coke that's the plan, yes.
we're already verifying existing ones with checkdepend.pl - any improvements to that to make it more accurate appreciated, it'll be used to drive makedepend.pl sometime before 2.6 04:21
dalek rrot: r45968 | bacek++ | trunk/src/gc/alloc_resources.c:
Rename ref_count into flags in move_one_buffer to reduce
rrot: r45969 | petdance++ | trunk/src/string/encoding/fixed_8.c:
change arg name
purl dalek: that doesn't look right
Andy Coke: Huh, i didn't know that had all happened. us++ 04:22
04:22 davidfetter joined
Andy My specific bummer was a fresh Configure followed by make src/string/charset/unicode.o failed because it couldn't find vtable.h 04:23
dalek parrot: 5b2de1e | dukeleto++ | README.plparrot:
Add not to README about the postgresql-server-dev-X package
04:29
dukeleto plparrot.c:309: warning: implicit declaration of function ?Parrot_load_bytecode? 04:30
that seems bad
the question marks are due to pasting-charset-badness
but shouldn't Parrot_load_bytecode be accessible from embed? it is documented and all that jazz 04:31
Andy how do you build plparrot.c
Coke unicode.o require vtable.h ? 04:32
*where does
(and is it complained about in tools/dev/checkdepend.pl ?)
Andy Coke: I don't know. 04:33
dukeleto Andy: with this: github.com/leto/plparrot/blob/security/Makefile 04:34
Andy so are you including packfile.h?
dalek rrot: r45970 | petdance++ | trunk/src/string/charset/unicode.c:
unuse the interp
04:38
rrot: r45971 | coke++ | trunk/MANIFEST.generated:
compilers/nqp no longer exists, we can't install it.
rrot: r45972 | coke++ | trunk (13 files):
Eliminate redundant compilers/json (Close TT #1461)

Convert json tests to be data_json tests and actually RUN them.
   They haven't been running for some time now.
   Fix JSON.pir so it works again.
dukeleto Andy: nope 04:39
dalek TT #1579 created by coke++: examples/nci/xlibtest.pir out of date 04:40
TT #1579: trac.parrot.org/parrot/ticket/1579
TT #1461 closed by coke++: compilers/json
Andy You need to.
dalek TT #1461: trac.parrot.org/parrot/ticket/1461
dukeleto Andy: that file includes parrot/parrot.h
Andy ok 04:41
sorear How does the Parrot extension procedure work on systems without a working libdl?
dukeleto Andy: and it blows up when I include it, since it has lots of internals stuff that is not happy
Andy well, that's where the definition for Parrot_load_bytecode is 04:42
should it be in a different header?
sorear purl, dalek?
purl i guess dalek is #parrot's spammy little rss bot or (see: dalek plugins)
dukeleto Andy: i am thinking in embed.h or extend.h
sorear purl, dalek plugins?
purl well, dalek plugins is github.com/Infinoid/dalek-plugins/tree/master
Andy pick one and I'll make it happen 04:43
dukeleto Andy: it is talked about in docs/embed.pod
Andy: so I go for embed.h
docs/extend.pod may be the sorriest POD file in the Parrot codebase right now 04:44
Andy++ # thanks for putting Parrot_load_bytecode somewhere that embedders can get at it
Andy dukeleto: don't thank me yet, I hvaen't done it 04:45
not sure how I wanna do this
dukeleto Andy: may the force be with you 04:46
Andy I'm almost thinking we need a load.c
for the Parrot_load_*
dukeleto Andy: and then embed.h would include parrot/load.h ? 04:47
Andy mmm, mauybe not
I wonder if the headerizer can handle multiple HFILEs 04:49
dalek izkost: ef6f0be | sorear++ | (5 files):
Add preliminary support for hash iterators

and Blizkost hasn't been made clean for that yet.
04:52
izkost: a89e71d | sorear++ | build/src/pmc/Makefile.in:
Fix build with Perl 5.12

and replacing it with a direct perl interrogation call which has been available since Perl 5.003007.
Andy oh man, embed.h doesn't even get pulled into the headerizer 04:53
dalek TT #1580 created by coke++: gziphandle PMC 04:55
TT #1580: trac.parrot.org/parrot/ticket/1580
TT #1581 created by coke++: GC_SYS_NAME option to interpinfo_s_i
TT #1581: trac.parrot.org/parrot/ticket/1581
TT #1582 created by coke++: NCI_FB_CB and NCI_FB_UD in iglobals
TT #1582: trac.parrot.org/parrot/ticket/1582
TT #1583 created by coke++: loadlib_p_s_p
TT #1583: trac.parrot.org/parrot/ticket/1583
TT #1584 created by coke++: STRING Out parameters in Parrot_str_* functions
TT #1584: trac.parrot.org/parrot/ticket/1584 04:56
TT #1585 created by coke++: rename STRING_is_null to Parrot_str_is_null
TT #1585: trac.parrot.org/parrot/ticket/1585
TT #1586 created by coke++: rename Parrot_string_cstring to Parrot_str_cstring
TT #1586: trac.parrot.org/parrot/ticket/1586
TT #1587 created by coke++: delete Parrot_PMC_* from src/extend.c
TT #1587: trac.parrot.org/parrot/ticket/1587
TT #1588 created by coke++: Parrot_VTABLE, Parrot_get_vtable, Parrot_PMC_set_vtable
TT #1588: trac.parrot.org/parrot/ticket/1588
dukeleto holy Trac tickets, batman! 04:57
sorear I was wondering what happened to dalek. 04:58
dukeleto I think coke++ it attempting to Denial-Of-Service dalek via Trac tickets
s/it/is/ 04:59
Coke ok. DEPRECATED.pod is back in shape. mostly. 05:00
please stop doing that, whoever it is. =-)
05:00 rurban_ joined
dukeleto rurban_: howdy 05:00
purl salut, dukeleto.
sorear Yikes. 05:06
The Parrot PBC search path has . at the front.
05:06 Coke joined
sorear I just ran parrot-nqp while browsing the NQP sources 05:06
specifically, a stale build tree
parrot aborted, since ./P6Regex.pbc existed and had incompatible version bits 05:07
is this really desirable behavior?
Andy dukeleto: svn up and get the new embed.h
sorear what if I start sending around directories with malicious P6Regex.pbc files in them and wait for somebody to run an NQP-based program?
Coke sorear: if it's a stale build tree... does the same thing happen in a not-stale tree? 05:08
dukeleto sorear: darn you. is $PWD before the core directories in the search path?
sorear dukeleto: yes
Coke what is src/gc/gc_info.c ? 05:09
sorear Coke: I see no reason why it wouldn't
dukeleto sorear: i only load P6object.pbc once, when the postgres module is loaded, before any stored procedures are executed 05:10
sorear: but that is a very good point
dalek rrot: r45973 | coke++ | trunk/DEPRECATED.pod:
Remove items that refer to closed tickets, add tickets.
rrot: r45974 | petdance++ | trunk/include/parrot/embed.h:
duplicate declaration for Parrot_load_bytecode
sorear dukeleto: This isn't just a PL/parrot issue....
dukeleto sorear: yes, it goes for any 3rd party application that is embedding 05:11
sorear It goes for first party applications too.
dalek TT #754 reopened by coke++: Mark new cross-HLL export/import as "experimental" by pre-deprecating it 05:12
TT #754: trac.parrot.org/parrot/ticket/754
sorear Specifically, any program anywhere which is implemented using (this includes shebanging rakudo, etc) PCT or other Parrot libraries
dukeleto sorear: describe the exact attack scenario you are thinking of 05:13
Andy: thanks! I am building and testing it out now
sorear dukeleto: wait until Perl 6 hits the big time and users frequently run programs written in Perl 6. Distribute tarballs with malicious PCT.pir files in them. 05:17
People will unpack the tarballs, then, while cd'ed into them, unthinkingly run a program which is written in Perl 6
parrot will resolve Rakudo's PCT dependency using the version in . as the first choice 05:18
and voila, I've gotten them to run my code when they thought they were opening an editor to review my code
dukeleto sorear: so why is . before core in the search order? 05:19
sorear oh, you have an active sudo context? rootkit time
dukeleto: Why would I know?
dukeleto sorear: seems like core builtin PMCs, such as PCT.pbc or P6object.pbc, should not be loaded from . 05:20
sorear I would say any installed library 05:21
Perl always has . last in @INC
not first
pastie.org/932669 - all of the stuff rakudo tries to find in . before core 05:22
05:22 ZeroForce joined
dukeleto Andy: no warning with new embed.h, but same coredump. Thanks, but my princess is in another castle :) 05:23
05:23 _shockwave joined
Andy Oh, I didn't mean for you to think that that would solve it. :-) 05:23
dukeleto Andy: a boy can hope 05:24
dukeleto starts reading src/library.c
sorear dukeleto: Should I file a ticket for moving . to the end of the search path? 05:25
dalek rrot: r45975 | coke++ | trunk (3 files):
Don't ignore .c files in this directory.
rrot: r45976 | coke++ | trunk/config/gen/makefiles/root.in:
Track new dependencies added in r45966.
dukeleto sorear: yes please
05:26 jsut joined
sorear does this count as a high-severity bug? 05:37
dukeleto sorear: sure 05:38
the source to Parrot_load_bytecode seems wonky. it is not initializing *wo_ext or *ext before using them 05:39
and then parrot_split_path_ext() coredumps
_shockwave purl pase 05:40
purl _shockwave: sorry...
_shockwave purl paste
purl rumour has it paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
_shockwave It's taking long for the bot to recognize pastes :$ 05:43
nopaste.snit.ch/20354
The question I pasted above is kind of lengthy, but the summary is that I can't find a method of a base class in a derrived class.
I'll stand by for any info anyone has. Thanks. 05:44
dalek TT #1589 created by sorear++: Move . to the end of the library search path
TT #1589: trac.parrot.org/parrot/ticket/1589
dukeleto _shockwave: do you have a small test case? 05:48
_shockwave: hard to see what is going on without the source
_shockwave dukeleto, I have a test case. Though I don't promise it will be very clear. 05:50
dukeleto _shockwave: doesn't sounds promising
_shockwave I can paste what the actual test case looks like, and then you can ask me anything about it. :) 05:51
dukeleto _shockwave: small test cases leads to happiness
Coke dukeleto: seems like it would be simple to reproduce.
just create a one line P6Regex.pir that says "BOO" 05:52
_shockwave dukeleto: nopaste.snit.ch/20355
dukeleto _shockwave: that doesn't look like PIR 05:53
dukeleto -> sleep & 05:54
Coke _shockwave: I cannot duplicate your problem.
_shockwave The HLL source code, which is contained in the 'source' tag, is processed by my compiler and translated into PIR. The code in the 'proof' tag is PIR that's supposed to prove the code in the 'source' tag. 05:55
Coke, I can give you the whole classes
For the Object, Collection, CollectionItr, and Array.
sorear { 05:56
...
CATCH { ... }
}
%var{$foo} = 1;
_shockwave The test case above has an example of how to create an instance of the array class.
sorear % is parsed infix
bug?
purl bug is probably me being lazy
sorear (NQP)
-RX
nopaste "coke" at 192.168.1.3 pasted "this doesn't print evl." (12 lines) at nopaste.snit.ch/20356 05:57
Coke _shockwave: I don't want a bunch of code that isn't in PIR.
you're trying to prove that load_bytecode is buggy. just use that.
check out my nopaste there.
_shockwave Coke, I don't want it to be buggy. That doesn't help me. 05:58
Coke ... check out my PIR.
that PIR does not load the load P6Regex.pbc
load the *local
_shockwave No, No. This isn't about load_bytecode. 05:59
This is just related to how I coded the Array class.
Coke how are you loading P6Regex?
(I'm talking about TT #1589 that you just opened.) 06:00
sorear excuse me
_shockwave I opened no ticket.
sorear _I_ opened 1589
dalek izkost: a0bd505 | sorear++ | nt/iterator.t:
Add tests for hash iteration
_shockwave ah
Coke there's my confusion!
_shockwave: ignore me.
sorear: ... that was all for you, then. =-) 06:01
_shockwave But... I still don't know how to ... :(
Coke _shockwave: I'm about to head to bed. WAG: try adding :nsentry to your :method. 06:03
sorear: if you can add a small PIR snippet like mine that reproduces your issue to the ticket, that would be most helpful.
_shockwave Coke, thanks for the tip.
sorear yes
Coke: ./parrot? 06:07
why do you have a parrot binary in your lab dir? 06:08
Coke: Running the exact code you pasted, in a directory other than the one where Parrot is installed, prints EVIL 06:11
cotto How on earth did 48 messages just hit parrot-dev in the last 3 hours? 06:24
sorear I didn't see them. 06:26
cotto there are probably other lists mixed in. I send all parrot stuff to the same folder. 06:27
dalek rrot: r45977 | gerd++ | trunk (2 files):
add a reference to documentation in the tools/dev/mk_manifest_and_skip.pl file
06:34
moritz good morning 07:11
purl Good Morning Mr Rogers
sorear hello
purl what's up, sorear.
07:25 JimmyZ joined 07:32 fperrad joined
fperrad ttbot 07:41
07:43 fperrad_ joined
bacek taptinder? 07:59
purl taptinder is software development tool - taptinder.org . For Parrot project running on tt.perl6.cz/ and reporting build failures to #parrot channel as ttbot.
bacek fperrad, see
moritz purl: ttbot is see also: taptinder 08:00
purl ...but ttbot is TapTinder build bot owned by mj41 and reporting tt.taptinder.org/buildstatus/pr-Parrot/rp-trunk build errors....
bacek purl, no, taptinder is continues integration build tool - taptinder.org . For Parrot project running on tt.perl6.cz/ and reporting build failures to #parrot channel as ttbot.
purl okay, bacek.
fperrad hi bacek
bacek aloha fperrad 08:01
purl, ttbot is also see taptinder
purl okay, bacek.
bacek ttbot?
purl ttbot is probably TapTinder build bot owned by mj41 and reporting tt.taptinder.org/buildstatus/pr-Parrot/rp-trunk build errors. or see taptinder
bacek fperrad, identi.ca/notice/29709186 :) 08:07
08:07 iblechbot joined
moritz lol 08:08
fperrad currently, no answer :) 08:09
bacek, many languages still use nqp (like squaak in parrot tree), the migration nqp to nqp-rx is not trivial 08:10
moritz what's hard about it? 08:11
the error messages for syntax that's now stricter than before?
bacek fperrad, hmm... They are not covered in our testsuite... 08:12
And it's _really_ bad.
fperrad, hang on. There is no squaak in parrot tree. 08:14
My ./languages directory is perfectly empty 08:15
fperrad bacek, see in examples/languages/squaak
bacek fperrad, oookey. 08:16
bacek firing vim to fix squaak
sigh... 08:17
purl there's no crying in perl programming!
fperrad bacek, see TT#1319
bacek make examples_test still passing.
holy... 08:20
Is squaak still build by "make all"?
fperrad bacek, no 08:22
NotFound There is a bug manifested by json tests. Parrot_str_to_int can't handle PARROT_INTVAL_MIN... fixing.
bacek fperrad, sigh... 08:23
"squaak" was one of mine main reason to look at parrot. 08:24
cc -o installable_squaak squaak.o /home/bacek/src/parrot/src/install_config.o -Wl,-rpath=/usr/local/lib -L/home/bacek/src/parrot/blib/lib -lparrot -Wl,-E -fstack-protector -L/usr/local/lib -Wl,-E -ldl -lm -lpthread -lcrypt -lrt -lgmp -lreadline -lm -L/usr/lib -licuuc -licudata -lm 08:25
cc: /home/bacek/src/parrot/src/install_config.o: No such file or directory
fperrad, what is "install_config.o"?
fperrad bacek, 08:27
$ make installable
$ cd examples && cd languages && cd squaak && parrot setup.pir clean build install
bacek fperrad, thanks. I wasn't aware about "installable" target 08:28
fperrad, test passed in squaak at r45979. We still have to put it into main testsuite. 08:34
fperrad bacek, I wrote GzipHandle PMC (in src/dynpmc) with some allocation for copy of string (STRING -> C string), 08:36
is it possible to do better now with immutable string ?
bacek fperrad, let me check 08:37
(anyway, I don't think so. We are still compacting string pool. So, if you want to use "raw char*" it's better to Parrot_str_pin string before and unpin it after) 08:38
(and "immutable strings" mean "immutable string header" from technical POV) 08:39
dalek rrot: r45978 | NotFound++ | trunk/src/string/api.c:
fix Parrot_str_to_int to deal with PARROT_INTVAL_MIN
08:42
rrot: r45979 | NotFound++ | trunk/t/compilers/data_json/from_parrot.t:
fix typo
rrot: r45980 | bacek++ | trunk/examples/languages/squaak (2 files):
Update squuak to modern parrot. fperrad++ for mention it. testsuite-- for doesn't cover it
bacek fperrad, you just brought interesting idea about weird optimisation of Parrot_str_to_cstring into my mind... 08:52
dalek TT #1579 closed by NotFound++: examples/nci/xlibtest.pir out of date 08:59
TT #1579: trac.parrot.org/parrot/ticket/1579
rrot: r45981 | NotFound++ | trunk/examples/nci/xlibtest.pir:
update example xlibtest to use data_json, TT #1579
09:08 JimmyZ joined
sorear Are imcc parse error messages known to have the wrong line numbers? 09:25
_shockwave Can a :multi sub also have the :member modifier? 09:41
10:04 jan_ joined
dalek izkost: 995adc3 | sorear++ | (2 files):
Implement get_exports method
10:05
_shockwave purl paste 10:08
purl rumour has it paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
nopaste "_shockwave" at 192.168.1.3 pasted "method not found error." (63 lines) at nopaste.snit.ch/20358 10:09
_shockwave The paste above is a test case for a problem I have.
I'm getting a 'No applicable methods.' found error.
The main sub is at the bottom of the paste. 10:10
sorear Bah 10:11
Tk doesn't build on 5.12
oh I see 10:15
it's fixed in the betas
last stable release = 3 years ago
bugfixes shouldn't have beta versions :(
_shockwave If anyone has any ideas about the problem I mentioned, please holler. 10:16
sorear NQP now has Tk support 10:46
dalek izkost: 2646d55 | sorear++ | examples/tk.pl:
Make the Tk example WORK!
10:48
10:58 elmex joined 11:20 JimmyZ joined
JimmyZ clock? 11:23
purl JimmyZ: LAX: Sat 4:23am PDT / CHI: Sat 6:23am CDT / NYC: Sat 7:23am EDT / LON: Sat 12:23pm BST / BER: Sat 1:23pm CEST / IND: Sat 4:53pm IST / TOK: Sat 8:23pm JST / SYD: Sat 9:23pm EST /
11:31 khairul joined
dalek rrot: r45982 | NotFound++ | trunk/tools/util/parrot-config.pir:
multiple keys in parrot_config, TT #626
11:58
12:20 joeri joined 12:48 fperrad joined 12:50 Mokurai1 joined
NotFound trac.parrot.org/parrot/ticket/1176#comment:15 --> This is spam 12:51
Deleted 12:55
13:00 rurban_ joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33427), fulltest) at r45982 - Ubuntu 10.04 RC i386 (g++ with --optimize) 13:02
in testf: t/op/exit.t - TODO passed: 6
dalek rrot: r45983 | fperrad++ | trunk/src/pmc/os.pmc:
[pmc] implement OS.chmod()
13:11
kudo: ae0c2d4 | jonathan++ | build/Makefile.in:
Pull subset implementation a little earlier in the bootstrap, so we can define subset types in the core setting.
13:12
kudo: c866154 | jonathan++ | src/ (2 files):
Move time to core setting.
kudo: de2ad34 | jonathan++ | src/core/Mu.pm:
Initial port of WALK from alpha. Passes some of the tests; think those that fail are not due to an issue in WALK itself. Also add the Matcher subset type.
13:22 plobsing joined
dalek TT #1322 closed by fperrad++: [RFC] OS.chmod & FileHandle.fchmod 13:27
TT #1322: trac.parrot.org/parrot/ticket/1322
rrot: r45984 | fperrad++ | trunk/runtime/parrot/library (2 files):
[distutils) refactor chmod with OS.chmod
13:29
Coke ls 13:36
moritz no such file or directory
Coke $%^&*( 13:38
13:50 iblechbot joined 13:58 dalek joined 14:14 patspam joined 14:27 bakkdoor joined 14:29 patspam joined
mikehh got to reboot - bbl 14:32
14:43 mikehh joined
dalek rrot: r45985 | NotFound++ | trunk (2 files):
get_class_p_s and get_class_p_p return PMCNULL on NULL argument, TT #1107
14:48
rrot: r45986 | NotFound++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
unconst multi_func_list in C code generated from .pmc, TT #652
15:21
15:26 TiMBuS joined 15:49 jhelwig_ joined
dalek rrot: r45987 | fperrad++ | trunk/runtime/parrot/library/Test (3 files):
[Test/More] diag() with multi arguments
15:54
rrot: r45988 | fperrad++ | trunk/t/pmc/bigint.t:
refactor with diag()
15:56 tetragon joined 16:03 patspam joined 16:35 hudnix joined 16:36 theory joined 16:40 ZeroForce joined 16:49 jsut_ joined 16:50 patspam joined
arnsholt Is there a way to get 'get_hll_global %r, [], "name"' using PAST::Var? 16:55
PAST::Var.new(:namespace(), ...) just gives me 'get_hll_global %r, "name"' 16:56
I can get what I want with PAST::Op(:inline), but I'd rather avoid that...
moritz maybe :global instead of :namespace (or something like that)? 17:15
dalek rrot: r45989 | fperrad++ | trunk/tools/install/smoke.pl:
[install] nqp is gone with r45953
moritz probably not 17:16
dalek TT #1101 closed by NotFound++: Potential memory corruption caused by faulty cloning of ... 17:38
TT #1101: trac.parrot.org/parrot/ticket/1101
dukeleto what is the difference between :immediate, :load, and :init ?
dalek rrot: r45990 | NotFound++ | trunk/src/pmc/resizablefloatarray.pmc:
fix RFA.clone, TT #1101 kurahaupo++
17:48
17:58 mikehh joined
NotFound dukeleto: :immediate is executed during pir compiling, :load when load_bytecoded and :init when run as main program 17:58
dalek rrot: r45991 | NotFound++ | trunk/src/pmc/fixedfloatarray.pmc:
clean FPA.clone
18:05
mikehh BTW the docs at www.parrot.org are reported as 2.1.1 18:10
dukeleto NotFound++ # thanks for explaining that 18:15
dalek TT #1590 created by dukeleto++: Coredump in load_bytecode when embedding 18:27
TT #1590: trac.parrot.org/parrot/ticket/1590
NotFound dukeleto: Parrot_load_bytecode wants a STRING*, not a C string 18:38
dalek rrot: r45992 | NotFound++ | trunk/src/pmc/fixedintegerarray.pmc:
clean FIA.clone
NotFound Uh.... wait.
docs/embed.pod is wrong
dukeleto NotFound: how? 18:43
NotFound: and that is not surprising :)
NotFound dukeleto: the argument must be a parrot string
dukeleto NotFound: !!!!!
NotFound: that would do it
how does one tell which tests are part of coretest? 18:44
NotFound And that function, or an equivalent, must be exposed in extern.h
dukeleto NotFound: huh? Parrot_load_bytecode got added to embed.h last night, by Andy++ 18:45
it would be nice if there was a way to print out all tests that are part of coretest, instead of having to go code spelunking
NotFound dukeleto: then it must be avoided in packfile.h, redundant declarations just add confusion. 18:46
dukeleto it is hard to remember which tests can assume PGE is built, and which can't
NotFound: Andy++ did some magic. that is all I know. 18:47
NotFound dukeleto: but in that case, you must have a big warning in that failure.
Please don't tell me that you never look at warnings ;)
dukeleto NotFound: i "look" at them. Whether I care depends on the time of day and how much alcohol and/or coffee is involved 18:48
dalek kudo: a7f317d | (Martin Berends)++ | src/core/Temporal.pm:
[core/Temporal.pm] merge in the nicer-strftime branch hash-of-closures in strftime() in a way that works with current master
18:49
kudo: 06fe9a7 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-operators/reduce-le1arg.t.
kudo: 884c3c0 | (Solomon Foster)++ | src/core/metaops.pm:
Add version of notresults which takes an operator type but no operands and always returns Bool::True. Add zero-arg versions of <, <=, >, >=, and eqv.
kudo: 1e71b81 | (Solomon Foster)++ | src/c (4 files):
Move a bunch of operators from num-ops.pir and str-ops.pir to operators.pm. Add no-arguments versions of some of them as well.
NotFound I don't know how much coffe I alrady drunk today, probably too much ;)
dukeleto NotFound: I still get the same coredump if I give Parrot_load_bytecode a Parrot_String 18:51
NotFound: i am not creating a dummy packfile. that is probably the error 18:53
NotFound dukeleto: mmmm... maybe, but I don't think it must segfault in that place because of that. 18:54
dalek rrot: r45993 | dukeleto++ | trunk/t/oo/vtableoverride.t:
[TT #992] Committing a test for invalid :vtable methods that now passes since the TT was reported
rrot: r45994 | NotFound++ | trunk/docs/embed.pod:
fix load_bytecode signature in embed.pod
dukeleto NotFound: darn, you beat me :) 18:55
NotFound Easy karma ;)
dukeleto: I can't help with that, don't have postgres installed. 18:57
dukeleto NotFound: I will try to make a small test case. I don't think the error is Postgres or PL/Parrot specific 18:58
NotFound: but I will make the dummy packfile and see if that does it
dalek TT #992 closed by dukeleto++: Memory errors when evaling invalid :vtable methods in a namespace 19:01
TT #992: trac.parrot.org/parrot/ticket/992
dukeleto PackFile_new_dummy is not in embed.h nor extend.h 19:03
NotFound dukeleto: Parrot_compile_string calls it if needed, anyway. 19:09
19:10 Khisanth joined
dukeleto NotFound: yes, i see that. It can't seem to find built-in pbc's, like P6object.pbc 19:11
NotFound: i get "load_bytecode" couldn't find file 'P6object.pbc' 19:12
NotFound That's much better that segfaulting :) 19:13
dukeleto: Are you using an installed parrot, or in tree? 19:14
dukeleto NotFound: installed parrot 19:16
NotFound: attempting to .include "P6object.pir" coredumps in Parrot_pcc_invoke_from_sig_object 19:18
FUN FUN FUN
purl And she'll have fun, fun, fun, 'til her daddy takes the T-bird away
dalek TT #1591 created by dukeleto++: PackFile_new_dummy is not in embed.h nor extend.h
TT #1591: trac.parrot.org/parrot/ticket/1591
19:21 Mokurai2 joined 19:24 Khisanth joined
dalek TT #1590 closed by dukeleto++: Coredump in load_bytecode when embedding 19:35
TT #1590: trac.parrot.org/parrot/ticket/1590
kudo: 4bf985c | (Solomon Foster)++ | src/core/metaops.pm:
Delete a number of commented out zero-arg operators that we don't need because notreduce handles them. Uncomment infix:<before> and infix:<after>.
19:42
kudo: ea91882 | moritz++ | t/spectest.data:
re-enable a few test files; also throw one entry away where the test file was deleted
NotFound dukeleto: after a fix in r45995, loading P6object.pir works for me in an embeding test 19:44
I mean, P6object.pbc
dalek rrot: r45995 | NotFound++ | trunk/src/packfile.c:
make sure initial_pf exists in PackFile_append_pbc
19:45
20:10 Ryan52 joined
dalek kudo: 73e8d42 | moritz++ | (2 files):
implement samecase()
20:11
mikehh t/oo/vtableoverride.t FAILS in make corevm/make coretest (passes make test) - "load_bytecode" couldn't find file 'PGE.pbc' It has not been built at this stage 20:15
dalek rrot: r45996 | NotFound++ | trunk/examples/embed/cotorra.c:
more options and some fixes in example cotorra
20:18
NotFound mikehh: fixed 20:54
dalek TT #1592 created by NotFound++: t/op/io.t fails in non optimized build 20:58
TT #1592: trac.parrot.org/parrot/ticket/1592
21:02 rurban_ joined
dalek rrot: r45997 | NotFound++ | trunk/t/oo/vtableoverride.t:
allow test invalid_vtable to be used in coretest
21:07
kudo: aa51358 | (Solomon Foster)++ | src/core/Co (2 files):
Add $base to exp proto, and make a version of Complex.exp which takes the $base argument.
21:20
kudo: 55a62ae | moritz++ | src/core/Grammar.pm:
fix Grammar.parsefail, patch by takadonet++
21:26
21:30 bakkdoor joined
dalek izkost: 4a310c5 | sorear++ | Configure.pl:
Drop the dependence on Parrot gen_makefile.pl

into the Makefiles.
21:37
22:07 bakkdoor joined
bacek o/ 22:12
sorear so nobody in #parrot is excited about the fact that I can access Tk from NQP? 22:15
wasn't there a TPF grant to make that happen not long ago?
22:15 tcurtis joined
NotFound Looks like people here only gets excited when someone write a long post about whatever the thing is ;) 22:18
sorear BUT I HAVE PRETTY PICTURES 22:25
tcurtis They also respond well to donuts. 22:27
NotFound Can I have one? 22:28
tcurtis A donut? Only if someone gives me two. 22:29
22:30 kid51 joined
sorear NotFound: qif3.kyla.fi/~stefanor/1272105680.png 22:31
NotFound sorear: nice. 22:33
nopaste "kid51" at 192.168.1.3 pasted "Failure in t/op/io.t" (27 lines) at nopaste.snit.ch/20362 22:34
NotFound But I also want the donut.
kid51: I've created a ticket about that.
kid51 NotFound: Thanks. I got the error, but had to go out for dinner before getting nopaste to respond properly. 22:35
Must have occurred since r45836, at least. 22:36
dalek izkost: d5f00d1 | sorear++ | (3 files):
Find Perl embedding options at configure time

unbreaking nmake, and is in any event a neccessary step towards supporting compilation on non-default Perls.
22:37
NotFound kid51: looks like few people does non optimized builds these days.
sorear I do non optimized builds because that seems to be the only sane way to get debug symbols in dynpmcs 22:38
kid51 I'll bet it's r45961 that's the cause -- but am bisecting to confirm. 22:58
dalek rrot: r45998 | NotFound++ | trunk (7 files):
allocate packfile fixups as array of structs instead of array of pointers to structs
23:02
kid51 dukeleto: ping 23:05
msg dukeleto Please take a look at trac.parrot.org/parrot/ticket/1592 Thanks. 23:10
purl Message for dukeleto stored.
kid51 Okay, point of failure identified; TT #1592 assigned. 23:11
NotFound That thing looks a little odd to me. If is legit to replace a core pmc with a class, and we allow to HLL map it, confusion is granted. 23:23
dalek kudo: 4a1312a | jonathan++ | src/Perl6/Compiler/Package.pm:
First cut implementation of lexical classes; hard to know just how well it works yet for lack of tests.
23:26
kudo: e393c7e | jonathan++ | t/spectest.data:
Turn on S12-class/lexical.t.
kid51 NotFound: Confirmed that --optimize makes test PASS, but without it it FAILs 23:31