»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by wolfe.freenode.net on 30 October 2009.
00:17 ignacio_ left
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
so perl6 is loaded but not the libraries
I probably need to read perl6.pir 00:21
00:22 araujo left 00:35 gju joined, cotto left 00:37 jlaire joined 00:39 araujo joined
cognominal I do load_language 'perl6' which probably calls load_bytecode for the appropriate pbcs 00:52
01:03 dugg left 01:04 xomas_ joined 01:20 Intensity joined 01:27 stephenlb left, rachelBROWN joined 01:44 orafu left, orafu joined, xomas_ left 01:45 xomas_ joined 01:48 ShaneC left 01:49 avar left 01:50 jferrero left, avar joined 02:00 avar left, literal left, avar joined, literal joined 02:04 orafu left, orafu joined 02:07 mariano__ left 02:09 xomas_ is now known as xomas 02:11 cotto joined 02:17 orafu left 02:18 orafu joined 02:21 fridim_ left 02:47 cdarroch left 03:11 ihrd joined, ihrd left 03:43 regalia joined 03:58 japhb left, cognominal left
pugs_svn r29487 | diakopter++ | [sprixel] several bug fixes; several simplifications; implemented dot() (any char) masak++ for the good test case 04:01
r29488 | diakopter++ | [sprixel] disable more debugging 04:02
04:04 xinming_ joined
mberends diakopter: is any of sprixel usable yet to a non compiler builder? 04:04
04:04 cognominal joined
diakopter mberends: not really 04:06
mberends tries not to show impatience
diakopter heh
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)++
diakopter hopefully tonight I can port over the named reference resolution & grammar composition. 04:13
04:16 Baggiokwok joined
pugs_svn r29489 | lwall++ | [S04] carry through consistenly on constant being a type declarator syntactically 04:19
r29490 | lwall++ | [constant.t] update to new constant declarator slot 04:20
04:22 xinming left
pugs_svn r29491 | lwall++ | [STD,Cursor] track 'of' types and give error on extra declaration 04:22
r29491 | treat anon enums, subsets, etc more consistently
TimToady forgot the masak++ :) 04:23
mberends the bots forget it more often than you do :) 04:24
04:25 cognominal left, cognominal joined
TimToady bbl & 04:26
pugs_svn r29492 | diakopter++ | [sprixel] implement root() and regen() methods 04:30
04:34 japhb joined 04:44 Baggiokwok left 04:46 Baggiokwok joined
diakopter well, .root is a field, not a method; oops. 04:53
04:58 adhoc joined
TimToady std: my Int constant pi of Num = 3; 05:05
p6eval std 29492: ===SORRY!===␤Extra 'of' type; already declared as type Int at /tmp/VWtOiGj3SI line 1:␤------> my Int constant pi of Num ⏏= 3;␤FAILED 00:01 105m␤
TimToady std: sub foo returns Rat returns Cat {...} 05:06
diakopter std: my Int constant Int of Num = 3;
p6eval std 29492: ===SORRY!===␤Extra 'of' type; already declared as type Rat at /tmp/a1ri7aYQeL line 1:␤------> sub foo returns Rat returns Cat ⏏{...}␤FAILED 00:01 104m␤
std 29492: ok 00:01 105m␤
diakopter std: my Int constant Int of Int = Int;
p6eval std 29492: ok 00:01 105m␤
diakopter :/ 05:07
mberends one's mind boggles at the thought of what it could all mean..
TimToady forgot to remove the <typename>* from :constant... 05:08
diakopter std: my Int of Int of Int of Int multi { };
p6eval std 29492: ok 00:01 104m␤
TimToady std: my Int of Int sub foo returns Blob {...}
p6eval std 29492: ===SORRY!===␤Extra 'of' type; already declared as type Int of Int at /tmp/7n9r1raegU line 1:␤------> my Int of Int sub foo returns Blob ⏏{...}␤FAILED 00:01 104m␤ 05:09
diakopter feels the fuzzer's engines fire.
that...came out wrong.
std: our Int of Int constant Foo =:= Foo; 05:13
p6eval std 29492: ok 00:01 105m␤
diakopter std: our Int of Int constant Foo == Foo;
p6eval std 29492: ok 00:01 105m␤
pugs_svn r29493 | lwall++ | [STD] remove old type slot from constant declarator discovered by diakopter++
diakopter something's awry with the initializers a constant permits 05:14
TimToady those aren't initializers
mberends heh, just been reading about "constant" variables in LLVM as well 05:15
TimToady remember declarators aren't statements
diakopter o 05:16
TimToady and initializers are deemed to be initializers at reduction time of binding/assignment
if the left side is a declarator
diakopter std: our Int of Int constant Foo = our Int of Int constant Foo = 7; 05:17
p6eval std 29492: ok 00:01 105m␤
diakopter std: our Int constant Foo = our Int constant Foo = Foo; 05:18
TimToady that should carp about redeclaring Foo, I suspect
p6eval std 29492: ok 00:01 105m␤
diakopter oh
mberends gives diakopter a trout's lap 05:20
diakopter std: our constant constant is Foo :Int<foo> = 7
p6eval std 29492: ok 00:01 105m␤
diakopter drools
TimToady std: our constant Foo = 1; our constant Foo = 2;
p6eval std 29492: ok 00:01 105m␤ 05:21
TimToady hmm, so much for that theory
diakopter our constant constant?
05:22 gfx joined
TimToady std: constant Foo = 1; constant Foo = 2; 05:24
p6eval std 29493: ===SORRY!===␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/QC5bq4q4GG line 1:␤------> constant Foo = 1; constant Foo⏏ = 2;␤FAILED 00:01 105m␤
TimToady hmm, works there
std: my constant Foo = 1; my constant Foo = 2;
p6eval std 29493: ===SORRY!===␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/NMAzm2Odvi line 1:␤------> my constant Foo = 1; my constant Foo⏏ = 2;␤FAILED 00:01 105m␤
diakopter I thought constant were 'our' by default
TimToady std: our constant Foo = 1; our constant Foo = 2;
p6eval std 29493: ===SORRY!===␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/JM7BWAQmSI line 1:␤------> our constant Foo = 1; our constant Foo⏏ = 2;␤FAILED 00:01 105m␤
diakopter blinks 05:25
TimToady duz2
ah, rev change
before, Foo was considered a valid type
diakopter o_O does that mean ... oh.
diakopter tries the doozy again
std: our constant constant is Foo :Int<foo> = 7 05:26
p6eval std 29493: ok 00:01 105m␤
diakopter I think there it thinks 'constant' is a typename
TimToady std: our Int constant Foo = our Int constant Foo = Foo;
p6eval std 29493: ===SORRY!===␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/H60Ol9JSiL line 1:␤------> Int constant Foo = our Int constant Foo⏏ = Foo;␤FAILED 00:01 105m␤
diakopter std: our Int constant Foo = my Int constant Foo = Foo; 05:27
p6eval std 29493: ===SORRY!===␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/e96OnBerqt line 1:␤------> r Int constant Foo = my Int constant Foo⏏ = Foo;␤FAILED 00:01 105m␤
TimToady declarators don't generally care whether the word they're declaring is a keyword
std: sub sub {...}
p6eval std 29493: ok 00:01 104m␤
diakopter std: my Int constant Foo = our Int constant Foo = Foo;
p6eval std 29493: ===SORRY!===␤Illegal redeclaration of symbol 'Foo' (from line 1) at /tmp/FuvLIiDJXN line 1:␤------> Int constant Foo = our Int constant Foo⏏ = Foo;␤FAILED 00:01 105m␤
diakopter std: my Int constant Foo = Int constant Foo = Foo;
p6eval std 29493: ===SORRY!===␤Confused at /tmp/TAGsxzE61m line 1:␤------> my Int constant Foo = Int ⏏constant Foo = Foo;␤ expecting any of:␤ bracketed infix␤ dotty␤ infix or meta-infix␤ infix stopper␤ postfix␤ standard stopper␤ statement
..modifier loop␤ terminator␤FA…
diakopter ok
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.␤===SORRY!===␤Extra 'of' type; already declared as type ::Foo at /tmp/PFXIjmHuHS line 1:␤------> our ::Foo constant u of Foo ⏏= 3␤FAILED 00:01 104m␤
05:30 soupdragon joined
diakopter someone needs to fix that perl bug where it calls STD.pmc STD.pm 05:30
or at least file it
pugs_svn r29494 | lwall++ | [STD] avoid undefined error on $*IN_DECL 05:42
mberends TimToady++ # bug-fix-o-matic 05:43
05:46 Baggiokwok left
pugs_svn r29495 | lwall++ | [reverse.t] there is no want function anymore 05:46
05:48 xinming_ is now known as xinming, Baggiokwok joined 05:59 donaldguy joined, donaldguy left
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
*ever
mberends heh, maybe a fossil then 06:02
thanks
diakopter is there a distclean target? 06:04
mberends it says so in 'make help' ;)
..which /me wrote, not knowing what /me was doing ;) 06:05
STD is broken here after r29494 (on linux x86) </whimper> 06:13
diakopter std: are you btokrn? 06:14
p6eval std 29495: ===SORRY!===␤Confused at /tmp/xvsl56RcPR line 1:␤------> are you btokrn⏏?␤ expecting any of:␤ POST␤ argument list␤ bracketed infix␤ dotty␤ infix␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤
..standard stopper␤ statement …
mberends locally it says (sorry for flood): ./std CORE.setting 06:16
===SORRY!===
Unable to parse signature; couldn't find final ')' at CORE.setting line 159:
------> here { .signature === :(Any, Any --> Int⏏ ) };
std FAILED 00:12 47m
TimToady testing a fix 06:20
06:24 justatheory left
pugs_svn r29496 | lwall++ | [STD] restore missing ws after <typename> 06:25
TimToady that should fix it
mberends yes it does :) 06:29
06:30 Baggiokwok left
diakopter got distracted. 06:30
the story of my life. 06:31
Tene Nobody has committed to ng since I added &warn on Wednesday? Huh.
diakopter where there's smoke, there's fire. except when there are mirrors. 06:32
06:32 spinclad_ joined
Tene time to find something to work on, I guess. 06:32
06:33 spinclad left
Tene actually, I think I'll sleep now instead. 06:39
I hope someone else is around working on rakudo tomorrow. 06:40
06:42 Baggiokwok joined 06:43 nihiliad left 06:48 _jaldhar joined 06:53 justatheory joined
diakopter I look forward to the day when cores are counted like transistors are today 07:01
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:04
s/2028 years/2028/ 07:05
18 years from now
07:07 regalia left 07:08 Baggiokwok left 07:10 Baggiokwok joined
mberends rakudo: (log(6502)/log(2)*1.5).fmt("%d years from now").say 07:11
p6eval rakudo 3867ff: 19 years from now␤
07:12 Baggiokwok left
mberends the Apple ][ still boots faster than most of today's PCs 07:16
07:16 meteorjay left 07:32 meteorjay joined 07:45 kaare joined 07:46 kaare is now known as Guest23920 07:51 colomon_ left 07:53 Baggiokwok joined 07:58 Baggiokwok left 08:03 cognominal left 08:08 Baggiokwok joined 08:26 meppl joined, iblechbot joined, jackyf joined, snearch joined 08:48 Su-Shee joined
Su-Shee good morning 08:48
mberends good morning Su-Shee, it is indeed 08:51
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.
saschi: INDEED.
lousy 4cm here.
saschi Su-Shee: it seems, that all we get is just a simple plain "childhood like" winter :)
Su-Shee ok, it's a winter, allright. but they promised a catastrophy! 08:59
09:00 gfx left
saschi yeah :/ 09:00
i've desided to make photos: yesterday 17:00, today 17:00 and tomorrow 17:00 ^^
to see the difference 09:01
and if there isn't any, i'll sue the DWD or something :) 09:02
09:04 Baggiokwok left 09:16 Intensity left 09:19 jackyf left 09:26 Intensity joined 09:47 kst` joined 09:55 Baggiokwok joined 09:56 bbkr joined 09:59 kst left
saschi Su-Shee: any cool recipies? i need some inspiration for this weekend :) 10:12
Su-Shee I bought julia child yesterday and will cook beef bourguignon today. ;) 10:33
pugs_svn r29497 | mberends++ | [vill] more docs, new LHF and a re-tweaked 'make clean' 10:34
saschi Su-Shee: ah, nice, especially the burgundy part ^-^ 10:35
Su-Shee :) 10:36
10:40 bbkr left 10:42 Intensity left 10:48 Intensity joined 10:50 Chillance left 10:54 Baggiokwok left, colomon___ joined 11:11 Baggiokwok joined 11:28 beggars joined 11:36 xinming_ joined 11:55 xinming left 12:15 ive joined 12:20 Baggiokwok left 12:37 fridim_ joined, iblechbot left 12:56 jackyf joined 13:07 araujo left 13:10 snearch left 13:14 meppel joined, barney joined 13:23 ihrd joined, ihrd left 13:27 meppl left 13:35 Baggiokwok joined 13:57 colomon___ left 14:15 adhoc left 14:17 colomon_ joined 14:19 IllvilJa left 14:41 Psyche^ joined 14:45 soupdragon left 14:51 Baggiokwok left 14:53 Patterner left, Psyche^ is now known as Patterner
saschi Su-Shee: wow, now the real winter is coming ^^ 14:56
15:01 Psyche^ joined 15:03 Patterner left, Psyche^ is now known as Patterner 15:07 hugues23 joined 15:15 Baggiokwok joined 15:21 IllvilJa joined 15:31 Intensity left 15:34 dbrock left 15:36 xinming_ left, tylerni8 left, xinming joined, Intensity joined, tylerni7 joined 15:47 am0c joined 15:54 barney left 15:56 soupdragon joined 15:59 Psyche^ joined 16:05 jackyf left, jferrero joined, jackyf joined 16:17 Patterner left, Psyche^ is now known as Patterner 16:28 nihiliad joined 16:31 jaldhar_ joined 16:37 Baggiokwok left 16:43 _jaldhar left
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:03
17:03 TimToady sets mode: +vvv buubot dalek hugme, TimToady sets mode: +vvv ilbot2 ilogger2 IRSeekBot, TimToady sets mode: +vvv lisppaste3 p6eval phenny, TimToady sets mode: +v pugs_svn
diakopter hi 17:05
17:05 pmurias joined
TimToady maybe they're all too busy hacking to waste time on irc :) 17:05
diakopter we can only hope
mberends is busy hacking all day long 17:06
diakopter somebody's gotta do the work while irc drains our brains line by line
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...
TimToady well, taking care of yourself is also important; we're in this for the long haul 17:08
TimToady is just trying to stir the pot, not make trouble :) 17:09
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:10
Su-Shee cooked french. dinner at 8. it's enough for 6 people. first come, first serve. ;) 17:13
arnsholt Su-Shee: What kind of French? 17:14
(And where's your here?)
soupdragon I wonder if there's anything I can do for perl6
colomon_ soupdragon: I'm sure there is!
soupdragon the lisp stuff whatever that was is probably stagnant and I don't know what's going on with elf
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
soupdragon yes
arnsholt Su-Shee: Oooh, Boeuf Bourginon. That does sound yummy 17:16
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
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 ^^
Su-Shee arnsholt: exactly this dish. :) meryl streep is _great_ in the movie, btw. and it has a huge drool-factor, no question. :) 17:19
arnsholt Yeah, it looks good. I love food, so I think it's my kind of movie 17:20
And Meryl Streep tends to be good in most films I find
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:21
17:22 jho left
arnsholt I think I remember that 17:22
diakopter soupdragon: also, fglock has a bootstrapped implementation, of which one of the backends is sbcl 17:23
perlito
descendant of mp6/kp6
pmurias diakopter: mp6 17:28
17:34 araujo joined, pmurias left, cls_bsd left 17:35 pmurias joined, pmurias_ joined 17:51 eternaleye left
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
which puts me firmly in the category of "is Contestant[Barely] does Slow does Stop"
except I can't remember if there are parametric classes.
Are there? Or only roles?
TimToady only roles 17:54
but roles used as classes will attempt to pun themselves into a class
however... 17:55
std: class Foo[Int] {...}
p6eval std 29497: ===SORRY!===␤Unable to parse class definition at /tmp/VveYV4h0Iv line 1:␤------> class Foo⏏[Int] {...}␤ expecting any of:␤ trait␤ whitespace␤FAILED 00:01 106m␤
TimToady std: rle Foo[Int] {...} 17:56
p6eval std 29497: ===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/KAhJXv8P6n line 1:␤------> rle Foo[Int] ⏏{...}␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ infix stopper␤
.. standard s…
TimToady std: role Foo[Int] {...}
p6eval std 29497: ok 00:01 107m␤
rodi Is that pronounced "role Foo of Int"? # borrowing some British punctuation 17:58
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
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
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,
And it might also be worth mentioning the default value for KeyBag, which I presume is 0? 18:01
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
So, thanks for that :)
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
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...
TimToady sigils are part of the name, and anonymous KeyHashes don't have a % in their name 18:05
except insofar as they are named by whatever the Hash key is
it's not like in Perl 5 where you have to play %{} tricks
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:06
Ah, but I see that is not a kind of coercion. 18:07
TimToady well, it's coercion to Associative, really
rodi Only a setting of context, perhaps? Or, even more simply, a sugar for calling of the .Hash() method.
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.
TimToady unary + and ~ also turn out to be coercion to Numeric and Stringy, it seems
rodi Used them both, love the feel.
TimToady and in the case of Numeric, probably calls into the parser to figure out which kind of numeric to return 18:09
other role coercions might use a list of handlers, or some such
or maybe it can degenerate to a multi dispatch of some sort 18:10
"who most wants to turn this into something Foo-ish?"
it's probably only the from-string ones that are mediated by the parser
and coercion to Stringy is probably just coercion to Str for now, unless we want to make some things coerce to Buf 18:12
it is not clear how that pecking order should work 18:13
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
rodi Crap, except I spelled it wrong, right? 18:15
TimToady but that is a bit of a bogus statement
rodi s/%/$/
TimToady that is a Hash that returns KetSets
*KeySets
makes more sense with $ 18:16
or you can do 'my %foo is KeySet;'
rodi Then I can say $foo<TimToady>++, and it returns true?
TimToady or 'my %foo := KeySet.new;'
rodi Oh, now we're cooking with grease. 18:17
I like that last one.
TimToady well, the $foo<TimToady>++ itself wouldn't return true the first time
but $foo<TimToady> would be true after that
since it's a postincrement 18:18
rodi Right, beautiful.
18:19 Chazz joined
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
I'm sure someone's already done it, it just helps me grok the semantics to write them out myself :-\
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
18:20 astoria joined 18:22 cls_bsd left
pugs_svn r29498 | lwall++ | [S32/Containers] clarifications suggested by rodi++ 18:28
18:30 payload joined
pugs_svn r29499 | diakopter++ | [sprixel] patterns can now reproduce their own source code (in JavaScript). 18:31
18:45 almih joined
pugs_svn r29500 | diakopter++ | [sprixel] bugfix in the prefix & postfix codegen macro generators; cleanup of unused macros 19:01
19:01 pmurias_ left, Chazz left, Chazz joined, Gothmog_ left, Gothmog_ joined
pugs_svn r29501 | diakopter++ | [sprixel] make Grammars fully declarative (compilation deferred). 19:02
19:09 payload left, payload joined
diakopter .* chews through 1<<21 UTF-32 chars in 1 second 19:09
8MB I guess
19:09 mikehh left
diakopter (2MB of ascii/ansi input) 19:09
19:09 mikehh joined
diakopter both(star(dot()),end()) 19:09
mberends considers implementing vill strings internally in UTF-8 19:10
diakopter but UTF-32 is just so much easier :P 19:13
mberends it looks like swings and roundabouts imho 19:14
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:17
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)
TimToady where "strange" is defined as any grapheme not having a precomposed form
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?
TimToady google for 'perl nfg' and you'll find a bunch of stuff 19:23
but it stands for Normalization Form G
which you won't find in the Unicode standard
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
our original conception had a single process-wide lookup table, but I think parrot currently specs per-string
19:25 Chazz is now known as zz_Chazz
TimToady more work when you hit a negative "codepoint", but less vulnerable to DOS attack 19:25
but the idea is that Str is never represented internally in a variable-width format 19:26
those belong out in Buf types
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.
TimToady that's the goal
which says UTF-32 is a good spot to start 19:28
or think of it as UCS-4
downgradeable to UCS-2 if there are no plane 1 characters
downgradeable to UCS-1 if there are no non-latin-1 characters :)
19:30 frederico joined
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
it's really just NFC plus inventing more precomposed graphemes on the fly as necessary 19:32
and making sure they get translated back to the appropriate sequence of codepoints on output 19:33
the negative codepoints are allocated from -1 on down to keep the wordsize small if possible 19:34
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 :)
mberends but the algorithm is simple enough. it's surprising that Parrot decided to depend on a external library for that
TimToady yeah, always seems to me that it would be really easy to steal the unicore tables from Perl 5 19:36
but there seems to be a mental block against that
19:36 soupdragon left
mberends I/O is going to be slower anyway 19:36
pmurias why? 19:39
TimToady maybe we should take Perl 5's mktables and get it to emit P6 code that implements NFG
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:41
TimToady especially if done in a small additional CPU :) 19:43
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
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.
TimToady was always partial to Z80s meself 19:46
mberends my first PC was a TRS-80 Model 1 19:47
TimToady never actualy owned a Z80 though; first personal computer was an Amiga 1000 19:48
my work computers were always sufficient to my needs up till then
still have that Amiga, btw 19:49
mberends wikipedia says the 6502 had about 4000 transistors, no reference quoted 19:50
TimToady still, 4000 cores will be somethin' 19:52
frettled to keep your house warm :D
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
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
frettled autounravel!
TimToady now thinking about the scheduler built into recursive hyperoperators... 19:55
frettled *cringe* 19:56
The good thing about that is that they'll no longer be talking about CCNUMA, but about P6NUMA ;) 19:57
colomon_ wait, *recursive* hyperoperators?
frettled colomon_: careful with that brain of yours 19:58
it's valuable
20:00 xenoterracide left
rodi In composing KeySet from KeyHash, is this the right spelling: "class KeySet does KeyHash[Bool, Bool::True] {...}" ? 20:02
*grammar and spelling
20:02 xenoterracide joined 20:05 Patterner left
rodi More generally, can a parametric role compose another role? 20:06
20:08 almih left
TimToady roles may do other roles, in theory 20:10
rodi Okay, found an example of that in S16.
role OS::Unix::User does User { 20:11
20:12 cotto left 20:13 payload left, payload joined 20:18 cotto joined 20:22 mikehh left, mikehh joined 20:26 spinclad_ is now known as spinclad 20:28 pmurias left 20:40 _jaldhar_ joined
mberends the 8080 CPU had about 4500 transistors, 8085 => 6500tr, 8086 => 30000tr www.xnumber.com/xnumber/Microcomput...ention.htm 20:48
rodi I bought a Xilinx Spartan-3 deal from Opal Kelly, their smallest one, has 400,000 gates. 20:49
20:49 jaldhar_ left
mberends so a Spartan-3 could emulate approximately a 12-core 8086 20:51
20:51 kensanata joined 20:52 nihiliad left 20:59 nihiliad joined
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!
nadim and I'm serious search.cpan.org/~nkh/PerlBuildSystem-0.44/ I actually have started on the next generation. I have a wooping 1000 requirements gathered 21:11
21:11 jackyf left
nadim the problem is what dowe build perl with :) !! 21:11
21:13 jackyf joined
mberends Wow, that's a fairly extensive system! Where are the 1000 requirements? 21:13
nadim On my disk
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:14
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 search.cpan.org/~nkh/PerlBuildSyste...manual.pod
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 github.com/masak/proto/tree/installed-modules
nadim masak like in 'cooking' ? 21:18
diakopter heh
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
nadim ah! masak means cooking in Indonesian I thought it was about cooking software :) 21:20
mberends haha 21:21
21:22 payload left 21:23 payload joined
mberends phenny, tell masak is this you? 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 21:40 payload left 21:48 xinming left
nadim for those who haven't seen this example that can run in Rakudo waffle.wootest.net/2009/12/19/perl-...ature-ep1/ 21:51
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?
(what's the issue with the post) 21:53
21:55 meppel left
nadim that it is going to be difficult for most people to understand it 21:55
diakopter oh 21:56
nadim I had to read it multiple times (which may mean tha I am dumb)
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
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.
nadim hehe, you say that to please me ;) 21:58
diakopter seriously
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.
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.
nadim mberends: and the lack of them killed C++
that's what I meant
mberends it is true that "we" could have written the article better ;) 22:01
diakopter waffle.wootest.net/2009/12/29/mark/
22:01 frederico left
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 waffle.wootest.net/2009/12/23/perlinq/
mberends He's exploring Perl 6 farther than most of the solo developers who occasionally call here. We could benefit each other. 22:07
nadim absolutely 22:10
what we need is a huge body of examples and a proper P6 book
diakopter nadim: what about an implementation? 22:11
mberends nadim, how you mean that C++ lacks libs? For specific problem domains?
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.
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
nadim an Java has a zillion libs which were decided upon by few Sun ppl. lobotomizing a whole generation of developers. 22:13
mberends nadim: ok, that helps me. Perl 6 still needs to start with library building. 22:14
22:14 slavik1 left
nadim well, P6 run P5 just because it needs CPAN. so we do ahve 20_000 of them 22:17
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.
(yet)
nadim you mean doesn't yet
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:19
diakopter CPAN is open because not everyone's definition of 'shit' is identical. 22:20
nadim I'll stick to my own definition then
diakopter :) 22:21
nadim although, no tests, no documentation is pretty universal
22:21 patspam joined
Tene bbs.chinaunix.net/thread-1633922-1-1.html 22:25
google translate does a decent job on it.
nadim good for the 5 biliions Perl programer that don't get that language 22:26
diakopter translate.google.com/translate?js=y...&tl=en
does the title mean what I think it says 22:27
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
Tene my guess is upvotes/downvotes
I'm mentioned by name on page 2. Huh. 22:30
"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.
jnthn on page 3
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:31
22:31 astoria left
mberends votes the forum flowers [+1] 22:32
Tene "perl6's regex too strong blanket. 。 . 。 ."
22:33 mikehh left
nadim P6 doesn't need to be automatically translated to look weird. wait till Abigail starts exploding our heads with P6 regexes 22:33
Tene Who is abigail? 22:34
nadim a regex lord
sometimes I wonder if he doesn't rule them all
22:34 mikehh joined
nadim search.cpan.org/~abigail/ 22:35
perl.abigail.be/Talks/Sudoku/HTML/ 22:36
solving sudoku with regexp 22:37
22:39 Su-Shee left
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
mberends troo 22:41
pugs_svn r29502 | diakopter++ | [sprixel] ported (well, implemented, since lots couldn't port directly over) grammar 22:42
r29502 | (set of named patterns with one marked TOP) compilation from sprixel# to sprixel.
r29502 | roll-up (inline emission, deeply) of non-recursive patterns. now to port the
r29502 | invocations of recursive patterns with callsites and calltargets. should port over
r29502 | with more straightforwardness.
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:46
Tene "Perl 6 has been listed to be available for $29.00 in markets in earlier spring 2010." -- 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
diakopter also, the algorithm for determining whether a subroutine is recursive (on any of its codepaths) was fun to solve. 22:50
mberends: yes, in a parsing system that must be implemented top-down.
note that I haven't implemented an OPP (EXPR) 22:51
yet. 22:52
mberends can the other implementations of OPP (STD, NQP) be of any help? 22:54
22:55 payload joined
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:56
mberends looked at the STD.pm one, and quickly scrolled on ;) 22:57
ah well, enough doc-tweaking here, now back to infix__S_Plus... 23:00
23:02 jackyf left 23:03 Guest23920 left 23:06 ive left 23:11 fridim_ left 23:18 payload left 23:26 KyleHa joined 23:32 imaltb joined, imaltb left 23:35 kensanata left 23:39 zz_Chazz is now known as Chazz 23:47 xomas is now known as xomas_, xomas_ is now known as xomas 23:48 Chazz is now known as Chazz[ZNC] 23:55 dbrock joined 23:59 KyleHa left