Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-28

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 kj chromatic: both t/pmc/namespace.t and t/pmc/parrotobject.t pass for me
00:02 kj I pass the objct being invoked explicitly, because there's no method call
00:02 chromatic There you go.
00:02 kj could you commit the patch to imcc? my wc is messed up
00:03 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
00:03 kj eh, ok. I'll get a clean wc
00:04 kj 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 kj just remove all code that has 'pic' in it
00:04 kj worked here
00:05 kj 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.
00:05 kj ok
00:06 kj 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.
00:06 kj yes, exactly, just a patch for the tests
00:07 kj sent
00:09 AndyA joined #parrot
00:10 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 http://nopaste.snit.ch/15445
00:11 NotFound chromatic: Something like is that you asked for som days ago?
00:11 chromatic Yes, a lot like that!
00:12 NotFound chromatic: I have it working right now
00:14 nopaste "NotFound" at 213.96.228.50 pasted "Method for redirect std handles - patch" (31 lines) at http://nopaste.snit.ch/15446
00:15 s1n TiMBuS: the "mod" op was inside a sub, used in an unless statement
00:15 chromatic s1n, remember it's an assembly language.
00:15 kj NotFound: that assumes certain values of PIO_STDIN_FILENO and the one for STDERR
00:15 chromatic You don't get complex nested expressions.
00:16 NotFound kj: like all the parts that acces SDTIO et al in the repo
00:16 TiMBuS yeah that would probably be the issue
00:16 NotFound kj: for pir, there are constants
00:16 kj NotFound: good point. Still, that makes me even more worried
00:16 s1n so i can't say something like the following: "unless by_counter mod range_by goto range_loop"?
00:17 kj s1n: I think you want %, not mod
00:17 NotFound runtime/parrot/include/stdio.pasm
00:17 kj NotFound: ok, well if these values are guaranteed not to switch in order, then it's fine
00:18 kj but it's being used to index an array
00:18 kj anyway, just saying :-)
00:18 s1n kj: error:imcc:syntax error, unexpected '%' ('%')
00:19 kj ah, so yes
00:19 kj s1n: true
00:19 kj haha, I'm just writing a compiler for it ;-)
00:19 kj anyway, you have to store that result in an I register first
00:19 kj $I0 = by_counter % range_by
00:19 kj and then unless $I0 goto range_loop
00:19 s1n oh, heh okay, lemme try that
00:20 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?
00:20 kj s1n: docs/pdds/pdd19_pir.pod
00:20 purl docs/pdds/pdd19_pir.pod is probably for that purpose, though there are many other places that fill in holes
00:20 kj also, look at docs/user/pir/*.pod
00:20 s1n kj: thanks, i'll check those out
00:21 kj and docs/book
00:21 s1n i'm just kinda getting into this so i'm not overly familiar with the documentation yet
00:22 s1n 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 ;-)
00:22 kj 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 #parrot
00:23 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.
00:23 dalek r36073 | chromatic++ | trunk (7 files):
00:23 dalek : [IMCC] Make self parameter available from PIR vtable overrides (TT #103, work
00:23 dalek : done by Klass-Jan Stol).
00:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36073
00:23 kj s1n: you can convert the PMCs to Integers, just write $I0 = $P0
00:23 s1n kj: okay, hmm, not sure what to do now
00:24 s1n how can i declare something as an integer instead of pmc then?
00:24 kj .local int a, b, c
00:24 kj chromatic++ # thanks for helping
00:24 s1n kj: great,  i'll try that :)
00:24 kj s1n: I highly recommend reading docs/user/pir/*.pod
00:25 s1n kj: is there a good order for a total newbie?
00:25 kj start with the one called 'intro' ;-)
00:25 s1n hah, okay, after that
00:25 kj eh, they're also numbered, that should give ya a hint
00:25 kj :-)
00:25 s1n oh, there's only 3 of them total heh
00:26 kj yes, that's all you need ;-)
00:26 s1n great thanks, there's much to learn
00:26 s1n kj: error:imcc:The opcode 'mod_p_i_i' (mod<3>) was not found
00:27 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
00:27 kj the first _x indicates the type of the esult
00:27 kj _p means result register is  PMC, _n is number, etc.
00:27 kj so:
00:27 kj .local int a, b, c
00:27 s1n yeah i see those, that's like the second section of that intro pod lol
00:28 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
00:28 kj that will 'cast' the PMCs into a int, as it were, which just basically means it retrieves the integer representation
00:29 kj $I0, $I1, $I2 are symbolic registers, no need to declare them
00:29 kj just use em. if you want fancy names, declare them using .local
00:30 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
00:31 kj bedtime. good night
00:38 NotFound I don't like very much that $P1($P1) to call the vtable 'invoke'
00:39 NotFound It does not allow to pass a functor to some thing that expects something callable like a sub
00:40 chromatic I'm not sure it's a good idea to change the signature of vtable entries when you override them.
00:41 NotFound We can always pass self, even in subs
00:42 chromatic Sure, but I'm not sure passing a functor is desirable.
00:44 kid51 joined #parrot
00:44 NotFound There are languages when all subs are objects, like Boo. Not having real functors will make his interoperability dificult.
00:45 chromatic Right, but VTABLE_invoke() doesn't take any arguments.
00:45 chromatic left #parrot
00:45 chromatic joined #parrot
00:45 chromatic Besides the interpreter and the PMC, that is.
00:49 chromatic Overriding invoke() from PIR and changing its signature seems like a recipe for disaster.
00:52 NotFound Not an easy task
00:53 chromatic It violates Liskov, which is a bad sign.
00:58 NotFound I will think about it. Now go to sleep :O
00:58 kid51 Liskov?
00:58 purl well, Liskov is clean in theory, but not that helpful for real programs
00:59 kid51 purl, Liskov is also http://en.wikipedia.org/wiki/​Liskov_substitution_principle
00:59 purl okay, kid51.
00:59 kid51 Liskov?
00:59 purl Liskov is, like, clean in theory, but not that helpful for real programs or http://en.wikipedia.org/wiki/​Liskov_substitution_principle
01:24 Coke_away chromatic: I wonder why invoke vtable /doesn't/ take arguments.
01:25 Coke seems like it should.
01:25 chromatic Because we have calling conventions.
01:26 Coke should we have a chance to override arguments in a vtable invoke override?
01:27 chromatic You do, but you have to poke into the registers to do it.
01:27 Coke evil!
01:28 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.
01:28 Coke I honestly don't care at this point how it works if I can do the override.
01:28 chromatic_away This complexity sleeps on a waterbed.
01:30 * Coke cringes at American Idol
01:48 davidfetter joined #parrot
01:52 kid51 me seeks Coke's feedback on https://trac.parrot.org/parrot/ticket/223 (t/steps/auto_pmc.t) and https://trac.parrot.org/parrot/ticket/120 (deprecation of DWIM.pir).
01:56 Coke kid51: I already replied to 120
01:56 Coke (4 days ago)
01:57 Coke 223: looks good.
01:57 purl O_O
02:06 kid51 Coke:  Thanks.  If you'd like to eyeball that patch before I re-apply it, that would be cool:  https://trac.parrot.org/parrot/att​achment/ticket/120/DWIM.pir.patch
02:06 shorten kid51's url is at http://xrl.us/bedz6d
02:24 s1n joined #parrot
02:39 gravity joined #parrot
02:47 rurban_ joined #parrot
02:52 Coke kid51_at_dinner: (eyeball) if it's the same as before, ISTR it was fine.
02:53 TiMBuS whats the easiest way to go about a pmc having a member variable?
02:55 TiMBuS 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.
03:07 Fayland_logger joined #parrot
03:10 Andy joined #parrot
03:13 gravity joined #parrot
03:21 Maddingue joined #parrot
03:26 Hunger joined #parrot
03:31 dalek r36074 | jkeenan++ | trunk (5 files):
03:31 dalek : Re-applying patch originally applied in r34951, subsequently reverted.  Remove
03:31 dalek : DWIM.pir per https://trac.parrot.org/parrot/ticket/120.
03:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36074
03:49 dalek r36075 | jkeenan++ | trunk (2 files):
03:49 dalek : Apply patch submitted by Andy Dougherty in
03:49 dalek : https://trac.parrot.org/parrot/ticket/214:  Remove Solaris 8 (SPARC) from list
03:49 dalek : of supported platforms.
03:49 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36075
04:04 bacek_ joined #parrot
04:20 Andy left #parrot
04:27 rurban_ joined #parrot
04:27 dalek joined #parrot
04:29 clunker9_ joined #parrot
04:33 mj41_ joined #parrot
04:35 dalek r36076 | allison++ | trunk/docs/pdds:
04:35 dalek : [pdd] Regularizing string API function names to fit the pattern of a
04:35 dalek : three-character subsystem identifier.
04:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36076
04:44 dalek r36077 | allison++ | trunk/src/pmc:
04:44 dalek : [cage] Fix the documentation for default's implementation of 'is_same'.
04:44 dalek : It's checking pointer equality, not numeric equality.
04:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36077
04:50 mj41_ joined #parrot
04:51 mj41__ joined #parrot
04:52 dalek r36078 | allison++ | trunk/src/pmc:
04:52 dalek : [cage] Remove custom 'is_same' vtable function from String PMC.
04:52 dalek : Resolves TT #11.
04:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36078
05:10 dalek joined #parrot
05:17 rg joined #parrot
05:25 tetragon joined #parrot
06:11 ChrisDavaz joined #parrot
06:14 dalek r36079 | allison++ | trunk/languages/PIR/src:
06:14 dalek : [languages/pir] Fix grammar referring to 'label' rule, which doesn't exist.
06:14 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36079
06:20 dalek r36080 | allison++ | trunk (6 files):
06:20 dalek : [languages/pir] Renaming the core compiler file to match test framework
06:20 dalek : expectations. Resolves issue reported in TT #87, but does not resolve all
06:20 dalek : remaining test failures.
06:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36080
06:38 masak joined #parrot
06:43 dalek r36081 | cotto++ | trunk (17 files):
06:43 dalek : [pmc] remove SIG_x macros, mostly fix t/examples/shootout.t
06:43 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36081
07:06 cotto chromatic_away, ping
07:08 cotto (or anyone who's worked in jit code)
07:08 cotto s/in/on/
07:13 uniejo joined #parrot
07:13 chromatic pong
07:13 cotto can you look at ./parrot -j t/examples/shootout_3.t ?
07:14 cotto I seem to have broken that test on jit.
07:16 chromatic Which commit?
07:17 cotto r36053
07:18 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.
07:19 cotto So I didn't break it?
07:19 chromatic I'm updating now.
07:21 chromatic $ ./parrot -j t/examples/shootout_3.pir
07:21 chromatic 1234567
07:21 chromatic FixedIntegerArray: index out of bounds!
07:21 chromatic Segfault's in FIA's destroy.
07:22 japhb joined #parrot
07:23 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:27 chromatic I don't see immediately either.
07:28 cotto maybe it's time for some trial and error, then
07:38 rurban_ joined #parrot
07:39 skv joined #parrot
08:07 Casan joined #parrot
08:10 dalek r36082 | fperrad++ | trunk/languages:
08:10 dalek : [WMLScript] Moved to git://github.com/fperrad/wmlscript.git
08:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36082
08:13 dalek r36083 | fperrad++ | trunk (10 files):
08:13 dalek : WMLScript is gone
08:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36083
08:17 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:18 iblechbot joined #parrot
08:32 barney joined #parrot
08:34 dalek r36084 | fperrad++ | trunk/config/gen/makefiles (2 files):
08:34 dalek : [make] remove useless target 'svnclean'
08:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36084
08:35 HG` joined #parrot
08:58 dalek r36085 | bernhard++ | trunk/t/perl:
08:58 dalek : [t] fix number of test cases in Parrot_Distribution.t
08:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36085
09:16 HG` joined #parrot
10:01 rob joined #parrot
10:05 Phurl omg the fsf has gone too far this time http://rdfintrospector2.blogspot.com/2009/01​/gnu-gcc-compiler-introspector-reloaded.html
10:05 shorten Phurl's url is at http://xrl.us/bed28v
10:08 * moritz find that post quite hard to read
10:09 braceta joined #parrot
10:10 TiMBuS is this about gcc's broken intermediate representation output
10:10 lathos I couldn't understand it.
10:10 lathos Is it saying that FSF is claiming IR is subject to GPL?
10:10 TiMBuS no, it can't be
10:11 TiMBuS so they intentionally break their IR output so no third party programs can get the output and use it for whatever
10:11 TiMBuS and then sell it
10:11 Phurl well now they want to say that the gcc cannot be changed
10:11 Phurl by anyone
10:11 Phurl or the output is gpled if you link to the runtime
10:11 TiMBuS =/
10:11 Phurl which is really crazy
10:11 Phurl according the gpl, you cannot restrict usage
10:11 TiMBuS the fsf is crazy
10:11 Phurl if you use the compiler to only do half the compilation
10:12 Phurl then you are free to do so
10:12 Phurl anyone who buys it...
10:12 Phurl i think this is really just political, it cannot be rational
10:12 Phurl "your going to kill the gcc"
10:13 TiMBuS eh, time for llvm to take over anyway
10:13 Phurl yes
10:13 Phurl well they are trying to figure out how to stop the llvm
10:13 Phurl but if the llvm produces c code
10:13 Phurl then really
10:13 Phurl there is no stopping them
10:14 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
10:14 Phurl realyl? TiMBuS you mean D as in http://www.digitalmars.com/ not D as in solaris Dtrace :=
10:14 Phurl ;)
10:15 TiMBuS digitalmars d lol
10:15 Phurl hahah
10:15 TiMBuS its a really good language
10:15 Phurl it looks good!
10:15 Phurl have you used it?
10:15 TiMBuS yes
10:15 Phurl nice, so it is c++ plus
10:15 Phurl ?
10:15 TiMBuS pretty much. a lot cleaner
10:16 Phurl you know, the times have changed alot
10:16 Phurl and people are just dying to go open source
10:16 Phurl just to reduce costs
10:16 TiMBuS its like a halfway point between C#/Java and C++
10:16 TiMBuS open souce is cool
10:16 Phurl the fsf has won, but not how they want to have won
10:16 Phurl they lost control
10:16 lathos Open source won. Free software lost. Oops.
10:16 Phurl but the people won
10:17 TiMBuS FOSS isnt the same thing as open source
10:17 Phurl yeah basically
10:17 Phurl I still love free software and support it when I can
10:17 Phurl but they make it more and more difficult on me
10:18 Phurl :P
10:19 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.
10:20 Phurl LOL
10:21 Phurl really, bkuhn said that he worked for a long time on this
10:21 Phurl did you see the link at the bottom about the announcment of the plug in architechture for the gcc?
10:21 Phurl it is based on this idea
10:21 Phurl they want to say that the plugins must be gpled
10:22 Phurl i guess they will try a political solution
10:22 Phurl like : if you say open source i will scream and cry, so dont!
10:40 kj joined #parrot
10:46 rob joined #parrot
10:55 dalek r36086 | bernhard++ | trunk/src (2 files):
10:55 dalek : [codingstd] add missing of incorrect ASSERT_ARGS macro
10:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36086
11:01 dalek r36087 | bernhard++ | trunk/src (2 files):
11:01 dalek : [codingstd] tabs.t and trailing_space.t
11:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36087
11:02 barney Can string_repeat be removed? Replaced by Parrot_str_repeat.
11:11 skv joined #parrot
11:14 ChrisDavaz joined #parrot
11:17 dalek r36088 | bernhard++ | trunk/src/pmc:
11:17 dalek : [codingstd] c_parens.t
11:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36088
11:20 cotto barney, are they distinct functions that do the same thing?
11:20 cotto or did you mean rename
11:22 barney string_repeat does the same as Parrot_str_repeat,    I've added a comment to the open ticket TT #210
11:40 UltraDM joined #parrot
12:06 dalek r36089 | coke++ | trunk/config/gen/makefiles:
12:06 dalek : Document another build dependency.
12:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36089
12:06 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)
12:06 cotto It was and I will
12:07 cotto Thanks for taking care of that.
12:07 cotto Coke++
12:08 Coke np.
12:08 Coke IWBNI if we had a make depend step.
12:09 Coke but that's work.
12:13 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:24 AndyA joined #parrot
13:01 tetragon joined #parrot
13:37 pancake joined #parrot
13:55 * Coke is followed on twitter by pacolinux.
13:55 * Coke finds out that pacolinux actually tried to run the spec test for partcl.
13:55 Coke twitter++
14:22 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:
14:22 dalek : [rakudo] Auto-threading over the invocant for methods not defined in Junction.
14:22 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36090
14:27 gryphon joined #parrot
14:34 dalek r36091 | bernhard++ | trunk/languages/pipp (2 files):
14:34 dalek : [Pipp] add implementation of 'chunk_split'
14:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36091
14:34 dalek r36092 | bernhard++ | trunk/languages/pipp (5 files):
14:34 dalek : [Pipp] Implement 'implode'.
14:34 dalek : Return 'standard' from get_loaded_extensions()
14:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36092
14:35 Whiteknight joined #parrot
14:35 Whiteknight ETOOMANYTRACEMAILS
14:36 moritz trace-mails or trac-emails? :-)
14:36 dalek r36093 | bernhard++ | trunk/languages (2 files):
14:36 dalek : [codingstd] trailing_space.t
14:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36093
14:36 Coke Whiteknight: yah, I'm about to setup a gmail filter.
14:37 Whiteknight moritz, trac-emails
14:37 Whiteknight haha, stupid unix error naming ambiguities
14:37 Whiteknight it's like that website, www.expertsexchange.com, which many people read as expert-sex-change instead of experts-exchange
14:39 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
14:39 Coke Whiteknight: http://www.6dollarshirts.com/product.ph​p?productid=11142&amp;cat=0&amp;page=2
14:39 shorten Coke's url is at http://xrl.us/bed3oo
14:40 Whiteknight rg, all the trac emails seem to go to the parrot-dev mailing list, I think
14:41 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:
14:41 dalek : [core] oops! strings refactor caused my changes to string_to_num not to be committed. i blame society.
14:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36094
14:41 Coke i don't know if you can tell trac to email you on given tickets.
14:44 dalek r36095 | Whiteknight++ | trunk/docs/book:
14:44 dalek : [Book] Add stuff to the PIR chapter about statements, directives, boxing and type conversions, etc. More example code.
14:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36095
14:44 Whiteknight particle++, society--
14:44 Coke added a link to the parrot tickets list to parrot.org // Developers
14:45 Coke ... well, I hit submit, anyway. trac is still loading.
14:46 Coke there, added.
14:46 Coke ... whoops. wrong display name. fixing
14:46 moritz and I thought one of the reassons for switching to trac was that RT was slow
14:47 davidfetter joined #parrot
14:48 rg i'm getting "OperationalError: database is locked" (i know, just wait :( )
14:49 Andy joined #parrot
14:50 Coke zzzzzzzzzzzzzzzzzzzzzzzz
15:06 Coke seen allison?
15:06 purl allison was last seen on #parrot 19 hours, 12 minutes and 30 seconds ago, saying: NotFound: yes
15:08 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 kj that's the way I read it..
15:12 Coke rakudo: ('kjs','barney','fperrad').pick.say
15:12 polyglotbot OUTPUT[kjs␤]
15:12 Coke rakudo: ('kjs','barney','fperrad').pick.say
15:12 polyglotbot OUTPUT[fperrad␤]
15:12 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
15:13 Whiteknight kj, you're right. I should clarify that section
15:13 Whiteknight and I'll add the :immediate workaround for constant PMCs
15:13 kj Whiteknight++ # book
15:13 Whiteknight thanks!
15:13 kj yes, the :immediate trick is in pdd19, if you need details
15:14 * Coke keeps meaning to use that trick for some tcl stuff.
15:14 Coke (I am instead shoving things into a global with an :init)
15:14 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 #parrot
15:19 * barney feels rejected
15:20 particle it's a shallow constant :)
15:21 kj particle: Yes, but is it? Suppose an :immediate .sub returns an Integer PMC, can you change the value of that PMC?
15:21 kj I should test that some time
15:25 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
15:27 kj it seems a bit weird, to define a .const that is modifiable
15:28 kj (maybe add a, currently non-existing, :const flag?)
15:33 Whiteknight what are the \f, \r, and \e string escape sequences?
15:33 kj \r is return-carriage
15:33 kj the others I don't know
15:33 moritz Whiteknight: in which context? PIR? or Regexes?
15:33 Whiteknight in PIR
15:34 moritz dunno then
15:34 donaldh joined #parrot
15:36 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
15:36 kj well that's easy no?
15:36 moritz \f could be a form-feed character
15:37 kj http://www.wilsonmar.com/1eschars.htm
15:37 Whiteknight yeah, \r looks like carriage return and \f looks like formfeed
15:37 Whiteknight but I don
15:37 Whiteknight t know what \e is
15:37 kj no it's not on the site
15:37 kj is it not in pdd19?
15:38 kj oh escape
15:38 kj http://lua-users.org/lists/​lua-l/2008-03/msg00039.html
15:38 kj lua doesn't support it, but instead uses \027
15:38 kj istr it's something to do with setting the cursor position, for which you need to use the escape thingy
15:39 Phurl ok
15:39 Whiteknight okay
15:39 Phurl it does not look like the pipp will be working soon
15:39 kj check out the "game of life" example of lua
15:39 kj that uses it to reposition the cursor
15:39 kj (not sure if it's in parrot repos. but it should be easy to find online)
15:39 Whiteknight okay, thanks
15:39 Phurl i have the feeling that the parrot pipp xslts are out of synch with phc
15:40 Whiteknight Another question, how do you list yourself as a "resource" on a trac ticket?
15:40 rurban_ joined #parrot
15:41 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 #parrot
15:42 Whiteknight kj, that probably is a good thing to test
15:42 kj maybe even write tests :-)
15:42 kj I'm not sure if there are any. there might
15:43 particle i don't remember writing any
15:44 moritz ack -Q '\e' t/
15:44 moritz two PGE tests
15:45 moritz t/library/mime_base64.t implicitly tests \f
15:46 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
15:46 particle ...which should be renamed to t/pir/syn or something
15:47 particle maybe phurl can help with the sticky xslt...
15:47 Phurl ok
15:47 Phurl i am just updating the ticket
15:48 Phurl i dont know but nothing comes out of the xslt
15:48 Phurl ...
15:50 Coke kj++
15:50 kj what does 'syn' stand for anyway, in t/imcc/syn?
15:50 Coke syntax?
15:50 purl i think syntax is a nightmare
15:50 Coke no, purl, syntax is <reply>
15:50 purl okay, Coke.
15:50 kj aah. 'syntax' was too long?!
15:50 jonathan it was too taxing to type
15:50 Coke if in fact that's what it is, feel free to rename it. I'm just guessing.
15:51 kj jonathan: I only got it now :-P ha ha!
15:54 particle yes, it's syntax. let's call it t/pir/syntax/
15:54 dalek r36096 | jonathan++ | trunk/languages/perl6/src/parser (2 files):
15:54 dalek : [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.
15:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36096
15:56 kj particle: do you have any failing tests on windows?
15:56 particle for parrot?
15:56 kj yes
15:56 kj I've got 3, including NaN/Inf related
15:56 particle are you at head?
15:57 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
15:58 particle r36094 | particle++ | trunk/src/string: ...
15:58 kj i'll svn up and rebuild
15:58 jonathan So...I can't find how to do it...how do I merge one ticket into another in RT?
15:59 particle the jumbo page will have that, for sure
15:59 moritz jonathan: click on the Jumbo
15:59 jonathan thanks
15:59 jonathan oh
15:59 jonathan Internal Server Error
15:59 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!@#
16:01 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 kj re/Compiler.pm line 539, <$in> line 2198.
16:01 rg you don't need the jumbo page. it's on the links page
16:01 kj is that configure warning known?
16:03 Phurl who is the best webhosting for europe?
16:04 jonathan OK, done
16:13 Phurl dont close my tickets !!! /me beats his chest
16:13 Phurl :)
16:17 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:18 moritz Coke: static
16:18 moritz static int i = 1;
16:18 Coke danke.
16:20 Coke bah.
16:20 Coke CONST_STRING isn't defined when my dynops are compiled.
16:24 kj Coke: note that it makes the function non-reentrant
16:25 Theory joined #parrot
16:27 Infinoid kj: is "make test" in compilers/pirc/ expected to pass?
16:28 kj Infinoid: no there's some failing tests in stmts.t
16:28 kj that's due to the bug
16:28 kj ISTR it used to work, but I can't say for sure
16:28 kj probably not
16:30 Infinoid ok, thanks
16:31 Coke kj: danke. because of CONST_STRING missing, I can't use it.
16:32 kj Coke: I think it's a feature only to use in prototype code; basically it's a global with limited scope.
16:33 Infinoid I'm cleaning up a few gcc warnings in pirc (mostly constness stuff)
16:35 * Infinoid gives up on src/pirmacro.c:128 for now
16:36 kj what warning is that?
16:36 kj oh yea, the cast
16:36 kj yes, I don't know how to fix that.probably removing the 'const'ing
16:37 kj of course, what would work is to copy the string...
16:38 kj 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?
16:40 particle coke: rakudo uses CONST_STRING
16:40 tomyan left #parrot
16:40 Coke particle: in your ops file?
16:40 particle ah, no pmc.
16:40 Infinoid kj: the confusing part is the comment above it.  it's not casting to "const *", it's casting to "* const", isn't it?
16:41 Infinoid 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:42 kj Infinoid: value is a char const * const; def->body is a char const *.
16:42 dalek r36097 | infinoid++ | trunk/compilers/pirc/src:
16:42 dalek : [pirc] Fix a 64-bitness issue (opcode_t does change size).
16:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36097
16:42 dalek r36098 | infinoid++ | trunk/languages/perl6/src/parser:
16:42 dalek : [cage] Trailing whitespace fix.
16:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36098
16:42 dalek r36099 | infinoid++ | trunk/compilers/pirc/src (3 files):
16:42 dalek : [pirc] Fix a few warnings.
16:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36099
16:42 Infinoid kj: but your cast is just "char *", does that strip *both* consts then?
16:42 kj eh, so i guess the cast should be to char const *, not char *
16:42 Whiteknight if you cast it to (void*) first and then cast it to (* const) the compiler shouldn't throw an error
16:42 Whiteknight of course, here there be dragons
16:42 Infinoid I don't have a clue.
16:43 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
16:44 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 Whiteknight maybe wrap it up neatly in a little YES_I_REALLY_WANT_TO_CAST_THIS() macro, with a nice comment and a few caveats
16:44 Infinoid It's usually better to back out the constness, I think.
16:45 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
16:45 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...
16:45 Infinoid Yeah, it'll change anyway.
16:45 kj but I'm feeling too lazy at this point to undertake such a big conversion
16:46 kj Infinoid: true, but I just like stuff to be 'const' :-) It's supposed to be optimizable or whateer
16:49 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
16:49 particle source code is for humans.
16:50 Infinoid from the processor's perspective, everything is a void*.  Everything above that is for us.
17:04 rurban well, a cpu's sees int and double, not only void*
17:06 Infinoid int and void* are the same thing tho :)
17:07 Whiteknight cpu just sees a series of bits. How it uses those bits depends on what the programmer says to do
17:08 rurban you can safely calculate with int, with void* - void* is not cosher
17:09 Infinoid that distinction is only valid on the C level.
17:09 rurban true, but void* is only a c type
17:10 rurban int bits differ from double bits also.
17:11 Phurl joined #parrot
17:11 Phurl back
17:11 Phurl https://trac.parrot.org/parrot/ticket/235 please reopen
17:13 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:15 NotFound Take care with constness and casts, or you break the c++ buid
17:15 rurban is c++ ever smoked? with msvc probably
17:15 Infinoid Because warnings become errors?
17:16 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?
17:16 NotFound Infinoid: yes, c++ is intolerant with several cases that c allows
17:17 Infinoid moritz: maybe the pdd16 draft
17:18 moritz Infinoid: good idea
17:18 purl moritz: Good Idea: Doing your own yard work. Bad Idea: Doing your own dental work.
17:19 NotFound moritz: the example about nci that that I know the best is the MySql module in examples... because I wrote it ;)
17:20 moritz NotFound: I already included a link to the examples/nci/ dir in my reply
17:26 kj there' also an opengl exmple I think that should work?
17:26 * japhb perks up his ears ... somebody mention OpenGL?
17:26 NotFound kj: I think I tried some opengel able two months ago and worked
17:27 NotFound s/able/example
17:27 japhb yes, examples/opengl/
17:28 japhb kj: I see in the scrollback that you were having problems with an OpenGL warning during configure?
17:28 kj japhb: I did
17:29 japhb Did configure detect OpenGL, or not?  And what OS are you running?
17:29 kj winxp, I don't think I have opengl
17:29 kj let me check
17:29 kj (this is an office pc)
17:29 japhb nodnod
17:29 NotFound Did we need to check it in configue? We can just check the library abailability when using it
17:30 NotFound 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
17:30 japhb NotFound: OpenGL?  Yes, we need to find it during configure, because we autogenerate the include and function wrappers from system headers.
17:31 kj I don't think I have opengl stuff here
17:32 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.
17:33 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
17:34 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.
17:34 japhb (TT is better than RT how?)
17:35 * japhb pulling to see if I can figure out kj's problem
17:36 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.
17:37 particle however, your comment won't appear in the ticket unless you use the web interface, until email2trac is installed (and configured?)
17:38 NotFound particle: What comment?
17:38 purl comment is pretty gold.
17:38 moritz purl: forget comment
17:38 purl moritz: I forgot comment
17:38 particle [parrot-tickets] [Parrot] #210: string_repeat siganture, maybe bug
17:38 NotFound Ops, thanks.
17:43 japhb kj: I think I found the problem; coding and testing
17:44 kj japhb: how to fix?
17:50 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:57 ChrisDavaz joined #parrot
18:00 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.  :-)
18:01 rurban tt #249
18:01 rurban just a one-liner
18:01 japhb real link?  I'm pretending Trac doesn't exist right nwo.
18:01 rurban https://trac.parrot.org/parrot/ticket/249
18:02 rurban https://trac.parrot.org/parrot/attachment​/ticket/249/tt249-undef-opengl_lib.patch
18:02 shorten rurban's url is at http://xrl.us/bed4fx
18:03 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@
18:03 * Coke dislikes how tcl is currently doing codegen.
18:03 rurban should I apply mine now?
18:04 japhb rurban: sure, but ATM auto/opengl.pm is not doing the right thing.
18:04 japhb rurban: assuming you've tested it, heck yes.  :-)
18:04 rurban sure, but that's a longer story...
18:05 dalek r36100 | japhb++ | trunk/config/auto:
18:05 dalek : [OpenGL] Produce sane(ish) results for no OpenGL
18:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36100
18:06 japhb ... anyone else have any Parrot OpenGL binding complaints at the moment ...?
18:07 moritz they don't make me coffee!
18:07 * japhb nods sagely ...
18:07 japhb That's a valid complaint!
18:07 dalek r36101 | rurban++ | trunk/config/gen/makefiles:
18:07 dalek : Fix tt#249 undefined opengl_lib
18:07 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36101
18:08 * japhb grumbles
18:08 * Infinoid googles for opengl coffee cup demo renderers, and is vaguely surprised when he doesn't find any.
18:08 japhb Guess it's time to face the Trac music
18:09 japhb OpenGL people do tea ...
18:09 Whiteknight snooty OpenGL people...
18:10 rurban japhb: I was thinking about parsing the right headers
18:10 japhb rurban: as opposed to ...?
18:10 rurban because we really only know the libs, -lbla, but not headers
18:11 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
18:11 japhb rurban: yes, that's true
18:11 rurban e.g. on cygwin I have two conflicting libs and headers
18:11 rurban (cygwin the only one so far)
18:11 japhb rurban: nodnod
18:11 rurban mingw might have the same opportunity
18:12 rurban but how to solve that?
18:12 rurban or if you find /usr/local/lib/glut and /usr/lib/glut. same problem
18:12 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*.
18:13 rurban hmm, there's no other solution than to fail on more than two found "sets"
18:15 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
18:15 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.
18:15 particle or mozilla, for that matter.
18:16 japhb particle: huh what?
18:16 particle multiple sets of headers, why not have the user specify one?
18:18 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:20 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:21 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 #parrot
18:21 particle yeah, that's my suggestion
18:21 mberends joined #parrot
18:21 rurban good.
18:22 kj japhb: opengl configure thingy is fixed. thanks!
18:22 particle list the multiple headers found, provide syntax to disambiguate
18:22 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
18:22 japhb kj: you're welcome
18:23 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.
18:23 rurban the problem will be to define sane "sets" of found headers and disambiguate from "wrong" ones
18:24 particle warn is better than nothing. failure is safest, but not friendliest.
18:24 particle i'll settle for warn.
18:24 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*
18:25 japhb particle: OK, excellent.
18:25 rurban okay. I can start with the patch because we for me it would be easiest to test
18:25 japhb rurban: excellent
18:25 japhb That means I might actually be forced to face $day_job ... ;-)
18:26 rurban I just stopped dayjob and can actually do fun stuff now :)
18:26 japhb wheeee
18:28 contingencyplan joined #parrot
18:31 Whiteknight how do you TODO a test in PIR?
18:32 rurban It's https://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 #parrot
18:32 japhb rurban++
18:34 japhb 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 japhb (Which I think is insane, but that's the way the ball bounces.)
18:36 rurban I thought of adding the needed linker syntax as "-L/some/path -lglu -lglut -L/some/otherpath -lGL". l�Like this?
18:37 rurban 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:
18:37 dalek : [rakudo] NaN ~~ NaN is true now
18:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36102
18:38 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.
18:38 * moritz spectests on linux as well
18:39 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:41 * Coke tries to figure out a way to cleanup function dispatch on partcl.
18:42 dalek r36103 | rurban++ | trunk (4 files):
18:42 dalek : Fix TT #250 rm cygchkdll
18:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36103
18:42 * 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.)
18:43 * Coke ponders opcodes (can't, varargs), and macros.
18:44 particle coke: nick skypes in
18:45 kj particle: does t/dynpmc/foo.t fail for you (on windows)?
18:46 particle t/dynpmc/foo................................ok
18:46 particle ok 6 # SKIP No BigInt Lib configured
18:46 kj fails for me
18:46 particle is it test 6 that fails?
18:46 kj # Class 'Foo' not found
18:46 rurban languages/pod/src/parser/actions.pm misses a copyright
18:46 Coke kj: do you have a bigint lib?
18:46 kj eh. no, test 3
18:47 kj Coke: I don't think so
18:47 Coke if it's test 3, that may not matter. =-)
18:47 kj it's at line 57, foo_3.pir:15
18:47 kj line 57 in the .t file, that is
18:49 Coke kj: what platform are you?
18:49 kj win32
18:49 particle http://www.foxnews.com/story/0,2933,484326,00.html
18:49 rblackwe_ joined #parrot
18:50 particle where's the bot that displays the title?
18:50 particle Hackers Crack Into Texas Road Sign, Warn of Zombies Ahead
18:50 dalek r36104 | rurban++ | trunk/languages/pod/src/parser:
18:50 dalek : fix t/codingstd/copyright.t test
18:50 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36104
18:51 rurban outfoxed
18:51 purl outfoxed is Rupert Murdoch's War on Journalism - http://www.outfoxed.org/
18:53 masak joined #parrot
18:55 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
18:58 rurban Did get_path() in dynext.c change?
18:59 dalek bernhard.schmalhofer@gmx.de | Pipp:
18:59 dalek link: http://www.perlfoundation.​org/parrot/index.cgi?pipp
18:59 Coke particle: http://xrl.us/bed4qg
19:00 particle cute :)
19:02 dalek r36105 | Whiteknight++ | trunk/t/oo:
19:02 dalek : [t] Adding some hypothetical tests for the "invoke" vtable override. These tests should pass once ticket TT#103 is finally resolved.
19:03 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36105
19:05 tewk joined #parrot
19:06 * chromatic hands Whiteknight a bag of space characters.
19:06 geof joined #parrot
19:07 Whiteknight ... am I missing spaces?
19:07 rblackwe joined #parrot
19:08 moritz Whiteknight: should a 'make realclean' after applying your patch be enough?
19:08 moritz or do I need to run anything else to invoke flex/bison?
19:08 Whiteknight you have to do "perl Configure.pl --maintainer"
19:09 chromatic s/TT#/TT #/g
19:09 dalek bernhard.schmalhofer@gmx.de | Pipp:
19:09 dalek link: http://www.perlfoundation.​org/parrot/index.cgi?pipp
19:09 Whiteknight chromatic: really? I've always seen it written elsewhere as TT#xxx
19:10 particle no, you haven't. :P
19:10 Whiteknight I'll write it however it's supposed to be written though
19:10 Whiteknight ...well maybe I've always seen me write it like that elsewhere
19:11 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
19:11 barney Phurl: should I put back the 'phc' variant to Pipp ?
19:11 Phurl it is in the trunk barney
19:12 Phurl but this is going to need alot of work
19:14 barney You mean in your working copy?
19:16 rurban hmm, my MSVC6 build crashes at Parrot_oo_extract_methods_from_namespace() Interesting stacktrace in MSVC6
19:25 dalek r36106 | moritz++ | trunk/languages/perl6/docs:
19:25 dalek : [rakudo] move some items in docs/STATUS from "To do" to "implemented"
19:25 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36106
19:25 * NotFound tring to build parrot on an Asus eee with ubuntu
19:29 dalek r36107 | rurban++ | trunk/config/auto:
19:29 dalek : Fix TT #248 skip auto::msvc if auto::gcc was true
19:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36107
19:29 ask_ joined #parrot
19:29 rurban shouldn't we print the gccversion in Configure analog to msvc: Is your C compiler actually Visual C++........yes, 12.0.
19:30 rurban Is your C compiler actually gcc.....................yes.
19:30 NotFound I usually know what my version of gcc is ;)
19:31 moritz I don't always
19:31 * Whiteknight has no idea what his version of GCC is
19:31 moritz especially if I have multiple gcc's installed
19:31 NotFound gcc -v
19:32 NotFound If you have several and none as default I doubt Configure find it
19:32 rurban it is printed on --verbose
19:33 nopaste "rurban" at 212.183.62.216 pasted "print the gccversion in Configure analog to msvc" (14 lines) at http://nopaste.snit.ch/15448
19:33 particle +1
19:33 purl 1
19:33 NotFound Amazing, compiled it a lot less time i expected :)
19:34 rurban I just tested it on two platforms for now
19:35 rurban particle: should I add a ticket for this?
19:35 moritz rurban: why not just commit it?
19:35 moritz works here also
19:35 rurban okay, I'll do
19:35 particle only if it needs tests, and you wont' do them
19:37 dalek r36108 | rurban++ | trunk/config/auto:
19:37 dalek : print the gccversion in Configure analog to msvc
19:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36108
19:37 moritz rurban++
19:38 Phurl barney yes i mean my working copy
19:39 rurban anybody else got MSVC6 failures with --optimize, or am I the only one with this old compiler
19:39 rurban I believe rblash uses msvc8
19:39 moritz rurban: I got gcc-4.3 failures with --optimize on linux, last I checked
19:40 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
19:40 particle rurban: there may have been a #define removed in the past few weeks for older msvc
19:41 rurban I'll paste the complete trace then
19:41 rurban particle: around where circa
19:42 moritz rurban: 'make test' now failes in t/specs/auto_gcc-01.t
19:42 rurban sorry, will fix
19:43 moritz because the output format changed, I guess
19:43 rurban your compiler is faster than mine :)
19:43 particle rurban: see mailing list thread "What's the oldest MS VC version Parrot should built with?"
19:43 moritz two cores and ccache can make a difference ;-)
19:46 alvar joined #parrot
19:47 rurban Yes, I remember that. But personally I didn't wanted to drop MSVC6 support. Maybe I get it back.
19:57 dalek r36109 | rurban++ | trunk/t/steps:
19:57 dalek : Adapt gcc test to http://www.parrotvm.org/svn​/parrot/revision?rev=36108
19:57 dalek : - no verbose output
19:57 dalek : - check /^yes/
19:57 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36109
19:58 barney Phurl: just send me tarball of your 'languages/pipp' and I'll check it in
19:58 Phurl sure
19:58 Phurl but lets get it running
19:58 Phurl there were only two changes
19:58 Phurl :)
19:58 Phurl the one line is easy
19:59 Phurl to get the xml generated
19:59 Phurl the xlst i attached
19:59 Phurl this is still not working
19:59 NotFound All test pass on the eee with ubuntu :)
19:59 Phurl because i need to put more time into it
20:00 dalek r36110 | bernhard++ | trunk/languages/pipp (2 files):
20:00 dalek : [Pipp] Add 'Reflection' to the list of loaded extensions
20:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36110
20:00 dalek r36111 | bernhard++ | trunk/languages/pipp (2 files):
20:00 dalek : [Pipp] Start on print_r() by cut&paste'ing var_dump()
20:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36111
20:00 TimToady phone
20:01 Phurl barney: you can at least just change this one line
20:02 dalek r36112 | rurban++ | trunk/lib/Parrot/Configure:
20:02 dalek : TT #251 fix Configure copyright year, patch by Gerd Pokorra
20:02 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36112
20:02 Phurl https://trac.parrot.org/parrot/attachm​ent/ticket/252/phc_xml_to_past_xml.xsl  here is the xsl that is better
20:02 shorten Phurl's url is at http://xrl.us/bed4z8
20:02 Phurl but it still needs work
20:03 ron joined #parrot
20:07 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 rurban That would mean to install a whole bunch of perl libs
20:07 chromatic Yep.
20:07 Phurl barney: https://trac.parrot.org/pa​rrot/ticket/235#comment:4 here is the patch
20:07 rurban Shouldn't we rather provide a Parrot::Devel cpan package
20:08 chromatic What good would that do?
20:08 rurban We can make this automatically and upload to cpan with every release
20:08 chromatic What good would that do?
20:08 rurban See my comment at https://trac.parrot.org/parrot/ticket/238
20:09 chromatic What good is that all without Parrot installed?
20:09 rurban It would be easier then install it via make install
20:10 dalek r36113 | bernhard++ | trunk (3 files):
20:10 dalek : [Pipp] Add code for the PHC variant again, as there is new interest
20:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36113
20:10 chromatic That's silly.
20:11 chromatic "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 #parrot
20:11 rurban [devel]perl5 maybe
20:11 NotFound There some reason that force parrot users to build dynpmcs?
20:12 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
20:13 rurban 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?
20:16 Whiteknight ron, that's actually a very good question. I would like to learn the answer myself
20:18 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:20 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.
20:21 Whiteknight 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
20:23 dalek r36114 | bernhard++ | trunk/languages/pipp (2 files):
20:23 dalek : [Pipp] Re-add some more code for PHC support
20:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36114
20:24 braceta left #parrot
20:24 dalek r36115 | fperrad++ | trunk/config (3 files):
20:24 dalek : [configure] the generation of 'docs/Makefile' is not longer a special case
20:24 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36115
20:25 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.
20:25 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
20:25 dalek r36116 | bernhard++ | trunk/languages/pipp:
20:25 dalek : [Pipp] Adapt to changes in command line options of phc, TT #235
20:25 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36116
20:29 dalek r36117 | coke++ | trunk:
20:29 dalek : This was already removed.
20:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36117
20:31 dalek r36118 | bernhard++ | trunk/languages/pipp/src/phc:
20:31 dalek : [Pipp] First stab at adapting to current phc XML-dump. TT #252
20:31 dalek : Courtesy of James Michael DuPont
20:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36118
20:32 NotFound joined #parrot
20:32 NotFound Here again
20:33 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 :)
20:33 NotFound again
20:36 ron_ joined #parrot
20:37 dalek r36119 | bernhard++ | trunk (3 files):
20:37 dalek : [Pipp] Make pipp.pir compile again, after adding PHC support
20:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36119
20:40 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
20:40 Phurl thanks
20:40 chromatic If C<make install> doesn't install all of the files necessary to build a language, we fail that goal.
20:41 Phurl when I have more time I will update the xslt barney
20:41 Phurl thanks
20:42 barney np
20:42 particle agreed. the parrot 1.0 distro will install the perl libs.
20:42 particle other distros may leave those out
20:42 particle other, non-default (maybe non-parrot.org) distros
20:43 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:44 particle won't SELF handle that?
20:45 * particle checks the state of DYNSELF, STATICSELF, SELF, etc
20:46 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
20:46 ron yes PIR
20:46 particle oh, try the Super PMC
20:46 Whiteknight Super PMC?
20:46 * Whiteknight has some research to do
20:46 particle ...or is that gone....
20:46 Whiteknight it is gone apparently
20:47 particle feh
20:50 NotFound getattribute self, 'proxy'
20:51 Whiteknight NotFound, what does that do?
20:51 NotFound parent = getattribute self, [ 'ParentPMC' ], 'proxy'
20:52 NotFound Uh, no, was the first
20:52 NotFound parent = getattribute self, 'proxy'
20:52 mberends joined #parrot
20:53 NotFound Gives you the parent PMC class
20:53 NotFound The instance of it, I mean
20:54 NotFound Don't know if it works if the pir class has more parents, though
20:54 rblackwe joined #parrot
20:55 Whiteknight so then you can invoke the vtable of the parent?
20:55 Whiteknight seems to me that should be a compiler directive or something
20:55 Whiteknight .super()
20:56 ron joined #parrot
21:00 NotFound Whiteknight: .super() has sense on single inheritance systems, not sure it has sense on multiple inheritance
21:01 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)
21:01 NotFound Whiteknight: with the keyed getattribute version, maybe.
21:02 NotFound 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
21:03 NotFound Yes, the #parrot log is not a very well structured resource X-)
21:05 ron Thanks for your help,  I found some examples of this usage among the tests and will play with it for a bit ...
21:07 cotto Coke, ping
21:08 Whiteknight ron, which tests?
21:08 Whiteknight I would like to see examples so I can document it
21:09 cotto Coke, nm
21:11 ron On unixish systems (cygwin for me) I use: * find t/ -name .svn -prune -o -exec grep -IHn '\bproxy\b' {} \; * (does that help?)
21:12 Whiteknight yeah, I just found them. Thanks!
21:17 davidfetter joined #parrot
21:29 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:31 Infinoid 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:33 chromatic That sounds reasonable.
21:33 chromatic Anything we've exposed to the public requires deprecation to change in an incompatible way (including removal).
21:34 NotFound And if that fails fill a ticket "that function must be part of the public API" X-)
21:35 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:36 chromatic I don't think it has.
21:45 particle chromatic, you seem to throw around version and release interchangeably
21:46 particle and it may be worth spelling out PCT
21:47 basic joined #parrot
21:49 chromatic Good ideas.
21:49 purl good ideas are not automatically practical ideas. :)
22:05 Whiteknight joined #parrot
22:09 TiMBuS joined #parrot
22:22 dalek r36120 | rurban++ | trunk/config/auto:
22:22 dalek : workaround cygwin internal glut32 linking problem
22:22 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36120
22:30 cotto Is anyone scheduled for the 1.5 release?
22:33 Whiteknight I asked for June, I don't know if that's the 1.5 release
22:33 chromatic July.
22:37 cotto Can I volunteer, or does allison want to handle the stable releases?
22:39 chromatic Send Coke a message; I'm sure it's okay.
22:45 cotto scent
22:53 ron_ joined #parrot
22:55 ron NotFound: - getattribute self, 'proxy' - seems to do what I need - thanks!
23:03 ron_ joined #parrot
23:11 allison cotto: I can guarantee I don't want the 1.5 release, that's the week of OSCON :)
23:16 Limbic_Region joined #parrot
23:21 lathos allison: What's the difference between Parrot_string_append and Parrot_string_grapheme_copy?
23:22 * allison looking...
23:23 lathos The pseudocode/ directory in the strings branch does quite a lot now, including UTF8->NFG->UTF8 round-tripping and comparison.
23:23 bacek_ joined #parrot
23:24 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 allison lathos: excellent!
23:24 purl EGG-see-lent!
23:24 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.
23:25 lathos I don't think grapheme_copy does what you think i tdoes.
23:25 lathos 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.
23:29 dalek r36121 | cotto++ | trunk/docs/project:
23:29 dalek : [docs] add release managers through 1.6
23:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=36121
23:30 kj joined #parrot
23:30 kj Whiteknight: ping
23:42 allison lathos: okay, that function is desired, but should be named Parrot_str_grapheme_append, not copy
23:44 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:48 kid51 joined #parrot
23:49 allison lathos: one returns an NFG string, the other returns the original string in the original format
23:50 lathos Um, not necessarily.
23:50 lathos See "Conversions between normalization form, encoding, and charset"
23:50 allison lathos: or, for that matter, one actually does the NFG conversion, the other doesn't
23:50 allison lathos: in the PDD?
23:50 lathos str_grapheme_(copy|append|whatever) uses graphemes as an internal representation to convert between any string format and any other string format.
23:50 lathos Yes.
23:50 allison lathos: aye, that's the exact section I had up just now
23:51 allison lathos: it's referring to the *grapheme* version of the function
23:51 lathos There can't be any other.
23:52 lathos 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 lathos (A string with graphemes may not necessarily be in NFG.)
23:53 allison lathos: only NFG has guaranteed fixed-width graphemes
23:53 lathos Sure.
23:54 idemal joined #parrot
23:54 allison the regular copy uses the regular character accessing function pointers and copies character by character, paying no attention to grapheme grouping
23:55 allison the grapheme copy specifically copies grapheme by grapheme, and does an internal conversion to NFG
23:56 lathos So what should the "regular copy" do if the destination string is in ParrotNative NFG?
23:58 lathos I'm not sure I understand the purpose for the distinction anyway.
23:59 allison lathos: I assume that NFG strings will return their fixed-width-grapheme representations when requested for their characters anyway
23:59 lathos No.
23:59 lathos If you ask for a character, you get a character, not a grapheme.
23:59 allison a request for a single character from a NFG string may return multiple characters?

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced