Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-09-11

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:00 lumi__ joined #perl6
00:07 plobsing joined #perl6
00:09 jnthn sleep &
00:10 lumi__ joined #perl6
00:11 * sorear is back with some insight into the string problem
00:11 sorear I'm now imagining three "string" types, ByteStr, CodeStr, and Str, which are related to each other like Rat is to Num
00:11 sorear a Str is just graphemes; it doesn't remember the order of its modifiers
00:12 sorear ByteStr is a lossless representation of a buf8 that is simultaneously stringish
00:12 sorear ByteStr->CodeStr->Str are allowable coercions that reduce precision, like Rat->Num, so $bytestr ~ $str is allowed and returns a Str
00:16 sorear "foo" would probably be a ByteStr because there is exactly one way to represent it using non-EBCDIC common encodings
00:16 patspam joined #perl6
00:17 sorear likewise "上" would be a CodeStr and "á" would be a Str
00:18 sorear coercions "down" the list, like coercion from Num to Rat, are never done implicitly except for output
00:19 arnsholt What's a CodeStr again?
00:19 TimToady what you have right now, basically
00:20 arnsholt Ah, right. A string of character codes
00:21 sorear observe the difference- ByteStr is an interpreted sequence of bytes, buf8 is an uninterpreted sequence
00:21 TimToady however, I was thinking there were two CodeStr types, named NFC and NFD
00:22 TimToady just as there's a utf8 ByteStr type (supposedly)
00:22 sorear TimToady: what do I do if I want to losslessly process an uninterpreted sequence of (uint where * <= 0x10FFFE) ?
00:23 TimToady there can certainly be a type that doesn't commit, just as buf8 doesn't commit to utf8
00:24 TimToady but you'd better know which it is when you need to know :)
00:24 sorear I am thinking that domain-wise, NFD and NFD are the same as Str
00:24 sorear they just impose different views
00:25 sorear I am now considering how my model of 3 domains maps onto types.
00:25 TimToady NFD and NFC I view as "encodings" of Str at the codepoint level rather than the byte level
00:25 sorear I suspect that the type purely reflects the level of the *view* and can be mixed near-freely with the domain
00:25 dalek roast: dfc142d | (Pawel Pabian)++ | S12-methods/multi.t:
00:25 dalek roast: [S12-methods/multi.t] test for #67024 rakudo should complain about re-definition of non-multi method
00:25 dalek roast: review: https://github.com/perl6/roast/commit/dfc142d791
00:25 TimToady well, the early design of Perl 6 had multiple views on the same string, which is why we have StrPos
00:26 sorear hmm
00:26 TimToady that's supposed to be the same regardless of your view
00:26 TimToady but the multi-level approach has been de-emphasized lately
00:27 sorear If we encode views in types there will be some dispatch issues.  NFD $x cannot be used interchangably with a Str
00:27 lumi__ joined #perl6
00:28 TimToady which is why parameters should not be declared Str, but Stringy
00:28 TimToady then Coolness can happen
00:29 sorear If I have Stringy $x declared somewhere, I might expect $x.substr(0,1) to do something consistent
00:29 sorear not depend on the runtime type of $x
00:32 TimToady indeed, the feeling was that your 1 would be interpreted as the highest allowed abstraction level in scope
00:32 TimToady so grapheme in the absense of use codes or bytes
00:34 TimToady but there are complexity issues, and I'd like us to at least achieve consistent NFG semantics before we overdesign the whole thing
00:35 TimToady to me that's more important than round-tripping, which can be faked with lower-level types when needed
00:39 lumi__ joined #perl6
00:39 TimToady as for identity issues, you can't even say for sure in ASCII whether foo and Foo are the same item, unless you know the system.  :)
00:40 sorear axiom 1: say .chars for dir; should work
00:40 sorear axiom 2: .unlink for dir; should work
00:41 sorear this is what I'm starting from
00:42 TimToady I don't see how your #1 can possible work given POSIX's head-in-the-sand attitude to characters
00:42 TimToady *possibly
00:43 TimToady some filesystems *do* know whether filenames are in Unicode
00:44 gbacon joined #perl6
00:46 sorear TimToady: it should at least try to work, which means somehow combining the Buf result with the locale encoding and making chars work on the combination when the Buf is parsable
00:46 TimToady and the typical Unixoid answer to #1, look in an env var, is insane
00:46 sorear perhaps it returns a Buf with $!candidate-encoding set and Buf.chars implements DWIM
00:47 TimToady but yes, that's about as good as we can do, when forced to guess
00:47 sorear perhaps it tries parsing internally, and returns Str if it can
00:47 sorear in the latter case Str needs to remember the byte sequence somehow, to make #2 work when there is a flexible encoding
00:47 TimToady perhaps dir looks for a consisten pattern :)
00:48 TimToady *tent
00:48 sorear I beleive Mac OS X/HFS+ requires NFC UTF8 for all filenames, meaning that every filename can be roundtripped to graphemes
00:48 tokuhirom joined #perl6
00:49 TimToady I thought Mac tended to bias towards NFD
00:49 sorear that was the least certain letter in the message anyway
00:49 TimToady :)
00:49 wolfman2000 joined #perl6
00:49 * TimToady tends to bias towards (and beyond) NFC, in case you hadn't noticed :)
00:50 TimToady but there, comes of studying linguistics from the insides of people's heads, not the outsides...
00:50 lumi__ joined #perl6
00:50 TimToady s/not/not just/
00:50 TimToady phonetics and phonemics are complementary
00:51 clairvy_ joined #perl6
00:52 TimToady but I shy away from NFD not so much because it's an "inefficient" encode but because it's forcing the language user into an "etic" view instead of an "emic" view
00:52 TimToady *encoding
00:53 TimToady and being emic is part of what makes Perl Perl
00:54 TimToady http://en.wikipedia.org/wiki/Emic_and_etic
01:03 TimToady anyway, the etic/emic distinction can happen on multiple levels, so codepoints are an emic view of the more etic byte encoding, but a more etic view of the more emic grapheme view; these distinctions also recur as you go up the human language stack from sounds to words to sentences to texts to cultural events
01:04 TimToady so I am not, in principle, against providing multiple views into an item depending on context
01:05 TimToady but it has to be managed well
01:05 TimToady and I tend to be prejudiced toward the emic since most other computer languages tend the other way, and force the programmer to think about bits and bytes
01:06 TimToady or codepoints, these days...
01:09 lumi__ joined #perl6
01:11 uasi joined #perl6
01:25 REPLeffect joined #perl6
01:29 TimToady y'all can come out from hiding now
01:30 lumi__ joined #perl6
01:53 uasi joined #perl6
01:59 * colomon is watching Ashes to Ashes season 2 (and the UofM / Notre Dame football game)
01:59 lumi__ joined #perl6
02:15 cognominal http://bodil.github.com/coffeescript/#larry-wall-slide
02:17 cognominal I wonder what is the difference between the emic and the etic take on TimToady moustache :)
02:21 lumi__ joined #perl6
02:37 static_perl joined #perl6
02:43 lumi__ joined #perl6
02:59 lumi__ joined #perl6
03:14 [Coke] joined #perl6
03:18 lumi__ joined #perl6
03:18 Trashlord joined #perl6
03:20 [Coke] joined #perl6
03:26 [Coke] joined #perl6
03:31 lumi__ joined #perl6
03:47 lumi__ joined #perl6
03:59 lumi__ joined #perl6
03:59 [Coke] joined #perl6
04:04 sorear eh.  ultimately I'm still worried by what "failure to roundtrip" will cause
04:04 sorear maybe I'm overthinking this...
04:10 lumi__ joined #perl6
04:18 sorear now, I need to truly understand rope balancing
04:23 lumi__ joined #perl6
04:26 [Coke] joined #perl6
04:29 HarryS joined #perl6
04:39 kaare_ joined #perl6
04:39 snarkyboojum sorear: getting into some slacklining eh? :D
04:45 lumi__ joined #perl6
04:45 sorear snarkyboojum: nah, just studying a data structure with woefully inadequate literature
05:04 frhodes joined #perl6
05:04 lumi__ joined #perl6
05:04 molaf joined #perl6
05:09 packetknife joined #perl6
05:12 lumi__ joined #perl6
05:18 cognominal joined #perl6
05:20 REPLeffect joined #perl6
05:22 lumi__ joined #perl6
05:23 sorear looks like nobody else really understands ropes, either
05:23 sorear did a survey of implementations linked from the Wikipedia page
05:24 sorear the C++, Java, and OCaml implementations all appear to use essentially the same algorithms as described in the ropes paper
05:24 sorear as opposed to the Haskell people, who use finger trees instead
05:36 lumi__ joined #perl6
05:43 frhodes joined #perl6
05:43 frhodes joined #perl6
05:44 snarkyboojum by ropes paper, are you referring to Ropes: an Alternative to Strings, by boehm, atkinson and plass?
05:46 replore joined #perl6
05:49 sorear snarkyboojum: yes
05:49 sorear everyone cargo culted their code
05:49 sorear despite some rather obvious pathological cases
05:49 lumi__ joined #perl6
05:55 * sorear thinks the STL source code is terrible
05:56 jevin joined #perl6
05:57 snarkyboojum "It is not clear whether the implementation we suggested above is in any sense optimal." I enjoyed that.
05:58 snarkyboojum along with "The machine had enough memory (64 MB) that paging was not an issue."
05:58 snarkyboojum :)
06:00 * sorear rereads the old Okasaki papers to try and understand them
06:02 snarkyboojum "Purely Functional Data Structures" ?
06:02 sorear yes
06:02 sorear okasaki has done some insane things with amortized time bounds
06:02 snarkyboojum sounds juicy
06:02 sorear like mathematically modelling the state introduced by closure caching
06:03 sorear I mean thunk memoization
06:03 lumi__ joined #perl6
06:03 sorear like how after my @arr := map *.rand, ^100; rand will never be called more than 100 times because the reads keep state
06:04 sorear I understood the correctness of finger trees years ago but never understood the amortized time proofs before ... hoping this time it'll sink in
06:05 orafu joined #perl6
06:06 snarkyboojum ah, this is his PhD thesis - definitely juicy :)
06:19 lumi__ joined #perl6
06:27 REPLeffect joined #perl6
06:33 lumi__ joined #perl6
06:41 Chat6118 joined #perl6
06:47 lumi__ joined #perl6
06:57 sorear I think I get the worst-case O(1) lazy persistant queues now.  Ow.
07:01 snarkyboojum snoc is probably my new favourite word
07:03 lumi__ joined #perl6
07:07 frhodes joined #perl6
07:21 lumi__ joined #perl6
07:22 frhodes joined #perl6
07:27 packetknife joined #perl6
07:29 _twitch joined #perl6
07:31 _twitch joined #perl6
07:32 lumi__ joined #perl6
07:36 betterworld joined #perl6
07:50 packetknife joined #perl6
07:54 sayu joined #perl6
07:56 lumi__ joined #perl6
08:03 * sorear out
08:05 cotto snoc?
08:07 lumi__ joined #perl6
08:10 szabgab meta question: how can I leave a message to masak?
08:10 cotto aloha msg szabgab like this
08:10 cotto or not
08:10 cotto aloha, aloha?
08:11 jlaire msg jlaire ping
08:11 szabgab @msg masak may I recommend you link between your related blog entries? (eg. from part 3 to part 1 and from part 1 to the other 2 parts)
08:11 szabgab not even that :)
08:11 tadzik phenny: tell szabgab foobar
08:11 phenny tadzik: I'll pass that on when szabgab is around.
08:11 tadzik now say something
08:12 szabgab phenny: tell masak may I recommend you link between your related blog entries? (eg. from part 3 to part 1 and from part 1 to the other 2 parts)
08:12 phenny szabgab: I'll pass that on when masak is around.
08:12 phenny szabgab: 08:11Z <tadzik> tell szabgab foobar
08:12 szabgab thanks tadzik , now if you could recommend a way to actually remember this :)
08:12 tadzik hmm
08:13 cotto phenny, help
08:13 phenny cotto: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see http://inamidst.com/phenny/ for more general details. My owner is sbp.
08:13 szabgab that's a good second step
08:13 jlaire my favourite format is   botname: recipient: message goes here
08:13 jlaire i.e., just prepend 'botname: '
08:13 szabgab first I need to remember the bot is called phenny :)
08:14 szabgab but thanks anyway
08:16 snarkyboojum cotto: opposite of cons
08:17 cotto snarkyboojum, cute
08:17 snarkyboojum cotto: exactly my reaction, too :)
08:18 lumi__ joined #perl6
08:19 snarkyboojum actually, that's not strictly true - it's the reverse of cons.. sloppy engrish here :)
08:23 mj41 joined #perl6
08:23 im2ee joined #perl6
08:24 ranguard hi, where should would be Perl 6 developers be pointed to http://dev.perl.org/perl6/ or www.perl6.org ?
08:24 im2ee Hello! :)
08:25 tadzik ranguard: the latter
08:25 tadzik hello im2ee
08:29 ranguard tadzik: cheers
08:29 * ranguard updates the perlfaq
08:31 lumi__ joined #perl6
08:40 donri joined #perl6
08:46 lumi__ joined #perl6
08:52 MayDaniel joined #perl6
08:52 moritz ranguard++ # Perl 6 perlfaq updates
08:58 lumi__ joined #perl6
09:13 lumi__ joined #perl6
09:16 Sarten-X joined #perl6
09:25 lumi__ joined #perl6
09:32 masak joined #perl6
09:32 masak goedemorgen, #perl6
09:32 phenny masak: 08:12Z <szabgab> tell masak may I recommend you link between your related blog entries? (eg. from part 3 to part 1 and from part 1 to the other 2 parts)
09:32 masak a fine idea!
09:33 * masak does so
09:38 MayDaniel joined #perl6
09:38 lumi__ joined #perl6
09:39 mberends goedemasak
09:40 bbkr nom: grammar A { token a { a } }; A.a() # is this correct behavior?
09:40 p6eval nom 00a115: OUTPUT«Cannot access attributes in a type object␤  in !cursor_start at src/stage2/QRegex.nqp:519␤  in regex a at /tmp/I1ZgS1gn3v:1␤  in <anon> at /tmp/I1ZgS1gn3v:1␤  in <anon> at /tmp/I1ZgS1gn3v:1␤␤»
09:41 tadzik nom: clas A { method a { /a/ } }; A.a()
09:41 p6eval nom 00a115: OUTPUT«Useless declaration of a has-scoped method in mainline␤Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected '\n'␤      in file '(file unknown)' line 27889775␤␤»
09:41 tadzik nom: class A { method a { /a/ } }; A.a()
09:41 p6eval nom 00a115: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected '\n'␤     in file '(file unknown)' line 670␤␤»
09:41 tadzik eek
09:42 * mberends tries to write a Niecza GUI calculator from memory of ye olden days
09:42 bbkr A::a should be accessible, no doubt for that. but should A.a ?
09:45 snarkyboojum does the rakudo target run nom now?
09:46 tadzik nom: class Foo { method bar { say "foo" } }; Foo.bar
09:46 p6eval nom 00a115: OUTPUT«foo␤»
09:47 snarkyboojum apparently yes :)
09:48 tadzik snarkyboojum: yes
09:48 snarkyboojum tadzik: just saw your last commit :)
09:50 snarkyboojum where can I find documentation on the main differences between nom and old master? has anyone blogged or documented it somewhere?
09:51 lumi__ joined #perl6
09:51 snarkyboojum other than myriad blog posts etc
09:52 snarkyboojum would be a great candidate for http://rakudo.org - listing main changes/improvements etc
09:52 snarkyboojum I guess people have been too busy building an awesome nom/rakudo :)
09:57 masak snarkyboojum! \o/
09:57 Frida joined #perl6
09:57 snarkyboojum masak! -o_ \o- \o/
09:57 snarkyboojum lol
09:58 snarkyboojum masak: how's things? been a while! solved time travel yet?
09:58 Frida hej bror..
09:59 masak Frida: klicka på fliken "masak" längst upp. :)
09:59 masak snarkyboojum: time travel remains an open problem for now... :)
09:59 tadzik snarkyboojum: it would probably be a big announcement once we get a nom-based release
10:00 snarkyboojum masak: but not intractable.. surely! :)
10:00 snarkyboojum tadzik: makes good sense to me
10:00 masak snarkyboojum: surely not. just a bit of work.
10:01 lumi__ joined #perl6
10:05 packetknife joined #perl6
10:06 snarkyboojum are there benchmarks pitting implementation against implementation?
10:07 snarkyboojum I guess the test suite...
10:08 packetknife joined #perl6
10:10 lumi__ joined #perl6
10:12 snarkyboojum wash. Niecza build fails on OS X using Mono 2.8.2
10:12 snarkyboojum waah even :)
10:12 snarkyboojum core dump
10:12 Chillance joined #perl6
10:13 dalek roast: a8847f2 | (Pawel Pabian)++ | S12-construction/new.t:
10:13 dalek roast: [t/S12-construction/new.t] test for #68756: [BUG] defining extra .new methods with multi in an object results in loss of original .new
10:13 dalek roast: review: https://github.com/perl6/roast/commit/a8847f2dc0
10:14 Trashlord joined #perl6
10:19 bbkr what happened to Multi type in nom? NYI or removed from spec?
10:19 snarkyboojum doesn't coredump with RUN_CLR=mono-sgen, but doesn't build either, just sits there doing nothing :|
10:25 lumi__ joined #perl6
10:25 snarkyboojum phenny: tell sorear having fun trying to build Niecza on OS X -> https://gist.github.com/1209432
10:25 phenny snarkyboojum: I'll pass that on when sorear is around.
10:26 snarkyboojum phenny: tell sorear using RUN_CLR=mono coredumps
10:26 phenny snarkyboojum: I'll pass that on when sorear is around.
10:43 lumi__ joined #perl6
10:44 jnthn bbkr: Multi type makes no sense under current spec.
10:49 JimmyZ joined #perl6
10:54 masak joined #perl6
10:55 whiteknight joined #perl6
10:58 bbkr jnthn: so this can be closed: https://rt.perl.org/rt3/Ticket/Display.html?id=68774 ?
10:59 masak bbkr: yes.
11:00 bbkr thanks
11:00 lumi__ joined #perl6
11:08 jnthn +1
11:14 lumi__ joined #perl6
11:17 masak Frida: observe :)
11:17 masak rakudo: say "OH HAI Frida!"
11:17 p6eval rakudo 00a115: OUTPUT«OH HAI Frida!␤»
11:17 Frida hello..
11:17 masak rakudo: say pi - 2; say 4 - pi
11:17 p6eval rakudo 00a115: OUTPUT«1.14159265␤0.85840735␤»
11:18 masak rakudo: say sqrt 3
11:18 p6eval rakudo 00a115: OUTPUT«1.73205080756888␤»
11:18 masak rakudo: say 1 / 7 / 7; say 1 / 49
11:18 p6eval rakudo 00a115: OUTPUT«0.0204081632653061␤0.0204081632653061␤»
11:18 masak :)
11:18 * masak has been solving math problems with his kid sister Frida for the past hour or so...
11:18 masak and now it's time to demo Perl 6 ;)
11:19 Frida yes... i've learnd that now :) long time i studied math.. but my brother is a great helper...
11:19 masak \o/
11:19 * masak blushes
11:19 Frida :)
11:19 masak rakudo: my $x = 1 / 49; say 7 * $x == 1 / 7
11:19 p6eval rakudo 00a115: OUTPUT«Bool::True␤»
11:20 masak Frida: so, you see, 'say' prints stuff.
11:20 masak and then all math just works.
11:20 masak rakudo: say sqrt(3); say 3 ** 0.5
11:20 p6eval rakudo 00a115: OUTPUT«1.73205080756888␤1.73205080756888␤»
11:20 masak rakudo: say sqrt(3) == 3 ** 0.5
11:20 p6eval rakudo 00a115: OUTPUT«Bool::True␤»
11:21 Frida :)
11:22 masak rakudo: say <good fast cheap>.pick(2)
11:22 p6eval rakudo 00a115: OUTPUT«good cheap␤»
11:22 masak that's us alright... :)
11:22 masak (old joke, I know)
11:23 masak Frida: also, we have object orientation.
11:24 Frida yes i see that.. to the right ??
11:24 masak hold on.
11:24 masak rakudo: class Brother { has $.color; method compliment { $!color = 'red' } }; my $brother = Brother.new(:color<pale>); say $brother.color; $brother.compliment; say $brother.color
11:24 p6eval rakudo 00a115: OUTPUT«pale␤red␤»
11:24 masak ;)
11:24 masak maybe that was too complicated an example...
11:25 masak rakudo: my $r = 1 / 7; say $r.WHAT
11:25 p6eval rakudo 00a115: OUTPUT«Rat()␤»
11:26 masak rakudo: my $r = 1 / 7; say $r.denominator
11:26 p6eval rakudo 00a115: OUTPUT«7␤»
11:26 masak rakudo: my $r = 1 / 7; say ($r * $r).denominator
11:26 p6eval rakudo 00a115: OUTPUT«49␤»
11:26 masak rakudo: my $r = 1 / 7; say ($r * $r).nude.perl
11:26 p6eval rakudo 00a115: OUTPUT«(1, 49)␤»
11:26 Frida i'm not following at all.. am i supose to do that?
11:26 masak kinda ;)
11:26 masak but I can explain.
11:26 masak this last bit.
11:26 Frida tnx
11:27 masak when I go '1 / 7', I get an object called a Rat.
11:27 masak that's short for 'rational number'.
11:27 Frida i dont know if you are talking about youre work here or math..
11:27 masak a bit of both ;)
11:27 Frida oki
11:27 masak ok, so a Rat.
11:27 masak that's a number like x/y
11:28 masak it has a numerator (x) and a denominator (y).
11:28 Frida mhmm.
11:28 masak and you can ask for them separately.
11:28 masak rakudo: say 1/3 + 1/4
11:28 p6eval rakudo 00a115: OUTPUT«0.583333333333333␤»
11:28 masak rakudo: say (1/3 + 1/4).perl
11:28 p6eval rakudo 00a115: OUTPUT«7/12␤»
11:29 jnthn rakudo: say (1/3 + 1/4).nude
11:29 p6eval rakudo 00a115: OUTPUT«7 12␤»
11:29 masak Perl 6 is a bit special because it actually counts using Rats.
11:29 masak most other languages count using floating point, which are just a bunch of decimals.
11:29 masak and so precision often gets lost.
11:29 lumi__ joined #perl6
11:29 masak this is actually a big problem!
11:29 masak think of people building bank systems and stuff, and precision gets lost.
11:30 masak not enough people know about the "dangers" of floating point.
11:30 Frida ahh, so you are trying to show me how you buildt your language? and you buidt it using regular math?
11:30 masak yes!
11:30 masak Perl 6 thinks more like people think.
11:30 Frida yay!! that's soo cool..
11:30 masak you know how on your calculator you can do 1 / 9 * 9
11:30 masak and you get back .9999999
11:31 masak that can't happen in Perl 6. because precision is never lost in that way.
11:31 Frida okej..
11:31 masak :)
11:31 Frida but what is perl buildt to do?
11:31 masak just solve people's problems in general.
11:32 Frida problems with what?
11:32 masak it's "general-purpose" so it can really do anything.
11:32 masak but it has a number of strengths, of course.
11:32 Frida and those are?
11:32 masak Frida: anything, basically. building a web site. making a budget. chatting with friends.
11:32 masak anything a computer does.
11:33 masak oh, the strengths?
11:33 dalek roast: c48ba58 | (Pawel Pabian)++ | S12-methods/multi.t:
11:33 dalek roast: [t/S12-methods/multi.t] test for #68996: [BUG] $.foo attribute generates non-multi methods
11:33 dalek roast: review: https://github.com/perl6/roast/commit/c48ba58dee
11:33 masak Perl 6 is good at understanding text.
11:34 jnthn bbkr: That test doesn't pass for the reason you think it does. Also, I'm not sure I agree with the ticket.
11:34 Frida okej..
11:34 masak rakudo: "Frida does math" ~~ /$<subject>=[\w*] \s+ $<verb>=[\w*] \s+ $object=[\w*]/; say $<object>
11:34 p6eval rakudo 00a115: OUTPUT«===SORRY!===␤Method 'rxtype' not found for invocant of class 'PAST;Regex'␤»
11:34 jnthn bbkr: It passes because if there's already a method in the class with the appropriate name, the automatic accessor method is not generated.
11:34 masak dang :)
11:34 masak b: "Frida does math" ~~ /$<subject>=[\w*] \s+ $<verb>=[\w*] \s+ $object=[\w*]/; say $<object>
11:34 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Confused at line 22, near "\"Frida doe"␤»
11:34 jnthn masak: $<object>=...
11:34 masak b: "Frida does math" ~~ /$<subject>=[\w*] \s+ $<verb>=[\w*] \s+ $<object>=[\w*]/; say $<object>
11:35 p6eval b 1b7dd1: OUTPUT«math␤»
11:35 masak \o/
11:35 masak Frida: you see, it could pick out the object of that sentence.
11:35 masak slightly silly example, I know. but it can do a lot of that, and it helps when parsing text.
11:35 Frida i see..
11:35 tadzik it may look hard to get right :)
11:35 Frida den tolkat alltså?
11:35 masak japp.
11:35 gbacon joined #perl6
11:36 masak Frida: oh, I'll show you a cool one.
11:36 Frida do it..
11:36 masak Frida: you know how there's all these operators: + - * / and so on.
11:36 Frida yes
11:36 masak but sometimes you'd want a new one, that isn't defined yet.
11:36 masak like, say I want !
11:37 masak and I want N! to mean 1 * 2 * 3 * ... * N
11:37 bbkr jnthn: so if skipping accessor when method is present is desired behavior maybe I should add another line with dies_ok { $a.foo } to prove it?
11:37 masak rakudo: sub postfix:<!>($N) { [*] 1..$N }; say 5!
11:37 p6eval rakudo 00a115: OUTPUT«===SORRY!===␤Confused at line 1, near "say 5!"␤»
11:37 masak rakudo: our sub postfix:<!>($N) { [*] 1..$N }; say 5!
11:37 p6eval rakudo 00a115: OUTPUT«===SORRY!===␤Confused at line 1, near "say 5!"␤»
11:37 masak huh.
11:37 masak b: our sub postfix:<!>($N) { [*] 1..$N }; say 5!
11:37 p6eval b 1b7dd1: OUTPUT«120␤»
11:37 masak \o/
11:38 masak b: say 5!
11:38 bbkr jnthn: I mean to proove that no multi method is generated from attribute
11:38 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Confused at line 22, near "say 5!"␤»
11:38 masak Frida: so, you see, I've actually changed the language to have '!'
11:39 masak Frida: and I can add any operators I want.
11:39 Frida eand just change the language?
11:39 masak aye.
11:39 Frida nice!
11:40 Psyche^ joined #perl6
11:40 jnthn bbkr: Well, but the answer isn't that no multi method is generated. It's more that no method at all is generated.
11:40 jnthn bbkr: e.g. you could drop "multi" and get the same effect
11:41 Frida you can change it any way you like..
11:41 masak also, this is pretty nice:
11:41 masak rakudo: my $a = 3; if $a == 1 | 3 | 5 { say "it's one or three or five" }
11:41 p6eval rakudo 00a115: OUTPUT«it's one or three or five␤»
11:41 bbkr jnthn: correcting it now. thanks for pointing this out.
11:41 masak in other languages, you'd have to say 'if $a == 1 || $a == 3 || $a == 5'...
11:42 lumi__ joined #perl6
11:42 masak rakudo: my $a = 3; if $a == any(1, 3, 5) { say "it's one or three or five" }
11:42 p6eval rakudo 00a115: OUTPUT«it's one or three or five␤»
11:44 masak rakudo: say (1..6).roll
11:44 p6eval rakudo 00a115: OUTPUT«4␤»
11:44 Trashlord joined #perl6
11:44 masak Frida: I wrote a bunch of games this summer, to teach people Perl 6. here's one of them: http://strangelyconsistent.org/blog/june-5-2011-guess-a-number
11:45 jnthn bbkr: thanks :)
11:46 Frida i'm not sure if i understand how to play?
11:47 masak unfortunately, that's not possible on the site itself.
11:47 masak (though that's an *awesome( idea; thank you) :)
11:48 * masak wonders how hard it'd be to craft a Niecza backend that could translate all of his June games to JavaScript
11:48 masak maybe minus the adventure game.
11:48 tadzik masak: try perlito maybe?
11:48 tadzik I think it has a javascript backend
11:48 masak tadzik: yes! nice!
11:49 masak Frida: no, I mostly wanted you to look at the source code. that's how a small game looks.
11:49 masak Frida: I also wrote a moon lander, a cookie-eating game, hangman, connect-4, and a biggish adventure game.
11:50 masak srsly, being able to play the games right in the blog posts would be a really nice feature.
11:50 masak Frida++
11:50 masak :)
11:51 Frida i remember when we buildt games when we were kids.. and those were so much bigger.
11:51 masak yeah.
11:51 masak though the adventure game got pretty big.
11:51 Frida i'm sry if my english is worseless..
11:52 * masak hugs Frida
11:52 masak it's not worseless :P
11:53 masak Frida: anyway, it was cool to have you stop by and listen to me ramble about my hobby ;)
11:53 Frida have i told you that i'm maybe studying thins spring instead of working?
11:53 masak yes! great news!
11:53 Frida yes.. i lika it..
11:54 dalek roast: 9300933 | (Pawel Pabian)++ | S12-methods/multi.t:
11:54 dalek roast: [t/S12-methods/multi.t] test for #68996, corrected reason why test passes
11:54 dalek roast: review: https://github.com/perl6/roast/commit/9300933f62
11:54 masak Frida: best of luck with Högskoleprovet
11:54 Frida but i am very in to bio medicin..
11:54 masak you are? that's, like, my field!
11:54 masak siblings are s'posed to diversify! :P
11:54 Frida i'm probobly not gonna do it.. i just thoutg it would be fun to study some math.. ^^
11:54 JimmyZ 晚上好,#perl6
11:55 masak JimmyZ: 你好!
11:55 tadzik is that "ni hao"?
11:55 masak Frida: it's always fun to study some math. ^^
11:55 JimmyZ masak: 下午好,麦高
11:55 masak tadzik: 是 :)
11:55 tadzik that'd be "yes" I suppose
11:55 masak tadzik: 是 :P
11:56 tadzik oh, now it can mean "no" as well :)
11:56 masak tadzik: 是!
11:56 masak guess that disambiguated it.
11:56 tadzik phenny: "是"?
11:56 phenny tadzik: "Be" (zh-CN to en, translate.google.com)
11:56 jnthn tadzik: iiuc, there's no "yes"/"no" words in Mandarin.
11:56 masak correct.
11:56 tadzik Be
11:56 jnthn You can just use verbs and maybe negate them
11:56 jnthn "is!"
11:57 jnthn "not is!"
11:57 masak "to be", or "is".
11:57 jnthn er...is not :)
11:57 tadzik oh, ok
11:57 masak jnthn: or just "not".
11:57 tadzik masak: are you a human?
11:57 masak tadzik: 不是
11:57 tadzik damnit
11:57 masak ;)
11:57 jnthn o.O
11:57 * masak floats
11:57 tadzik basing on the meaning of the latter, that could mean "wannaBe"
11:58 masak wannabe human...
11:58 JimmyZ or woman
11:58 masak woman is 女人
11:58 Frida carl: did you listen to the songs?
11:59 masak Frida: oh! I forgot. will do so now.
11:59 Frida do it..
12:00 * masak listens
12:00 masak Frida: I'm sorry, that sounds completely bland to me... :/
12:00 donri joined #perl6
12:00 lumi__ joined #perl6
12:01 Frida okej..
12:01 masak I think we'll have to realize that we have almost completely non-overlapping tastes in music.
12:01 masak ;)
12:01 tadzik richard cheese is usually a common language :P
12:01 Frida yes i know..
12:01 masak Frida: have you listened to Justin Bieber 800%?
12:01 masak Frida: also, Richard Cheese is a good choice. tadzik++
12:02 Frida nope? is that on spotify?
12:02 tadzik I hope Frida is not young enough to be negatively impacted by Richard :)
12:03 masak Frida: I'll try to find it.
12:03 masak tadzik: I think you're about the same age, actually.
12:03 tadzik having an 18 year older sister I have a flawed view of "younger sibling"
12:03 tadzik oh, ok
12:04 masak Frida: http://soundcloud.com/vorophobe/justin-bieber-u-smile-slowed-down-800
12:04 masak Frida: and Richard Cheese is aplenty on Spotify.
12:04 Frida haha.. my brother has always taken good care of my.. our sister were worse.. she forced me to do things so that i wouldn't blabber to our parents..  pretty smart acctually..
12:05 Frida *of me
12:05 Frida haha
12:06 masak this is news to me :P
12:07 Frida really??
12:07 bbkr Can OpenSolaris tickets #69466, #69464 and #69480 be closed if OpenSolaris system has been discontinued on 2010-08-13? I doubt that someone wants to install abandoned OS to check if those bugs are fixed.
12:08 tadzik I remember asking that question some time ago :)
12:08 masak bbkr: if you ask me, then yes.
12:08 masak bbkr: but it might be one of those where pmichaud has a say.
12:09 Frida but she would never do any thing verry bad of her self so probably it was'nt to bad for me either..  but the differens in what you do of "bad things" when you are 12 och 17 years old is pretty big..
12:10 masak Frida: I'm kinda on the verge of asking you to stay on topic now... :P
12:10 Frida huh?
12:10 bbkr masak: I agree, those are zombie tickets. but I'll wait for pmichaud opinion.
12:10 masak Frida: you might be a one-time visitor here, but I'm not. :)
12:10 Frida oekj..
12:10 Frida sry
12:10 masak np
12:11 masak hugme: hug Frida
12:11 * hugme hugs Frida
12:11 masak (yes, we have a bot for giving out hugs)
12:11 Frida haha lovely..
12:11 tadzik http://troll.me/images/forever-alone/-forever-alone.jpg :)
12:11 masak Frida: I think you would make a great Perl 6 coder.
12:12 masak tadzik: I don't get it.
12:12 bbkr hugme: hug bugs
12:12 * hugme hugs bugs
12:12 masak hugme: hug Pugs
12:12 * hugme hugs Pugs
12:12 tadzik masak: that's a reddit meme
12:12 Frida i'm not so sure about that.
12:12 masak tadzik: "forever alone"?
12:12 tadzik yep
12:12 tadzik that's what this face is called
12:12 masak hadn't heard about it.
12:13 masak Frida: Perl 6 is on the rise. you could ride the wave! :)
12:13 jnthn masak: http://knowyourmeme.com/memes/forever-alone knows, of course... ;)
12:14 lumi__ joined #perl6
12:15 tadzik hugme: hugme
12:15 hugme tadzik:
12:15 jnthn A...cruel prank.
12:15 masak oh course!
12:15 tadzik eek
12:15 tadzik hugme: hug me
12:15 * hugme hugs tadzik
12:15 tadzik there we go :)
12:15 tadzik it's like Like'ing your own posts on diaspora :P
12:17 jnthn tadzik: I try and fix the Pes bug today...want to get the roles stuff cleared up first, though.
12:17 tadzik cute
12:20 masak jnthn: Pies! :P
12:20 masak (or is the bug a missing 'i'?)
12:21 jnthn masak: :P
12:21 jnthn masak: No, I was just spelling it correctly ;)
12:21 masak damn haughty Slovak snobbery.
12:22 masak obviously the "correct" spelling would be Пес :P
12:23 tadzik oh, for the love of Dog...
12:23 masak 狗狗
12:23 jnthn masak: Apart from it'd be собака :P
12:23 masak jnthn: yeah, well. apart from that.
12:24 jnthn Oh, apparently пес works also...
12:24 masak huh!
12:24 JimmyZ 藏獒
12:24 tadzik sobaka?
12:24 Frida iäm leaving..
12:24 masak Frida: o/
12:24 masak Frida: really nice to have you stop by!
12:25 tadzik Frida: see you soon :)
12:25 Frida nice to see how you work..
12:25 Frida we'll do..
12:25 masak Frida: yeah, you come back soon!
12:25 masak "work"... :P
12:25 tadzik yeah...
12:25 Frida haha..
12:26 * masak relaxes a bit :)
12:26 tadzik (:
12:26 tadzik so, is she cute? :P
12:26 masak hey!
12:26 jnthn *lol*
12:26 tadzik easy, just kidding :)
12:27 masak well, I guess I could do worse for a brother-in-law...
12:27 tadzik hey!
12:27 masak :P
12:28 MayDaniel joined #perl6
12:29 [Coke] joined #perl6
12:31 lumi__ joined #perl6
12:34 bbkr masak: https://rt.perl.org/rt3/Ticket/Display.html?id=69518 - is this expected behavior?
12:35 jnthn bbkr: Looks right to me, fwiw.
12:36 jnthn Could awesomize the error a little.
12:36 jnthn (to include the name of the type)
12:36 jnthn But that aside, it's refusing to instantiate a subtype.
12:37 masak aye.
12:37 bbkr should I write test and close or rename to "LTA error message" issue
12:37 jnthn bbkr: Write a couple of tests. One that it works, another that the error contains the type name.
12:37 masak I say the ticket as it stands is closable (after tests)
12:37 masak I'm not a fan of changing the identity of tickets mid-course.
12:37 jnthn Aye
12:38 jnthn But it'd be good to remember there's a task to do
12:38 masak aye.
12:38 masak I'm all for leaving some trace of the LTA thing.
12:38 im2ee joined #perl6
12:38 jnthn Though, if anybody knows a little little C they can diddle src/6model/reprs/uninstantiable.c's instance_of
12:38 masak also, bbkr++ for triaging tickets.
12:39 bbkr page 4 of 18 :)
12:42 dalek rakudo/nom: a3d7c53 | jonathan++ | src/Perl6/ (2 files):
12:42 dalek rakudo/nom: Refactor to ensure we'll be able to tell which parametric role was picked once we get there from a multi-dispatch.
12:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a3d7c539f7
12:42 dalek rakudo/nom: 3c62969 | jonathan++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.pm:
12:42 dalek rakudo/nom: Get ParametricRoleGroupHOW's specialize method in shape.
12:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3c62969459
12:45 lumi__ joined #perl6
12:50 wamba joined #perl6
13:12 Reaganomicon joined #perl6
13:12 JimmyZ looks like src/utils is very old in rakudo :)
13:13 jnthn oh my :)
13:13 jnthn tadzik++ may have something to say about the way forward for what's in there :)
13:14 JimmyZ that's 2008, I never realized there was a src/utils dir, hehe
13:16 tadzik hm?
13:16 tadzik oh my, perldoc in pir
13:16 jnthn :D
13:17 tadzik and it's PCT
13:17 jnthn wow :)
13:18 tadzik the parser is actually pretty similar to mine
13:18 tadzik well, mine uses less backtracking
13:20 tadzik chromatic and particle wrote that, it seems
13:20 JimmyZ it may be historical legacy
13:20 tadzik in 2008
13:21 masak "it is the year two THOUSAND"
13:21 tadzik we are robots!
13:21 masak affirmative.
13:23 lumi__ joined #perl6
13:23 Vlavv` joined #perl6
13:30 masak quick poll: in http://perl6.org/compilers/features for nom and Niecza respectively, what is according to you the most glaring missing feature?
13:30 tadzik working Pies :>
13:31 tadzik oh, there is Swedish as a language on my university!
13:32 jnthn masak: nom's lacking of good coverage of the regex/grammar stuff
13:32 masak tadzik: don't learn Swedish. hardly anyone speaks it.
13:33 tadzik but I know english already
13:33 masak tadzik: learn to read Shakespeare instead. much more worthwhile.
13:33 masak gives depth to one's English knowledge.
13:33 tadzik mebbe
13:34 colomon Working Pies would definitely be a major lack from both of those compilers.
13:34 masak "Oh Romeo, .WHEREFORE art thou Romeo?"
13:35 colomon Is "working Actions" not even on the feature list?  It's a *huge* hole in nom as far as I'm concerned.
13:36 masak doesn't seem to be on the list.
13:36 masak it should definitely be, in my opinion.
13:36 jnthn colomon: I'd lumped that in with the general grammar/regex stuff.
13:36 lumi__ joined #perl6
13:36 jnthn But yeah, worth an entry.
13:37 * jnthn hopes pmichaud finds his regex tuits soon ;)
13:41 birdwindupbird joined #perl6
13:44 * JimmyZ does too
13:44 jnthn eh well, it took me long enough to find my parametric role ones...
13:50 masak rakudo: class InstanceMethod { has $.instance; has $.methodname; method postcircumfix:<( )>(\$c) { $.instance."$.methodname"(|$c) } }; my $m = InstanceMethod.new(:instance[2, 4, 6], :methodname<roll>); say $m(5)
13:50 p6eval rakudo 3c6296: OUTPUT«4 4 2 2 6␤»
13:50 lumi__ joined #perl6
13:50 masak \o/
13:51 masak forgive me, but that is *so* *cool*.
13:52 jnthn masak: why \$c, not just $c?
13:53 jnthn But yes, it's cool :)
13:53 JimmyZ yes, it's so cool && magic, most people will be confused :)
13:54 masak jnthn: I don't know, I thought I'd need to mark it as a signature somehow. I probably don't.
13:54 masak JimmyZ: really? what's confusing about it? I'm just detatching naming what instance and method to call, from actually calling it :P
13:54 JimmyZ rakudo: class InstanceMethod { has $.instance; has $.methodname; method postcircumfix:<( )>(\$c) { $.instance."$.methodname"(|$) } }; my $m = InstanceMethod.new(:instance[2, 4, 6], :methodname<roll>); say $m(5)
13:54 p6eval rakudo 3c6296: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
13:55 jnthn masak: postcircumfix:<( )> always gets passed a capture.
13:55 * JimmyZ wonders how to debug 'Contextual $*GOAL not found' :)
13:55 masak JimmyZ: I think you found a bug.
13:55 masak rakudo: class A { method x { self.x(|$) } }; say "alive"
13:55 p6eval rakudo 3c6296: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
13:56 masak rakudo: sub f { f(|$) }; say "alive"
13:56 p6eval rakudo 3c6296: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
13:56 * masak submits rakudobug
13:56 masak jnthn: right. I was being superstitious.
13:56 jnthn b: sub f { f(|$) }; say "alive"
13:57 JimmyZ looks like I never like right way to use rakudo :)
13:57 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
13:57 jnthn hm, not a regression then...
13:57 ruoso perl6: my $a = Routine.new(); $a.push(sub ($x, Int $y) { say 1 }); $a.push(sub ($x, Str $z, Str $q) { say 2 }); (1,1,"a","b",2,"v","d").reduce($a);
13:57 jnthn (Which makes sense...)
13:57 p6eval rakudo 3c6296: OUTPUT«Method 'push' not found for invocant of class 'Routine'␤  in <anon> at /tmp/MvL_1ao_Kn:1␤  in <anon> at /tmp/MvL_1ao_Kn:1␤␤»
13:57 p6eval ..pugs: OUTPUT«*** Can't modify constant item: VUndef␤    at /tmp/VzkhJKT3bh line 1, column 24-59␤»
13:57 p6eval ..niecza v9-23-g1a8efca: OUTPUT«Potential difficulties:â�¤  $x is declared but not used at /tmp/8BHJCIWlZq line 1:â�¤------> [32mmy $a = Routine.new(); $a.push(sub ([33mâ��[31m$x, Int $y) { say 1 }); $a.push(sub ($x,[0mâ�¤  $y is declared but not used at /tmp/8BHJCIWlZq line 1:â�¤------> [32ma…
13:57 JimmyZ perl6: sub f { f(|$) }; say "alive"
13:57 p6eval niecza v9-23-g1a8efca: OUTPUT«[31m===[0mSORRY![31m===[0m��Unsupported use of $) variable; in Perl 6 please use $*EGID at /tmp/ahGxc1cFd8 line 1:�------> [32msub f { f(|$)[33m�[31m }; say "alive"[0m��Parse failed��»
13:57 p6eval ..pugs: OUTPUT«*** ␤    Unexpected ")"␤    expecting "::"␤    at /tmp/gxthySR7WO line 1, column 13␤»
13:57 p6eval ..rakudo 3c6296: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
13:58 JimmyZ std: sub f { f(|$) }; say "alive"
13:58 p6eval std bb4f150: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of $) variable; in Perl 6 please use $*EGID at /tmp/GVQwdrNgrz line 1:�------> [32msub f { f(|$)[33m�[31m }; say "alive"[0m�Parse failed�FAILED 00:01 120m�»
13:58 ruoso I guess #68774 needs a substitute :)
13:59 jnthn ruoso: Well, the entire way multi stuff works has changed. There's no way you're going to be able to just instantiate Routine and push stuff onto it.
13:59 masak ruoso! \o/
14:01 jnthn nom: sub proto_factory() { my proto foo(|$) { * } }; my $x = proto_factory(); $x.add_dispatchee(sub ($a) { say "1 arg" }); $x.add_dispatchee(sub ($a, $b) { say "2 args }); $x(1); $x(1,2)
14:01 p6eval nom 3c6296: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
14:01 jnthn hm, where's the syntax error... :)
14:02 jnthn oh!
14:02 jnthn nom: sub proto_factory() { my proto foo(|$) { * } }; my $x = proto_factory(); $x.add_dispatchee(sub ($a) { say "1 arg" }); $x.add_dispatchee(sub ($a, $b) { say "2 args" }); $x(1); $x(1,2)
14:02 p6eval nom 3c6296: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected '\n'␤     in file '(file unknown)' line 15798857␤␤»
14:02 jnthn eek.
14:02 jnthn nom: sub proto_factory() { my $x = proto foo(|$) { * }; $x }; my $x = proto_factory(); $x.add_dispatchee(sub ($a) { say "1 arg" }); $x.add_dispatchee(sub ($a, $b) { say "2 args" }); $x(1); $x(1,2)
14:02 p6eval nom 3c6296: OUTPUT«1 arg␤2 args␤»
14:03 ruoso hmm... but why wouldn't I bee able to just instantiate Routine?
14:03 jnthn ruoso: Why *would* you be able to?
14:03 jnthn You don't specify anything to go in $!do
14:04 jnthn And the "this is a dispatcher" flag won't get set either
14:04 ruoso maybe there needs to be a mandatory parameter to the initialization, yes
14:04 birdwindupbird joined #perl6
14:04 jnthn Well, but that mandatory parameter is kinda...weird. What lives in $!do is highly backend specific.
14:04 jnthn And implementation specific.
14:05 jnthn I'm not even sure what you'd pass. :)
14:05 lumi__ joined #perl6
14:05 ruoso Well, maybe the default should be to do the same thing as your code did..
14:06 ruoso but with all the meta stuff, I would expect to be able to perform all this in the level of the objects and methods
14:07 jnthn Well, I kinda did, if you see that dummy proto as a constructor. ;)
14:07 ruoso well, that's the Perl 6 syntax to initalize it
14:07 jnthn Maybe a Routine.new_onlystar_dispatcher()
14:08 ruoso I would think that whatever the compiler uses should be available to the user too
14:09 ruoso at least if I was to build a class from scratch, I would expect my new class to be no different than a class generated by the compiler
14:10 jnthn Yeah, that's much less of an issue.
14:10 jnthn The tricky bit with routines is the underlying, VM-level coderef.
14:11 benabik What's the problem with just using pointy blocks?
14:11 pmurias joined #perl6
14:11 jnthn benabik: That's a Perl 6 code object.
14:11 jnthn (if you're talking about, what does in $!do)
14:11 ruoso benabik: my question is actually how to get the pointy blocks and compose them into a single multi at run-time
14:12 benabik ruoso: Ahh...
14:12 jnthn I guess we could do a constructor for routine that takes a pointy block and just steals its body and signature.
14:12 jnthn A constructor that creates an onlystar style dispatcher is probably also worthwhile.
14:13 ruoso why can't it be an "empty" routine?
14:13 jnthn ruoso: What's going to get run when you invoke it?
14:13 ruoso nothing
14:13 jnthn ruoso: How is that useful?
14:13 ruoso you could even raise an exception if you try to run an "empty" routine
14:13 jnthn :)
14:13 JimmyZ joined #perl6
14:13 ruoso it's just the thing you get to add the candidates later
14:14 jnthn I'm still confused.
14:14 ruoso Ok, let me get the background on this again...
14:14 jnthn When you invoke a proto, it has a body that enters the multi-dispatcher.
14:14 ruoso this use case came from the catalyst-like web dispatching framework
14:15 ruoso basically, it will take some specification of action-chains, based on a reduce of multi-dispatch
14:15 ruoso so the framework takes the specification and build the multi
14:16 ruoso and then invokes the multi with the URL split by / as arguments
14:16 ruoso (which will later bring the "reduce with variable-length-signature-multi" problem)
14:17 jnthn Yeah, that one is still unresolved.
14:17 jnthn There was some handwaving about captures being cursor-ish, then no spec changes.
14:17 ruoso that was the reasoning for the first sketches on Iterators
14:18 ruoso you would be able to iterate a capture
14:18 masak .WALK &
14:19 jnthn ruoso: Yeah. I never really liked any of that line of thougth.
14:19 lumi__ joined #perl6
14:19 jnthn It's like, "let's take this thing that needs to be fast because we do it a lot. Now let's make it even more complex!"
14:20 jnthn I agree that Routine (well, Code in general) probably needs some more useful constructors, though.
14:21 jnthn But I'm reluctant on Routine.new() magically giving back something with an onlystar dispatcher in it.
14:22 jnthn Maybe Routine.new(:dispatcher) can do that
14:23 ruoso that looks like a sane API
14:23 ruoso btw... about the reduce... maybe the complexity needs to be in the code for reduce, not on Capture
14:24 jnthn That'd be more comfortable.
14:24 ruoso it would just take all signatures, try from the shorter to the longer
14:27 benabik I would assume you'd want to try longer sigs first so that ($a, $b) would match before (*@a)
14:27 benabik Although if you have a slurpy as a candidate on variable length multi, you're probably asking to have problems.
14:28 ruoso *@a is the longest posible
14:29 jnthn Well, it's longest but also least specific, in a sense.
14:29 jnthn A normal multi-dispatch would consider the absolute match a better one than the slurpy one.
14:29 jnthn It's possible the answer really is "build a custom dispatcher"
14:30 jnthn Since Perl 6 multi-dispatch isn't a longest-matching based thing.
14:32 lumi__ joined #perl6
14:48 masak rakudo: my @strings = <foo bar>; subset Foo of Str where { $_ ~~ any(@strings) }; for <foo OH NOES> { when Foo { say "$_ is a Foo" } }
14:48 p6eval rakudo 3c6296: OUTPUT«foo is a Foo␤»
14:48 masak \o/
14:48 * masak marks https://rt.perl.org/rt3/Ticket/Display.html?id=95500 fixed
14:48 masak will simplify the crypt game a bit ;)
14:50 [Coke] joined #perl6
14:50 jnthn masak: ah, a scoping bug
14:50 jnthn Glad to see that one fixed. :)
14:50 masak me too!
14:50 masak everything is just getting so *nice*!
14:51 masak I can see the potential, once nom can do all it can do now and then all Beijing can do...
14:51 jnthn Well, as you've discovered, we've regressed in some areas that still need fixing. But many bugs are gone too.
14:51 masak indeed.
14:51 masak my job is to root out the regressions, and any newly introduced bugs :)
14:52 masak I'll do this by running as much of my old scripts as possible on nom.
14:52 masak as many*
14:53 erez joined #perl6
14:53 pmurias sorear: what do you need ropes for?
14:54 lumi__ joined #perl6
14:54 erez heya, t/02-embed/01-load.t fails with "Parse errors: No plan found in TAP output" error
14:54 jnthn masak: The odd fix is welcome too. ;-)
14:54 masak jnthn: I even did a few, two days ago ;)
14:54 erez cloned about 20 mins ago
14:55 jnthn masak: I know, I know ;)
14:55 sayu joined #perl6
14:55 jnthn masak: And I was very happy to see them. :)
14:55 masak but yeah, I will dig in more times like that.
14:55 jnthn erez: Fails here too.
14:55 masak Perl 6 days FTW!
14:55 erez jnthn: ah.
14:56 * masak dives into his macros branch
14:57 jnthn erez: Will look into it, though I'm deep in a bunch of other bits at the moment.
14:57 sayu joined #perl6
14:58 erez jnthn: no worries, just to make sure I didn't do anything wrong
14:58 masak erez++ # pointing out test failures
14:59 moritz oh, I see at least one reason for the failure
14:59 moritz will investigate when rakudo finishes compiling
15:01 erez masak: tx, I even ventured to look inside it, but that was a bit over my league.
15:03 * masak .oO( it was a bit out of my head )
15:04 [Coke] joined #perl6
15:06 patspam joined #perl6
15:06 lumi__ joined #perl6
15:11 wamba joined #perl6
15:12 lumi__ joined #perl6
15:13 [Coke] joined #perl6
15:16 MayDaniel joined #perl6
15:26 erez what's the state of the Using Perl 6 book? How "finished" compared to the current status of Rakudo is it?
15:28 masak it's a bit neglected, and definitely not in a finished state at present.
15:28 masak we used to have regular meetings around it, but we don't anymore, for some reason.
15:28 masak seems to be a feedback cycle thing going on between lack of tuits and lack of clear finish state.
15:29 felher masak: may i ask you a question about the code of your animal farm game?
15:29 masak felher: of course.
15:31 felher masak: this for sure is a matter of taste but: lines 52 to 76, is there a reason you prefer the if-elseif-else chain to when/default?
15:31 masak of all the stylistic choices I made in that class, that's the question? :P
15:31 lumi__ joined #perl6
15:31 * masak looks
15:32 masak is github line numbering seriously broken for anyone else, by the way?
15:32 erez masak: where do you think is the biggest "hole" at the moment?
15:32 masak I have the numbers not lining up over here. (Chrome 13, Ubuntu)
15:32 felher masak: yeah, well, i just started to read your code and i won't ask any other than stylistic questions before i'm done :)
15:33 masak erez: been too long since I looked at it, to be honest. :/
15:33 masak erez: I think there's a TODO list in the repository.
15:33 jnthn masak: It sometimes happens to me if I've got antying other than default text size.
15:33 masak oh!
15:33 masak jnthn: that fixed it, thanks.
15:34 masak felher: I tend to use given/when/default to test the various properties of one single thing. I tend to use if/elsif/else to test a cascade of conditions on different things.
15:35 dalek rakudo/nom: b2e3176 | jonathan++ | src/ops/perl6.ops:
15:35 dalek rakudo/nom: Documentation fix.
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b2e3176ced
15:35 dalek rakudo/nom: 056cf10 | jonathan++ | src/Perl6/Metamodel/ (2 files):
15:35 dalek rakudo/nom: Fix up handling of how protos are created for the role selection multi-dispatch.
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/056cf1063f
15:35 dalek rakudo/nom: 8b57bb2 | jonathan++ | src/Perl6/Metamodel/ParametricRoleHOW.pm:
15:35 dalek rakudo/nom: Make parametric roles able to know about any shortname grouping they belong to (not set up yet, just the storage for it).
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8b57bb2e7d
15:35 dalek rakudo/nom: da541a6 | jonathan++ | src/Perl6/ (2 files):
15:35 dalek rakudo/nom: Stub in code to add a role to its group at composition time, if needed.
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/da541a6d3b
15:35 dalek rakudo/nom: c0eae8c | jonathan++ | src/Perl6/Actions.pm:
15:35 dalek rakudo/nom: Correct method call.
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c0eae8ceff
15:35 dalek rakudo/nom: 9d3a2c8 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
15:35 dalek rakudo/nom: Fix thinko in selector creation code.
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d3a2c89ab
15:35 dalek rakudo/nom: 6dbbf34 | jonathan++ | src/Perl6/SymbolTable.pm:
15:35 dalek rakudo/nom: Pass group parameter along when creating a meta-object.
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6dbbf34e58
15:35 jnthn Getting closer.
15:35 jnthn Fiddly thing is fiddly.
15:35 tadzik was it simplier in b?
15:36 felher masak: k, thnx :)
15:36 masak felher: it was a good question. thank *you*. :)
15:37 jnthn tadzik: Not much, if at all. And if it was, only because b cheated badly in various places.
15:37 tadzik I see
15:37 masak if (%!t{$!cp} // -> %, @ {;})({%!p}, @.e) -> $_ { # one of the advantages of Perl 6 is that it's so much more legible than Perl 5...
15:37 jnthn O.O
15:37 tadzik eew
15:37 felher masak: :D
15:37 masak complexity. it creeps up on you.
15:38 tadzik isn't that intentionally obfuscated?
15:38 masak no... :/
15:38 tadzik (%!t{$!cp} // -> %, @ {;})
15:38 tadzik why do you pass % and @ to an empty block?
15:38 jnthn It's a sig.
15:38 masak tadzik: because that's what I call it with right after that paren.
15:38 tadzik oh
15:39 jnthn There musta been a neater way to write that
15:39 jnthn It took me a while to parse :P
15:39 masak couldv'e factored the empty pblock out into a variable to make it clearer.
15:39 tadzik what is that supposed to be doing?
15:39 flussence .oO( things like that are the reason I never abbreviate names in code any more... )
15:39 jnthn Why {%!p} and not just %!p?
15:39 Sarten-X joined #perl6
15:39 masak tadzik: pull out the player's trading callback, or if there isn't any, an empty thing. call it.
15:40 benabik masak: Why not just avoid the call if there is no callback?
15:40 tadzik oh, so it's an empty block, but it has to take parameters
15:40 masak jnthn: because of the p6l thread.
15:40 tadzik couldn't they be slurpy then? If the block doesn't care anyway
15:40 jnthn masak: ah
15:40 masak jnthn: can't trust the clients.
15:40 masak benabik: would've been better. at the time I was aiming for brevity.
15:41 masak tadzik: it could indeed've.
15:41 tadzik I'd probably go for sub(%, @) {} instead of -> %, @ {;}
15:42 tadzik looks more like... code :)
15:42 tadzik I can see the reasons why you'd write it that way though
15:43 masak over time, I'll probably re-write farm.pl not to be so darn abbreviated.
15:43 masak I still think the brevity was worthwhile to pull out the "essence" of the code.
15:43 masak but it's filled its purpose now.
15:45 * JimmyZ wonders what's different in a class betwwen my $foo and has $!foo
15:45 zostay joined #perl6
15:46 JimmyZ my $foo is a static attr ?
15:46 jnthn JimmyZ: It's just a lexical.
15:46 masak JimmyZ: think of the scope and lifetime of the two.
15:47 masak JimmyZ: 'has' scopes the variable within an instance. 'my' scopes the variable within the 'class' block.
15:47 lumi__ joined #perl6
15:47 JimmyZ which looks like private static attr in Java?
15:48 jnthn JimmyZ: Yes, it'll have the same lifetime and scope.
15:48 JimmyZ thanks ;)
15:49 masak 'private static' is just a complicated way to say 'lexically scoped' in Java :P
15:49 jnthn "We have to pretend we're doing OO even when we're not!!!1!!"
15:49 masak http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
15:50 JimmyZ rakudo: class A { our $foo = 40; } ; say A::$foo;
15:50 p6eval rakudo 3c6296: OUTPUT«===SORRY!===␤Confused at line 1, near "say A::$fo"␤»
15:50 jnthn $A::foo in Perl 6.
15:50 JimmyZ rakudo: class A { our $foo = 40; } ; say $A::foo;
15:50 p6eval rakudo 3c6296: OUTPUT«40␤»
15:50 masak jnthn: and Perl 5, for that matter.
15:50 jnthn masak: oh :)
15:51 masak nihil novus sub sole ;)
15:51 JimmyZ rakudo: package B;  class A { our $foo = 40; } ; say $B::A::foo;
15:51 p6eval rakudo 3c6296: OUTPUT«===SORRY!===␤This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style package block like "package Foo { ... }", or "module Foo; ...". at line 1, near "class A { "␤»
15:52 tadzik rakudo: module B;  class A { our $foo = 40; } ; say $B::A::foo;
15:52 p6eval rakudo 3c6296: OUTPUT«40␤»
15:52 JimmyZ speaking of package and module, I never understatnd whtat's the difference
15:52 tadzik why do we even have 'package'
15:53 JimmyZ I tried to understand, but I was finally confused
15:54 JimmyZ rakudo: package B { class A { our $foo = 40; } ; };  say $B::A::foo;
15:54 p6eval rakudo 3c6296: OUTPUT«40␤»
15:54 JimmyZ rakudo: class B::A { our $foo = 40; } ;  say $B::A::foo;
15:54 p6eval rakudo 3c6296: OUTPUT«40␤»
15:54 masak tadzik: a module is a package with a few extras.
15:54 masak tadzik: things like auth and ver, IIRC.
15:54 JimmyZ that's why I was confused
15:54 masak tadzik: oh, and export semantics.
15:54 tadzik optional
15:55 tadzik so it's a superset?
15:55 masak yes.
15:55 JimmyZ package is a  superset ?
15:55 masak just like a class is a superset of a module, in a way.
15:55 masak no, module is a superset.
15:56 JimmyZ class is a superset  of module? I thought module is superset of class
15:56 jnthn Package also fills the "we didn't define anything with this name yet, but need a stash here" role.
15:56 JimmyZ I thought package > module > class
15:57 jnthn class Foo::Bar { } # Foo is a package
15:57 masak JimmyZ: what gave you the idea that a package is more powerful than a *class*?
15:58 JimmyZ package can have many class :)
15:58 masak o.O
15:58 jnthn Well, only in the sense that a class can have many classes... :)
15:58 jnthn Here's how it works. Every type has a .WHO slot. Off this hangs a Stash.
15:58 JimmyZ class Foo::Bar { } # Foo is a package # I understand this one
15:58 lumi__ joined #perl6
15:59 jnthn So Foo::Bar is really Foo.WHO.<Bar>
15:59 JimmyZ and module?
16:00 jnthn If you had class Foo { }; class Foo::Bar { }, Foo.WHO.<Bar> still works just the same. The only difference is that Foo has a different meta-object.
16:00 jnthn Same story for module. Just a different meta-object.
16:00 jnthn package is just a bit more special to the compiler
16:00 jnthn because it knows not to while about redefinition.
16:00 jnthn s/while/whine/
16:01 jnthn nom: module Foo { }; class Foo { }
16:01 p6eval nom 6dbbf3: OUTPUT«===SORRY!===␤Illegal redeclaration of class 'Foo' at line 1, near "{ }"␤»
16:01 jnthn nom: package Foo { }; class Foo { }
16:01 p6eval nom 6dbbf3: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:Multiple declarations of lexical 'Foo'␤␤   in file '(file unknown)' line 119␤»
16:01 jnthn f**k.
16:01 JimmyZ so class > module > package ?
16:01 jnthn JimmyZ: You could see it like that
16:01 * masak submits rakudobug
16:01 jnthn JimmyZ: But it's really not factored that way at all.
16:01 JimmyZ which is wrongly reverse by me :)
16:02 jnthn I think Moose does factor it more like that for real.
16:03 JimmyZ there are few testcase about module and package
16:04 jnthn Phew, I've got the setting build to work again...
16:05 dalek rakudo/nom: 6238f80 | jonathan++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.pm:
16:05 dalek rakudo/nom: Various corrections to the role group meta-object.
16:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6238f80a9a
16:05 dalek rakudo/nom: 02ee1c4 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
16:05 dalek rakudo/nom: Be sure to configure stashing for parametric roles.
16:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02ee1c4667
16:06 jnthn Now I just have to fix everything else...
16:07 JimmyZ rakudo: module Foo; package bar { class hi { our $lo = 'hi' } }; say $Foo::bar::hi::lo;
16:07 p6eval rakudo 6dbbf3: OUTPUT«hi␤»
16:07 JimmyZ rakudo: package bar { module Foo;  class hi { our $lo = 'hi' } };
16:07 p6eval rakudo 6dbbf3: OUTPUT«===SORRY!===␤Too late for semicolon form of $*PKGDECL definition at line 1, near "class hi {"␤»
16:07 tadzik TOO LATE FOR SEMICOLON!
16:08 jnthn That $*PKGDECL looks wrong.
16:08 JimmyZ rakudo: package bar { class hi {  our $lo = 'hi' } };   module Foo
16:08 p6eval rakudo 6dbbf3: OUTPUT«===SORRY!===␤Unable to parse $*PKGDECL definition at line 1, near ""␤»
16:08 JimmyZ rakudo: package bar { class hi {  our $lo = 'hi' } };   module Foo;
16:08 p6eval rakudo 6dbbf3: OUTPUT«===SORRY!===␤Too late for semicolon form of $*PKGDECL definition at line 1, near ""␤»
16:09 jnthn wtf
16:09 jnthn <.panic: "Too late for semicolon form of $*PKGDECL definition">
16:09 jnthn ...that's a double-quoted string!
16:09 lumi__ joined #perl6
16:09 JimmyZ and "Unable to parse $*PKGDECL definition"?
16:09 jnthn nqpbug maybe
16:10 * JimmyZ found it's easy to find a bug :)
16:10 jnthn If only we had more people who found it easy to fix a bug. :)
16:11 JimmyZ hehe
16:11 masak we should have a training programme.
16:11 daniel-s joined #perl6
16:14 JimmyZ because I'm still a newbie
16:15 snarkyboojum me three
16:15 * jnthn wonders how best to do that
16:16 snarkyboojum jnthn: fly us to sweden and buy lots of beer :)
16:21 lumi__ joined #perl6
16:22 snarkyboojum or not… :P
16:23 jnthn Norway aside, Sweden might just be about the most expensive place to get beer :)
16:23 snarkyboojum jnthn: homebrew! :P
16:23 jnthn We should do it in Prague. It's beautiful and has cheap, good beer. ;)
16:24 tadzik there is a district in Warsaw called Prague
16:25 tadzik but it's famous more for crime than for cheap beer :)
16:26 jnthn tadzik: Aww.
16:38 packetknife joined #perl6
16:44 lumi__ joined #perl6
16:52 simcop2387 joined #perl6
16:57 frhodes joined #perl6
17:02 lumi__ joined #perl6
17:07 TimToady perl6: package bar { module Foo;  class hi { our $lo = 'hi' } };
17:07 p6eval rakudo 02ee1c: OUTPUT«===SORRY!===␤Too late for semicolon form of $*PKGDECL definition at line 1, near "class hi {"␤»
17:07 p6eval ..pugs:  ( no output )
17:07 p6eval ..niecza v9-23-g1a8efca: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Too late for semicolon form of module definition at /tmp/F7Y6a_Ynjb line 1:â�¤------> [32mpackage bar { module Foo[33mâ��[31m;  class hi { our $lo = 'hi' } };[0mâ�¤â�¤Parse failedâ�¤â�¤Â»
17:10 jnthn Phew. The "multiple roles with same shortname" thing looks like it's gonna make it through spectest...
17:10 TimToady all classes can work like a module, and all modules can work like a package, whether or not it is implemented with inheritance
17:10 TimToady yay
17:10 jnthn TimToady: Agree. In Rakudo, we just happen to implement it with role composition.
17:10 birdwindupbird joined #perl6
17:10 jnthn TimToady: class composes all the roles module does, and some more.
17:11 TimToady is fine by me
17:12 TimToady but we still have some massive re-education to for those who see inheritance as their hammer
17:14 jnthn Aye. But I think they'll encounter it in many places before they get to thinking about the meta-objects behind package/module. )
17:14 jnthn :)
17:15 jnthn Learning to use roles effectively certainly takes time though.
17:15 jnthn I used to explain them in terms of things they were like. I've kinda moved on to explaining factoring problems and showing how roles help.
17:16 dalek rakudo/nom: 3b6cd2b | jonathan++ | src/Perl6/ (3 files):
17:16 dalek rakudo/nom: Allow flagging of signatured roles.
17:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3b6cd2bd34
17:16 dalek rakudo/nom: 7399cd6 | jonathan++ | src/Perl6/Metamodel/ (2 files):
17:16 dalek rakudo/nom: Fill out more missing bits in ParametricRoleGroupHOW.
17:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7399cd6e49
17:16 dalek rakudo/nom: e259b60 | jonathan++ | src/Perl6/Grammar.pm:
17:16 dalek rakudo/nom: Switch role handling over to a model that allows multiple definitions of a role with the same short name, and using multiple dispatch over the role signatures to decide which to use.
17:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e259b60ece
17:16 dalek rakudo/nom: 2fd2d26 | jonathan++ | NOMMAP.markdown:
17:16 dalek rakudo/nom: Update nommap.
17:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2fd2d26b61
17:16 lumi__ joined #perl6
17:17 jnthn Phew. That was some work...
17:29 MayDaniel joined #perl6
17:34 wamba joined #perl6
17:34 lumi__ joined #perl6
17:50 patspam joined #perl6
17:52 masak commit coming up.
17:52 dalek rakudo/nom: 2b13fe4 | masak++ | src/core/IO.pm:
17:52 dalek rakudo/nom: [src/core/IO.pl] lazily open things before .get
17:52 dalek rakudo/nom:
17:52 dalek rakudo/nom: This is to make something like "README".IO.lines work. It
17:52 dalek rakudo/nom: worked in Beijing.
17:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2b13fe4914
17:52 masak I did spectest it and it passed, but I wouldn't mind someone reviewing that commit anyway.
17:52 masak I needed it to get June-blogging hangman to run.
17:52 masak maybe a spectest for it would've been in order as well, I dunno.
17:55 jnthn +1 to spectest
17:55 jnthn Best to have semantics tested.
17:55 lumi__ joined #perl6
17:57 masak if no-one beats me to it, I'll do it after supper.
17:58 masak the test would be basically lives_ok { my $line = "some_file".IO.get }
18:01 packetknife joined #perl6
18:02 patspam_ joined #perl6
18:04 wamba joined #perl6
18:09 packetknife joined #perl6
18:10 lumi__ joined #perl6
18:17 wolfman2000 joined #perl6
18:17 patspam joined #perl6
18:20 moritz rakudo: say 'README'.IO.lines.elems
18:20 p6eval rakudo 2fd2d2: OUTPUT«Method 'readline' not found for invocant of class 'Mu'␤  in method get at src/gen/CORE.setting:4714␤  in sub coro at src/gen/CORE.setting:3765␤  in method reify at src/gen/CORE.setting:3735␤  in method reify at src/gen/CORE.setting:3539␤  in method gimme at src/gen…
18:20 moritz rakudo: say 'rakudo/README'.IO.lines.elems
18:20 p6eval rakudo 2fd2d2: OUTPUT«Method 'readline' not found for invocant of class 'Mu'␤  in method get at src/gen/CORE.setting:4714␤  in sub coro at src/gen/CORE.setting:3765␤  in method reify at src/gen/CORE.setting:3735␤  in method reify at src/gen/CORE.setting:3539␤  in method gimme at src/gen…
18:20 moritz rakudo: say 'rakudo/README'.IO.get
18:20 p6eval rakudo 2fd2d2: OUTPUT«Method 'readline' not found for invocant of class 'Mu'␤  in method get at src/gen/CORE.setting:4714␤  in <anon> at /tmp/EFBX62j1Z7:1␤  in <anon> at /tmp/EFBX62j1Z7:1␤␤»
18:24 dalek rakudo/nom: 6da1f55 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
18:24 dalek rakudo/nom: If an attribute has a build closure, we should always consider it as needing generic instantiation, since it may reference role arguments.
18:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6da1f5503e
18:24 dalek rakudo/nom: c994628 | jonathan++ | t/spectest.data:
18:24 dalek rakudo/nom: We now pass S14-roles/parameterized-basic.t.
18:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c9946282ae
18:24 dalek rakudo/nom: cb570dd | jonathan++ | src/Perl6/Actions.pm:
18:24 dalek rakudo/nom: Fix thinko.
18:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb570dd8f9
18:26 lumi__ joined #perl6
18:34 whiteknight joined #perl6
18:35 whiteknight joined #perl6
18:35 wamba joined #perl6
18:41 lumi__ joined #perl6
18:56 kaare_ joined #perl6
18:59 soh_cah_toa joined #perl6
19:02 lumi__ joined #perl6
19:06 bbkr joined #perl6
19:18 lumi__ joined #perl6
19:24 static_perl joined #perl6
19:24 masak static_perl: hi
19:24 static_perl hi
19:25 masak Perl 6 is static. and dynamic. :)
19:25 static_perl hehe is my old nick .. don't mind it :D
19:26 static_perl and I am very new to perl6, trying to figure out what it is still
19:26 * masak too :)
19:27 dalek rakudo/nom: 3da8879 | jonathan++ | src/Perl6/Actions.pm:
19:27 dalek rakudo/nom: Fix R[R2[Foo]] style role parameterizations.
19:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3da8879d85
19:29 jnthn nmake
19:29 jnthn grr
19:29 jnthn ww
19:30 masak *** No such target: grr ww
19:30 lumi__ joined #perl6
19:30 jnthn nmake masak quiet :P
19:31 wamba joined #perl6
19:34 patspam joined #perl6
19:38 masak ...
19:38 jnthn .oO( it worked for a while :) )
19:39 jnthn Hm. We ignored "Foo of Bar" style type names. Hope that hasn't led to some accidental OK-ness in places...
19:40 sorear good * #perl6
19:40 phenny sorear: 10:25Z <snarkyboojum> tell sorear having fun trying to build Niecza on OS X -> https://gist.github.com/1209432
19:40 phenny sorear: 10:26Z <snarkyboojum> tell sorear using RUN_CLR=mono coredumps
19:40 masak *, #perl6
19:40 alvis joined #perl6
19:42 sorear masak: I'm very dubious of the potential for a Perl 6 Javascript translator.  NQP-JS I could imagine, but Perl 6 has too many fiddly semantic bits, like containers and coroutines, to support a direct
19:45 * jnthn would love a JS backend for NQP
19:45 sorear hey awesome, ruoso lives
19:45 sorear pmurias: ropes are for Str
19:46 masak sorear: I just want to run my June games in the browser.
19:46 sorear snarkyboojum: your gist is insufficiently informative.  I would like a dialog.
19:47 jnthn masak: It just involves writing a Perl 6 => JavaScript compiler good enough to run them ;)
19:48 Sarten-X joined #perl6
19:48 lumi__ joined #perl6
20:03 patspam joined #perl6
20:03 dalek rakudo/nom: 119eef2 | jonathan++ | src/Perl6/ (2 files):
20:03 dalek rakudo/nom: Handle 'Glass of Beer' style type names.
20:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/119eef2d29
20:03 dalek rakudo/nom: d617c32 | jonathan++ | t/spectest.data:
20:03 dalek rakudo/nom: We now pass S14-roles/parameterized-type.t.
20:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d617c32461
20:04 wolfman2_ joined #perl6
20:07 zby_home joined #perl6
20:07 alvis joined #perl6
20:09 dalek roast: 5dd2557 | (Pawel Pabian)++ | S02-lexical-conventions/unicode.t:
20:09 dalek roast: [t/S02-lexical-conventions/unicode.t] test for #69959 - unicode named params
20:09 dalek roast: review: https://github.com/perl6/roast/commit/5dd2557ab0
20:10 pmurias sorear: would using ropes for Str make sense from a performance point?
20:12 lalidama joined #perl6
20:13 lumi__ joined #perl6
20:20 soh_cah_toa_ joined #perl6
20:20 pmurias masak: the problem with Perl6 on JS is that in order to support features like junctions, coroutines, containers etc. you have to sacrifice performance by adding an extra layer on top of the runtime
20:21 pmurias masak: or have a sofisticated analysis phase to strip such stuff
20:22 masak nod
20:22 dalek rakudo/nom: 025b5a6 | jonathan++ | src/core/traits.pm:
20:22 dalek rakudo/nom: Implement 'is default' trait for routines.
20:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/025b5a62b6
20:22 dalek rakudo/nom: 90a619c | jonathan++ | t/spectest.data:
20:22 dalek rakudo/nom: We now pass S12-methods/default-trait.t.
20:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90a619cd51
20:22 masak jnthn++
20:24 pmurias masak: the more important problem with the js backend is that it would split effort
20:24 masak I'm just going to see how far I get with perlito
20:24 pmurias it's better to have one decent backend then a dozen ones which are not good enough
20:25 masak agree.
20:27 pmurias and niecza has quite a few opcodes so writing a backend for that is not a trivial thing (as opposed to Perlito which has a relatively simple AST)
20:29 donaldh joined #perl6
20:31 lumi__ joined #perl6
20:33 g2` joined #perl6
20:37 im2ee masak, how do You do? :)
20:37 bbkr nom: class A {  method !private { say "p" } }; my $a = A.new; $a!private # known regression or fresh NOM bug?
20:37 p6eval nom 3da887: OUTPUT«Method 'find_private_method' not found for invocant of class 'Perl6::Metamodel::PackageHOW'␤  in method dispatch:<!> at src/gen/CORE.setting:641␤  in <anon> at /tmp/DFDiWiwKth:1␤  in <anon> at /tmp/DFDiWiwKth:1␤␤»
20:38 masak im2ee: Dzień dobry, panie. Czuję się dobrze. Jak się masz?
20:38 im2ee masak, great polish! :)
20:39 im2ee masak, świetnie mówisz po polsku :)
20:39 masak :)
20:39 bbkr masak: doskonała polszczyzna
20:40 masak sirs, you are too kind.
20:40 masak but it's not *that* hard to use Google Translate... ;)
20:41 masak mostly one has to have a feeling for what one can put in that doesn't come out jumbled or wrongly translated.
20:41 im2ee right :)
20:41 patspam joined #perl6
20:42 masak Lubię język polski. Chciałbym mówić w tym języku.
20:42 im2ee masak, where are You from? ;>
20:42 bbkr should $class_instance!private_method be accessible from outside class? I remember some discussion about it, however I cannot find the logs or exact spec section.
20:42 masak im2ee: .se
20:42 im2ee masak, skąd pochodzisz? :)
20:43 masak bbkr: no.
20:43 masak bbkr: unless trust has been established.
20:44 im2ee masak, sweden? No way.. :) I love Scandinavia. I dream about go there! :)
20:44 im2ee And i learn finnish :)
20:44 im2ee Do You know finnish?
20:44 pmurias im2ee: which city are you from?
20:44 masak im2ee: ei.
20:44 im2ee pmurias, hmm, it's small city near Toruń.
20:44 im2ee :)
20:45 bbkr im2ee: Lysomice? Papowo?
20:45 im2ee bbkr, no. Why? :)
20:45 masak im2ee: he wants to drive over and knock on your door :P
20:46 bbkr im2ee: trying to guess, I lived 10 years in Torun
20:47 im2ee masak, if You are in Poland, You can live with me. :)
20:47 im2ee Do you want to go to pl? :)
20:47 im2ee bbkr, near Papowo. :)
20:48 wamba joined #perl6
20:50 bbkr im2ee: from what I know those terrains merged into user-friendly-named "Papowo-torunskie Osieki" since Sharp built factories there.
20:51 lichtkind joined #perl6
20:51 im2ee bbkhmm, right. :)
20:51 im2ee bbkr, hmm, right. :)
20:52 lumi__ joined #perl6
20:54 im2ee bbkr, where are You now? :)
20:54 im2ee Not in pl? :)
20:54 masak im2ee: thanks for the offer ;)
20:55 bbkr im2ee: Gdansk.
20:56 im2ee bbkr, so... On this channel there are many poles as i see :)
20:56 masak that's what you get if you cover the whole complex plane. :P
20:59 bbkr im2ee: this is because perl scripts ends with .pl :)
20:59 im2ee hah, True. :)
21:02 im2ee bbkr, are You studying in Gdansk? :)
21:02 donaldh joined #perl6
21:06 bbkr im2ee: I was, and that was the reason why i left Torun.
21:06 * pmurias studies in Wrocław
21:08 lumi__ joined #perl6
21:08 masak meh, http://perlcabal.org/~fglock/perlito.html parsefails on http://strangelyconsistent.org/blog/june-5-2011-guess-a-number
21:09 masak should I tell fglock?
21:09 masak it's so strange that he's working on a Perl 6 compiler, but he's never around!
21:09 im2ee pmurias, i want to to study in Wrocław .:)
21:09 bbkr im2ee: after graduating in Gdansk I went to PJWSTK (polish-japaneese school in warsaw), but the amount of Java there was too much to handle. Instead of performing simple tasks I was object-puking.
21:11 bbkr im2ee: Gdansk (3City in general) has more to offer when it comes to work in IT.
21:11 packetknife joined #perl6
21:11 dalek roast: ec2194c | masak++ | S16-filehandles/io.t:
21:11 dalek roast: [S16-filehandles/io.t] test for 2b13fe in Rakudo
21:11 dalek roast: review: https://github.com/perl6/roast/commit/ec2194c296
21:13 im2ee bbkr, and what about Sląsk? :)
21:13 im2ee like Gliwice etc.
21:14 im2ee I don't exactly know where i should go. :)
21:14 masak phenny: se en "slask"?
21:14 phenny masak: "slask" (se to en, translate.google.com)
21:15 masak dang.
21:15 masak in Swedish, "slask" means something like "semi-wet waste material".
21:15 shinobicl_ joined #perl6
21:15 masak but the pronunciation in Polish is quite different due to the ą.
21:15 shinobicl_ hi, how much ram do i need to comple the new rakudo (nom) ?
21:16 shinobicl_ compile*
21:16 masak shinobicl_: I don't know exact numbers, but the more the better.
21:16 masak so as to avoid swapping.
21:17 shinobicl_ i tried to compile the new version with 466 mb with --gen-parrot, wasn't enough :(
21:17 bbkr im2ee: Forget about Slask. there are two IT valleys - Krakow and 3City.  So if you want to study in Wroclaw prepare to move to Krakow after you graduate, because Wroclaw has good university but pretty small jobs market.
21:18 im2ee bbkr, thanks. :)
21:19 masak sounds like a sweet deal. Krakow is a beautiful town, with dragons and everything.
21:19 masak plus, from what I understand it's where all the culture happens.
21:19 wolfman2000 joined #perl6
21:19 masak even Warsawians go to Krakow for some social life.
21:23 im2ee masak, it's true i think.. I was in Kraków only twice, but there is beautiful :)
21:23 bbkr masak: Krakow was capital of the Poland in the past.
21:23 lumi__ joined #perl6
21:24 im2ee masak, as i heard there is polish branch of google. bbkr right?
21:24 im2ee :)
21:24 masak sorear: ping
21:24 masak bbkr: aye. that's why it has such a nice castle.
21:25 masak and dragons.
21:25 bbkr im2ee: I wouldn't expect much form Google polish branch. That's mostly accountancy.
21:26 shinobicl_ just fyi: this is the part what needs lots of ram: ./perl6 --setting=NULL --target=pir  --output=src/gen/CORE.setting.pir src/gen/CORE.setting
21:27 masak shinobicl_: yes :)
21:27 masak we know...
21:27 jnthn shinobicl_: Depends if you're on 32 or 64 bit.
21:27 jnthn shinobicl_: It almost doubles if you're on 64...
21:27 bbkr masak: This castle is called "Wawel". I did some impossible magic once and managed to get a pass to spent one night there. That was creepy, sleeping among ghosts of dead kings :)
21:28 shinobicl_ oh thanks.. i'll reinstall my os then :) i don't need 64bit anyway
21:28 shinobicl_ (it's a vps so is not a big deal to reinstall anything)
21:29 masak bbkr: I've spent a couple of nights at Hotel Pod Wawelem :P
21:29 wolfman2_ joined #perl6
21:29 fridim_ joined #perl6
21:29 yahooooo joined #perl6
21:30 im2ee Uh, it's time for me. Will be tomorrow! See you. Good night. :)
21:31 bbkr good night
21:31 jnthn im2ee: dobranoc :)
21:31 masak im2ee: dobranoc
21:32 masak phenny: tell sorear two questions. first: what options do I have for setting @*LIB before 'use'? BEGIN { push } didn't work for me, and there's no support for PERL6LIB.
21:32 phenny masak: I'll pass that on when sorear is around.
21:32 jnthn masak: @*INC
21:32 jnthn ?
21:33 masak oh, meant that :/
21:33 masak phenny: tell sorear erm, @*INC, I meant.
21:33 phenny masak: I'll pass that on when sorear is around.
21:33 masak that's also what I tried.
21:34 masak phenny: tell sorear -- second, why do I get an error message when I don't declare A::B in A/B.pm ?
21:34 phenny masak: I'll pass that on when sorear is around.
21:39 lumi__ joined #perl6
21:40 wolfman2000 joined #perl6
21:43 mj41 joined #perl6
21:43 g2` joined #perl6
21:46 masak perl6: die
21:46 p6eval pugs: OUTPUT«*** Died␤    at /tmp/mjbdY7gs1l line 1, column 1 - line 2, column 1␤»
21:46 p6eval ..rakudo 90a619: OUTPUT«␤  in <anon> at /tmp/V6x8TXzJ2t:1␤  in <anon> at /tmp/V6x8TXzJ2t:1␤␤»
21:46 p6eval ..niecza v9-23-g1a8efca: OUTPUT«Unhandled exception: No value for parameter $msg in CORE die␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE die @ 0) ␤  at /tmp/fnA6A2z9VV line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2046 (CORE C956_ANON @ 2) ␤  at /ho…
21:46 masak I'm not sure the meta-error Niecza emits is motivated.
21:46 masak it should be allowed to die without a $msg.
21:55 wolfman2_ joined #perl6
21:56 sorear jnthn: well, we also need a big runtime library... :(
21:56 phenny sorear: 21:32Z <masak> tell sorear two questions. first: what options do I have for setting @*LIB before 'use'? BEGIN { push } didn't work for me, and there's no support for PERL6LIB.
21:56 phenny sorear: 21:33Z <masak> tell sorear erm, @*INC, I meant.
21:56 phenny sorear: 21:34Z <masak> tell sorear -- second, why do I get an error message when I don't declare A::B in A/B.pm ?
21:56 sorear pmurias: from what TimToady has told me, ropey asymtotic performance is almost but not quite mandatory for Perl 6.0 Strs
21:57 jnthn sorear: Sure, I wasn't being especially serious :)
21:57 sorear pmurias: To be fair most of the Niecza opcodes are really "runtime support functions".  I found it simpler to have a single concept of "opcode" than to split out the concept of "function"
21:57 sorear masak: pong
21:58 sorear masak: the only sane way is -I
21:59 masak ok.
21:59 masak then I'll use that.
21:59 masak would love to have PERL6LIB.
21:59 sorear snarkyboojum: your gist was sadly uninformative
22:00 [particle] joined #perl6
22:00 sorear snarkyboojum: did you have to do something to get that dump or was it automatic?
22:00 sorear snarkyboojum: I'd be interested in seeing details of the core dump you got.
22:01 lumi__ joined #perl6
22:01 sorear snarkyboojum: As would #mono.  Mono apps aren't really supposed to dump core ever :)
22:01 snarkyboojum sorear: all I had to do to get the dump was run 'make
22:01 snarkyboojum :)
22:02 snarkyboojum sorear: cool :) will see if I can get the dump to you somehow
22:05 shinobicl_ left #perl6
22:06 sorear snarkyboojum: I don't have an osx system to use to interpret the dump
22:06 snarkyboojum sorear: will at least share the system diagnostics that os x throws up on the screen - see if that's helpful or not :)
22:07 snarkyboojum sorear: but perhaps more a "mono on OS X" thing
22:07 sorear snarkyboojum: I've heard niecza worked on osx in the past.
22:08 snarkyboojum sorear: yeah.. used to use it
22:08 snarkyboojum upgraded to Lion since then
22:08 snarkyboojum sorear: https://gist.github.com/1210188 # for fun and giggles
22:08 sorear what are the major difference between Lion and Lion.prev?
22:08 snarkyboojum sorear: nfi
22:09 wamba joined #perl6
22:10 sorear snarkyboojum: that error dump is at least very clear
22:10 masak sorear: in Niecza, how do I define a class with a custom postcircumfix:<[ ]> ?
22:10 sorear the C-stack overflowed
22:11 sorear masak: defining a custom postcircumfix:<[ ]> method works.
22:11 sorear masak: you can also use at-key exactly like Rakudo
22:12 sorear snarkyboojum: it looks like something stupid involving exception handling triggering additional exceptions
22:13 bbkr joined #perl6
22:14 masak sorear: cool, thanks.
22:14 lumi__ joined #perl6
22:15 sorear snarkyboojum: you might try 1. running the offending command with 'mono --trace=none ..'  2. running the offending command with 'NIECZA_TRACE=all mono ...'
22:15 sorear (don't do both on the same run; the tracers wind up trying to trace each other and performance tanks'
22:15 sorear )
22:16 snarkyboojum with mono --trace=none I get screenfuls of exception errors until I ctrl-c
22:17 sorear snarkyboojum: I'm only interested in the last few before the segfault
22:18 sorear ExitRunloopExceptions and ContinueUnwindExceptions (generally) aren't interesting, they're used internally by the niecza coroutine engine
22:19 snarkyboojum sorear: I'm modifying Makefile to do RUN_CLR=mono --trace=none - is that appropriate? :)
22:19 sorear snarkyboojum: I wouldn't
22:19 sorear there's only one failing command
22:19 sorear copy and paste
22:20 sorear if you put it in the Makefile you're liable to forget to remove it, and I don't see what benefit it brings
22:20 masak 'night, #perl6
22:20 snarkyboojum sorear: oh - I assumed I needed to pass that switch to the mono invocation. Where do I pass --trace=none then?
22:21 sorear snarkyboojum: type "mono --trace=none boot/run/Niecza.exe -C CORE
22:21 sorear "
22:21 snarkyboojum sorear: oops - ok
22:21 sorear snarkyboojum: > tempfile.txt
22:22 pmurias sorear: yes, implementing most of the ops won't be hard, but there is still a bunch of them ;)
22:23 lumi__ joined #perl6
22:23 pmurias sorear: are strings builtin into mono?
22:23 sorear yes, for moderate values of "builtin"
22:24 sorear semantically, they're just another class in the standard library
22:26 pmurias what i'm curious if they are treated extra fast?
22:27 snarkyboojum sorear: FWIW - it's just a stream of "[0xac93a2c0:] EXCEPTION handling: System.NullReferenceException: Object reference not set to an instance of an object" errors - not very meaningful to me
22:27 sorear snarkyboojum: nothing between the lines?  that's what I thought
22:28 snarkyboojum sorear: nothing else - just that spewed out until mono dumps
22:28 sorear snarkyboojum: would you nopaste the last ~50 lines of the --trace=all output?
22:29 snarkyboojum sorear: sure - https://gist.github.com/1210215
22:30 sorear snarkyboojum: that looks like --trace=none output
22:30 snarkyboojum eek - that was with trace=none :D
22:31 snarkyboojum sorear: try again :)
22:36 snarkyboojum sorear: I reckon it's something wonky with my mono install post upgrade - probably best that I not waste your time with this..
22:37 snarkyboojum sorear: like http://go-mono.com/forums/#nabble-td3562696 :|
22:39 snarkyboojum sorear: thanks for your help - I'm just going to try a later version of mono - definitely not a Niecza problem I'd say
22:44 sorear snarkyboojum: ...yes, your mono install is _wonky-
22:44 jnthn sleep &
22:44 sorear I mean seriously, you have null pointers in your NullPointerException class structure
22:44 lumi__ joined #perl6
22:48 snarkyboojum sorear: aye - craziness :D
22:48 snarkyboojum pretty impressive breakage between OS releases
22:57 PacoLinux_ joined #perl6
23:00 snarkyboojum so in summary - don't try and run Mono 2.8.2 on OS X Lion - it appears horribly broken.
23:00 snarkyboojum 2.10.5 works nicely however, and I now have a working Niecza again :)
23:05 snarkyboojum and next time I'll do my homework a little more thoroughly :|
23:07 sorear snarkyboojum: wanna close the bug?
23:08 snarkyboojum sorear: sure - and thanks again :)
23:15 patspam joined #perl6
23:37 bluescreen10 joined #perl6
23:37 Vlavv joined #perl6
23:47 mberends here is some Perl 6 GUI progress, a semi working Gtk Calc program for Niecza, patches welcome https://gist.github.com/1210303
23:47 f00li5h joined #perl6

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

Perl 6 | Reference Documentation | Rakudo