Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-04-12

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 ruoso making a daily build and upload (if tests passes) of parrot to debian would be a good test bed
00:01 ruoso as it would end up building in another 11+ architectures...
00:01 ruoso s/daily/something more reasonable/
00:02 arcady weekly, perhaps, though even that may be a bit much
00:03 arcady what's actually going with parrot, anyway?
00:04 ruoso hm?
00:04 arcady does anything compile to it, these days?
00:05 TimToady Oh, Perl 6 in another week or two...  :)
00:06 TimToady Actually, pm already has a subset compiling to parrot.
00:06 TimToady I think most recent work has been with Tcl though.
00:07 arcady well, there's PGE, and there's a perl 6 grammar
00:07 arcady or at least, will soon be
00:12 * ruoso burning his CPU
00:14 arcady is there actually a the perl 6 grammar anywhere?
00:14 arcady however incomplete
00:14 ruoso it seems to be in language/perl6
00:15 ruoso s/language/languages/
00:15 ruoso that's what I'm trying to play with
00:16 arcady hm. seems kinda... incomplete
00:17 zgh joined perl6
00:17 ruoso yeah... there is also the PCR work by fglock... which seems to be writing it too...
00:18 ruoso I still don't know how both are interacting...
00:18 arcady well, yes... I think there should be one official "the perl 6 grammar"
00:18 ruoso well... that are the synopsis... :)
00:18 amnesiac joined perl6
00:19 ruoso there are implementation differences
00:19 ruoso that "bottom-up" "top-down" thing...
00:19 arcady or rather, the fact that you need both
00:20 LeTo TimToady: I've built and tested 0.4.3 on x86, amd64, ppc-darwin, and solaris 10 w sun-cc and gcc ;)
00:21 ruoso arcady, yes... sure... but the choice of where to get one way or another may be different from each implementation...
00:22 arcady still, the idea is that all the multiple implementations have the same grammar
00:22 arcady or should be, anyway
00:22 arcady or rather, accept the same language
00:22 Leandro- joined perl6
00:22 Leandro- "SELECT codigo, login, id, nome, data FROM kb_clientes WHERE $por LIKE '%$string%' LIMIT 15"
00:22 Leandro- $por = table
00:22 Leandro- what´s wrong?
00:23 Leandro- the query is ok
00:23 Leandro- the problem is with $por
00:23 ruoso Leandro-, please join #perl.br
00:23 ruoso Leandro-, there is likely to be the place for this kind of problem
00:25 ruoso s/there/that/
00:26 ruoso BTW... the work in languages/perl6 seems really nice
00:31 stu7 joined perl6
00:31 * ruoso just found a way to segfault parrot
00:31 avar ruoso: what svn repos?
00:32 * stu7 - unable to decipher a proper answer from the channel topic, asks stubbornly if perl6 is done ?  :)
00:32 buu NO
00:32 buu stu7: It'll be done by christmas.
00:32 ruoso svn.perl.org/parrot/trunk
00:32 stu7 thx btu  :)
00:33 avar buu: Will there be ponies?
00:33 stu7 left perl6
00:33 ruoso heh
00:34 buu avar: YES.
00:34 buu Yay ponies!
00:35 avar What can you do with languages/perl6 ?
00:36 arcady parse some small subset of perl6
00:36 * ruoso can see pretty tree-like ascii art
00:36 avar arcady: without haskell?
00:37 ruoso avar, yes
00:37 avar arcady: with ponies?
00:37 FurnaceBoy_ omg!!! ponies!!!
00:37 avar how does that work?
00:37 avar subset of perl6 in C?
00:38 ruoso avar, PGE and Parrot
00:38 avar someone handwrote a Perl 6 compiler in PGE?
00:39 avar *subset of Perl 6 ..
00:39 arcady you mean, in perl 6 rules?
00:39 ruoso that's the idea
00:39 arcady nothing too tricky about that
00:39 arcady someone handwrote PGE in PIR, though
00:39 ruoso nothing too tricky until you can emit PIR from this parse
00:41 * ruoso plans to port lrep to parrot
00:41 arcady hm. PGE makes it much easier to write parsers in parrot
00:42 ruoso arcady, far easier... from what I just saw...
00:42 * avar unfamiliar with all the acronyms
00:43 arcady PIR is the language that parrot compiles and runs, very low level
00:43 ruoso yes
00:43 arcady a little bit above assembly
00:43 qu1j0t3 joined perl6
00:43 ruoso arcady, a bit more than you're thinking...
00:43 arcady PGE is the Parrot Grammar Engine, an implementation of perl 6 rules written in PIR
00:43 qu1j0t3 is now known as FurnaceBoy
00:43 arcady which compiles rules to PIR, I think
00:43 * avar svn co
00:44 ruoso yes
00:48 Khisanth joined perl6
00:49 q[uri]_ joined perl6
00:52 avar that language/perl6/ stuff isn't the whole thing is it?
00:52 avar It's like 150 lines
00:52 ruoso avar, considering it does'nt include PGE
00:52 ruoso it's all the stuff
00:53 audreyt avar: it's a beginning of the whole thing, must as lrep is also a beginning of the whole thing :)
00:53 audreyt also, it's currently just a simple parser
00:53 clkao audreyt: yo
00:53 audreyt there's no compilation involved.
00:53 audreyt clkao: yo
00:53 clkao so what's with perl6-binding
00:54 clkao i don't think it could provide ro alias. but could probably steal the grammar
00:54 audreyt I havn't looked closely but it seems the src filtering is especially good
00:54 audreyt exactly what you said.
00:54 clkao ya. you have some time for it? :P
00:54 audreyt this weekend for sure :)
00:54 clkao it's easter weekend. i will hopefully be hacking
00:54 clkao lots of svk backlog to clear
00:55 audreyt woot
00:55 audreyt my birthday is coming in 6 days
00:55 clkao ya.
00:55 obra happy almost birthday, audrey
00:55 audreyt heh :) thanks
00:58 svnbot6 r9913 | audreyt++ | * Dan Kogai reported that {my $x; $^y}.(42) is broken
00:58 svnbot6 r9913 | audreyt++ |   because extractImplicitParameters does not look inside
00:58 svnbot6 r9913 | audreyt++ |   a Pad (or Sym) node. Fixed.
01:19 lisppaste3 joined perl6
01:32 hcchien_ is now known as hcchien
01:59 mako132_ joined perl6
02:26 scw joined perl6
02:49 r0nny joined perl6
03:14 svnbot6 r9914 | fglock++ | PG-P6 - StatementControl.pm passes more tests
03:16 fglock joined perl6
03:16 cjn joined perl6
03:28 jserv-- joined perl6
03:28 Soga joined perl6
03:29 TreyHarris that went really well... i tried an experiment with my perl (5) class today... i taught them closures immediately after teaching them ordinary subroutines.  and they actually got it, most of them
03:38 svnbot6 r9915 | fglock++ | PG-P6 - added failing tests
03:45 mako132_ joined perl6
03:57 cjn left perl6
03:58 FurnaceBoy is now known as FurnaceBoy_
03:59 fglock left perl6
04:42 gaal audreyt: when does the Big Pad Refactoring take place?
04:42 nirgle joined perl6
04:42 gaal audreyt: alternatively, wanna work on S08?
04:43 nirgle joined perl6
05:10 justatheory joined perl6
06:02 nothingmuch joined perl6
06:06 buu joined perl6
06:21 f0rth joined perl6
06:46 bsb joined perl6
06:56 tifo joined perl6
07:02 Aankhen`` joined perl6
07:08 drrho joined perl6
07:27 azuroth g'day, drrho
07:28 drrho hiho azuroth!
08:16 dakkar joined perl6
08:18 xinming joined perl6
08:25 Frances joined perl6
08:39 marmic joined perl6
08:53 q[uri] joined perl6
08:56 wilx joined perl6
09:02 pdcawley joined perl6
09:09 chris2 joined perl6
09:36 marcus_ joined perl6
09:36 marcus_ seen audreyt
09:37 wolverian ENOBOT
09:37 marcus_ :'(
09:43 bsb_ joined perl6
09:56 avarab_ joined perl6
09:58 cognominal joined perl6
10:01 cognominal joined perl6
10:03 b_jonas joined perl6
10:07 rafl Does anyone know who `ruoso', who were here yesterday and complained about the Debian packages of parrot, is?
10:07 cognominal joined perl6
10:09 ayrnieu his nick is registered.
10:09 Grrrr joined perl6
10:09 ayrnieu the nick, rather.
10:12 avar joined perl6
10:13 rafl ayrnieu: How does that help? :-) I'd like to have a email address or something :-)
10:13 broquaint joined perl6
10:14 wolverian joined perl6
10:14 colares joined perl6
10:14 PerlJam joined perl6
10:14 weinig|sleep joined perl6
10:14 kattana_ joined perl6
10:14 ko1_away joined perl6
10:14 evalbot_9900 joined perl6
10:14 chip joined perl6
10:14 webmind joined perl6
10:14 xX[ReP]Xx joined perl6
10:14 chihchun joined perl6
10:14 merlyn joined perl6
10:14 pasteling joined perl6
10:14 revdiablo joined perl6
10:14 webmind_ joined perl6
10:14 oozy joined perl6
10:14 PerlJam joined perl6
10:15 ayrnieu rafl - ruoso has MemoNotify and Memosignon active, so you can send a message to him through memoserv, and he'll see it the next he logs in.
10:17 ko1_away joined perl6
10:21 rafl Ah, thank you. :-)
10:49 broquaint joined perl6
10:53 audreyt gaal: pong
10:54 audreyt I'll have full cycles for S08 at 36 hours from now
10:54 audreyt we can do that before BPR
10:54 audreyt since I think both involves P.A.Internals change
10:54 clkao bpr?
10:54 audreyt Big Pad Refactoring
10:54 audreyt switching from runtime pad allocation to compile time
10:55 audreyt as well as nail down all the storage classes
10:55 clkao whoot
10:55 audreyt (state, my, let)
10:57 dakkar how will 'temporary' and 'hypothetical' be implemented?
10:58 dakkar 'temp' is not a storage class, is it?
11:01 audreyt no... it's installing a POST callback to someone's .TEMP
11:01 audreyt ditto "let" vs UNDO
11:01 audreyt let and temp are not declarators at all
11:02 audreyt sub f { let $x = 3 }
11:02 audreyt this is illegal
11:02 audreyt unless $x is visible
11:02 audreyt sub f { let my $x = 3 }
11:02 dakkar 'let' is the 'hypothetical' assigner? (I'm getting lost again...)
11:02 audreyt yeah... "let" means temporize but only revert in UNDO, not POST
11:03 audreyt s/POST/LEAVE/
11:03 wolverian s,let,maybe, # :)
11:03 ayrnieu (what?  perl6 has backtracking?  Nevermind!  Carry on!)
11:03 dakkar and UNDO is called on fail...
11:03 TimToady joined perl6
11:06 * dakkar is away: pranzo
11:07 SamB joined perl6
11:07 bsb_ is now known as bsb
11:13 bsb audreyt, ingy: I'll be in Taipei 21-26 of April
11:13 bsb for coffee debt settlement
11:15 audreyt bsb: ooooh
11:15 audreyt excellent
11:16 gaal audreyt: ACK, cool
11:18 colares joined perl6
11:18 weinig|sleep joined perl6
11:18 kattana_ joined perl6
11:18 evalbot_9900 joined perl6
11:18 chip joined perl6
11:18 xX[ReP]Xx joined perl6
11:18 chihchun joined perl6
11:18 merlyn joined perl6
11:18 pasteling joined perl6
11:20 elmex joined perl6
11:27 Southen joined perl6
11:29 azuroth joined perl6
11:32 nirgle left perl6
11:33 azuroth bye bye!
11:35 azuroth joined perl6
11:35 Southen joined perl6
11:53 kanru joined perl6
11:55 Khisanth joined perl6
12:07 ruoso joined perl6
12:08 marmic joined perl6
12:28 kolibrie joined perl6
12:38 * dakkar is back (gone 01:32:14)
12:44 Limbic_Region joined perl6
12:49 weinig|sleep is now known as weinig
12:51 * ruoso playing with parrot/trunk/languages/perl6
12:56 azuroth ruoso: I think rafl was looking for you, for bad mouthing his debian packaging skills ;-)
12:57 ingy bsb: awesome
13:01 ruoso azuroth, people is in a bad mood this days...
13:01 bsb ingy: yep, tickets booked
13:02 ruoso azuroth, I just asked him a question and made a suggestion...
13:03 azuroth well, only half of what I said was true
13:03 azuroth I'm assuming he'll be able to fix it up all good
13:04 azuroth good night, all
13:05 rafl ruoso: Hi there!
13:05 ruoso rafl, hi
13:07 rafl ruoso: You said some points I want to comment on: 1. I don't think a parrot-svn package make sense. Debian has its experimental branch for that.
13:07 rafl ruoso: I just don't have the time to keep that up to date very often, so help is appreciated.
13:07 rafl ruoso: 2. parrot-0.4.3 is packaged and uploaded.
13:08 ruoso thanks
13:08 rafl ruoso: That happened on the day it was released. Since then it's waiting in the Debian NEW Queue: http://ftp-master.debian.org/new.html
13:08 rafl That's because parrot changes its binary interface and therefor the SONAME of libparrot on every release and the package names in Debian need to reflect that.
13:09 rafl And as soon as you introduce a new package name, your package will be put into NEW for ftp-master approval.
13:09 ruoso rafl, oh...
13:09 ruoso rafl, ok
13:09 rafl There is no possibility to fix this inside Debian. Parrot needs to get a stable API and someone who watches out for changes.
13:10 rafl You also said that automatic daily builds should be in Debian and they should be autobuilded on all archs to check parrots quality.
13:11 rafl That's a bad idea as well. Even if it's called "unstable" it's not the place to upload random snapshots of any given software. That's what experimental is for.
13:11 rafl Also the Debian buildds are already stressed enough.
13:12 ruoso ok... thanks...
13:12 rafl I think, as I said already, experimental is a good place for parrot svn snapshots.
13:12 rafl Experimental gets autobuilded on some archs, so that could help to improve quality as well.
13:13 rafl ruoso: So if you have some spare time and want to improve the situation I'd be really glad if you could prepare some svn snapshots from time to time.
13:13 ruoso rafl, ok... sorry if what I said seemed as a complain... it was not my intention...
13:14 integral of course, someone could build their own .debs and put them on their own host, if they want to provide very unstable svn snapshots
13:14 Qiang joined perl6
13:15 rafl integral: Of course. I've done that on feather, but I didn't had time to set the autobuilder up again.
13:16 kakos joined perl6
13:18 rafl ruoso: I'm fine with that. I just wanted to comment on some things.
13:19 kanru joined perl6
13:24 ardder joined perl6
13:24 snowstalker joined perl6
13:24 SamB joined perl6
13:44 fglock joined perl6
13:44 snowstalker joined perl6
13:59 svnbot6 r9917 | fglock++ | PG-P6 - moved Pugs-Compiler-Tokenizer into Pugs-Grammar-Perl6
14:01 * ruoso needs help with pge...
14:01 snowstalker joined perl6
14:02 ruoso I can match "my $a = (1,2,3)" but can't match "my $a = ()"....
14:02 vel joined perl6
14:03 fglock ruoso: hi
14:06 ruoso fglock, hi
14:06 ruoso fglock, I'm playing with parrot+pge+languages/perl6
14:07 ruoso I think the problem is with 'circumfix:( )'
14:07 ruoso which only works if there is actually something inside the  ( )
14:10 fglock you can see if there are already tests for this
14:11 justatheory joined perl6
14:14 vytautas joined perl6
14:17 vytautas joined perl6
14:20 nothingmuch joined perl6
14:28 hexmode joined perl6
14:32 webmind_ is now known as webmind
14:33 wilx joined perl6
14:42 fglock are there docs on how to parse '$a<2' vs '$a<2>' and division vs. match?
14:43 wolverian afaik infix < needs whitespace
14:45 ayrnieu fare thee well, terse maths.  With FORTRAN you came, and you've since always been leaving.  Fare the well.
14:45 fglock ?eval 1<2
14:45 evalbot_9900 is now known as evalbot_9917
14:45 evalbot_9917 bool::true
14:45 integral ayrnieu: don't dispair!  redefine the grammar to be more like haskell!
15:18 pmurias joined perl6
15:18 pmurias hi all
15:23 fglock pmurias: hi
15:28 fglock left perl6
15:32 pmurias joined perl6
15:32 chris2 joined perl6
15:33 pmurias fglock: i get an error from perl6.pl: Pugs::Grammar::List is missing
15:41 KingDiamond joined perl6
15:59 KingDiamond joined perl6
16:03 justatheory joined perl6
16:19 xinming joined perl6
16:19 FurnaceBoy joined perl6
16:20 fglock joined perl6
16:25 fglock pmurias: fixing
16:27 svnbot6 r9918 | fglock++ | PG-P6 - added List.pm
16:36 ghenry joined perl6
16:51 FurnaceBoy is now known as FurnaceBoy_
16:58 bsb left perl6
17:00 kolibrie fglock: do you have an example written out like you propose for your lrep Talk: source text, grammar, compiled grammar, grammar generates AST
17:02 kolibrie I wrote a small grammar file, now I want to compile it and use it to generate an AST from my source text
17:08 fglock kolibrie: http://svn.openfoundry.org/pugs/misc/pX/Common/Pugs-Compiler-Rule/lib/Pugs/Grammar/Rule/Rule.pm
17:08 fglock this is the grammar file used to parse rules in PCR
17:09 fglock the AST is generated by the return blocks
17:10 kolibrie fglock: What command do I run to process a source file with a grammar?
17:11 fglock $match = $rule->match( $source );  - the ast tree is in $match->()
17:12 fglock or $match = Grammar::rule( $source );
17:13 kolibrie fglock: I'm sitting on the command-line with a grammar in p6, and a text file.  How do I run the grammar over the text file?
17:14 zgh joined perl6
17:15 kolibrie fglock: do I write a small p6 script that requires the grammar, reads the text file, and runs the match?
17:16 fglock you need to compile the grammar to a p5 package, and then require/use it in a program; then read the source file; apply your main parse rule and get a match object; then get the capture from it ...
17:16 fglock exactly
17:16 kolibrie so, to compile the grammar to a p5 package, what do I run?
17:17 fglock or, you can split the grammar into rules and compile each one directly in the p5 program
17:17 fglock you can use lrep to compile the grammar
17:18 kolibrie I ran 'perl p6compiler.pl grammar_test.p6'
17:18 kolibrie I can't see that it did anything
17:18 fglock if you choose to write in pure p5:  $rule = P::C::R->compile( ' <rule><rule> ' );
17:20 fglock you may need to supply some command line switches
17:23 fglock p6compiler.pl --print-program xx.pl > xx.pmc
17:23 * kolibrie tries
17:24 xinming joined perl6
17:25 kolibrie fglock: yeah! I got something
17:26 kolibrie fglock: now, to use that in my main program, I need to require my generated p5 module
17:26 kolibrie then how do I call it?
17:27 fglock if you compiled a .pmc, you can just 'use' it - perl will load the .pmc
17:27 fglock then: my $match = Grammar::rule( $source ); - use you grammar and rule names
17:28 ruoso joined perl6
17:28 kolibrie fglock: and $source is a string from my text file
17:29 fglock sorry: my $match = Grammar->rule( $source ); - rule is a method
17:29 * kolibrie begins to get excited
17:29 fglock yes
17:30 fglock prepare to have Data::Dumper around :)
17:30 kolibrie fglock: no problem
17:31 colares joined perl6
17:34 ruoso kolibrie, if everything goes fine, you should be able to recompile the grammar with the generated p5 code
17:36 kolibrie ruoso: that sounds like an adventure for another day
17:37 ruoso :)
17:45 kolibrie fglock: perl parse_text.pl text_file.txt
17:45 kolibrie Undefined subroutine &ruleop::constant called at grammar_test.pm line 8.
17:46 kolibrie how do I make it require/use the correct lrep files?
17:56 kolibrie fglock: I added the lines from the p6compiler.pl header subroutine to my parse_text.pl file
17:57 kolibrie now my errors are gone, and Data::Dumper gets pulled into use
18:00 lichtkind joined perl6
18:01 lichtkind the ! is for things like : if not ....{} ?
18:06 dduncan joined perl6
18:07 lichtkind in the s3 table stands only symbolic unary for the ! but where can i get more info?
18:09 kolibrie fglock: hmm, all my matches seem to be $VAR1 = undef;
18:19 TimToady lichtkind: if anything is undocumented in a synopsis the assumption is that it is handled like Perl 5 does.  So yes, unary ! is just a very tight "not".
18:19 lichtkind thanks mr toady
18:20 TimToady if !$x == $y is if (!$x) == $y
18:20 lichtkind tim toady and thanks for answering my mail
18:20 TimToady so it's often tighter than you like.
18:20 TimToady you're very welcome
18:21 lichtkind tim toady i currently write an tutorial about perl6 and once i wrote you a mail with some questions about beginnings of perl because i maintain nearly all perl related articlres in german wikipedia
18:22 TimToady ah
18:22 lichtkind tim toady but you nearly answered it with your last talk in isreal
18:22 TimToady I'll be a little less conferencey for the next month or so, so I should be available to answer any remaining questions.
18:23 lichtkind its just a small one :)
18:23 TimToady by Christmas.
18:23 TimToady :)
18:23 lichtkind :)
18:24 lichtkind we had hard disputes about that because i said that you cant seperate an christian attitude from the rest of pearl, some had problems with it , i think i understand that even if im not christian
18:26 dduncan so, did any of you submit proposals to talk at OSCON 2006, and get word back as to whether they were accepted or not?
18:26 KingDiamond joined perl6
18:26 TimToady one cannot help but be who one is (at least without some kind of divine assistance.:)
18:26 dduncan I made a proposal and found out a half hour ago that I won't be giving it ... too many good submissions or something
18:28 TimToady or too few good time slots... :-)
18:29 lichtkind TimToady sorry im no nativw speaker
18:29 TimToady sorry
18:29 TimToady you have to be who you are
18:29 TimToady unless you get outside assistance
18:30 miyagawa dduncan: I made a submission of my talk to OSCON 2006 and I got a reply from them, a couple of weeks ago
18:30 miyagawa saying the talk was accepted
18:32 dduncan hm, makes sense
18:32 dduncan they probably would confirm all the yesses first
18:33 TimToady me, I have to give a talk whether I want to or not...
18:33 miyagawa that was 2 weeks ago, to be more accurate
18:33 dduncan yes, you're spe-shul
18:33 miyagawa TimToady: seen this? http://japan.cnet.com/interview/story/0,2000055954,20100857,00.htm
18:33 weinig_ joined perl6
18:34 Limbic_Region TimToady - did you see the short exhange I had with audreyt concerning the change in the "nature of the list" over say the last 6 months
18:35 TimToady yes, I did.  I bl more assiduously than even Audrey.  :)
18:36 TimToady miyagawa: no, I hadn't.  thanks.
18:36 miyagawa doitashimashite.
18:36 dduncan anyway, I have a few questions or discussion points that I'm not sure whether I should bring up here or on p6l
18:36 dduncan maybe here first
18:39 dduncan to setup a context, this has to do with my Rosetta relational DBMS project ...
18:40 weinig_ joined perl6
18:41 dduncan my current plan is to have its native interface language look like or be Perl 6, since in large part Perl 6 seems to include all the relational algebra operators or close analogs to them
18:41 FurnaceBoy_ is now known as FurnaceBoy
18:41 weinig_ joined perl6
18:42 Limbic_Region TimToady - at the risk of opening up a can of worms - what is the current process for marrying Parrot with Perl6 (IOW - what is being done to ensure Parrot supports the language)
18:43 lichtkind TimToady i even read english books but some native phrases are still new to me, would you say that the way perl springs directly from your christian attitude or was it just christian to release it so does everybody else could use it too?
18:43 * Limbic_Region seldom sees the VM camp agreeing with the language camp
18:43 ayrnieu you don't have to preface wormcan-opening with "at the risk of".  If worms are freed, you can just say "I *knew* that this would happen!"
18:43 dduncan or initially, I will have the language be a very small subset of Perl 6 grammar and would parse it myself, so I have something which can be implementable in multiple languages and/or translatable/mappable to multiple languages
18:44 dduncan eg, all operators would simply be prefix format with parens around their arguments
18:45 TimToady Limbic_Region: I think once we get Perl running on top of Parrot in *any* form, there will be plenty of pressure to reduce any impedance mismatch between Perl and Parrot.
18:45 dduncan a very simple grammar is easy to make a simple parser for
18:45 TimToady so I'm not too worried about "Parrot supporting the language".
18:45 Limbic_Region ok - fair enough
18:46 Limbic_Region I am just concerned about the number of things that have been relegated to the VM - coroutines, threads, async io, etc
18:46 Limbic_Region well, concerned is probably not appropriate there
18:47 ayrnieu (audreyt seemed keen in her perlcast about multiple implementations, however, so 'parrot supporting the language' may also have the pressure of 'this specced thing works /over there/'.)
18:47 * Limbic_Region decides to shut up
18:48 TimToady lichtkind: I'd say both of those are true, for some definition of "christian".  certainly there are a lot of people who would claim to be christian who behave differently, but to me, I see a God who simultaneously can have a central plan but also likes a lot of diversity around the edges.
18:48 * Limbic_Region takes refuge in the fact that smarter people then him are handling it
18:48 dduncan but I also wanted to make it such that one could essentially code things in plain native perl 6 such that it looks and works about the same
18:48 dduncan er, I'll come back to this another day, when I actually have documents to show
18:49 TimToady dduncan: okay
18:49 dduncan or maybe I'll still ask a few questions
18:50 dduncan 1. part of the perl 6 design is that one can make custom grammars for the language itself ...
18:50 dduncan if I wanted to restrict things in some way, such as say that one can only code using strong data types, can I do that?
18:51 dduncan I prefer to push some kinds of checking to compile time, so I don't have to check at run time that pieces are giving each other valid formatted data
18:51 TimToady you can do anything you like with a given lexical scope.
18:52 dduncan 2. to clarify, it is now possible to have multi-member hash keys, so I can look things up by, say, 2 or 3 distinct values rather than one?
18:52 dduncan I thought I saw something like that in S9
18:52 TimToady it's just that, the more you diverge from the expectations of the naive programmer, the less they'll understand your code without studying up for it.
18:53 TimToady %foo{slice1; slice2; slice3} is allowed, where each slice is a lazy list.
18:53 dduncan eg, %foo{'bar','baz'} = 17;
18:54 TimToady You'd have to use >>=<< to set them all.
18:54 dduncan and $quux = %foo{'bar','baz'}; # contains 17
18:54 TimToady or have a pragma that turns all binops into hypers.
18:54 TimToady you're confusing , with ;
18:55 dduncan yes
18:55 TimToady ; separates dimensions, comma only separates list items.
18:55 dduncan sorry, I wrote that before seeing your previous line
18:55 TimToady but yes, with ; that should work.
18:55 dduncan for context, I want to have a data type that is like a Relation
18:56 TimToady it might be naively implemented as %foo<bar><baz>
18:56 TimToady but you can declare multidimensional containers.
18:57 dduncan now, the nature of a Relation is that you can have multiple keys over the same data
18:57 lichtkind tim toady mille gracie (1000 thanks) thats exactly how i felt about it but you know, i cant write it if i cant quote you on that. personally  i also believe in god and agree with you in most things, maybe thats why i like perl but i always have problems with christians when it comes to the interesting questions :)
18:58 TimToady lichtkind: yes, well, the interesting questions are of the form "what's really at the center?"
18:58 dduncan eg, for a person relation, one attribute social security num could be a key, and in limited senses, a name could also be a key; those don't overlap
18:59 TimToady dduncan: go on
18:59 dduncan if a hash is like a key, its like multiple hashes that have common values, and adding a value to one adds it to the other too; this hash multiplicity being encapsulated in the one relation container
19:00 TimToady or like a single hash that the first dimension selects the "real" key underneath.
19:00 dduncan a proper relation definition is a set of distinct tuples that all have the same set of attributes
19:00 dduncan everything is addressed by name, not ordinal position, like a hash
19:01 dduncan the name being a key value when selecting tuples from a hash
19:01 dduncan the name being the attribute names when selecting what people call columns in sql
19:02 TimToady right.  so you'd kind of like %hash{index; key} to let you have multiple entries be the same entry under different indexes.
19:02 dduncan in a way, yes
19:02 dduncan except that you first specify which index set, and then which values in it
19:03 dduncan and each index may have different numbers of values in it than others
19:03 TimToady right, the type of the subsequent dimensions varies depending on the index
19:03 dduncan and the values are each like hashes themselves
19:03 lichtkind tim toady thats easy in the center is loving consciousness i ment more the intelectual interesting questions like was abraham visited by aliens and like that, but i wont be here too OT
19:03 dduncan aka, each value is a tuple
19:04 dduncan I don't know whether it would be easiest for me to just define a perl 6 class which provides the functionality I'm thinking of, then show it to p6l for consideration of something analagous being in the language itself
19:04 _bernhard joined perl6
19:05 dduncan fundamentally, relations and tuples are basic and very commonly useful types of containers, and something akin to them deserves to be in a full language
19:05 TimToady it's usually easier to discuss a concrete proposal that is certainly wrong than an abstract proposal that is of uncertain merit.  :)
19:06 dduncan and if so, you could have a lot of people using Perl 6 itself for things they might otherwise use a separate database for
19:06 TimToady I agree.
19:06 xinming TimToady: I have a question on accessing kv pair in hash, in perl 5,  eg: my %h = (abc => 1, xyz => 2); $h{abc};  <---  here , abc in $h{abc} is acted as a string, will this be changed in perl 6?  eg, abc will become a method call instead of a string
19:06 TimToady the definitions in S09 are currently biased toward PDL-think, but if there are places where relational-think are more appropriate, I'm all ears.
19:07 dduncan so I think I will try making a concrete Perl 6 package soon that does what I'm thinking of, and then we could use that as a point of departure
19:07 TimToady dduncan++
19:07 dduncan incidentally, this is meant to be as fundamental as a Set type
19:07 dduncan and Set is currently a separate package in the Pugs tree
19:07 xinming This isn't discussed in Synopsis.  And if it is the same as perl 5, what's the difference between %h{abc} and %h<abc> ?
19:08 dduncan Relation theory is essentially Set theory
19:08 TimToady if abc isn't a function that can take 0 args, the first is a syntax error.
19:09 TimToady or perhaps a semantic error detected when the end of the current compilation unit is reached without a valid definition of sub abc.
19:09 xinming ok, so, abc will be a method call.
19:09 xinming oops. function call.
19:09 TimToady abc is abc()
19:10 justatheory joined perl6
19:10 TimToady the only remaining autoquoter from Perl 5 is the left side of =>.
19:10 dduncan fyi, I don't know if you've heard of http://thethirdmanifesto.com , but I currently subscribe/incorporate their definitions of what the relational data model is, and not SQL's definition
19:10 dduncan just to put things in context
19:11 TimToady haven't had a chance to look at it yet, though I've seen your refs to it.
19:11 xinming TimToady: Is there a way to make variable name contains space?
19:11 xinming or, did you ever consider it. :-)
19:12 TimToady ::<$I am a variable name> = 1;
19:12 TimToady Maybe require a MY on the front...
19:12 dduncan would the $ best go inside the <> or outside it?
19:13 cognominal TimToady, in your postcasted conference, you said that French are reluctant to borrow word. This is half true,  this not because the academy sneer at it, or that a minister pass a law that we don't do it.
19:13 TimToady depends on whether you're interrogating the symbol table hash or trying to do a symbolic name.
19:13 xinming dduncan: It should be inside IMHO. and $<abc> === $/<abc>
19:13 cognominal you should not confuse the institution and the people :)
19:13 TimToady for the latter, you can do $::("I am a variable name")
19:13 cognominal s/borrow word/borrow words/
19:14 TimToady cognominal: I think everyone understands that it's just a stereotype. :)
19:14 dduncan regarding my concrete example, it may be 1-2 weeks before I produce it, since I have to devote a lot of time to unrelated $job
19:14 cognominal :)
19:14 dduncan but it will come
19:15 dduncan but I'll keep this example simple, try to
19:15 TimToady dduncan: I don't doubt it.  You have the gift of persistence, and I mean that in a positive way.
19:15 dduncan thanks
19:16 dduncan fyi, I'm actually relieved my OSCON talk wasn't approved, as I would have preferred more time than I would have had for preparation
19:16 lichtkind why is there no ?!
19:18 TimToady um, what is ?! supposed to do?
19:19 ayrnieu the ternary operator is now named ?? !! , if you mean that.
19:19 lichtkind i know i mean as oposite of ?
19:20 xinming hmm, could we make @array ordered hash?  Since, in @a[1], 1 here is something like a key in %a<1>   :-P
19:21 ayrnieu lichtkind - you mean 'where did the zero-width negative lookahead assertion go?', in regex?
19:21 lichtkind nono
19:21 TimToady xinming: certainly.  there's no reason you can't have a container that does both Hash and Array roles.
19:21 * xinming doesn't think that is a good idea for now... :-P
19:21 lichtkind i mean boolean context operator
19:22 TimToady ?eval ?"yes"
19:22 ayrnieu you don't like !?"yes" ?
19:22 evalbot_9917 is now known as evalbot_9918
19:22 evalbot_9918 bool::true
19:22 TimToady ?eval !"yes"
19:22 evalbot_9918 bool::false
19:22 xinming bool:false
19:23 xinming s/:/::/
19:23 TimToady :)
19:23 TimToady er, ::)
19:23 lichtkind thank again # getting this tut completed
19:24 TimToady ?eval true "You're welcome"
19:24 evalbot_9918 bool::true
19:24 xinming ayrnieu: ? means it is bool context, and ! means "not",  so, normally ! is enough, If you wish to know which is the same as force a bool context, you can use !! IMHO. :-P
19:24 lichtkind maybe i shoul translate it in english when im done
19:25 ayrnieu xinming - I would hesitate to do that, with ternary syntax.
19:25 xinming ?eval !! "yes?"
19:25 TimToady well, Perl won't get confused, it being a term rather than an operator, but a human might.
19:25 evalbot_9918 bool::true
19:25 TimToady but why would you use !! when ? does exactly the same thing?
19:26 xinming TimToady: for your moto, TIMTOWTDI :-)
19:26 TimToady TMTOWTDI is how I spell it. :-)
19:27 TimToady cuz i always write there's
19:28 xinming TimToady: audreyt ever mentioned, that in perl 6, block is not an expression, do you ever considered to changed this? eg:  my $a = do if ?right { "right" } else { "nonono" };
19:28 pawel joined perl6
19:31 xinming hmm, though, I think, we should declare $a before we use that form.
19:32 lichtkind does ~~ impose sting kontext?
19:32 * xinming also doesn't like the parenthesis in method call, as method in xinming's opinion is a kind of sub call.
19:32 xinming lichtkind: no, It's smart match operator
19:32 xinming lichtkind: ~ is string context.
19:32 lichtkind k thx
19:33 xinming lichtkind: yw
19:33 TimToady xinming: how would you want to write a method call then?
19:34 q[uri]_ joined perl6
19:34 lichtkind if anybody here can read german, thats the tutorial im writing on: http://wiki.perl-community.de/bin/view/Wissensbasis/Perl6Tutorial
19:35 xinming TimToady:   $obj.meth "p1", p2, p3;
19:35 TimToady what should $obj.meth + 1 do?
19:35 TimToady or $obj.meth +1
19:35 TimToady or $obj.meth / foo
19:36 TimToady that's why we put in the disambiguating : (like Haskell $)
19:36 TimToady so you can say $obj.meth: "p1", p2, p3
19:36 TimToady and Perl knows to expect a term after the : rather than an operator.
19:36 xinming ah
19:37 xinming thanks
19:37 TimToady yw
19:37 q[uri]_ anyone seen allison around?
19:37 TimToady doesn't generally hang out here.
19:38 q[uri]_ TimToady: thanx.
19:38 q[uri]_ left perl6
19:38 * Limbic_Region wonders if allison has a stalker
19:39 TimToady if that was the uri I know, i'd say, no... :)
19:40 xinming hmm, what about the my $a; $a = do if ?test { "true" } else { "false" } example?
19:41 TimToady should work now if you want $a to end up with a string rather than a closure.
19:41 dduncan okay, I have another question
19:42 Limbic_Region oh - I didn't even see the uri in the <q[uri]_>
19:42 dduncan is there a defined generic equality operator that takes values as they are and doesn't impose a string or numeric context?
19:42 TimToady presuming ?test really means one thing.
19:42 TimToady and isn't trying to slurp arguments
19:42 david_ joined perl6
19:42 xinming TimToady: hmm, I just mean the test statement. sorry for my poor English. :-)
19:43 dduncan eg, where you can say "Any comp Any", and it would return true if the 2 are of the same actual type and are equal within that type?
19:43 TimToady but <space>{ at the statement level is forced to be a block regardless of expectations.
19:43 TimToady yes, that's what === is supposed to do.
19:44 dduncan okay
19:45 xinming hmm, what I want to say might be...   my $a; $a = loop(;test_statement;) { more_statements; $a };
19:45 xinming oops.
19:45 xinming my $a; $a = loop(;test_statement;) { more_statements; $b };
19:46 xinming then, $a will be $b when the loop finished
19:46 cognominal For those who read French,  in the French GnuLinuxMagazine of April I  wrote about the next Sun processor called Mehari that runs MiniPerl6 .   http://rafb.net/paste/results/Bq6ToS88.html
19:46 TimToady we require "do" in front of any statement_control that is to be used within another expr for its value.
19:47 TimToady otherwise we get ambiguities with statement modifiers like "if" and "unless" and "for"
19:47 TimToady so you want my $a; $a = do loop(;test_statement;) { more_statements; $b };
19:48 TimToady except for the fact that loop is probably going to return the last value of the test statement by default, if it's like Perl 5.  You'd need to leave() with an explicit value.
19:50 TimToady so by current definition that'd have to be
19:50 TimToady my $a; $a = do loop(;test_statement;) { more_statements; leave <== $b }
19:50 TimToady but I'm not entirely happy with leave's definition yet.
19:51 xinming hmm, does "if else" needs "leave" for returning a value?
19:52 TimToady no
19:52 TimToady doesn't test the expr again at the end of the loop
19:53 TimToady loops return conditional by "last expression evaluated" rule, but it might be possible to exempt the conditional expr, I suppose.  Still, it's ambiguous, and I'd rather have an explicit loop exit if that's what is meant.
19:53 TimToady maybe "last <== $b" is possible.
19:54 TimToady or "last :value($b)"
19:57 bsb joined perl6
19:57 * xinming still has 2 questions about perl 6, but hesitate to ask... :-P
19:57 * FurnaceBoy senses deadlock
19:59 xinming It's about class, I really like the word "is" used in the language...
20:00 xinming eg: class Foo { has $.a is rw }; so, I like class Foo { method private_one is mine { ... } } instead of class Foo { submethod private_one } :-)
20:01 xinming class Foo { submethod private_one { ... } };
20:08 KingDiamond joined perl6
20:11 TimToady xinming: different storage classes work better with different declarators out front.  We could do "my $foo is constant", and in fact we used to, but we pulled out "constant" as a declarator when we realized the variable was scoped to the compiler.
20:11 TimToady similarly, "submethod" is something with scoping rules that are both like subs and like methods.
20:12 TimToady so it's better to pull that out front where it's obvious.
20:16 xinming thanks for your clearly description. :-)
20:18 xinming my English sucks. :'(
20:18 xinming s/clearly/clear/
20:19 lichtkind thanks for all
20:22 Limbic_Region does the bit in S5 about rule matching against non strings (streams and arrays) currently work in Pugs?
20:23 TimToady none("clue")
20:23 xinming perl is the worst language to learn, and best language to use. :-)
20:23 fglock joined perl6
20:23 xinming I don't know if I'm right, But for reading Synopsis, I've learnt a lot.
20:24 TimToady I suspect English is worse to learn.  I'm still working on it...
20:24 mugwump xinming: you mean "hardest", presumably
20:24 xinming mugwump: No, I mean worst
20:24 weinig_ is now known as weinig
20:26 mugwump Well, I found it the most fun when I first picked up the Camel book about 8 years ago
20:26 xinming It's also a fun when learn perl 5.
20:27 dduncan I also first was introduced to Perl 8 years ago
20:28 mugwump must have been "OO nut learns Perl" season
20:28 dduncan so the 2nd ed Camel book was my first, gotten then ... it was a course text  book
20:28 Limbic_Region dduncan - you can't have been introduced to perl8 years ago
20:28 Limbic_Region unless of course you are a time traveler
20:28 Limbic_Region we are still working on p6
20:28 * Limbic_Region intentionally misparsed
20:28 fglock kolibrie: ping - sorry, I lost the connection
20:28 dduncan it was January of 1998 to be specific
20:29 kolibrie fglock: pong (I saw it)
20:29 Limbic_Region 2002-07-11 for me
20:29 Limbic_Region yep, I know the exact date
20:29 dduncan I am also fortunate to have started straight with version 5, and not have to deal with <= 4
20:29 * Limbic_Region wanders off homewards
20:29 kolibrie fglock: not getting errors any more, but every $match comes back as undef
20:29 kolibrie any ideas?
20:30 dduncan I know the exact date too, more or less ... it was around January 5th, whenever the winter quarter at college began
20:30 dduncan if I look up my course time table, I could know the exact hour too
20:31 fglock kolibrie: can you try a very simple match, like '.'? you can also try using PCR directly (see the pod)
20:31 pawel xinming: perl5 was the first programming language i learned
20:31 pawel is now known as pmurias
20:31 dduncan it was the computer science program's 1st year networking course (called 'comp 170' locally)
20:32 kolibrie fglock: so 'rule anything { . }'
20:32 kanru2 joined perl6
20:32 dduncan our first homework assignment was to download and install perl 5, so that 'print "hello world\n";' executed
20:32 fglock yes
20:32 dduncan in my case, being on a classic mac, it was MacPerl 5.20 or so, embedding Perl 5.004
20:33 dduncan so 5.004 was my first version
20:33 xinming I love perl 5, because It has built-in hash, And It is the first language I learnt which contains built-in hash. :-P
20:34 pmurias using perl5 was a pain on Windows, so i always went to my fathers office to program on the NetBSD they used as a server
20:34 KingDiamond joined perl6
20:34 claudio_ joined perl6
20:34 dduncan while Perl is my favorite language now, and since 1999, ironically I started out strongly disliking it on first introduction because it was so un-strict (I  was previously used to Pascal and Java) ... I was surprised that a program containing just a print statement would actually work
20:35 dduncan I ended up failing that course through neglect
20:35 dduncan then in summer of 1998, I decided to try using Perl to solve a practical problem of text processing, first by rewriting a Pascal program, and from that point I actually started to like it, and then in retaking the course in january of 1999, got an A+
20:36 dduncan Perl's been my favorite language since
20:37 kolibrie fglock: hmm, the match on 'anything' returns a match object containing the first letter of the package name
20:38 kolibrie fglock: switching to Grammar::rule( $source ) gets the first character
20:38 dduncan er, when I say 'strict', I meant that I was used to programs having all their statements inside functions/ subroutines ...
20:38 dduncan I couldn't understand how a bare statement outside a procedure could execute
20:38 dduncan but that quickly became water under the bridge
20:39 kolibrie fglock: now I just will have to take baby steps to build up my grammar
20:39 kolibrie fglock: can P::C::R take a whole grammar at a time, or only one rule at a time
20:40 fglock kolibrie: right - the 'old lrep' grammars were not OO
20:40 fglock PCR only works on single rules, which belong to a grammar (p5 package)
20:40 dduncan and there was that we could just use variables without declaring them
20:41 dduncan those 2 things
20:41 dduncan but in my modern Perl coding, I put everything reasonably possible in subroutines and use strict
20:41 kolibrie fglock: so I could read my p6 grammar file rule-by-rule and spoon-feed it to PCR
20:43 fglock sure
20:43 xinming dduncan: Most script you see which are written in perl without use strict IMHO is all modified after use strict; debugging is done. :-P
20:43 pmurias i used to write my programs on paper at when first learning, and only type them in after the were complete
20:44 fglock you can easily write a grammar compiler this way - PCR can emit perl5 code
20:44 svnbot6 r9919 | fglock++ | PCR - fixed hash ordering
20:44 svnbot6 r9919 | fglock++ | PG-P6 - added a failing test - there is a bug related to expression-parser reentrance
20:44 kolibrie fglock: ok, I'll look at those docs
20:45 kolibrie (probably tomorrow)
20:47 justatheory joined perl6
20:49 fglock in the p6 parser - is the bottom-up parser supposed to be used for expressions only?
20:51 ruoso fglock, in parrot?
20:52 ruoso fglock, parrot/languages/perl6, i mean...
20:52 fglock in the parser 'as-specced'
20:53 ruoso I always thought it was more implementation-oriented than spec-oriented...
20:54 fglock I mean, which parts actually 'need' to be parsed with rec-descent
20:58 bsb I thought the parsers overlapped, bottom up for speed, rec-descent for sane error messages
21:01 blb30346 joined perl6
21:02 fglock bsb: I was thinking about trying to use bottom-up in more places, but I wonder what things it would break (error messages may be one of them)
21:07 bsb I don't think there's any limits defined
21:07 bsb so use it if it works
21:13 ruoso I think the best combination will be the one that is written first...
21:14 avar fglock: go crazy with it;)
21:15 feng joined perl6
21:16 Limbic_Region joined perl6
21:19 nirgle joined perl6
21:25 david__ joined perl6
21:35 lichtkind joined perl6
21:37 KingDiamond joined perl6
21:38 lumi joined perl6
21:44 frederico joined perl6
21:51 nicbrown joined perl6
21:55 weinig is now known as weinig|out
21:55 bsb left perl6
21:56 fglock left perl6
22:06 avar will objects methods in Perl 6 be fairly complete?
22:06 avar I.e.
22:06 avar In Perl 5 you didn't have them, and hence you'd pollute the core too much
22:06 avar you you can have lots of object methods which make sense, like they're in their own namespace
22:07 avar one for lists, one for ints, etc.
22:08 avar But Perl 6 should be able to have (2,3,1).max 5.hex, 10.bin(ary) (or something), i.e. a fairly complete set of object methods
22:08 avar @list.uniq @list.top (the "biggest" element, or something)
22:08 avar Has there been some discussion or spec on this?
22:09 avar $cont = $file.read/slurp
22:14 TimToady avar: that's what MMD is all about.  You can have a slurp method without requiring the Str class to know about files.
22:15 avar TimToady: Exactly, I was wondering if the direction for std Perl 6 would be a fairly minmal set of methods for str, int, num etc (5-10) or "go crazy" in the knowledge that it wouldn't pollute the rest of the knowledge
22:16 avar I.e. be about ruby's level in methods per type
22:16 avar or, perhaps a bit higher;)
22:17 ruoso I think this is a point where OO starts getting weird...
22:17 ruoso what if I want to implement a new operation with files
22:17 ruoso and I dont want to mess with the standard types
22:18 ruoso open() returns the type that doesn't know about my new operation
22:18 ruoso and then I have to "decorate" the object
22:18 ruoso (java does this a lot... every time... it sucks...)
22:19 avar why wouldn't they be compatable?
22:19 avar -5.abs => 5, and everyone understands five
22:19 avar Or am I misunderstanding you?
22:19 ruoso maybe
22:19 TimToady -5.abs yields -5, actually...
22:20 avar TimToady: What do you know about Perl, just some random yahoo on IRC
22:20 ruoso what if you want a new operation 5.foo
22:20 avar >;)
22:20 TimToady multi foo (5) {...}
22:21 avar ah, because methods call are so high up the presidence table, I was reading about that the other day
22:21 avar yes of course
22:22 ruoso so... foo is not part of 5 interface...
22:22 ruoso you just add this feature to it...
22:22 TimToady I seriously doubt the 5 type knows about foo...
22:23 ruoso $foo = 5; $foo.foo;
22:23 TimToady the surprising precedence thing right now is that, if we make non-variable $ a unary, $$foo.bar is $($foo.bar).
22:24 TimToady ruoso: still works, because SMD will fail over to MMD.
22:25 * ruoso needs to study more on Perl 6 method resolving...
22:25 avar If I want to help with Perl 6 now without it taking up all my life what's my best bet?
22:25 avar writing Perl 6 testcases?
22:26 ruoso avar, the one you have more fun :)
22:26 ruoso nah... actually,  that will end taking up all your life..
22:26 nirgle left perl6
22:27 avar writing test cases would be fun;)
22:31 LeTo $ perl -le 'print (-5)->abs'
22:31 LeTo -5
22:31 LeTo Can't call method "abs" without a package or object reference at -e line 1.
22:31 LeTo $ ./pugs -e'say (-5).abs'
22:31 LeTo 5
22:32 LeTo what's the problem ;)
22:33 avar -> is not the method dispatches anymore
22:33 avar It make some kind of anon sub (IIRC), e.g. for (%hash.kv) -> $k, $v { ... }
22:33 LeTo err $ perl -le ...
22:34 LeTo that was perl5 of course
22:34 avar fleh, failed to see that,)
22:35 LeTo and the second pugs example certainly did work
22:35 larsen joined perl6
22:37 broquaint joined perl6
22:41 LeTo avar: writing tests is the best start to dig into things
22:41 avar What project should I do it for?
22:41 avar aren't there three seperate projs. or something, parrot, pugs ...
22:42 LeTo whatever you prefer
22:43 LeTo projects are distinct now still, and have common parts, increasingliy so (I hope)
22:43 avar no I was hoping for a list of projects and which one was best suted ;)
22:43 avar suited for what I'd want to do;)
22:44 avar and a pony
22:45 LeTo sure but compiler and runtime are separate parts in the perl 6 worldd
22:45 LeTo s/dd/d/
22:45 Qiang joined perl6
22:46 LeTo re pony: this is still seeking a new rider
22:46 avar you mean parrot / perl ?
22:47 LeTo the ponie, yes
22:48 ruoso there is work going on on languages/perl6 too...
22:48 ruoso and it looks good..
22:48 avar languages/perl6 is like 300 lines of code
22:49 ruoso avar, that means it will be easier to start playing with it...
22:49 LeTo http://use.perl.org/article.pl?sid=05/12/21/2026205
22:49 LeTo http://use.perl.org/article.pl?sid=05/12/14/2318248&amp;tid=33
22:50 avar They're just switching backends, not programming the whole thing again, right?
22:51 ruoso BTW... is it possible to say: Int does MyRoleFoo; 5.foo; ?
22:52 LeTo if MyRoleFoo has a method 'foo' that takes an Int invocant, sure
22:53 ruoso is it scoped?
22:53 ruoso or just *can be* scoped?
22:54 LeTo it's scoped to the rules of P6 scoping, i.e. whatever you want to achieve
22:55 * ruoso constantly gets even more impressed with all this stuff..
22:55 LeTo that is - you can scope it to any(global,file,lexical)
22:56 LeTo and class
22:57 ruoso that's a really smart way of re-implementing the "decorator" pattern...
22:57 * ruoso just hates this in the java api...
22:58 ruoso new LineReader(new Reader(new FileInputStream(new File(name))))
22:58 ruoso this is the java way
22:58 LeTo python seems to go that direction recently
22:58 ruoso which one?
22:59 LeTo decorators
22:59 ruoso gah
22:59 ruoso this is a PITA for the programmer...
23:01 * ruoso is working with Java(arg..) in the last 3 years... he really hates the ultra-verbosity of the java API
23:01 LeTo well, "there's no way to do it" - find some extra syntax ;-)
23:02 LeTo that was of course py* related
23:02 ruoso heh
23:02 ruoso fits very well for java
23:03 ruoso Iterator i = v.iterator(); while(i.hasNext()) { Hashtable h = (Hashtable)i.next(); }
23:03 ruoso I keep writing this all day.
23:03 * LeTo dunno java - I like to drink *good* coffee though
23:04 LeTo above code contains a cast, isn't it
23:04 LeTo Hashtable h = (Hashtable)i.next();
23:04 LeTo that one
23:04 ruoso yes
23:05 ruoso I just hate it
23:05 LeTo that's just b0rked
23:06 * ruoso realizes he will use "does" a lot...
23:08 LeTo what does the runtime, when you code '(String)i.next();' for that?    # and s/String/*/  - any other dunno type
23:09 chovy left perl6
23:10 ruoso you mean: "Hashtable h = (String)i.next()"? that's a compile-time error...
23:10 LeTo ok - and when (xxx) is user defined?
23:11 ruoso (OtherClass)object just checks...
23:11 ruoso the object doesn't need to change...
23:11 ruoso it does not change
23:11 LeTo e.g. 'xxx' isa 'Hashtable'
23:11 kanru2 is now known as kanru
23:11 ruoso it works...
23:11 ruoso but You can't access any methods defined by xxx
23:11 ruoso wait...
23:12 arcady btw, the new java lets you get rid of the most common use of iterators
23:12 ruoso you mean in "Hashtable h = (xxx)i.next()"
23:12 arcady for(Hashtable h : v) { ... }
23:12 * ruoso keeps with java 1.4.2 until java is free...
23:12 arcady 1.5 actually is better
23:12 arcady fewer casts too
23:12 arcady and... it will never be free
23:13 ruoso and what about claspath and kaffe and gcj
23:13 avar ruoso: does gcj implement 1.4.2 ?
23:13 ruoso almost...
23:13 avar Cool
23:13 avar does gcj use classpath?
23:14 ruoso yes and no...
23:14 ruoso they're brother-projects
23:14 avar But gcj can't compile normal code without classpath right?
23:14 avar since it's the stdlib
23:14 avar kind of like gcc / libc
23:14 avar ...
23:14 ruoso http://www.kaffe.org/~stuart/japi/htmlout/h-jdk14-classpath.html
23:23 * ruoso is going home^Wto the pub
23:29 lichtkind joined perl6
23:34 lichtkind ?eval my $a := my $b := my $c;
23:34 evalbot_9918 is now known as evalbot_9920
23:34 evalbot_9920 \undef
23:34 lichtkind ?eval my $a := my $b;
23:34 evalbot_9920 \undef
23:35 lichtkind ?eval my $a := my $b := my $c; $a = 2; $c;
23:35 evalbot_9920 Error: Can't modify constant item: VUndef
23:35 lichtkind ?eval my $a := my $c; $a = 2; $c;
23:35 evalbot_9920 Error: Can't modify constant item: VUndef
23:35 lichtkind ?eval {my $a := my $c; $a = 2; $c;}
23:36 evalbot_9920 Error: Can't modify constant item: VUndef
23:36 lichtkind do anybody here know if i can $a := $b := $c ?
23:38 arcady ?eval my ($a, $b, $c); $a := $b := $c; $a = 2; $c
23:38 evalbot_9920 \2
23:38 lichtkind ahh thanks
23:38 arcady you were binding $a not to $b but to the value of (my $b), which is undef
23:39 Khisanth joined perl6
23:41 lichtkind arcady why is my $b only a value ?
23:45 audreyt because it's a bug, that's why
23:46 audreyt this weekend's GPR (Great Pad Refactoring) should fix that
23:46 clkao hola audreyt
23:46 arcady excellent... now that I think about it it does seem wrong
23:46 lichtkind hello audrey
23:47 audreyt yo
23:48 audreyt final day of $job this week
23:48 * audreyt is _so_ looking forward to weekend
23:48 obra aw. sad.
23:48 clkao me too, om
23:48 obra <- greedy
23:48 clkao one more day to easter weekend
23:48 audreyt heh
23:49 audreyt obra: yeah, each $job day so far results in multiple jifty commits and LML releases and whatnot :)
23:49 * mugwump looks at clock
23:49 avar Maybe you guys will know this (of all people), I'm building a an application at wrk that consists of pure perl modules and (well, will) consist of some XS code as well. Now, my main namespace is Wrk::, I want Wrk.pm to be pure-perl, Wrk/Some/C to be xs etc. Problem is, I can't convince ExtUtil::MakeMaker to properly make my xs stuff if I put it anywhere other than in /Wrk.xs and /lib/Wrk.pm
23:49 mugwump about 4 hours until end-of-week here
23:49 * obra is optimizing Jifty
23:49 avar I tried putting my XS stuff deeper in the tree and create a Makefile.PL there like perl the interpeter and its stdlib do, but the main makefile didn't pick up on it
23:49 audreyt avar: /Wrk.xs and /Wkr.pm works too.
23:49 TimToady ?eval system q/perl -le '(my $a) = 42; print $a'/;
23:49 avar I know it's possible somehow, but I can't find anything in the docs
23:50 evalbot_9920 Error: No such method in class Str: "&system"
23:50 lichtkind audreyt i was that guy at gpw  in bochum with the editor in perl i wanted aboriginal   to ask you if you have special needs for features because your known to have some extreme programming style :)
23:50 TimToady heh.
23:50 avar audreyt: yeah of course, the point is that I want it in /ext/Wrk/XSStuff.pm/xt etc.
23:50 avar I was trying to poke the perl build process to find out how it was done;)
23:50 audreyt TimToady: you expect otherwise? :)
23:51 audreyt avar: WriteMakefile(XS => { '/ext/Wrk/XSStuff.xs' => 'XSStuff.c' })
23:51 audreyt arguably there should be a cc_xs_files() or xs_files() command in Module::Install to do that for you
23:51 TimToady works in my pugs, and prints 42.
23:52 audreyt TimToady: right, it's just the bot has safe mode on.
23:52 TimToady I just find it odd that system doesn't exist at all.
23:52 avar audreyt: That'll work for doing that?
23:52 audreyt avar: I think so. it's even documented in EU::MM
23:52 audreyt TimToady: *nod* maybe bind it to something that throws an exception?
23:53 TimToady always in favor of more accurate error messages...
23:53 avar audreyt: I read about it before actually, but it doesn't explain what it's for which didn't make me relate it to the problem I was having.
23:53 TimToady and even more precise error messages, as long as they're accurate... :)
23:54 avar audreyt: so that'll find stuff in ext/..., xsubpp it to XSStuff.c which'll then get picked up in the compilation
23:55 avar cool;)
23:55 mugwump avar: you'll probably need to set the 'C' and maybe 'OBJECT' key, too.  I could never get .xs compilation in a sub-directory working, though.  best perhaps to use a whole sub-module (ie, dir with its own Makefile.PL)
23:55 avar I tried using a seperate Makefile.PL, but the main file didn't pick it up and I'm not sure how to make it..
23:56 audreyt TimToady: implemented. testing...
23:56 avar ah, there it is;)
23:56 avar DIR =>
23:56 audreyt lichtkind: extreme programming has some good ideas...
23:56 avar audreyt: Like testcases;)
23:56 audreyt I'm not sure how/why my style is considered extreme though :)
23:57 lichtkind audreyt i thought more in that way that you handle lot of stuff at once, i dont ment xp literally :)
23:57 avar Extreme Programming sounds scary
23:58 lichtkind ok if you have crazy ideas let me know :)
23:58 lichtkind avar defenitly so
23:58 avar I always imagine some guy typing after having had 1 litres of coffee when I read it
23:58 TimToady a liter here, a liter there, pretty soon you're talking Real Coffee...
23:59 * avar is reminded of a Bill Hicks quote
23:59 audreyt or Double Espresso...
23:59 avar "2 packs a day? You pussy! I go through two lighters a day"
23:59 stevan heya audreyt  :)
23:59 audreyt with Floating Creams

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

Perl 6 | Reference Documentation | Rakudo