Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-01-09

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:19 cognominal I have yet to understand all the relations between rakudo and parrot. Now I get No applicable candidates found to dispatch to for 'trait_mod:is'
00:19 cognominal so perl6 is loaded but not the libraries
00:21 cognominal I probably need to read perl6.pir
00:35 gju joined #perl6
00:37 jlaire joined #perl6
00:39 araujo joined #perl6
00:52 cognominal I do load_language 'perl6'  which probably calls load_bytecode for the appropriate pbcs
01:04 xomas_ joined #perl6
01:20 Intensity joined #perl6
01:27 rachelBROWN joined #perl6
01:44 orafu joined #perl6
01:45 xomas_ joined #perl6
01:50 avar joined #perl6
02:00 avar joined #perl6
02:00 literal joined #perl6
02:04 orafu joined #perl6
02:11 cotto joined #perl6
02:18 orafu joined #perl6
03:11 ihrd joined #perl6
03:11 ihrd left #perl6
03:43 regalia joined #perl6
04:01 pugs_svn r29487 | diakopter++ | [sprixel] several bug fixes; several simplifications; implemented dot() (any char) masak++ for the good test case
04:02 pugs_svn r29488 | diakopter++ | [sprixel] disable more debugging
04:04 xinming_ joined #perl6
04:04 mberends diakopter: is any of sprixel usable yet to a non compiler builder?
04:04 cognominal joined #perl6
04:06 diakopter mberends: not really
04:06 * mberends tries not to show impatience
04:06 diakopter heh
04:12 diakopter it has a great foundation of a solid regex compiler (some optimizations remain to be implemented, though).  Also, capturing groups have not yet been ported.
04:12 mberends (solid regex compiler)++
04:13 diakopter hopefully tonight I can port over the named reference resolution & grammar composition.
04:16 Baggiokwok joined #perl6
04:19 pugs_svn r29489 | lwall++ | [S04] carry through consistenly on constant being a type declarator syntactically
04:20 pugs_svn r29490 | lwall++ | [constant.t] update to new constant declarator slot
04:22 pugs_svn r29491 | lwall++ | [STD,Cursor] track 'of' types and give error on extra declaration
04:22 pugs_svn r29491 | treat anon enums, subsets, etc more consistently
04:23 TimToady forgot the masak++  :)
04:24 mberends the bots forget it more often than you do :)
04:25 cognominal joined #perl6
04:26 TimToady bbl &
04:30 pugs_svn r29492 | diakopter++ | [sprixel] implement root() and regen() methods
04:34 japhb joined #perl6
04:46 Baggiokwok joined #perl6
04:53 diakopter well, .root is a field, not a method; oops.
04:58 adhoc joined #perl6
05:05 TimToady std: my Int constant pi of Num = 3;
05:05 p6eval std 29492: [31m===[0mSORRY![31m===[0m␤Extra 'of' type; already declared as type Int at /tmp/VWtOiGj3SI line 1:␤------> [32mmy Int constant pi of Num [33m⏏[31m= 3;[0m␤FAILED 00:01 105m␤
05:06 TimToady std: sub foo returns Rat returns Cat {...}
05:06 diakopter std: my Int constant Int of Num = 3;
05:06 p6eval std 29492: [31m===[0mSORRY![31m===[0m␤Extra 'of' type; already declared as type Rat at /tmp/a1ri7aYQeL line 1:␤------> [32msub foo returns Rat returns Cat [33m⏏[31m{...}[0m␤FAILED 00:01 104m␤
05:06 p6eval std 29492: ok 00:01 105m␤
05:06 diakopter std: my Int constant Int of Int = Int;
05:06 p6eval std 29492: ok 00:01 105m␤
05:07 diakopter :/
05:07 mberends one's mind boggles at the thought of what it could all mean..
05:08 TimToady forgot to remove the <typename>* from :constant...
05:08 diakopter std: my Int of Int of Int of Int multi { };
05:08 p6eval std 29492: ok 00:01 104m␤
05:08 TimToady std: my Int of Int sub foo returns Blob {...}
05:09 p6eval std 29492: [31m===[0mSORRY![31m===[0m␤Extra 'of' type; already declared as type Int of Int at /tmp/7n9r1raegU line 1:␤------> [32mmy Int of Int sub foo returns Blob [33m⏏[31m{...}[0m␤FAILED 00:01 104m␤
05:09 * diakopter feels the fuzzer's engines fire.
05:09 diakopter that...came out wrong.
05:13 diakopter std: our Int of Int constant Foo =:= Foo;
05:13 p6eval std 29492: ok 00:01 105m␤
05:13 diakopter std: our Int of Int constant Foo == Foo;
05:13 p6eval std 29492: ok 00:01 105m␤
05:13 pugs_svn r29493 | lwall++ | [STD] remove old type slot from constant declarator discovered by diakopter++
05:14 diakopter something's awry with the initializers a constant permits
05:14 TimToady those aren't initializers
05:15 mberends heh, just been reading about "constant" variables in LLVM as well
05:15 TimToady remember declarators aren't statements
05:16 diakopter o
05:16 TimToady and initializers are deemed to be initializers at reduction time of binding/assignment
05:16 TimToady if the left side is a declarator
05:17 diakopter std: our Int of Int constant Foo = our Int of Int constant Foo = 7;
05:17 p6eval std 29492: ok 00:01 105m␤
05:18 diakopter std: our Int constant Foo = our Int constant Foo = Foo;
05:18 TimToady that should carp about redeclaring Foo, I suspect
05:18 p6eval std 29492: ok 00:01 105m␤
05:18 diakopter oh
05:20 * mberends gives diakopter a trout's lap
05:20 diakopter std: our constant constant is Foo :Int<foo> = 7
05:20 p6eval std 29492: ok 00:01 105m␤
05:20 * diakopter drools
05:20 TimToady std: our constant Foo = 1; our constant Foo = 2;
05:21 p6eval std 29492: ok 00:01 105m␤
05:21 TimToady hmm, so much for that theory
05:21 diakopter our constant constant?
05:22 gfx joined #perl6
05:24 TimToady std: constant Foo = 1; constant Foo = 2;
05:24 p6eval std 29493: [31m===[0mSORRY![31m===[0m␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/QC5bq4q4GG line 1:␤------> [32mconstant Foo = 1; constant Foo[33m⏏[31m = 2;[0m␤FAILED 00:01 105m␤
05:24 TimToady hmm, works there
05:24 TimToady std: my constant Foo = 1; my constant Foo = 2;
05:24 p6eval std 29493: [31m===[0mSORRY![31m===[0m␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/NMAzm2Odvi line 1:␤------> [32mmy constant Foo = 1; my constant Foo[33m⏏[31m = 2;[0m␤FAILED 00:01 105m␤
05:24 diakopter I thought constant were 'our' by default
05:24 TimToady std: our constant Foo = 1; our constant Foo = 2;
05:24 p6eval std 29493: [31m===[0mSORRY![31m===[0m␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/JM7BWAQmSI line 1:␤------> [32mour constant Foo = 1; our constant Foo[33m⏏[31m = 2;[0m␤FAILED 00:01 105m␤
05:25 * diakopter blinks
05:25 * TimToady duz2
05:25 TimToady ah, rev change
05:25 TimToady before, Foo was considered a valid type
05:25 diakopter o_O does that mean ... oh.
05:25 * diakopter tries the doozy again
05:26 diakopter std: our constant constant is Foo :Int<foo> = 7
05:26 p6eval std 29493: ok 00:01 105m␤
05:26 diakopter I think there it thinks 'constant' is a typename
05:26 TimToady std: our Int constant Foo = our Int constant Foo = Foo;
05:26 p6eval std 29493: [31m===[0mSORRY![31m===[0m␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/H60Ol9JSiL line 1:␤------> [32m Int constant Foo = our Int constant Foo[33m⏏[31m = Foo;[0m␤FAILED 00:01 105m␤
05:27 diakopter std: our Int constant Foo = my Int constant Foo = Foo;
05:27 p6eval std 29493: [31m===[0mSORRY![31m===[0m␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/e96OnBerqt line 1:␤------> [32mr Int constant Foo = my Int constant Foo[33m⏏[31m = Foo;[0m␤FAILED 00:01 105m␤
05:27 TimToady declarators don't generally care whether the word they're declaring is a keyword
05:27 TimToady std: sub sub {...}
05:27 p6eval std 29493: ok 00:01 104m␤
05:27 diakopter std: my Int constant Foo = our Int constant Foo = Foo;
05:27 p6eval std 29493: [31m===[0mSORRY![31m===[0m␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/FuvLIiDJXN line 1:␤------> [32m Int constant Foo = our Int constant Foo[33m⏏[31m = Foo;[0m␤FAILED 00:01 105m␤
05:27 diakopter std: my Int constant Foo = Int constant Foo = Foo;
05:27 p6eval std 29493: [31m===[0mSORRY![31m===[0m␤Confused at /tmp/TAGsxzE61m line 1:␤------> [32mmy Int constant Foo = Int [33m⏏[31mconstant Foo = Foo;[0m␤    expecting any of:␤  bracketed infix␤  dotty␤  infix or meta-infix␤        infix stopper␤    postfix␤        standard stopper␤  statement
05:27 p6eval ..modifier loop␤   terminator␤FA…
05:27 diakopter ok
05:29 diakopter std: our ::Foo constant u of Foo = 3
05:29 p6eval std 29493: Use of uninitialized value $IN_DECL in string eq at STD.pm line 92428.␤[31m===[0mSORRY![31m===[0m␤Extra 'of' type; already declared as type ::Foo at /tmp/PFXIjmHuHS line 1:␤------> [32mour ::Foo constant u of Foo [33m⏏[31m= 3[0m␤FAILED 00:01 104m␤
05:30 soupdragon joined #perl6
05:30 diakopter someone needs to fix that perl bug where it calls STD.pmc STD.pm
05:30 diakopter or at least file it
05:42 pugs_svn r29494 | lwall++ | [STD] avoid undefined error on $*IN_DECL
05:43 mberends TimToady++ # bug-fix-o-matic
05:46 pugs_svn r29495 | lwall++ | [reverse.t] there is no want function anymore
05:48 Baggiokwok joined #perl6
05:59 donaldguy joined #perl6
05:59 donaldguy left #perl6
06:01 mberends TimToady: when do changes in pugs/src/perl6 require a 'make clean', and when do they require 'make distclean'?
06:01 TimToady I don't recall every doing a distclean
06:01 TimToady *ever
06:02 mberends heh, maybe a fossil then
06:02 mberends thanks
06:04 diakopter is there a distclean target?
06:04 mberends it says so in 'make help' ;)
06:05 mberends ..which /me wrote, not knowing what /me was doing ;)
06:13 mberends STD is broken here after r29494 (on linux x86) </whimper>
06:14 diakopter std: are you btokrn?
06:14 p6eval std 29495: [31m===[0mSORRY![31m===[0m␤Confused at /tmp/xvsl56RcPR line 1:␤------> [32mare you btokrn[33m⏏[31m?[0m␤    expecting any of:␤        POST␤   argument list␤      bracketed infix␤  dotty␤  infix␤   infix or meta-infix␤ infix stopper␤  postfix␤  postfix_prefix_meta_operator␤
06:14 p6eval ..standard stopper␤       statement …
06:16 mberends locally it says (sorry for flood): ./std CORE.setting
06:16 mberends ===SORRY!===
06:16 mberends Unable to parse signature; couldn't find final ')' at CORE.setting line 159:
06:16 mberends ------> here { .signature === :(Any, Any --> Int⏏ ) };
06:16 mberends std FAILED 00:12 47m
06:20 TimToady testing a fix
06:25 pugs_svn r29496 | lwall++ | [STD] restore missing ws after <typename>
06:25 TimToady that should fix it
06:29 mberends yes it does :)
06:30 * diakopter got distracted.
06:31 diakopter the story of my life.
06:31 Tene Nobody has committed to ng since I added &warn on Wednesday?  Huh.
06:32 diakopter where there's smoke, there's fire. except when there are mirrors.
06:32 spinclad_ joined #perl6
06:32 Tene time to find something to work on, I guess.
06:39 Tene actually, I think I'll sleep now instead.
06:40 Tene I hope someone else is around working on rakudo tomorrow.
06:42 Baggiokwok joined #perl6
06:48 _jaldhar joined #perl6
06:53 justatheory joined #perl6
07:01 diakopter I look forward to the day when cores are counted like transistors are today
07:04 mberends moore's law continues to apply, so in about 2028 years our computers will have as many cores are the Apple ][ CPU had transistors
07:05 mberends s/2028 years/2028/
07:05 mberends 18 years from now
07:10 Baggiokwok joined #perl6
07:11 mberends rakudo: (log(6502)/log(2)*1.5).fmt("%d years from now").say
07:11 p6eval rakudo 3867ff: 19 years from now␤
07:16 mberends the Apple ][ still boots faster  than most of today's PCs
07:32 meteorjay joined #perl6
07:45 kaare joined #perl6
07:53 Baggiokwok joined #perl6
08:08 Baggiokwok joined #perl6
08:26 meppl joined #perl6
08:26 iblechbot joined #perl6
08:26 jackyf joined #perl6
08:26 snearch joined #perl6
08:48 Su-Shee joined #perl6
08:48 Su-Shee good morning
08:51 mberends good morning Su-Shee, it is indeed
08:58 saschi where is the promised blizzard?
08:58 Su-Shee I will cook something french today, bake a bread and code some perl5 and 6.
08:58 Su-Shee saschi: INDEED.
08:58 Su-Shee lousy 4cm here.
08:58 saschi Su-Shee: it seems, that all we get is just a simple plain "childhood like" winter :)
08:59 Su-Shee ok, it's a winter, allright. but they promised a catastrophy!
09:00 saschi yeah :/
09:00 saschi i've desided to make photos: yesterday 17:00, today 17:00 and tomorrow 17:00 ^^
09:01 saschi to see the difference
09:02 saschi and if there isn't any, i'll sue the DWD or something :)
09:26 Intensity joined #perl6
09:47 kst` joined #perl6
09:55 Baggiokwok joined #perl6
09:56 bbkr joined #perl6
10:12 saschi Su-Shee: any cool recipies? i need some inspiration for this weekend :)
10:33 Su-Shee I bought julia child yesterday and will cook beef bourguignon today. ;)
10:34 pugs_svn r29497 | mberends++ | [vill] more docs, new LHF and a re-tweaked 'make clean'
10:35 saschi Su-Shee: ah, nice, especially the burgundy part ^-^
10:36 Su-Shee :)
10:48 Intensity joined #perl6
10:54 colomon___ joined #perl6
11:11 Baggiokwok joined #perl6
11:28 beggars joined #perl6
11:36 xinming_ joined #perl6
12:15 ive joined #perl6
12:37 fridim_ joined #perl6
12:56 jackyf joined #perl6
13:14 meppel joined #perl6
13:14 barney joined #perl6
13:23 ihrd joined #perl6
13:23 ihrd left #perl6
13:35 Baggiokwok joined #perl6
14:17 colomon_ joined #perl6
14:41 Psyche^ joined #perl6
14:56 saschi Su-Shee: wow, now the real winter is coming ^^
15:01 Psyche^ joined #perl6
15:07 hugues23 joined #perl6
15:15 Baggiokwok joined #perl6
15:21 IllvilJa joined #perl6
15:36 xinming joined #perl6
15:36 Intensity joined #perl6
15:36 tylerni7 joined #perl6
15:47 am0c joined #perl6
15:56 soupdragon joined #perl6
15:59 Psyche^ joined #perl6
16:05 jferrero joined #perl6
16:05 jackyf joined #perl6
16:28 nihiliad joined #perl6
16:31 jaldhar_ joined #perl6
17:03 TimToady so I can understand all the eu folks staying bundled up in their beds, but what's the excuse of all those hardy usians?  all out snowmobiling or somethin'?  :)
17:05 diakopter hi
17:05 pmurias joined #perl6
17:05 TimToady maybe they're all too busy hacking to waste time on irc :)
17:05 diakopter we can only hope
17:06 * mberends is busy hacking all day long
17:06 diakopter somebody's gotta do the work while irc drains our brains line by line
17:07 * mberends has a brain full of !perl/hash:VAST::number__S_numish etc etc
17:07 colomon_ Had to take the boy to the doctor this morning.  We're all sick, alas...
17:08 TimToady well, taking care of yourself is also important; we're in this for the long haul
17:09 * TimToady is just trying to stir the pot, not make trouble :)
17:10 colomon_ The good news is his ear infection is clearing up.  The bad news is he's got a cold just like my wife and me.
17:13 * Su-Shee cooked french. dinner at 8. it's enough for 6 people. first come, first serve. ;)
17:14 arnsholt Su-Shee: What kind of French?
17:14 arnsholt (And where's your here?)
17:14 soupdragon I wonder if there's anything I can do for perl6
17:14 colomon_ soupdragon: I'm sure there is!
17:14 soupdragon the lisp stuff whatever that was is probably stagnant and I don't know what's going on with elf
17:15 Su-Shee arnsholt: I've seen the movie about Julia Child recently, so I bought her 2 volume "mastering the art of french cooking". today I've tried a beef stew in red wine. (which is essentially cooking itself, because it's in the oven)
17:15 TimToady the author of elf is a hare rather than a tortoise, and he's been haring off for a while now
17:15 soupdragon yes
17:16 arnsholt Su-Shee: Oooh, Boeuf Bourginon. That does sound yummy
17:17 arnsholt And I haven't gotten around to seeing Julie & Julia (which I assume is the movie you saw) yet, but I'd like to
17:17 arnsholt Especially since I understand there are some scenes taking place in the restaurant called La Couronne in Rouen, where I've actually been a couple of times ^^
17:19 Su-Shee arnsholt: exactly this dish. :) meryl streep is _great_ in the movie, btw. and it has a huge drool-factor, no question. :)
17:20 arnsholt Yeah, it looks good. I love food, so I think it's my kind of movie
17:20 arnsholt And Meryl Streep tends to be good in most films I find
17:21 Su-Shee I dig her especially in the comedian and/or bitch-roles. in manchurian candidate she was a masterful iocaste-like power-hungry uber-mother.
17:22 jho left #perl6
17:22 arnsholt I think I remember that
17:23 diakopter soupdragon: also, fglock has a bootstrapped implementation, of which one of the backends is sbcl
17:23 diakopter perlito
17:23 diakopter descendant of mp6/kp6
17:28 pmurias diakopter: mp6
17:34 araujo joined #perl6
17:35 pmurias joined #perl6
17:35 pmurias_ joined #perl6
17:53 rodi You know, I think of a Hare as "is Contestant does Fast does Stop" and a Tortoise as "is Contestant does Slow",
17:53 rodi which puts me firmly in the category of "is Contestant[Barely] does Slow does Stop"
17:53 rodi except I can't remember if there are parametric classes.
17:53 rodi Are there?  Or only roles?
17:54 TimToady only roles
17:54 TimToady but roles used as classes will attempt to pun themselves into a class
17:55 TimToady however...
17:55 TimToady std: class Foo[Int] {...}
17:55 p6eval std 29497: [31m===[0mSORRY![31m===[0m␤Unable to parse class definition at /tmp/VveYV4h0Iv line 1:␤------> [32mclass Foo[33m⏏[31m[Int] {...}[0m␤    expecting any of:␤   trait␤  whitespace␤FAILED 00:01 106m␤
17:56 TimToady std: rle Foo[Int] {...}
17:56 p6eval std 29497: [31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/KAhJXv8P6n line 1:␤------> [32mrle Foo[Int] [33m⏏[31m{...}[0m␤    expecting any of:␤    bracketed infix␤  infix or meta-infix␤      infix stopper␤
17:56 p6eval ..  standard s…
17:56 TimToady std: role Foo[Int] {...}
17:56 p6eval std 29497: ok 00:01 107m␤
17:58 rodi Is that pronounced "role Foo of Int"? # borrowing some British punctuation
17:59 rodi Also, maybe this is the wrong place to bring it up, but I'll give it a shot and move to the list if it is:
17:59 TimToady yes, Foo of Int is basically the same thing
18:00 rodi S32/Containers has some descriptions of KeyHash, KeySet, and KeyBag that are very nice, but they're under a heading called "Classes",
18:00 rodi KeySet is called a "KeyHash of True" in that, but it's really a KeyHash of Bool with a default value of Bool::False, whish is subtly different,
18:01 rodi And it might also be worth mentioning the default value for KeyBag, which I presume is 0?
18:02 rodi I'm crossing streams a little- I was implementing a class I was calling "Group" for lack of a better name, and discovered that KeySet has much nicer semantics than I had come up with.
18:02 rodi So, thanks for that :)
18:02 rodi Hopefully later this afternoon I'll have KeyHash done, or at least have hit some interesting roadbumps along the way.
18:03 cls_bsd joined #perl6
18:03 TimToady yes, that could all be better written, but it sounds like you have it straight in your head
18:03 rodi One last question, for anyone who's listening, I know that "my KeyHash %foo" makes a Hash of KeyHash.  I presumed (probably wrongly) that I would want a % sigil on a KeyHash, but didn't know how to make that happen...
18:05 TimToady sigils are part of the name, and anonymous KeyHashes don't have a % in their name
18:05 TimToady except insofar as they are named by whatever the Hash key is
18:05 TimToady it's not like in Perl 5 where you have to play %{} tricks
18:06 rodi But there is a %() trick, right?  I used that on another module (e.g. gave it a Hash() method, and when I put a %() around it in rakudo it called that method...), maybe wrongly :-\
18:07 rodi Ah, but I see that is not a kind of coercion.
18:07 TimToady well, it's coercion to Associative, really
18:07 rodi Only a setting of context, perhaps?  Or, even more simply, a sugar for calling of the .Hash() method.
18:08 TimToady we're still feeling out this business of coercing to a role, which tends to be dwimmy
18:08 rodi I like the dwimmery so far.
18:08 TimToady unary + and ~ also turn out to be coercion to Numeric and Stringy, it seems
18:08 rodi Used them both, love the feel.
18:09 TimToady and in the case of Numeric, probably calls into the parser to figure out which kind of numeric to return
18:09 TimToady other role coercions might use a list of handlers, or some such
18:10 TimToady or maybe it can degenerate to a multi dispatch of some sort
18:10 TimToady "who most wants to turn this into something Foo-ish?"
18:10 TimToady it's probably only the from-string ones that are mediated by the parser
18:12 TimToady and coercion to Stringy is probably just coercion to Str for now, unless we want to make some things coerce to Buf
18:13 TimToady it is not clear how that pecking order should work
18:14 rodi So, back to the dwimmery around coercing a role, if I C<my KeySet %foo .= new()>, and I want it to act Associative, I don't need to do anything funny with the name?
18:14 TimToady correct
18:15 rodi Crap, except I spelled it wrong, right?
18:15 TimToady but that is a bit of a bogus statement
18:15 rodi s/%/$/
18:15 TimToady that is a Hash that returns KetSets
18:15 TimToady *KeySets
18:16 TimToady makes more sense with $
18:16 TimToady or you can do 'my %foo is KeySet;'
18:16 rodi Then I can say $foo<TimToady>++, and it returns true?
18:16 TimToady or 'my %foo := KeySet.new;'
18:17 rodi Oh, now we're cooking with grease.
18:17 rodi I like that last one.
18:17 TimToady well, the $foo<TimToady>++ itself wouldn't return true the first time
18:17 TimToady but $foo<TimToady> would be true after that
18:18 TimToady since it's a postincrement
18:18 rodi Right, beautiful.
18:19 Chazz joined #perl6
18:19 rodi Okay, before I start asking for a KeySet that acts like a TreeSet, I'm going to put my head back down and finish the KeyHash and KeySet module.
18:19 rodi I'm sure someone's already done it, it just helps me grok the semantics to write them out myself :-\
18:20 rodi Thanks for the help, the semantics really are beautiful.  I know it's only a default syntax, but it's a nice default :-D
18:20 astoria joined #perl6
18:28 pugs_svn r29498 | lwall++ | [S32/Containers] clarifications suggested by rodi++
18:30 payload joined #perl6
18:31 pugs_svn r29499 | diakopter++ | [sprixel] patterns can now reproduce their own source code (in JavaScript).
18:44 almih joined #perl6
18:49 pugs_svn r29500 | diakopter++ | [sprixel] bugfix in the prefix & postfix codegen macro generators; cleanup of unused macros
18:51 Chazz joined #perl6
19:01 Gothmog_ joined #perl6
19:02 pugs_svn r29501 | diakopter++ | [sprixel] make Grammars fully declarative (compilation deferred).
19:03 payload joined #perl6
19:05 diakopter .* chews through 1<<21 UTF-32 chars in 1 second
19:06 diakopter 8MB I guess
19:07 diakopter (2MB of ascii/ansi input)
19:07 mikehh joined #perl6
19:09 diakopter both(star(dot()),end())
19:10 * mberends considers implementing vill strings internally in UTF-8
19:13 diakopter but UTF-32 is just so much easier :P
19:14 mberends it looks like swings and roundabouts imho
19:17 diakopter if you save enough money to afford swings on your lawn by living far from town, you have to deal with more roundabouts on the commute.
19:19 TimToady p6 specs NFG format, which naturally maps to arrays of integers, either unsigned if there are no strange characters, or signed if there are
19:19 mberends UTF-32 is farther from town (the bytes in your I/O streams)
19:19 TimToady where "strange" is defined as any grapheme not having a precomposed form
19:21 TimToady but Array[int32] and Array[uint32] can easily be optimized to smaller native types when the string is known to contain smallish characters
19:21 mberends what is NFG?
19:23 TimToady google for 'perl nfg' and you'll find a bunch of stuff
19:23 TimToady but it stands for Normalization Form G
19:23 TimToady which you won't find in the Unicode standard
19:24 TimToady it uses positive ints for any grapheme representable by a precomposed codepoint, and negative ints to represent lookup in a table for non-reducable graphemes with multiple codepoints
19:24 TimToady our original conception had a single process-wide lookup table, but I think parrot currently specs per-string
19:25 TimToady more work when you hit a negative "codepoint", but less vulnerable to DOS attack
19:26 TimToady but the idea is that Str is never represented internally in a variable-width format
19:26 TimToady those belong out in Buf types
19:27 TimToady so you can write all your Str algorithms with simple array indexing
19:27 mberends hmm, never thought that much about it. it would probably be counterproductive to deviate from NFG.
19:27 TimToady that's the goal
19:27 TimToady which says UTF-32 is a good spot to start
19:28 TimToady or think of it as UCS-4
19:28 TimToady downgradeable to UCS-2 if there are no plane 1 characters
19:28 TimToady downgradeable to UCS-1 if there are no non-latin-1 characters :)
19:30 frederico joined #perl6
19:30 mberends right. yes, there is no sense implementing it with variable byte counts.
19:30 TimToady in the abstract, NFG is just a sequence of integers
19:32 TimToady it's really just NFC plus inventing more precomposed graphemes on the fly as necessary
19:33 TimToady and making sure they get translated back to the appropriate sequence of codepoints on output
19:34 TimToady the negative codepoints are allocated from -1 on down to keep the wordsize small if possible
19:35 mberends that means the internal handling is simple code, I/O decoding/encoding is trickier.
19:35 TimToady but that's why your computer has multiple cores :)
19:35 mberends but the algorithm is simple enough. it's surprising that Parrot decided to depend on a external library for that
19:36 TimToady yeah, always seems to me that it would be really easy to steal the unicore tables from Perl 5
19:36 TimToady but there seems to be a mental block against that
19:36 mberends I/O is going to be slower anyway
19:39 pmurias why?
19:39 TimToady maybe we should take Perl 5's mktables and get it to emit P6 code that implements NFG
19:41 mberends sorry, that was vague. I meant I/O devices cause much longer delays than most internal processing, and when software is I/O bound, a small additional CPU overhead of UTF-8 decoding/encoding will be almost unnoticeable
19:43 TimToady especially if done in a small additional CPU  :)
19:44 TimToady funny if our first feed operators actually come from an IO layer
19:44 mberends in 19 years, our single processor equivalent machine could have 6502 CPUs
19:45 TimToady was the 6502 named after the number of trannies on it?
19:45 mberends in urban legends at least. the 6800 also had that reputation.
19:46 TimToady was always partial to Z80s meself
19:47 mberends my first PC was a TRS-80 Model 1
19:48 TimToady never actualy owned a Z80 though; first personal computer was an Amiga 1000
19:48 TimToady my work computers were always sufficient to my needs up till then
19:49 TimToady still have that Amiga, btw
19:50 mberends wikipedia says the 6502 had about 4000 transistors, no reference quoted
19:52 TimToady still, 4000 cores will be somethin'
19:52 frettled to keep your house warm :D
19:53 TimToady only if you say make -J 4000, otherwise most of them are probably turned off
19:53 frettled I make it a rule to use $ncpus + 1, so that would be -J 4001 :D
19:54 TimToady 'course, if you do a make like that, you'll certainly discover your I/O bottlenecks  :)
19:54 mberends the future make will be written in Perl 6 and will autothread automatically
19:54 frettled autounravel!
19:55 TimToady now thinking about the scheduler built into recursive hyperoperators...
19:56 frettled *cringe*
19:57 frettled The good thing about that is that they'll no longer be talking about CCNUMA, but about P6NUMA ;)
19:57 colomon_ wait, *recursive* hyperoperators?
19:58 frettled colomon_: careful with that brain of yours
19:58 frettled it's valuable
20:02 rodi In composing KeySet from KeyHash, is this the right spelling: "class KeySet does KeyHash[Bool, Bool::True] {...}" ?
20:02 rodi *grammar and spelling
20:02 xenoterracide joined #perl6
20:06 rodi More generally, can a parametric role compose another role?
20:08 almih left #perl6
20:10 TimToady roles may do other roles, in theory
20:10 rodi Okay, found an example of that in S16.
20:11 rodi role OS::Unix::User does User {
20:13 payload joined #perl6
20:18 cotto joined #perl6
20:22 mikehh joined #perl6
20:40 _jaldhar_ joined #perl6
20:48 mberends the 8080 CPU had about 4500 transistors, 8085 => 6500tr, 8086 => 30000tr http://www.xnumber.com/xnumber/Microcomputer_invention.htm
20:49 rodi I bought a Xilinx Spartan-3 deal from Opal Kelly, their smallest one, has 400,000 gates.
20:51 mberends so a Spartan-3 could emulate approximately a 12-core 8086
20:51 kensanata joined #perl6
20:59 nihiliad joined #perl6
21:09 nadim mberends: I'll write that future make with P6. In fact I'm waiting for P6 to become stable to re-write my build system ;)
21:09 mberends nadim: that's the spirit!
21:11 nadim and I'm serious http://search.cpan.org/~nkh/PerlBuildSystem-0.44/ I actually have started on the next generation. I have a wooping 1000 requirements gathered
21:11 nadim the problem is what dowe build perl with :) !!
21:13 jackyf joined #perl6
21:13 mberends Wow, that's a fairly extensive system! Where are the 1000 requirements?
21:13 nadim On my disk
21:14 nadim plus all the rquirements that are implemented in the current version, should be a lot too but I'm too lazy to do reverse requirement gathering yet
21:15 nadim I'll have to do it at some point . I had hopes my dormer employer was going to pay for the development but I was unlucky with that.
21:15 mberends nicely written main POD http://search.cpan.org/~nkh/PerlBuildSystem-0.44/doc/reference_manual.pod
21:17 nadim the build system is way better than the documentation. but I got better at _no- writing code too fast the last ten years
21:17 mberends nadim: we are not  as far progressed as PBS, but you could probably hack on our proto installer http://github.com/masak/proto/tree/installed-modules
21:18 nadim masak like in 'cooking' ?
21:18 diakopter heh
21:19 nadim I had a look at it some time ago, I try to keep with the new build systems (I try but fail)
21:19 mberends masak++ is our number one bug finder, tester and breaker of prototypes
21:20 nadim ah! masak means cooking in Indonesian I thought it was about cooking software :)
21:21 mberends haha
21:23 payload joined #perl6
21:23 mberends phenny, tell masak is this you? http://irclog.perlgeek.de/perl6/2010-01-09#i_1894733
21:23 phenny mberends: I'll pass that on when masak is around.
21:31 xinming_ joined #perl6
21:51 nadim for those who haven't seen this example that can run in Rakudo http://waffle.wootest.net/2009/12/19/perl-6-feature-ep1/
21:52 nadim Honestly, if this is the way we are going to present P6 to the world, our ranks are going to diminuish very quickly.
21:52 diakopter what do you mean?
21:53 diakopter (what's the issue with the post)
21:55 nadim that it is going to be difficult for most people to understand it
21:56 diakopter oh
21:56 nadim I had to read it multiple times (which may mean tha I am dumb)
21:56 nadim of course this is the first time I see the syntax so  I had to guess how macro works and how the 'but' is ised to load the trait
21:57 nadim I'm afraid P6 is going to be for an elite. JAva succeeded because most people were too dumb to understand C++ (and it lacked libs)
21:57 diakopter nadim: I didn't get it, and still don't.
21:58 nadim hehe, you say that to please me ;)
21:58 diakopter seriously
21:58 mberends waffle or Jesper does not visit this channel or contribute to Perl 6 afaik. There was a positive trend in Jesper's regard for Perl 6 usability.
22:00 nadim diakopter: the example is interresting but the way to present it is, hmm, not very pedagogic.
22:00 mberends nadim: libs are normal, also in Java and in Perl 5 and 6. They're a Good Thing.
22:00 nadim mberends: and the lack of them killed C++
22:00 nadim that's what I meant
22:01 mberends it is true that "we" could have written the article better ;)
22:01 diakopter http://waffle.wootest.net/2009/12/29/mark/
22:02 nadim we had a java developer ask what a linked list was. I never had so much trouble keeping from laughing out loud.
22:02 diakopter http://waffle.wootest.net/2009/12/23/perlinq/
22:07 mberends He's exploring Perl 6 farther than most of the solo developers who occasionally call here. We could benefit each other.
22:10 nadim absolutely
22:10 nadim what we need is a huge body of examples and a proper P6 book
22:11 diakopter nadim: what about an implementation?
22:11 mberends nadim, how you mean that C++ lacks libs? For specific problem domains?
22:12 nadim diakopter++
22:12 Su-Shee I plainly use just a part of p6. everything which is more handy than in p5. everything I don't get now I can't use properly anyway, so I don't miss it right now.
22:12 nadim mberends: I started using C++ when there was just a translator to a C compiler. there where not STL or anything else those days
22:13 slavik joined #perl6
22:13 nadim an Java has a zillion libs which were decided upon by few Sun ppl. lobotomizing a whole generation of developers.
22:14 mberends nadim: ok, that helps me. Perl 6 still needs to start with library building.
22:17 nadim well, P6 run P5 just because it needs CPAN. so we do ahve 20_000 of them
22:18 mberends importing or converting Perl 5 modules will probably go quite quickly after the infrastructure is made (core support, librarian, downloader, installer etc)
22:18 diakopter nadim: but it doesn't.
22:18 diakopter (yet)
22:18 nadim you mean doesn't yet
22:19 nadim IMO, dumping 80% of CPAN would be good. I'm getting tired of undocumented shit (that some of our star programer have) that pollutes CPAN.
22:20 diakopter CPAN is open because not everyone's definition of 'shit' is identical.
22:20 nadim I'll stick to my own definition then
22:21 diakopter :)
22:21 nadim although, no tests, no documentation is pretty universal
22:21 patspam joined #perl6
22:25 Tene http://bbs.chinaunix.net/thread-1633922-1-1.html
22:25 Tene google translate does a decent job on it.
22:26 nadim good for the 5 biliions Perl programer that don't get that language
22:26 diakopter http://translate.google.com/translate?js=y&amp;prev=_t&amp;hl=en&amp;ie=UTF-8&amp;layout=1&amp;eotf=1&amp;u=http%3A%2F%2Fbbs.chinaunix.net%2Fthread-1633922-1-1.html&amp;sl=zh-CN&amp;tl=en
22:27 diakopter does the title mean what I think it says
22:28 Tene Every post has this in it: "Your views on this paste: flowers [0] smelly eggs [0]"
22:28 nadim "Perl 5 should first thoroughly understand I" sound like it's written by a small green jedi
22:28 Tene my guess is upvotes/downvotes
22:29 Tene I'm mentioned by name on page 2.  Huh.
22:30 Tene "Do not forget, parrot's goal is multi-language interactive, embedded, concurrency, faster than Java, developers have already Tene, one of the basic functions of perl 5 embedded into the.
22:30 Tene jnthn on page 3
22:31 nadim well the faster than Java remains to be seen. And I'd like to see it because a comparison in speed killed my last project. Managers are statistic suckers!
22:32 * mberends votes the forum flowers [+1]
22:32 Tene "perl6's regex too strong blanket. 。 . 。 ."
22:33 nadim P6 doesn't need to be automatically translated to look weird. wait till Abigail starts exploding our heads with P6 regexes
22:34 Tene Who is abigail?
22:34 nadim a regex lord
22:34 nadim sometimes I wonder if he doesn't rule them all
22:34 mikehh joined #perl6
22:35 nadim http://search.cpan.org/~abigail/
22:36 nadim http://perl.abigail.be/Talks/Sudoku/HTML/
22:37 nadim solving sudoku with regexp
22:40 mberends 'write only software' roundtrips to 'actually has also been vilified as "not giving read"' :-)
22:40 nadim You'd make a good guest. You're easily untertained
22:41 mberends troo
22:42 pugs_svn r29502 | diakopter++ | [sprixel] ported (well, implemented, since lots couldn't port directly over) grammar
22:42 pugs_svn r29502 | (set of named patterns with one marked TOP) compilation from sprixel# to sprixel.
22:42 pugs_svn r29502 | roll-up (inline emission, deeply) of non-recursive patterns.  now to port the
22:42 pugs_svn r29502 | invocations of recursive patterns with callsites and calltargets.  should port over
22:42 pugs_svn r29502 | with more straightforwardness.
22:46 diakopter I realized the other day that the callsites & calltargets implementation in sprixel# would actually be useful to compile programs (with subroutines) other than just parsers.
22:48 Tene "Perl 6 has been listed to be available for $29.00 in markets in earlier spring 2010." -- http://techglimpse.com/index.php/perl-6-coming-soon.php
22:48 mberends diakopter: that illustrates the similarities between grammars and classes, regexes and functions rather well
22:50 diakopter also, the algorithm for determining whether a subroutine is recursive (on any of its codepaths) was fun to solve.
22:50 diakopter mberends: yes, in a parsing system that must be implemented top-down.
22:51 diakopter note that I haven't implemented an OPP (EXPR)
22:52 diakopter yet.
22:54 mberends can the other implementations of OPP (STD, NQP) be of any help?
22:55 payload joined #perl6
22:56 diakopter absolutely. TimToady has explained the STD one to me, but I've likely forgotten it all.  Probably I'll need to read some books on it. In general, it's very difficult for me to understand someone else's code unless I've written something very similar to it myself (in my head at least).
22:57 * mberends looked at the STD.pm one, and quickly scrolled on ;)
23:00 mberends ah well, enough doc-tweaking here, now back to infix__S_Plus...
23:26 KyleHa joined #perl6
23:32 imaltb joined #perl6
23:55 dbrock joined #perl6

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

Perl 6 | Reference Documentation | Rakudo