Parrot 0.9.0 "From Outer Space" Released | parrot.org/ | migration to svn.parrot.org begins at 19:00 UTC on Thurs
Set by moderator on 26 January 2009.
kj chromatic: both t/pmc/namespace.t and t/pmc/parrotobject.t pass for me 00:01
I pass the objct being invoked explicitly, because there's no method call 00:02
chromatic There you go.
kj could you commit the patch to imcc? my wc is messed up
chromatic I'd rather update everything in one go, so we don't have the trunk in a broken stage between two commits. 00:03
kj yeah, true
eh, ok. I'll get a clean wc
btw, i was looking into the pic stuff, and it seems to me it's easy to remove from compilers/imcc/pbc.c 00:04
just remove all code that has 'pic' in it
worked here
not sure if the pic stuff is used somewhere else, but no additional tests failed I think 00:05
chromatic Coke had a branch somewhere either Allison or I needed to review for that.
kj ok
is it alright if I send you a patch with the tests as well, so you can commit at once? 00:06
chromatic Just the tests should be fine; I still have the patch applied.
kj yes, exactly, just a patch for the tests
sent 00:07
00:09 AndyA joined
chromatic Retesting, but I'll commit shortly. 00:10
nopaste "NotFound" at 213.96.228.50 pasted "Method for redirect std handles" (15 lines) at nopaste.snit.ch/15445
NotFound chromatic: Something like is that you asked for som days ago? 00:11
chromatic Yes, a lot like that!
NotFound chromatic: I have it working right now 00:12
nopaste "NotFound" at 213.96.228.50 pasted "Method for redirect std handles - patch" (31 lines) at nopaste.snit.ch/15446 00:14
s1n TiMBuS: the "mod" op was inside a sub, used in an unless statement 00:15
chromatic s1n, remember it's an assembly language.
kj NotFound: that assumes certain values of PIO_STDIN_FILENO and the one for STDERR
chromatic You don't get complex nested expressions.
NotFound kj: like all the parts that acces SDTIO et al in the repo 00:16
TiMBuS yeah that would probably be the issue
NotFound kj: for pir, there are constants
kj NotFound: good point. Still, that makes me even more worried
s1n so i can't say something like the following: "unless by_counter mod range_by goto range_loop"?
kj s1n: I think you want %, not mod 00:17
NotFound runtime/parrot/include/stdio.pasm
kj NotFound: ok, well if these values are guaranteed not to switch in order, then it's fine
but it's being used to index an array 00:18
anyway, just saying :-)
s1n kj: error:imcc:syntax error, unexpected '%' ('%')
kj ah, so yes 00:19
s1n: true
haha, I'm just writing a compiler for it ;-)
anyway, you have to store that result in an I register first
$I0 = by_counter % range_by
and then unless $I0 goto range_loop
s1n oh, heh okay, lemme try that
NotFound kj: the implementation can be changed, this is just a proof of concept and a check of desired syntax 00:20
s1n is there a document describing the available registers and their intended uses?
kj s1n: docs/pdds/pdd19_pir.pod
purl docs/pdds/pdd19_pir.pod is probably for that purpose, though there are many other places that fill in holes
kj also, look at docs/user/pir/*.pod
s1n kj: thanks, i'll check those out
kj and docs/book 00:21
s1n i'm just kinda getting into this so i'm not overly familiar with the documentation yet
kj: error:imcc:The opcode 'mod_i_p_p' (mod<3>) was not found. Check the type and number of the arguments 00:22
kj s1n: It's fine. You just make us painfully aware it's not finished yet ;-)
s1n: ok, that means that there's no "mod" opcode, that takes 2 PMCs and leaves the result in an I register
00:22 tetragon joined
s1n kj: not intentional :) parrot/pir/pge/some-other-TLA all kinda have steep learning curves for someone who hasn't really every done asm 00:23
chromatic kj, I also added a test in t/oo/vtableoverride.t.
dalek r36073 | chromatic++ | trunk (7 files):
: [IMCC] Make self parameter available from PIR vtable overrides (TT #103, work
: done by Klass-Jan Stol).
review: www.parrotvm.org/svn/parrot/revision?rev=36073
kj s1n: you can convert the PMCs to Integers, just write $I0 = $P0
s1n kj: okay, hmm, not sure what to do now
how can i declare something as an integer instead of pmc then? 00:24
kj .local int a, b, c
chromatic++ # thanks for helping
s1n kj: great, i'll try that :)
kj s1n: I highly recommend reading docs/user/pir/*.pod
s1n kj: is there a good order for a total newbie? 00:25
kj start with the one called 'intro' ;-)
s1n hah, okay, after that
kj eh, they're also numbered, that should give ya a hint
:-)
s1n oh, there's only 3 of them total heh
kj yes, that's all you need ;-) 00:26
s1n great thanks, there's much to learn
kj: error:imcc:The opcode 'mod_p_i_i' (mod<3>) was not found
kj s1n: you tried to store the result in a p register 00:27
s1n okay, i clearly need to read about those registers heh
kj the first _x indicates the type of the esult
_p means result register is PMC, _n is number, etc.
so:
.local int a, b, c
s1n yeah i see those, that's like the second section of that intro pod lol
kj so, store your 2 PMCs in a and b respectively 00:28
s1n yeah, that worked when i started using .local int and $Ix
kj that will 'cast' the PMCs into a int, as it were, which just basically means it retrieves the integer representation
$I0, $I1, $I2 are symbolic registers, no need to declare them 00:29
just use em. if you want fancy names, declare them using .local
s1n okay, i'll digest those docs, so if it's not in there, i won't know it :) 00:30
kj if youve read docs/user/pir, and docs/book and docs/pdds/pdd19, then you should be the expert
bedtime. good night 00:31
NotFound I don't like very much that $P1($P1) to call the vtable 'invoke' 00:38
It does not allow to pass a functor to some thing that expects something callable like a sub 00:39
chromatic I'm not sure it's a good idea to change the signature of vtable entries when you override them. 00:40
NotFound We can always pass self, even in subs 00:41
chromatic Sure, but I'm not sure passing a functor is desirable. 00:42
00:44 kid51 joined
NotFound There are languages when all subs are objects, like Boo. Not having real functors will make his interoperability dificult. 00:44
chromatic Right, but VTABLE_invoke() doesn't take any arguments. 00:45
00:45 chromatic left, chromatic joined
chromatic Besides the interpreter and the PMC, that is. 00:45
Overriding invoke() from PIR and changing its signature seems like a recipe for disaster. 00:49
NotFound Not an easy task 00:52
chromatic It violates Liskov, which is a bad sign. 00:53
NotFound I will think about it. Now go to sleep :O 00:58
kid51 Liskov?
purl well, Liskov is clean in theory, but not that helpful for real programs
kid51 purl, Liskov is also en.wikipedia.org/wiki/Liskov_substi..._principle 00:59
purl okay, kid51.
kid51 Liskov?
purl Liskov is, like, clean in theory, but not that helpful for real programs or en.wikipedia.org/wiki/Liskov_substi..._principle
Coke_away chromatic: I wonder why invoke vtable /doesn't/ take arguments. 01:24
Coke seems like it should. 01:25
chromatic Because we have calling conventions.
Coke should we have a chance to override arguments in a vtable invoke override? 01:26
chromatic You do, but you have to poke into the registers to do it. 01:27
Coke evil!
chromatic_away (ponder how we'd have to make it work with variadic macros in C89 in C if we allowed VTABLE_invoke() to take arguments) 01:28
Coke I'd probably recommend we switch to using a Signature PMC at that point.
I honestly don't care at this point how it works if I can do the override.
chromatic_away This complexity sleeps on a waterbed.
Coke cringes at American Idol 01:30
01:48 davidfetter joined
kid51 me seeks Coke's feedback on trac.parrot.org/parrot/ticket/223 (t/steps/auto_pmc.t) and trac.parrot.org/parrot/ticket/120 (deprecation of DWIM.pir). 01:52
Coke kid51: I already replied to 120 01:56
(4 days ago)
223: looks good. 01:57
purl O_O
kid51 Coke: Thanks. If you'd like to eyeball that patch before I re-apply it, that would be cool: trac.parrot.org/parrot/attachment/....pir.patch 02:06
shorten kid51's url is at xrl.us/bedz6d
02:24 s1n joined 02:39 gravity joined 02:47 rurban_ joined
Coke kid51_at_dinner: (eyeball) if it's the same as before, ISTR it was fine. 02:52
TiMBuS whats the easiest way to go about a pmc having a member variable? 02:53
actually it'd probably be even better if it was somehow static/const now that I think about it since its just an array with one member. 02:55
03:07 Fayland_logger joined 03:10 Andy joined 03:13 gravity joined 03:21 Maddingue joined 03:26 Hunger joined
dalek r36074 | jkeenan++ | trunk (5 files): 03:31
: Re-applying patch originally applied in r34951, subsequently reverted. Remove
: DWIM.pir per trac.parrot.org/parrot/ticket/120.
review: www.parrotvm.org/svn/parrot/revision?rev=36074
r36075 | jkeenan++ | trunk (2 files): 03:49
: Apply patch submitted by Andy Dougherty in
: trac.parrot.org/parrot/ticket/214: Remove Solaris 8 (SPARC) from list
: of supported platforms.
review: www.parrotvm.org/svn/parrot/revision?rev=36075
04:04 bacek_ joined 04:20 Andy left 04:27 rurban_ joined, dalek joined 04:29 clunker9_ joined 04:33 mj41_ joined
dalek r36076 | allison++ | trunk/docs/pdds: 04:35
: [pdd] Regularizing string API function names to fit the pattern of a
: three-character subsystem identifier.
review: www.parrotvm.org/svn/parrot/revision?rev=36076
r36077 | allison++ | trunk/src/pmc: 04:44
: [cage] Fix the documentation for default's implementation of 'is_same'.
: It's checking pointer equality, not numeric equality.
review: www.parrotvm.org/svn/parrot/revision?rev=36077
04:50 mj41_ joined 04:51 mj41__ joined
dalek r36078 | allison++ | trunk/src/pmc: 04:52
: [cage] Remove custom 'is_same' vtable function from String PMC.
: Resolves TT #11.
review: www.parrotvm.org/svn/parrot/revision?rev=36078
05:10 dalek joined 05:17 rg joined 05:25 tetragon joined 06:11 ChrisDavaz joined
dalek r36079 | allison++ | trunk/languages/PIR/src: 06:14
: [languages/pir] Fix grammar referring to 'label' rule, which doesn't exist.
review: www.parrotvm.org/svn/parrot/revision?rev=36079
r36080 | allison++ | trunk (6 files): 06:20
: [languages/pir] Renaming the core compiler file to match test framework
: expectations. Resolves issue reported in TT #87, but does not resolve all
: remaining test failures.
review: www.parrotvm.org/svn/parrot/revision?rev=36080
06:38 masak joined
dalek r36081 | cotto++ | trunk (17 files): 06:43
: [pmc] remove SIG_x macros, mostly fix t/examples/shootout.t
review: www.parrotvm.org/svn/parrot/revision?rev=36081
cotto chromatic_away, ping 07:06
(or anyone who's worked in jit code) 07:08
s/in/on/
07:13 uniejo joined
chromatic pong 07:13
cotto can you look at ./parrot -j t/examples/shootout_3.t ?
I seem to have broken that test on jit. 07:14
chromatic Which commit? 07:16
cotto r36053 07:17
chromatic Yeah, segfaults for me at r36073. 07:18
cotto '81 fixes several failures in t/examples/shootout.t. That one is the only one that's still broken.
So I didn't break it? 07:19
chromatic I'm updating now.
$ ./parrot -j t/examples/shootout_3.pir 07:21
1234567
FixedIntegerArray: index out of bounds!
Segfault's in FIA's destroy.
07:22 japhb joined
cotto but the exception shouldn't happen either. I think it's related to TT #233, I just don't know what code is calling FIA's get_integer_keyed_int. 07:23
chromatic I don't see immediately either. 07:27
cotto maybe it's time for some trial and error, then 07:28
07:38 rurban_ joined 07:39 skv joined 08:07 Casan joined
dalek r36082 | fperrad++ | trunk/languages: 08:10
: [WMLScript] Moved to git://github.com/fperrad/wmlscript.git
review: www.parrotvm.org/svn/parrot/revision?rev=36082
r36083 | fperrad++ | trunk (10 files): 08:13
: WMLScript is gone
review: www.parrotvm.org/svn/parrot/revision?rev=36083
Casan can anyone suggest a good perl help irc channel good=active @anyserver (modperl2 question) as I don't want to bother parrots unless its ok to ask here. 08:17
08:18 iblechbot joined 08:32 barney joined
dalek r36084 | fperrad++ | trunk/config/gen/makefiles (2 files): 08:34
: [make] remove useless target 'svnclean'
review: www.parrotvm.org/svn/parrot/revision?rev=36084
08:35 HG` joined
dalek r36085 | bernhard++ | trunk/t/perl: 08:58
: [t] fix number of test cases in Parrot_Distribution.t
review: www.parrotvm.org/svn/parrot/revision?rev=36085
09:16 HG` joined 10:01 rob joined
Phurl omg the fsf has gone too far this time rdfintrospector2.blogspot.com/2009/...oaded.html 10:05
shorten Phurl's url is at xrl.us/bed28v
moritz find that post quite hard to read 10:08
10:09 braceta joined
TiMBuS is this about gcc's broken intermediate representation output 10:10
lathos I couldn't understand it.
Is it saying that FSF is claiming IR is subject to GPL?
TiMBuS no, it can't be
so they intentionally break their IR output so no third party programs can get the output and use it for whatever 10:11
and then sell it
Phurl well now they want to say that the gcc cannot be changed
by anyone
or the output is gpled if you link to the runtime
TiMBuS =/
Phurl which is really crazy
according the gpl, you cannot restrict usage
TiMBuS the fsf is crazy
Phurl if you use the compiler to only do half the compilation
then you are free to do so 10:12
anyone who buys it...
i think this is really just political, it cannot be rational
"your going to kill the gcc"
TiMBuS eh, time for llvm to take over anyway 10:13
Phurl yes
well they are trying to figure out how to stop the llvm
but if the llvm produces c code
then really
there is no stopping them
TiMBuS the D compiler for llvm is nearly done, woot 10:14
Phurl that is like saying you cannot compile programs from the llvm if you want to use the gcc
realyl? TiMBuS you mean D as in www.digitalmars.com/ not D as in solaris Dtrace :=
;)
TiMBuS digitalmars d lol 10:15
Phurl hahah
TiMBuS its a really good language
Phurl it looks good!
have you used it?
TiMBuS yes
Phurl nice, so it is c++ plus
?
TiMBuS pretty much. a lot cleaner
Phurl you know, the times have changed alot 10:16
and people are just dying to go open source
just to reduce costs
TiMBuS its like a halfway point between C#/Java and C++
open souce is cool
Phurl the fsf has won, but not how they want to have won
they lost control
lathos Open source won. Free software lost. Oops.
Phurl but the people won
TiMBuS FOSS isnt the same thing as open source 10:17
Phurl yeah basically
I still love free software and support it when I can
but they make it more and more difficult on me
:P 10:18
barney I'm also confused about the FSF: What is bad about mixed compilation? 10:19
TiMBuS im pretty sure richard stallman is legitimately crazy, so just chalk it up to that.
Phurl LOL 10:20
really, bkuhn said that he worked for a long time on this 10:21
did you see the link at the bottom about the announcment of the plug in architechture for the gcc?
it is based on this idea
they want to say that the plugins must be gpled
i guess they will try a political solution 10:22
like : if you say open source i will scream and cry, so dont!
10:40 kj joined 10:46 rob joined
dalek r36086 | bernhard++ | trunk/src (2 files): 10:55
: [codingstd] add missing of incorrect ASSERT_ARGS macro
review: www.parrotvm.org/svn/parrot/revision?rev=36086
r36087 | bernhard++ | trunk/src (2 files): 11:01
: [codingstd] tabs.t and trailing_space.t
review: www.parrotvm.org/svn/parrot/revision?rev=36087
barney Can string_repeat be removed? Replaced by Parrot_str_repeat. 11:02
11:11 skv joined 11:14 ChrisDavaz joined
dalek r36088 | bernhard++ | trunk/src/pmc: 11:17
: [codingstd] c_parens.t
review: www.parrotvm.org/svn/parrot/revision?rev=36088
cotto barney, are they distinct functions that do the same thing? 11:20
or did you mean rename
barney string_repeat does the same as Parrot_str_repeat, I've added a comment to the open ticket TT #210 11:22
11:40 UltraDM joined
dalek r36089 | coke++ | trunk/config/gen/makefiles: 12:06
: Document another build dependency.
review: www.parrotvm.org/svn/parrot/revision?rev=36089
Coke cotto, I think this was you: when you add an include, be sure to also write it down in the makefile. (especially if it's a generated .h file)
cotto It was and I will
Thanks for taking care of that. 12:07
Coke++
Coke np. 12:08
IWBNI if we had a make depend step.
but that's work. 12:09
cotto It may become a good idea to include all the PMC headers by default. We'll see how the rest of the UnionVal deprecation goes. 12:13
12:24 AndyA joined 13:01 tetragon joined 13:37 pancake joined
Coke is followed on twitter by pacolinux. 13:55
Coke finds out that pacolinux actually tried to run the spec test for partcl.
twitter++
PerlJam I don't know if pm made a decision yet, but it looks like git is winning. 14:22
dalek r36090 | jonathan++ | trunk/languages/perl6/src/classes:
: [rakudo] Auto-threading over the invocant for methods not defined in Junction.
review: www.parrotvm.org/svn/parrot/revision?rev=36090
14:27 gryphon joined
dalek r36091 | bernhard++ | trunk/languages/pipp (2 files): 14:34
: [Pipp] add implementation of 'chunk_split'
review: www.parrotvm.org/svn/parrot/revision?rev=36091
r36092 | bernhard++ | trunk/languages/pipp (5 files):
: [Pipp] Implement 'implode'.
: Return 'standard' from get_loaded_extensions()
review: www.parrotvm.org/svn/parrot/revision?rev=36092
14:35 Whiteknight joined
Whiteknight ETOOMANYTRACEMAILS 14:35
moritz trace-mails or trac-emails? :-) 14:36
dalek r36093 | bernhard++ | trunk/languages (2 files):
: [codingstd] trailing_space.t
review: www.parrotvm.org/svn/parrot/revision?rev=36093
Coke Whiteknight: yah, I'm about to setup a gmail filter.
Whiteknight moritz, trac-emails 14:37
haha, stupid unix error naming ambiguities
it's like that website, www.expertsexchange.com, which many people read as expert-sex-change instead of experts-exchange
rg whiteknight: can regular users also get trac emails (and i just haven't found how) or is that not possible? 14:39
moritz there's a list to which you can subscribe
Coke Whiteknight: www.6dollarshirts.com/product.php?p...amp;page=2
shorten Coke's url is at xrl.us/bed3oo
Whiteknight rg, all the trac emails seem to go to the parrot-dev mailing list, I think 14:40
rg i thought i was subscribed to parrot-dev. also, i'd prefer a per ticket subscription, like rt or bugzilla 14:41
dalek r36094 | particle++ | trunk/src/string:
: [core] oops! strings refactor caused my changes to string_to_num not to be committed. i blame society.
review: www.parrotvm.org/svn/parrot/revision?rev=36094
Coke i don't know if you can tell trac to email you on given tickets.
dalek r36095 | Whiteknight++ | trunk/docs/book: 14:44
: [Book] Add stuff to the PIR chapter about statements, directives, boxing and type conversions, etc. More example code.
review: www.parrotvm.org/svn/parrot/revision?rev=36095
Whiteknight particle++, society--
Coke added a link to the parrot tickets list to parrot.org // Developers
... well, I hit submit, anyway. trac is still loading. 14:45
there, added. 14:46
... whoops. wrong display name. fixing
moritz and I thought one of the reassons for switching to trac was that RT was slow
14:47 davidfetter joined
rg i'm getting "OperationalError: database is locked" (i know, just wait :( ) 14:48
14:49 Andy joined
Coke zzzzzzzzzzzzzzzzzzzzzzzz 14:50
seen allison? 15:06
purl allison was last seen on #parrot 19 hours, 12 minutes and 30 seconds ago, saying: NotFound: yes
kj Whiteknight: the part in the book about box opcode almost implies that you have to create a new Integer first, and then invoke box 15:08
that's the way I read it..
Coke rakudo: ('kjs','barney','fperrad').pick.say 15:12
polyglotbot OUTPUT[kjs␤]
Coke rakudo: ('kjs','barney','fperrad').pick.say
polyglotbot OUTPUT[fperrad␤]
kj and also, "there is no way to specify a pmc constant in the PIR source code". That is true, except that there is a way to store a PMC constant, but it's done using an :immediate sub
Whiteknight kj, you're right. I should clarify that section 15:13
and I'll add the :immediate workaround for constant PMCs
kj Whiteknight++ # book
Whiteknight thanks!
kj yes, the :immediate trick is in pdd19, if you need details
Coke keeps meaning to use that trick for some tcl stuff. 15:14
(I am instead shoving things into a global with an :init)
kj and, in fact, it's a bit of a misnomer: it's not really a "constant" as such; you can actually modify it (I know for sure if it's a data structure such as hash/array, not sure for scalars)
15:14 Tene_ joined
barney feels rejected 15:19
particle it's a shallow constant :) 15:20
kj particle: Yes, but is it? Suppose an :immediate .sub returns an Integer PMC, can you change the value of that PMC? 15:21
I should test that some time
Whiteknight kj, you should be able to modify it, yes. If you want it to be constant you should create a read-only pmc instead 15:25
Whiteknight is not entirely sure how to make a read-only PMC in PIR, but it sounded like a good answer
kj it seems a bit weird, to define a .const that is modifiable 15:27
(maybe add a, currently non-existing, :const flag?) 15:28
Whiteknight what are the \\f, \\r, and \\e string escape sequences? 15:33
kj \\r is return-carriage
the others I don't know
moritz Whiteknight: in which context? PIR? or Regexes?
Whiteknight in PIR
moritz dunno then 15:34
15:34 donaldh joined
kj Whiteknight: I think they're the same as in C 15:36
Whiteknight haha, I have no idea what those sequences are in C either
kj well that's easy no?
moritz \\f could be a form-feed character
kj www.wilsonmar.com/1eschars.htm 15:37
Whiteknight yeah, \\r looks like carriage return and \\f looks like formfeed
but I don
t know what \\e is
kj no it's not on the site
is it not in pdd19?
oh escape 15:38
lua-users.org/lists/lua-l/2008-03/msg00039.html
lua doesn't support it, but instead uses \\027
istr it's something to do with setting the cursor position, for which you need to use the escape thingy
Phurl ok 15:39
Whiteknight okay
Phurl it does not look like the pipp will be working soon
kj check out the "game of life" example of lua
that uses it to reposition the cursor
(not sure if it's in parrot repos. but it should be easy to find online)
Whiteknight okay, thanks
Phurl i have the feeling that the parrot pipp xslts are out of synch with phc
Whiteknight Another question, how do you list yourself as a "resource" on a trac ticket? 15:40
15:40 rurban_ joined
Coke you can own the ticket. 15:41
kj Whiteknight: btw, you might want to check out whether all these escape characters actually work in PIR...
15:42 riffraff joined
Whiteknight kj, that probably is a good thing to test 15:42
kj maybe even write tests :-)
I'm not sure if there are any. there might
particle i don't remember writing any 15:43
moritz ack -Q '\\e' t/ 15:44
two PGE tests
t/library/mime_base64.t implicitly tests \\f 15:45
particle should explicitly test, perhaps in t/compilers/imcc/syn 15:46
barney Phurl: Yes, the PHC variant never passed all tests. Things that are easy with NQP are fairly hard with XSLT
particle ...which should be renamed to t/pir/syn or something
maybe phurl can help with the sticky xslt... 15:47
Phurl ok
i am just updating the ticket
i dont know but nothing comes out of the xslt 15:48
...
Coke kj++ 15:50
kj what does 'syn' stand for anyway, in t/imcc/syn?
Coke syntax?
purl i think syntax is a nightmare
Coke no, purl, syntax is <reply>
purl okay, Coke.
kj aah. 'syntax' was too long?!
jonathan it was too taxing to type
Coke if in fact that's what it is, feel free to rename it. I'm just guessing.
kj jonathan: I only got it now :-P ha ha! 15:51
particle yes, it's syntax. let's call it t/pir/syntax/ 15:54
dalek r36096 | jonathan++ | trunk/languages/perl6/src/parser (2 files):
: [rakudo] Compile time detection of type re-declaration, as well as making class A is B { } and class A does B { } a compile time error when B is not declared.
review: www.parrotvm.org/svn/parrot/revision?rev=36096
kj particle: do you have any failing tests on windows? 15:56
particle for parrot?
kj yes
I've got 3, including NaN/Inf related
particle are you at head?
kj r36087 15:57
particle i put in a fix this morning, i didn't realclean after allison's strings refactor, and it caused my patch to fail, since src/strings.c was moved
r36094 | particle++ | trunk/src/string: ... 15:58
kj i'll svn up and rebuild
jonathan So...I can't find how to do it...how do I merge one ticket into another in RT?
particle the jumbo page will have that, for sure 15:59
moritz jonathan: click on the Jumbo
jonathan thanks
oh
Internal Server Error
purl it has been said that Internal Server Error is the catch-all the web server uses when it has no idea what's wrong or look in the error_log for (hopefully) a better error message or 10 MONKEY CANNOT FIT INSIDE A 1.44MB FLOPPY!@#
kj gen::makefiles - Generate makefiles and other build files...value for 'opengl_lib' in config/gen/makefiles/root.in is undef at lib/Parrot/Configu 16:01
re/Compiler.pm line 539, <$in> line 2198.
rg you don't need the jumbo page. it's on the links page
kj is that configure warning known?
Phurl who is the best webhosting for europe? 16:03
jonathan OK, done 16:04
Phurl dont close my tickets !!! /me beats his chest 16:13
:)
Coke is there a magic attribute I can put on a C variable that will cause it to retain its value across function invocations? 16:17
moritz Coke: static 16:18
static int i = 1;
Coke danke.
bah. 16:20
CONST_STRING isn't defined when my dynops are compiled.
kj Coke: note that it makes the function non-reentrant 16:24
16:25 Theory joined
Infinoid kj: is "make test" in compilers/pirc/ expected to pass? 16:27
kj Infinoid: no there's some failing tests in stmts.t 16:28
that's due to the bug
ISTR it used to work, but I can't say for sure
probably not
Infinoid ok, thanks 16:30
Coke kj: danke. because of CONST_STRING missing, I can't use it. 16:31
kj Coke: I think it's a feature only to use in prototype code; basically it's a global with limited scope. 16:32
Infinoid I'm cleaning up a few gcc warnings in pirc (mostly constness stuff) 16:33
Infinoid gives up on src/pirmacro.c:128 for now 16:35
kj what warning is that? 16:36
oh yea, the cast
yes, I don't know how to fix that.probably removing the 'const'ing
of course, what would work is to copy the string... 16:37
but for now, c-strings are not so important, I think, as the whole string stuff will move to Parrot STRINGs anyway 16:38
particle coke: what about const_string?
coke: rakudo uses CONST_STRING 16:40
16:40 tomyan left
Coke particle: in your ops file? 16:40
particle ah, no pmc.
Infinoid kj: the confusing part is the comment above it. it's not casting to "const *", it's casting to "* const", isn't it?
gcc gives me a warning about the cast. if I remove it, gcc gives me a warning about the assignment. So yeah, leaving it alone for now 16:41
kj Infinoid: value is a char const * const; def->body is a char const *. 16:42
dalek r36097 | infinoid++ | trunk/compilers/pirc/src:
: [pirc] Fix a 64-bitness issue (opcode_t does change size).
review: www.parrotvm.org/svn/parrot/revision?rev=36097
r36098 | infinoid++ | trunk/languages/perl6/src/parser:
: [cage] Trailing whitespace fix.
review: www.parrotvm.org/svn/parrot/revision?rev=36098
r36099 | infinoid++ | trunk/compilers/pirc/src (3 files):
: [pirc] Fix a few warnings.
review: www.parrotvm.org/svn/parrot/revision?rev=36099
Infinoid kj: but your cast is just "char *", does that strip *both* consts then?
kj eh, so i guess the cast should be to char const *, not char *
Whiteknight if you cast it to (void*) first and then cast it to (* const) the compiler shouldn't throw an error
of course, here there be dragons
Infinoid I don't have a clue.
particle Whiteknight: never, ever do that in parrot code. i *will* find you. 16:43
kj I don't know about the dragons part... that's why I put a comment there
Whiteknight I'm just saying if you want the compiler to shut up about casting errors, then use a cast that is defined by the C89 standard to not throw errors 16:44
maybe wrap it up neatly in a little YES_I_REALLY_WANT_TO_CAST_THIS() macro, with a nice comment and a few caveats
Infinoid It's usually better to back out the constness, I think.
Whiteknight DAMNIT_I_SAID_JUST_DO_IT() 16:45
kj Infinoid: yes, probably. But like I mentioned, they'll be STRING * at some point anyway
Infinoid The code in question is dealing with a constant value pulled from a PBC file. That doesn't necessarily say anything about whether it needs to be const on the C level...
Yeah, it'll change anyway.
kj but I'm feeling too lazy at this point to undertake such a big conversion
Infinoid: true, but I just like stuff to be 'const' :-) It's supposed to be optimizable or whateer 16:46
Infinoid I've never actually seen much performance benefit from that. Though it is nice that it generates warnings when you do things you aren't supposed to be able to do. :) 16:49
particle that's the main benefit, to me
source code is for humans.
Infinoid from the processor's perspective, everything is a void*. Everything above that is for us. 16:50
rurban well, a cpu's sees int and double, not only void* 17:04
Infinoid int and void* are the same thing tho :) 17:06
Whiteknight cpu just sees a series of bits. How it uses those bits depends on what the programmer says to do 17:07
rurban you can safely calculate with int, with void* - void* is not cosher 17:08
Infinoid that distinction is only valid on the C level. 17:09
rurban true, but void* is only a c type
int bits differ from double bits also. 17:10
17:11 Phurl joined
Phurl back 17:11
trac.parrot.org/parrot/ticket/235 please reopen
Infinoid True, doubles are a special case. My point was, all these things like structs, constness, nonnullness, enums, defines, functions, inlineness, all of those things are only here for our benefit. (I was agreeing with Particle) 17:13
NotFound Take care with constness and casts, or you break the c++ buid 17:15
rurban is c++ ever smoked? with msvc probably
Infinoid Because warnings become errors?
NotFound rurban: I take care to maintain the c++ buildability 17:16
moritz on German perl newsgroup somebody is asking how Perl 6's XS replacement (aka NCI) will look like - is there any resource I can point them to? or parrot's NCI for a start?
NotFound Infinoid: yes, c++ is intolerant with several cases that c allows
Infinoid moritz: maybe the pdd16 draft 17:17
moritz Infinoid: good idea 17:18
purl moritz: Good Idea: Doing your own yard work. Bad Idea: Doing your own dental work.
NotFound moritz: the example about nci that that I know the best is the MySql module in examples... because I wrote it ;) 17:19
moritz NotFound: I already included a link to the examples/nci/ dir in my reply 17:20
kj there' also an opengl exmple I think that should work? 17:26
japhb perks up his ears ... somebody mention OpenGL?
NotFound kj: I think I tried some opengel able two months ago and worked
s/able/example 17:27
japhb yes, examples/opengl/
kj: I see in the scrollback that you were having problems with an OpenGL warning during configure? 17:28
kj japhb: I did
japhb Did configure detect OpenGL, or not? And what OS are you running? 17:29
kj winxp, I don't think I have opengl
let me check
(this is an office pc)
japhb nodnod
NotFound Did we need to check it in configue? We can just check the library abailability when using it
And the same for curses and some other things 17:30
kj it seems to me, but I don't know how configure works, that it's an error in the configure script
japhb NotFound: OpenGL? Yes, we need to find it during configure, because we autogenerate the include and function wrappers from system headers.
kj I don't think I have opengl stuff here 17:31
japhb Unlike a lot of APIs, OpenGL is not even close to static ... there are a bunch of optional libraries, a plethora of versions, and some incompatibilities between vendors. The only sane way to deal with that is to either figure out at Configure time what's really there, or use one of the "extension finder" libraries, that add dependencies and lag the vendors significantly. 17:32
NotFound I don't like much the idea of generating call signatures from headers. If forces to have the devel packages in a lot of distributions.
japhb kj: OK, so the problem is that with no OpenGL, there's something in the makefile generation that's still expecting to see it. 17:33
NotFound Don't even talk about windows libraries
japhb NotFound: trust me, it's not ideal ... but it's better than the Perl 5 OpenGL situation, by a long shot. 17:34
particle NotFound: you still can't reply to a ticket via email. sigh.
japhb (TT is better than RT how?)
japhb pulling to see if I can figure out kj's problem 17:35
NotFound particle: don't blame me, I don't know anything about trac, just started to learn how to use this month. 17:36
particle i'm not blaming. i'm sighing. just emailed support@osuosl.org about it.
however, your comment won't appear in the ticket unless you use the web interface, until email2trac is installed (and configured?) 17:37
NotFound particle: What comment? 17:38
purl comment is pretty gold.
moritz purl: forget comment
purl moritz: I forgot comment
particle [parrot-tickets] [Parrot] #210: string_repeat siganture, maybe bug
NotFound Ops, thanks.
japhb kj: I think I found the problem; coding and testing 17:43
kj japhb: how to fix? 17:44
japhb Just need a failure path in the opengl detection that will set that interpolation variable to '' instead of undef. I'm going to take the opportunity to clean up something else while I'm in there. 17:50
17:57 ChrisDavaz joined
rurban kj, japhb: I have a opengl_lib patch and ticket in trac 18:00
japhb rurban: oh. Well, I was about to commit my fix. :-)
rurban tt #249 18:01
just a one-liner
japhb real link? I'm pretending Trac doesn't exist right nwo.
rurban trac.parrot.org/parrot/ticket/249
trac.parrot.org/parrot/attachment/..._lib.patch 18:02
shorten rurban's url is at xrl.us/bed4fx
japhb rurban: nodnod. Actually, no reason *both* of our fixes can't be applied -- mine fixes the auto module not to produce bad results, yours protects against bad input. 18:03
rurban It's just a simple warning when replacing @opengl_lib@
Coke dislikes how tcl is currently doing codegen.
rurban should I apply mine now?
japhb rurban: sure, but ATM auto/opengl.pm is not doing the right thing. 18:04
rurban: assuming you've tested it, heck yes. :-)
rurban sure, but that's a longer story...
dalek r36100 | japhb++ | trunk/config/auto: 18:05
: [OpenGL] Produce sane(ish) results for no OpenGL
review: www.parrotvm.org/svn/parrot/revision?rev=36100
japhb ... anyone else have any Parrot OpenGL binding complaints at the moment ...? 18:06
moritz they don't make me coffee! 18:07
japhb nods sagely ...
That's a valid complaint!
dalek r36101 | rurban++ | trunk/config/gen/makefiles:
: Fix tt#249 undefined opengl_lib
review: www.parrotvm.org/svn/parrot/revision?rev=36101
japhb grumbles 18:08
Infinoid googles for opengl coffee cup demo renderers, and is vaguely surprised when he doesn't find any.
japhb Guess it's time to face the Trac music
OpenGL people do tea ... 18:09
Whiteknight snooty OpenGL people...
rurban japhb: I was thinking about parsing the right headers 18:10
japhb rurban: as opposed to ...?
rurban because we really only know the libs, -lbla, but not headers
japhb rurban: Oh, you mean finding the right set on the system when the user has them installed in a non-standard location? 18:11
rurban so you just add together all found headers, not only the one which are actually used
japhb rurban: yes, that's true
rurban e.g. on cygwin I have two conflicting libs and headers
(cygwin the only one so far)
japhb rurban: nodnod
rurban mingw might have the same opportunity
but how to solve that? 18:12
or if you find /usr/local/lib/glut and /usr/lib/glut. same problem
japhb I think Windows is the only place that the "bag everything" heuristic might fail ... but not having developed on Windows in over a decade, I don't know what the right heuristic *is*.
rurban hmm, there's no other solution than to fail on more than two found "sets" 18:13
japhb rurban: most of the time, the different copies of unix headers are close enough that the worst that happens is you wrap a couple functions that the dll doesn't actually support. 18:15
particle i really don't want parrot's configure to go down the path ie did with error-correcting poorly-written html
japhb I don't have a solution implemented for that, but I know what I plan to do ... whenever the dlfunc fails, instead set the wrapper to a function that reports a missing dll function ... since that's what the "magic extension finders" do.
particle or mozilla, for that matter.
japhb particle: huh what? 18:16
particle multiple sets of headers, why not have the user specify one?
japhb particle: I'm fine with adding that as an *override*. But the default should magically work as often as possible. Because to conquer the earth, you want p(Fail) for configure;make to be as low as possible. To a first approximation, 1-p(Fail) is the infection rate for our glorious epidemic. 18:18
rurban particle: agreed. we have that logic on the opengl header parser. but I didn't complain so far because it was only cygwin and the default worked fine so far. 18:20
particle well, at least display a message that multiple headers were found, which may lead to problems, but "$default" has been selected for you. 18:21
rurban maybe we should fail if we find a second set of headers and complain to use --with-opengl-include=/bla --with-opengllibs="-lglut bla"
18:21 contingencyplan joined
particle yeah, that's my suggestion 18:21
18:21 mberends joined
rurban good. 18:21
kj japhb: opengl configure thingy is fixed. thanks! 18:22
particle list the multiple headers found, provide syntax to disambiguate
japhb rurban, particle: we have to be very careful with that, though ... because any number of places on the net, when people are trying to get OpenGL running on their box at all, they get told stuff like "Install Mesa, and then overlay with the nVidia drivers" and other such mess
kj: you're welcome
particle "your opengl setup is screwy. this is likely not your fault, but it may affect parrot's opengl compatibility" 18:23
japhb particle: I don't accept "fail" as the proper result for this. "warn" is acceptable to me, though.
rurban the problem will be to define sane "sets" of found headers and disambiguate from "wrong" ones
particle warn is better than nothing. failure is safest, but not friendliest. 18:24
i'll settle for warn.
japhb Don't forget, OpenGL is "best effort" on a good day. Failure doesn't gain us anything, because "mostly right, but some chance of subtly wrong" is exactly where the OpenGL drivers *ACTUALLY ARE*
particle: OK, excellent. 18:25
rurban okay. I can start with the patch because we for me it would be easiest to test
japhb rurban: excellent
That means I might actually be forced to face $day_job ... ;-)
rurban I just stopped dayjob and can actually do fun stuff now :) 18:26
japhb wheeee
18:28 contingencyplan joined
Whiteknight how do you TODO a test in PIR? 18:31
rurban It's trac.parrot.org/parrot/ticket/253 I added the --with-opengl-include and --with-opengl-libs to solve the conflict also 18:32
particle rurban++
18:32 chromatic joined
japhb rurban++ 18:32
One thing to note, if you plan to implement this -- on some OSen, you need to be able to specify several directories to each of those options (or support multiple copies of those options). For example, OS X has GLUT and GLU in completely different directory heirarchies. 18:34
(Which I think is insane, but that's the way the ball bounces.)
rurban I thought of adding the needed linker syntax as "-L/some/path -lglu -lglut -L/some/otherpath -lGL". lļæ½Like this? 18:36
the problem is that you just call dlfunc and just find some matching dll, which is independent on the libs and headers 18:37
dalek r36102 | particle++ | trunk/languages/perl6/src/classes:
: [rakudo] NaN ~~ NaN is true now
review: www.parrotvm.org/svn/parrot/revision?rev=36102
rurban thankfully only opengl is THAT weird. nci for tcl/tk or win32gui or wxWindows will be much simplier 18:38
particle how lovely it is to have no failing rakudo spectests on windows.
moritz spectests on linux as well
japhb rurban: yes, the difference between what dlfunc does and what libs you want to use is a real problem. I wish you luck. ;-) 18:39
Coke tries to figure out a way to cleanup function dispatch on partcl. 18:41
dalek r36103 | rurban++ | trunk (4 files): 18:42
: Fix TT #250 rm cygchkdll
review: www.parrotvm.org/svn/parrot/revision?rev=36103
Coke has a bunch of boilerplate code that executes in the appropriate hll; if i create a helper method somewhere, I have to deal with finding the function in the original scope. (and I can't put the dispatcher in scope, because then it's exposed to the user.)
Coke ponders opcodes (can't, varargs), and macros. 18:43
particle coke: nick skypes in 18:44
kj particle: does t/dynpmc/foo.t fail for you (on windows)? 18:45
particle t/dynpmc/foo................................ok 18:46
ok 6 # SKIP No BigInt Lib configured
kj fails for me
particle is it test 6 that fails?
kj # Class 'Foo' not found
rurban languages/pod/src/parser/actions.pm misses a copyright
Coke kj: do you have a bigint lib?
kj eh. no, test 3
Coke: I don't think so 18:47
Coke if it's test 3, that may not matter. =-)
kj it's at line 57, foo_3.pir:15
line 57 in the .t file, that is
Coke kj: what platform are you? 18:49
kj win32
particle www.foxnews.com/story/0,2933,484326,00.html
18:49 rblackwe_ joined
particle where's the bot that displays the title? 18:50
Hackers Crack Into Texas Road Sign, Warn of Zombies Ahead
dalek r36104 | rurban++ | trunk/languages/pod/src/parser:
: fix t/codingstd/copyright.t test
review: www.parrotvm.org/svn/parrot/revision?rev=36104
rurban outfoxed 18:51
purl outfoxed is Rupert Murdoch's War on Journalism - www.outfoxed.org/
18:53 masak joined
rurban cygwin passes all t/dynpmc/foo.t 18:55
kj if I add ".dll" to the filename ("foo") to load, then it's ok
rurban Did get_path() in dynext.c change? 18:58
dalek bernhard.schmalhofer@gmx.de | Pipp: 18:59
link: www.perlfoundation.org/parrot/index.cgi?pipp
Coke particle: xrl.us/bed4qg
particle cute :) 19:00
dalek r36105 | Whiteknight++ | trunk/t/oo: 19:02
: [t] Adding some hypothetical tests for the "invoke" vtable override. These tests should pass once ticket TT#103 is finally resolved.
review: www.parrotvm.org/svn/parrot/revision?rev=36105 19:03
19:05 tewk joined
chromatic hands Whiteknight a bag of space characters. 19:06
19:06 geof joined
Whiteknight ... am I missing spaces? 19:07
19:07 rblackwe joined
moritz Whiteknight: should a 'make realclean' after applying your patch be enough? 19:08
or do I need to run anything else to invoke flex/bison?
Whiteknight you have to do "perl Configure.pl --maintainer"
chromatic s/TT#/TT #/g 19:09
dalek bernhard.schmalhofer@gmx.de | Pipp:
link: www.perlfoundation.org/parrot/index.cgi?pipp
Whiteknight chromatic: really? I've always seen it written elsewhere as TT#xxx
particle no, you haven't. :P 19:10
Whiteknight I'll write it however it's supposed to be written though
...well maybe I've always seen me write it like that elsewhere
moritz Whiteknight: that doesn't seem to generate any addtional diffs to any version-controlled files 19:11
Whiteknight moritz, if bison runs, it should change imcparser.c
barney Phurl: should I put back the 'phc' variant to Pipp ?
Phurl it is in the trunk barney
but this is going to need alot of work 19:12
barney You mean in your working copy? 19:14
rurban hmm, my MSVC6 build crashes at Parrot_oo_extract_methods_from_namespace() Interesting stacktrace in MSVC6 19:16
dalek r36106 | moritz++ | trunk/languages/perl6/docs: 19:25
: [rakudo] move some items in docs/STATUS from "To do" to "implemented"
review: www.parrotvm.org/svn/parrot/revision?rev=36106
NotFound tring to build parrot on an Asus eee with ubuntu
dalek r36107 | rurban++ | trunk/config/auto: 19:29
: Fix TT #248 skip auto::msvc if auto::gcc was true
review: www.parrotvm.org/svn/parrot/revision?rev=36107
19:29 ask_ joined
rurban shouldn't we print the gccversion in Configure analog to msvc: Is your C compiler actually Visual C++........yes, 12.0. 19:29
Is your C compiler actually gcc.....................yes. 19:30
NotFound I usually know what my version of gcc is ;)
moritz I don't always 19:31
Whiteknight has no idea what his version of GCC is
moritz especially if I have multiple gcc's installed
NotFound gcc -v
If you have several and none as default I doubt Configure find it 19:32
rurban it is printed on --verbose
nopaste "rurban" at 212.183.62.216 pasted "print the gccversion in Configure analog to msvc" (14 lines) at nopaste.snit.ch/15448 19:33
particle +1
purl 1
NotFound Amazing, compiled it a lot less time i expected :)
rurban I just tested it on two platforms for now 19:34
particle: should I add a ticket for this? 19:35
moritz rurban: why not just commit it?
works here also
rurban okay, I'll do
particle only if it needs tests, and you wont' do them
dalek r36108 | rurban++ | trunk/config/auto: 19:37
: print the gccversion in Configure analog to msvc
review: www.parrotvm.org/svn/parrot/revision?rev=36108
moritz rurban++
Phurl barney yes i mean my working copy 19:38
rurban anybody else got MSVC6 failures with --optimize, or am I the only one with this old compiler 19:39
I believe rblash uses msvc8
moritz rurban: I got gcc-4.3 failures with --optimize on linux, last I checked
rurban around Parrot_oo_extract_methods_from_namespace() my string points to 0x5 19:40
particle i don't have msvc6 anymore... it was a lovely compiler, but i'm happy with 2008
rurban: there may have been a #define removed in the past few weeks for older msvc
rurban I'll paste the complete trace then 19:41
particle: around where circa
moritz rurban: 'make test' now failes in t/specs/auto_gcc-01.t 19:42
rurban sorry, will fix
moritz because the output format changed, I guess 19:43
rurban your compiler is faster than mine :)
particle rurban: see mailing list thread "What's the oldest MS VC version Parrot should built with?"
moritz two cores and ccache can make a difference ;-)
19:46 alvar joined
rurban Yes, I remember that. But personally I didn't wanted to drop MSVC6 support. Maybe I get it back. 19:47
dalek r36109 | rurban++ | trunk/t/steps: 19:57
: Adapt gcc test to www.parrotvm.org/svn/parrot/revision?rev=36108
: - no verbose output
: - check /^yes/
review: www.parrotvm.org/svn/parrot/revision?rev=36109
barney Phurl: just send me tarball of your 'languages/pipp' and I'll check it in 19:58
Phurl sure
but lets get it running
there were only two changes
:)
the one line is easy
to get the xml generated 19:59
the xlst i attached
this is still not working
NotFound All test pass on the eee with ubuntu :)
Phurl because i need to put more time into it
dalek r36110 | bernhard++ | trunk/languages/pipp (2 files): 20:00
: [Pipp] Add 'Reflection' to the list of loaded extensions
review: www.parrotvm.org/svn/parrot/revision?rev=36110
r36111 | bernhard++ | trunk/languages/pipp (2 files):
: [Pipp] Start on print_r() by cut&paste'ing var_dump()
review: www.parrotvm.org/svn/parrot/revision?rev=36111
TimToady phone
Phurl barney: you can at least just change this one line 20:01
dalek r36112 | rurban++ | trunk/lib/Parrot/Configure: 20:02
: TT #251 fix Configure copyright year, patch by Gerd Pokorra
review: www.parrotvm.org/svn/parrot/revision?rev=36112
Phurl trac.parrot.org/parrot/attachment/...st_xml.xsl here is the xsl that is better
shorten Phurl's url is at xrl.us/bed4z8
Phurl but it still needs work
20:03 ron joined
rurban particle: Should #238 "ability to create dynoplibs and dynpmclibs from installed parrot (rescheduled from 0.9.0)" really be solvable without the source? 20:07
That would mean to install a whole bunch of perl libs
chromatic Yep.
Phurl barney: trac.parrot.org/parrot/ticket/235#comment:4 here is the patch
rurban Shouldn't we rather provide a Parrot::Devel cpan package
chromatic What good would that do? 20:08
rurban We can make this automatically and upload to cpan with every release
chromatic What good would that do?
rurban See my comment at trac.parrot.org/parrot/ticket/238
chromatic What good is that all without Parrot installed? 20:09
rurban It would be easier then install it via make install
dalek r36113 | bernhard++ | trunk (3 files): 20:10
: [Pipp] Add code for the PHC variant again, as there is new interest
review: www.parrotvm.org/svn/parrot/revision?rev=36113
chromatic That's silly.
"Install Parrot... but to use it, install something else somehow else!" 20:11
rurban Anybody thought about where the perl libs should go? How they should be marked in MANIFEST?
20:11 allison joined
rurban [devel]perl5 maybe 20:11
NotFound There some reason that force parrot users to build dynpmcs?
chromatic Languages may use them. 20:12
rurban For me it's a rather reasonable scenario to force HLL developers to install the source first
But having a seperate parrot-perl5libs package is also fine 20:13
ron If you are coding a vtable function in C you can call a SUPER() function to call the same method in a parent pmc class. Does anyone know of a way to pretty much do the same thing with a :vtable sub in pir/pasm?
Whiteknight ron, that's actually a very good question. I would like to learn the answer myself 20:16
rurban Problem is that some perl packages install into privlib, some into vendorlib. make install should install into sitelib, packages into vendorlib or privlib. 20:18
NotFound ron: I think that Coke told me a way some days ago.... don't remember now 20:20
Whiteknight I suspect that you could get the class object, get the parent class object, and then dispatch to that somehow.
and if there isn't a way to do this, there definitely ought to be a way 20:21
NotFound It was getting the parent object by looking at an attribute or such
dalek r36114 | bernhard++ | trunk/languages/pipp (2 files): 20:23
: [Pipp] Re-add some more code for PHC support
review: www.parrotvm.org/svn/parrot/revision?rev=36114
20:24 braceta left
dalek r36115 | fperrad++ | trunk/config (3 files): 20:24
: [configure] the generation of 'docs/Makefile' is not longer a special case
review: www.parrotvm.org/svn/parrot/revision?rev=36115
ron My vtable function needs to work with the object's data. So just using an operator against a parent's class doesn't seem entirely adequate. 20:25
rurban Forget my privlib talk. It's only about sitelib and vendorlib, and this can be solved by the packager.
purl rurban, I didn't have anything matching my privlib talk. it's only about sitelib and vendorlib, and this can be solved by the packager
dalek r36116 | bernhard++ | trunk/languages/pipp:
: [Pipp] Adapt to changes in command line options of phc, TT #235
review: www.parrotvm.org/svn/parrot/revision?rev=36116
r36117 | coke++ | trunk: 20:29
: This was already removed.
review: www.parrotvm.org/svn/parrot/revision?rev=36117
r36118 | bernhard++ | trunk/languages/pipp/src/phc: 20:31
: [Pipp] First stab at adapting to current phc XML-dump. TT #252
: Courtesy of James Michael DuPont
review: www.parrotvm.org/svn/parrot/revision?rev=36118
20:32 NotFound joined
NotFound Here again 20:32
rurban t/pmc/io.t line 434 with mingw fails (test 23 I/O buffering) 20:33
NotFound Good to have my desktop machine working agian :)
again
20:36 ron_ joined
dalek r36119 | bernhard++ | trunk (3 files): 20:37
: [Pipp] Make pipp.pir compile again, after adding PHC support
review: www.parrotvm.org/svn/parrot/revision?rev=36119
chromatic The goal of Parrot 1.0 is to provide a stable platform for implementors. 20:40
barney Phurl: I have re-added the files for PHC support. including patches for TT #235 and TT #252
Phurl thanks
chromatic If C<make install> doesn't install all of the files necessary to build a language, we fail that goal.
Phurl when I have more time I will update the xslt barney 20:41
thanks
barney np 20:42
particle agreed. the parrot 1.0 distro will install the perl libs.
other distros may leave those out
other, non-default (maybe non-parrot.org) distros
ron I am trying to override the get_pmc_keyed_int vtable function of ResizablePMCArray from a subclass and have the subclass :vtable .sub get the array element from ResizablePMCArray (the SUPER call) and take special action for PMCNULL results. If I get the parent class pmc I am still not sure how to use it to fetch an array element from my subclass object instance? 20:43
particle won't SELF handle that? 20:44
particle checks the state of DYNSELF, STATICSELF, SELF, etc 20:45
ron if I use self to fetch the element won't I just recurse (endlessly) to the get_pmc_keyed_int vtable method? 20:46
Whiteknight particle, I think he's talking about doing it in PIR
ron yes PIR
particle oh, try the Super PMC
Whiteknight Super PMC?
Whiteknight has some research to do
particle ...or is that gone....
Whiteknight it is gone apparently
particle feh 20:47
NotFound getattribute self, 'proxy' 20:50
Whiteknight NotFound, what does that do? 20:51
NotFound parent = getattribute self, [ 'ParentPMC' ], 'proxy'
Uh, no, was the first 20:52
parent = getattribute self, 'proxy'
20:52 mberends joined
NotFound Gives you the parent PMC class 20:53
The instance of it, I mean
Don't know if it works if the pir class has more parents, though 20:54
20:54 rblackwe joined
Whiteknight so then you can invoke the vtable of the parent? 20:55
seems to me that should be a compiler directive or something
.super()
20:56 ron joined
NotFound Whiteknight: .super() has sense on single inheritance systems, not sure it has sense on multiple inheritance 21:00
Whiteknight well, if "getattribute self, 'proxy'" returns a single parent, then how do we get multiple parents? 21:01
NotFound "Because you have a father and a mother" (Bjarne Stroustrup)
Whiteknight: with the keyed getattribute version, maybe.
Not sure, I just semi-learned this way some days ago 21:02
Whiteknight Okay, well however we do it, we need to document the hell out of it
NotFound Yes, the #parrot log is not a very well structured resource X-) 21:03
ron Thanks for your help, I found some examples of this usage among the tests and will play with it for a bit ... 21:05
cotto Coke, ping 21:07
Whiteknight ron, which tests? 21:08
I would like to see examples so I can document it
cotto Coke, nm 21:09
ron On unixish systems (cygwin for me) I use: * find t/ -name .svn -prune -o -exec grep -IHn '\\bproxy\\b' {} \\; * (does that help?) 21:11
Whiteknight yeah, I just found them. Thanks! 21:12
21:17 davidfetter joined
Infinoid chromatic: Nice policy, +1. One question: is there a formal definition of exactly which changes require a deprecation cycle, and which don't? Or is it just "anything that can effect products which use parrot"? 21:29
For instance, if I remove a function argument or something on the C level, would that count? (Is PARROT_API a good indicator of that?) 21:31
chromatic That sounds reasonable. 21:33
Anything we've exposed to the public requires deprecation to change in an incompatible way (including removal).
NotFound And if that fails fill a ticket "that function must be part of the public API" X-) 21:34
Infinoid Ok. I've worried about this once or twice in the past when patching things, and was just wondering where the cutoff was. If this has been documented somewhere, I haven't found it. 21:35
chromatic I don't think it has. 21:36
particle chromatic, you seem to throw around version and release interchangeably 21:45
and it may be worth spelling out PCT 21:46
21:47 basic joined
chromatic Good ideas. 21:49
purl good ideas are not automatically practical ideas. :)
22:05 Whiteknight joined 22:09 TiMBuS joined
dalek r36120 | rurban++ | trunk/config/auto: 22:22
: workaround cygwin internal glut32 linking problem
review: www.parrotvm.org/svn/parrot/revision?rev=36120
cotto Is anyone scheduled for the 1.5 release? 22:30
Whiteknight I asked for June, I don't know if that's the 1.5 release 22:33
chromatic July.
cotto Can I volunteer, or does allison want to handle the stable releases? 22:37
chromatic Send Coke a message; I'm sure it's okay. 22:39
cotto scent 22:45
22:53 ron_ joined
ron NotFound: - getattribute self, 'proxy' - seems to do what I need - thanks! 22:55
23:03 ron_ joined
allison cotto: I can guarantee I don't want the 1.5 release, that's the week of OSCON :) 23:11
23:16 Limbic_Region joined
lathos allison: What's the difference between Parrot_string_append and Parrot_string_grapheme_copy? 23:21
allison looking... 23:22
lathos The pseudocode/ directory in the strings branch does quite a lot now, including UTF8->NFG->UTF8 round-tripping and comparison. 23:23
23:23 bacek_ joined
allison lathos: Parrot_string_append takes two arguments and returns the first with the second appended, Parrot_string_grapheme_copy take one argument and returns a copy of it 23:24
lathos: excellent!
purl EGG-see-lent!
lathos I need to implement a few more charset/encoding combinations and a LOT more tests and I think I can consider my concept proved.
I don't think grapheme_copy does what you think i tdoes. 23:25
Parrot_string_grapheme_copy (new) Accepts two string arguments: a destination and a source. Iterates through the source string one grapheme at a time and appends it to the destination string.
dalek r36121 | cotto++ | trunk/docs/project: 23:29
: [docs] add release managers through 1.6
review: www.parrotvm.org/svn/parrot/revision?rev=36121
23:30 kj joined
kj Whiteknight: ping 23:30
allison lathos: okay, that function is desired, but should be named Parrot_str_grapheme_append, not copy 23:42
lathos OK. But then it looks very much like str_append. I don't think it makes much sense to do a char-wise append as an alternative. 23:44
23:48 kid51 joined
allison lathos: one returns an NFG string, the other returns the original string in the original format 23:49
lathos Um, not necessarily. 23:50
See "Conversions between normalization form, encoding, and charset"
allison lathos: or, for that matter, one actually does the NFG conversion, the other doesn't
lathos: in the PDD?
lathos str_grapheme_(copy|append|whatever) uses graphemes as an internal representation to convert between any string format and any other string format.
Yes.
allison lathos: aye, that's the exact section I had up just now
lathos: it's referring to the *grapheme* version of the function 23:51
lathos There can't be any other.
Because if you have a string with graphemes and send it to str_append, it needs to do a grapheme-aware copy anyway. 23:52
(A string with graphemes may not necessarily be in NFG.)
allison lathos: only NFG has guaranteed fixed-width graphemes 23:53
lathos Sure.
23:54 idemal joined
allison the regular copy uses the regular character accessing function pointers and copies character by character, paying no attention to grapheme grouping 23:54
the grapheme copy specifically copies grapheme by grapheme, and does an internal conversion to NFG 23:55
lathos So what should the "regular copy" do if the destination string is in ParrotNative NFG? 23:56
I'm not sure I understand the purpose for the distinction anyway. 23:58
allison lathos: I assume that NFG strings will return their fixed-width-grapheme representations when requested for their characters anyway 23:59
lathos No.
If you ask for a character, you get a character, not a grapheme.
allison a request for a single character from a NFG string may return multiple characters?