Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-07-26

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:06 dalek roast: f7e8545 | coke++ | S (5 files):
00:06 dalek roast: s/ucfirst/tc/ - ucfirst is going away
00:06 dalek roast: review: https://github.com/perl6/roast/commit/f7e8545dd2
00:06 dalek roast: 7397cba | coke++ | S (2 files):
00:06 dalek roast: pugs fudge
00:06 dalek roast: review: https://github.com/perl6/roast/commit/7397cbaef1
00:07 dalek Pugs.hs: 6049379 | coke++ | t/spectest.data:
00:07 dalek Pugs.hs: run test
00:07 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/604937919f
00:11 skids joined #perl6
00:14 [Coke] we have tests for e, but not for its value.
00:14 [Coke] there's some LHF for someone.
00:14 [Coke] r: say e
00:14 p6eval rakudo ed269f: OUTPUT«2.71828182878434␤»
00:14 [Coke] p: say pi; say e
00:14 p6eval pugs: OUTPUT«3.141592653589793␤*** No such subroutine: "&e"␤    at /tmp/YaAJ6l1vbW line 1, column 13 - line 2, column 1␤»
00:15 flussence is(e, derivative(e)) # there you go :)
00:22 [Coke] r: say log 1
00:22 p6eval rakudo ed269f: OUTPUT«0␤»
00:23 [Coke] r: say log
00:23 p6eval rakudo ed269f: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'log' will never work with no arguments (line 1)␤    Expected any of:␤    :(Numeric $x)␤    :(Numeric $x, Numeric $base)␤    :(Cool $x)␤    :(Cool $x, Cool $base)␤    :(num $x)␤»
00:23 [Coke] r: say ln 1
00:23 p6eval rakudo ed269f: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&ln' called (line 1)␤»
00:28 DarthGandalf joined #perl6
00:28 [Coke] r: say 3.pi
00:28 p6eval rakudo ed269f: OUTPUT«No such method 'pi' for invocant of type 'Int'␤  in block  at /tmp/SGr93ilzmZ:1␤␤»
00:29 [Coke] huh. pugs has a 'pi' function defined that isn't used at all.
00:31 longqinsi joined #perl6
00:49 kaare_ joined #perl6
01:03 dalek Pugs.hs: 7fa2ad3 | coke++ | Pugs/src/Pugs/Prim.hs:
01:03 dalek Pugs.hs: Remove unused pi guts.
01:03 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/7fa2ad3bd3
01:14 scott__ joined #perl6
01:19 lichtkind_ joined #perl6
01:35 dalek Pugs.hs: 7e8013c | coke++ | / (2 files):
01:35 dalek Pugs.hs: Add "e"
01:35 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/7e8013c141
01:36 dalek roast: bd6dc55 | coke++ | S32-trig/e.t:
01:36 dalek roast: pugs fudge
01:36 dalek roast: review: https://github.com/perl6/roast/commit/bd6dc55f78
01:38 tokuhiro_ joined #perl6
01:42 clkao joined #perl6
02:04 tokuhiro_ joined #perl6
02:05 jaldhar joined #perl6
02:06 orafu joined #perl6
02:08 lue r: say log(e)
02:08 p6eval rakudo ed269f: OUTPUT«1.00000000011967␤»
02:09 zhutingting joined #perl6
02:12 zhutingting joined #perl6
02:14 sorear [Coke]: afaik there's a (non-default) build step which uses prelude.pm to regenerate something.c
02:20 [Coke] sorear: there's a script mentioned that doesn't exist.
02:20 [Coke] I opened #22 about it.
02:20 [Coke] npr: my $a=1..2; $a.WHAT.say
02:20 p6eval pugs: OUTPUT«Array␤»
02:20 p6eval ..rakudo ed269f, niecza v19-13-g442e075: OUTPUT«Range()␤»
02:29 Vlavv_ joined #perl6
02:42 Psyche^ joined #perl6
02:45 benabik joined #perl6
03:04 woosley joined #perl6
03:07 zhutingting joined #perl6
03:25 TimToady sorear: the second (FP) solution to http://rosettacode.org/wiki/Digital_root#Perl_6 doesn't work in niecza for some reason
03:25 TimToady (does in rakudo)
03:25 TimToady I get: Unhandled exception: >>>Stub code executed
03:26 TimToady oh wait, I get it
03:27 TimToady can't put ... on its own line
03:27 TimToady not when the previous line ended with }
03:36 TimToady okay, wanting to write ... on a separate line is a smell that the function should be defined out-of-band from the ...
04:09 crab2313 joined #perl6
04:11 [Coke] any haskell folks up?
04:12 benabik [Coke]: Kinda.
04:12 benabik (kinda a Haskell person and kind up)
04:16 [Coke] so, I want .WHAT to return Int() instead of Int.
04:16 diakopter stringification of the type object?
04:16 benabik (whatever it does now) ++ "()"    would be my first guess
04:16 pmichaud note about 2012.07 star release: I'm too tired to take care of it tonight so will work on it first thing tomorrow.
04:16 [Coke] I can't find "whatever it does now". ;)
04:17 moritz \o
04:18 benabik Ah.  Well that requires me to know Pugs more than know Haskell.  :-D
04:18 dalek std: e52e3ca | larry++ | STD.pm6:
04:18 dalek std: fix uninit noticed by bbkr++
04:18 dalek std: review: https://github.com/perl6/std/commit/e52e3ca4f9
04:18 [Coke] so, it does; fmap VType . evalValType
04:19 benabik fmap is a more generic version of map
04:20 benabik I believe that parses as (fmap (VType . evalValType)), which is (fmap (\x -> (Vtype (evalVal x))))
04:20 benabik VType should be a data constructor.
04:21 benabik Not sure if this description is helpful...  I have a pugs checkout and am looking for this bit.
04:23 [Coke] I suppose at this point some basic knowledge of haskell on my part would be helpful. ;)
04:24 benabik The WHAT op iterates over what it's given, using evalValType (Pugs/AST/Internals.hs:270) to get a Type and wrapping it in a VType object.
04:24 [Coke] I suspect I am looking for the stringification of VType, then.
04:24 benabik Something like?
04:26 [Coke] .Str is "op1cast VStr"
04:27 [Coke] op1Cast is op1Cast :: (Value n) => (n -> Val) -> Val -> Eval Val
04:27 [Coke] op1Cast f val = fmap f (fromVal val)
04:29 benabik So .Str maps the constructor VStr over the result of fromVal of what you're .String
04:29 benabik *.Str-ing
04:29 moritz pugs: say Int
04:29 p6eval pugs: OUTPUT«Int␤»
04:30 benabik Pugs appears to be turtles all the way down.  I'm sure there's some design here, but everything seems to just be a layer around something else.
04:30 benabik Maybe I'm just too tired.
04:30 [Coke] oh, good it's not just me. ;)
04:32 quietfanatic VStr appears to be a synonym for Haskell's String
04:32 quietfanatic unless it's different in Types.hs from where you're looking at
04:34 benabik No, that appears to be correct.
04:34 [Coke] is fromVal a builtin?
04:34 benabik No, it's part of the Value type class in Internals.hs
04:34 quietfanatic line 65 of that file has showType which appears to convert a type to a string
04:34 benabik AST/Internals
04:34 quietfanatic but that might be too early to add the ()
04:36 benabik VType is a Value wrapper around Type.
04:36 telex joined #perl6
04:37 [Coke] line 65 of what file?
04:37 benabik Pugs/Types.hs
04:39 TimToady pugs went through more than one string implementation, so VStr is probably an abstraction layer to hide that
04:39 TimToady (iirc)
04:39 [Coke] most perl6 classes have a V* type, many of which map to core haskell types.
04:40 quietfanatic My guess is fromVal at AST/Internals.hs:1169
04:41 quietfanatic trying that and making...
04:43 [Coke] quietfanatic++
04:43 [Coke] benabik++
04:43 quietfanatic It works!
04:43 quietfanatic I don't know how to run the spectests though
04:43 quietfanatic Or submit a patch or do any of that stuff
04:44 benabik You do need to be careful at what layer you add the parens...  It does seem to use the stratification of VType in several places.
04:44 benabik *stringification
04:44 moritz quietfanatic: what's your github ID?
04:44 quietfanatic quietfanatic
04:45 quietfanatic benabik: which is why I have to test it.
04:46 moritz quietfanatic: you now have commit access to Pugs.hs (and several other repos in the perl6 organization)
04:46 quietfanatic moritz++
04:47 quietfanatic How do I run the spectest?
04:47 quietfanatic In Rakudo it was make spectest but not here
04:47 [Coke] quietfanatic: perl t/run_spectests
04:48 quietfanatic ah cool
04:49 [Coke] if you get no (or even not many) new failures, feel free to commit.
04:50 moritz and if you get new failures, you can still commit it to a branch
04:50 quietfanatic thanks
04:50 moritz so that others can look at the patch
04:51 moritz r: say DateTime.now.Str
04:51 p6eval rakudo ed269f: OUTPUT«2012-07-26T06:51:28-0200␤»
04:51 [Coke] Issue #24, btw.
04:52 quietfanatic I'm getting a billion "perl: warning: Setting locale failed."
04:53 quietfanatic it's making it hard to see the tests going by.
04:53 [Coke] there is a lot of noise.
04:53 [Coke] I haven't seen that particular noise, though.
04:54 quietfanatic I don't recall tweaking my locale settings on this partition
04:55 [Coke] can you gist the patch? I have a known good env here.
04:56 quietfanatic sure...
04:56 quietfanatic (Something setting my LC_ALL to latin-1 and I don't have that locale installed or something)
04:56 quietfanatic *Something is
04:57 thou joined #perl6
04:57 [Coke] quietfanatic: yah.. LC_ALL has to be set or things fail, and we've had some finickiness about what works where.
04:58 [Coke] if you ack for "darwin", you'll see the conditionals so far.
04:58 quietfanatic https://gist.github.com/3180344
04:59 quietfanatic I'm on linux
05:05 [Coke] https://gist.github.com/3180360
05:06 Khisanth joined #perl6
05:06 dalek doc: 53e37a8 | moritz++ | lib/Array.pod:
05:06 dalek doc: [Array] harmonize markup
05:06 dalek doc: review: https://github.com/perl6/doc/commit/53e37a8a4b
05:06 dalek doc: b618194 | moritz++ | htmlify.pl:
05:06 dalek doc: [htmlify] add footers
05:06 dalek doc: review: https://github.com/perl6/doc/commit/b6181949ef
05:07 quietfanatic [Coke]++
05:07 quietfanatic Is that a new failure?
05:07 [Coke] yes. the only bug is that $?Package now reports "Main()" instad of "Main"
05:08 [Coke] I'd still call that a net win.
05:08 quietfanatic nice
05:08 quietfanatic shall I commit then?
05:08 quietfanatic maybe I'll work on that next thing too
05:10 [Coke] Yes, please.
05:10 dalek Pugs.hs: 543ec38 | quietfanatic++ | Pugs/src/Pugs/AST/Internals.hs:
05:10 dalek Pugs.hs: Stringification of a type object now appends ()
05:10 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/543ec38037
05:11 [Coke] Feel free to close out #24, also ;)
05:11 [Coke] I'll refudge.
05:11 * quietfanatic didn't wait for permission
05:11 moritz quietfanatic++ # first perl 6 commit
05:11 quietfanatic yay!
05:11 moritz well, forgiveness > permission
05:11 moritz and we are forgiving around here :-)
05:13 quietfanatic done
05:13 quietfanatic now about that scope.t problem
05:16 moritz quietfanatic: those tests are questionable
05:16 quietfanatic Maybe I'll leave that be then
05:17 quietfanatic somebody'll need to refudge
05:18 moritz pugs: eval 'die "foo"'
05:18 p6eval pugs:  ( no output )
05:18 moritz that's something that needs fixing
05:18 moritz these days eval() isn't supposed to catch exceptions anymore
05:19 [Coke] pugs: say 3.FatRat
05:19 p6eval pugs: OUTPUT«*** No such method in class Int: "&FatRat"␤    at /tmp/alWtsXOtOs line 1, column 5 - line 2, column 1␤»
05:19 [Coke] also, it needs to be rebuilt. ;)
05:19 moritz that's easier said than done
05:19 dalek roast: 7762601 | moritz++ | S10-packages/scope.t:
05:19 dalek roast: bring some small amount of sanity to S10-packages/scope.t
05:19 dalek roast:
05:19 dalek roast: still full of mathoms
05:19 dalek roast: review: https://github.com/perl6/roast/commit/7762601d4d
05:19 [Coke] quietfanatic: I fudged those 3 tests and am doing an autounfudge run now.
05:20 * quietfanatic didn't know there was an autounfudge, but it makes sense
05:20 [Coke] heh. "moritz authored in 12 minutes"
05:20 * quietfanatic is a bit out of a loop or two
05:20 [Coke] moritz++ # autounfudge
05:21 [Coke] pretty sure he wrote it for rakudo, and I use it on niecza and pugs.
05:23 moritz yes, I wrote it for rakudo, but with a bit of portability in mind
05:23 [Coke] guessing there's no unskipping to do, since () vs. not was a wrong answer and not an exception
05:24 moritz [Coke]: thanks for reminding me to install ntpdate on that machine here... :-)
05:25 moritz looks much better now
05:26 kaare_ joined #perl6
05:31 [Coke] quick, commit something else!
05:31 [Coke] ;)
05:31 diakopter [Coke]: you watch the Late Late Show?
05:33 birdwindupbird joined #perl6
05:37 crab2313 joined #perl6
05:41 dalek doc: bb60ccf | moritz++ | htmlify.pl:
05:41 dalek doc: ilnk to superclasses and roles
05:41 dalek doc: review: https://github.com/perl6/doc/commit/bb60ccf3d6
05:45 moritz still missing: roles that are done by superclasses
05:48 plobsing joined #perl6
05:52 quietfanatic can that even work?
05:53 quietfanatic I guess it could.
05:54 moritz roles basically copy there methods into the class they are applied to
05:54 moritz *their
05:55 moritz so if C's MRO is C B A, and B does role R, it makes sense to show the methods for R on the same level as B
05:56 quietfanatic oh
05:56 quietfanatic I thought you mean a role that is done by a superclass of the role
05:56 quietfanatic like A does B and B is A
05:57 quietfanatic which, given that I believe roles issing classes means it makes any class that does it is the class
05:57 quietfanatic makes sense
05:57 moritz when a role inherits from a class, that just means that that inheritance relation is added to the class that the role is applied to
05:58 quietfanatic yeah
05:58 moritz so A does B and B is A would be A inheriting from A
05:58 moritz which doesn't work
05:58 quietfanatic just like I said but with much better grmmar :)
05:58 moritz and I'm not even a native speaker :-)
05:58 quietfanatic A inheriting from A makes sense to me
05:58 moritz not to me :-)
05:58 quietfanatic I was using 'is' as a weird verb meaning "to inherit from"
05:58 moritz what would that mean?
05:58 quietfanatic Well
05:59 quietfanatic not inheriting, I mean
05:59 quietfanatic but an A *is* an A.
05:59 moritz well yes :-)
05:59 quietfanatic and 'is' is the keyword Perl 6 uses for inheritance.
05:59 quietfanatic that is my thinking.
06:00 [Coke] diakopter: nope.
06:00 moritz (except that it's not a keyword, just a trait mod)
06:01 SamuraiJack joined #perl6
06:01 diakopter [Coke]: twitter recommended I follow him because you follow him
06:01 diakopter so I did
06:01 quietfanatic right
06:01 [Coke] him who
06:01 diakopter the host of the Late Late Show... Craig Ferguson
06:02 [Coke] I don't really follow half the people I follow on twitter. too much firehose.
06:02 diakopter oh
06:02 [Coke] ah. he's funny, but I only very rarely see clips of his show.
06:02 dalek doc: 1ac7939 | moritz++ | htmlify.pl:
06:02 dalek doc: [htmlify] include roles done by superclasses
06:02 dalek doc: review: https://github.com/perl6/doc/commit/1ac7939b2a
06:05 moritz http://doc.perl6.org/type/Array#Method​s%20supplied%20by%20role%20Positional
06:09 moritz r: say Date.today.is-leap-year
06:09 p6eval rakudo ed269f: OUTPUT«True␤»
06:10 moritz r: say Date.is-leap-year(2012)
06:10 p6eval rakudo ed269f: OUTPUT«True␤»
06:10 moritz r: say Date.^mro
06:10 p6eval rakudo ed269f: OUTPUT«Date() Any() Mu()␤»
06:11 nodmonkey joined #perl6
06:13 dalek roast: 623a9ac | coke++ | S1 (3 files):
06:13 dalek roast: pugs fudge
06:13 dalek roast: review: https://github.com/perl6/roast/commit/623a9ac537
06:14 quietfanatic Date is an object that serves as a module?
06:14 * moritz doesn't understand the question
06:14 moritz Date is a class.
06:14 quietfanatic I mean
06:14 quietfanatic it appears like you're using it like it's a module
06:14 quietfanatic just as an extra name qualifier
06:14 quietfanatic you're not actually instantiating it.
06:15 moritz Date has some class methods
06:15 quietfanatic hm
06:15 moritz Date.today is a constructor, for example
06:15 [Coke] static vs. instance methods.
06:15 quietfanatic ah
06:15 moritz and is-leap-year can be both a class method and an instance method
06:15 quietfanatic It's a little messy but I guess it makes sense
06:16 quietfanatic (personally, I'd have had a date module that has seperate classes for dates and times and such)
06:17 moritz quietfanatic: then you'll be happy to learn that we have Date and DateTime :-)
06:18 quietfanatic I mean, I'd have the module and the class be separate
06:18 quietfanatic maybe I just don't like class methods
06:18 moritz I don't see much sense in that
06:19 moritz why should I force you to create an object in order to ask if a year is a leap year, when that question can easily be answered without it?
06:19 quietfanatic you don't
06:19 quietfanatic that'd be a function in the module
06:19 moritz and why should I offer two different APIs for that, depending on whether you want to create an object or not?
06:19 quietfanatic rather than a method on an uninstantiated class
06:19 quietfanatic uh
06:20 quietfanatic You're already offering two different APIs.
06:20 moritz no
06:20 quietfanatic I mean
06:20 moritz it's unified
06:21 quietfanatic It's unified in the sense that it's all methods in the class, yes
06:21 moritz on the object form, the year simply defaults to self.year
06:21 quietfanatic but what I mean is you're offering both an object-oriented and non-OO set of behaviors
06:21 quietfanatic but you're sticking them both on the class
06:22 quietfanatic in fact
06:22 quietfanatic if is-leap-year is not a method
06:22 quietfanatic then you can have is-leap-year default to today, and get rid of today-is-leap-year entirely.
06:23 moritz there is no today-is-leap-year
06:23 quietfanatic oh
06:23 quietfanatic I misread that then
06:23 quietfanatic right
06:23 moritz and both forms are object oriented, in the sense that you get inheritance and all the stuff
06:23 quietfanatic this -> <moritz> r: say Date.today.is-leap-year
06:23 quietfanatic never mind that then
06:23 moritz call methods on a type object is no less OO than calling methods on an instance
06:24 moritz *calling
06:24 * moritz shuts up now
06:24 quietfanatic hmm
06:24 quietfanatic I think I just have different preferences for organization than TimToady
06:24 moritz fwiw TimToady didn't have a hand in the Date class thingy
06:25 quietfanatic whoever made it then
06:25 moritz that's my fault, with much inspiration from p5's Date::Simple
06:25 kaleem joined #perl6
06:25 moritz btw, if you don't like class methods, how would you construct objects?
06:26 quietfanatic No, I misunderstood what was going on there
06:26 moritz ok
06:26 quietfanatic I thought that that Date.today.is-leap-year was Date.today-is-leap-year
06:27 quietfanatic hence my confusion
06:28 GlitchMr joined #perl6
06:33 moritz r: say Date.new(2012, 12, 24).day-of-week
06:33 p6eval rakudo ed269f: OUTPUT«1␤»
06:33 moritz r: say Date.today.day-of-week
06:33 p6eval rakudo ed269f: OUTPUT«4␤»
06:33 * moritz really wants an enum for that
06:46 vinian joined #perl6
06:48 dalek doc: 294903c | moritz++ | lib/Date.pod:
06:48 dalek doc: [Date] docs
06:48 dalek doc: review: https://github.com/perl6/doc/commit/294903c48c
06:55 GlitchMr joined #perl6
07:00 wtw joined #perl6
07:01 moritz jnthn: I found a toqast bug :-)
07:01 moritz jnthn: run   perl6 --doc lib/Date.pod   in an up-to-date perl6/doc checkout
07:02 moritz Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Error while compiling op call: Error while compiling op callmethod: No scope specified or locatable in the symbol table for '$=pod'
07:02 moritz with --ll-exception it shows it's from a block called from nqp;QAST;Compiler;as_post
07:03 moritz hm, seems to be a general problem with $=pod handling, not just in this file
07:04 hoelzro masak: are you around?
07:04 hoelzro I have a favor to ask of a fellow Archer =)
07:06 dalek doc: 8b3be19 | moritz++ | lib/Date.pod:
07:06 dalek doc: [Date] month-in-year, is-leap-year
07:06 dalek doc: review: https://github.com/perl6/doc/commit/8b3be19340
07:06 dalek doc: 561c4f9 | moritz++ | lib/Date.pod:
07:06 dalek doc: [Date] small fixes
07:06 dalek doc: review: https://github.com/perl6/doc/commit/561c4f969c
07:12 brrt joined #perl6
07:34 * mhasch takes cover
07:37 nodmonkey joined #perl6
07:38 ivan`` joined #perl6
07:39 jnthn morning o/
07:40 felher moritz: What do you think of adding <, >, == to Date/DateTime? Maybe via adding .Int() on Date/DateTime. Then one gets <, >, == for free :)
07:40 felher morning jnthn
07:42 tadzik hm
07:42 tadzik there's a date format, which you can sort alphabetically and it Just Works
07:42 tadzik some ISO one I think
07:42 tadzik hello jnthn
07:45 felher I think it should be .Num() instead of .Int(), iirc.
07:46 mhasch alphabetic ordering might fail if different time zones or dst jumps are involved (so would naive mappings to integers)
07:55 jnthn moritz: Hmm, and we had no spectests for that?
07:55 jnthn oh, --doc...
07:56 bbkr joined #perl6
07:58 GlitchMr I would agree with conversion to int for date. Even JavaScript does that.
07:58 GlitchMr >>> +new Date
07:58 GlitchMr 1343289509466
08:00 am0c joined #perl6
08:00 mhasch looks like UTC milliseconds
08:04 spider-mario joined #perl6
08:05 mhasch in other words, can only work with dates that have a fixed relation to UTC and at most millisecond granularity
08:06 sorear except that Perl 6 does not use UTC internally.
08:06 mhasch I don't know the current Date/DateTime implementation but wonder whether such assumptions are part of the abstraction
08:07 mhasch there you have it, then
08:07 sorear what do you mean?
08:08 mhasch I mean GlitchMr's suggestion would not match to a more general DateTime concept
08:09 GlitchMr If you convert '12' and '12.0' to integer, would you expect they would be different values?
08:10 sorear mhasch: perl 6 datetimes are TAI seconds, expressed as (Fat)Rat
08:14 mhasch sorear: Oh, that's nice.  This would make ordering simple, but guessing the time based on (incomplete) information of the OS hard.
08:16 sorear mhasch: yeah, especially for times in the future
08:17 dalek perl6.org: 19e43b6 | GlitchMr++ | source/whatever/index.html:
08:17 dalek perl6.org: Fix #5 by removing link to removed repository.
08:17 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/19e43b6dac
08:17 dalek perl6.org: 3fcaf5d | GlitchMr++ | source/compilers/index.html:
08:17 dalek perl6.org: Fix #4 by fixing link to lead to correct place
08:17 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/3fcaf5df2c
08:18 mhasch sorear: ... as most POSIX-like OSs run UTC clocks rather than TAI, which is unfortunate.
08:18 sorear mhasch: erm, I'm talking about Instant
08:19 sorear DateTime is civil time
08:19 sorear and I don't know enough about perl 6 DateTime to comment
08:19 birdwindupbird joined #perl6
08:19 sudokode joined #perl6
08:21 mhasch I'll look at the p6 modules before commenting further.  Civil time is one heck of a can of worms.
08:23 GlitchMr Just wondering, is there any page with information which modules compile?
08:23 sorear sleep&
08:24 tadzik GlitchMr: http://tjs.azalayah.net/index.html maybe?
08:24 GlitchMr yeah, this page :)
08:24 tadzik yep :)
08:24 tadzik I've updated it yesterday or so
08:26 crab2313 joined #perl6
08:26 GlitchMr ok, now I know where I could have fun and try to fix modules :)
08:27 GlitchMr Missing or wrong version of dependency 'src/gen/CORE.setting'
08:27 GlitchMr I guess that this means - run bootstrap.pl again
08:31 GlitchMr perl6: / a ** b /
08:31 p6eval niecza v19-13-g442e075: OUTPUT«Potential difficulties:â�¤  Unsupported use of atom ** b as separator; nowadays please use atom+ % b at /tmp/cB7no4r3sg line 1:â�¤------> [32m/ a ** b[33mâ��[31m /[0mâ�¤â�¤Â»
08:31 p6eval ..rakudo ed269f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " b /"␤»
08:31 tadzik yep
08:31 GlitchMr perl6: / ^ <line> ** \n <empty_line>? $ /
08:31 p6eval niecza v19-13-g442e075: OUTPUT«Potential difficulties:â�¤  Unsupported use of atom ** \n as separator; nowadays please use atom+ % \n at /tmp/K9MCTjAf1X line 1:â�¤------> [32m/ ^ <line> ** \n[33mâ��[31m <empty_line>? $ /[0mâ�¤â�¤Â»
08:31 p6eval ..rakudo ed269f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " \\n <empty"␤»
08:32 tadzik GlitchMr: could you try the offline-bootstrap branch of panda?
08:32 GlitchMr offline-bootstrap?
08:32 tadzik yep
08:32 moritz felher: +1 to Date comparison ops, -1 to .Int
08:33 moritz felher: .Int requires us to define an epoch, and that can only be very arbitrary
08:33 GlitchMr Just wondering, when rakduo will have run(), will you change shell to run?
08:33 kresike joined #perl6
08:33 GlitchMr rakudo*
08:33 kresike hello all you happy perl6 people
08:34 moritz GlitchMr: shell and run will remain separate, they do different things
08:34 felher moritz: i see :)
08:35 moritz (btw you can already compare dates with lt/gt/eq)
08:35 birdwindupbird joined #perl6
08:35 GlitchMr I meant, panda currently uses shell
08:35 cognominal joined #perl6
08:36 moritz oh, you meant if we change panda
08:36 moritz probably, eventually
08:37 dakkar joined #perl6
08:37 felher It seems i can already compare them with <, >, ==, even if not specced:
08:37 felher r: for ((Date.new, Date.today) X (Date.new, Date.today)).tree { say "{.[0]} < {.[1]}: {.[0] < .[1]}" }
08:37 p6eval rakudo ed269f: OUTPUT«2012-12-24 < 2012-12-24: False␤2012-12-24 < 2012-07-26: False␤2012-07-26 < 2012-12-24: True␤2012-07-26 < 2012-07-26: False␤»
08:41 dalek doc: 96cbd0c | moritz++ | lib/Date.pod:
08:41 dalek doc: [Date] move synopsis to the right place
08:41 dalek doc: review: https://github.com/perl6/doc/commit/96cbd0c1f0
08:41 moritz felher: ah yes, we have the ops in rakudo already
08:45 dalek doc: 2a183cf | moritz++ | lib/Date.pod:
08:45 dalek doc: [Date] remove empty heading
08:45 dalek doc: review: https://github.com/perl6/doc/commit/2a183cfa1f
08:47 dalek doc: 34f72c3 | moritz++ | lib/Date.pod:
08:47 dalek doc: note no date comparisons, felher++
08:47 dalek doc: review: https://github.com/perl6/doc/commit/34f72c3bba
08:59 dalek doc: 1b1a0b1 | moritz++ | htmlify.pl:
08:59 dalek doc: [htmlify] fix URL munging
08:59 dalek doc: review: https://github.com/perl6/doc/commit/1b1a0b1619
09:14 GlitchMr perl6: ({'c' => 'd'}, {'a' => 'b'}).perl.say; (('c' => 'd').hash, ('a' => 'b').hash).perl.say;
09:14 p6eval rakudo ed269f: OUTPUT«({"c" => "d"}, {"a" => "b"})␤(("c" => "d").hash, ("a" => "b").hash)␤»
09:14 p6eval ..niecza v19-13-g442e075: OUTPUT«({"c" => "d"}, {"a" => "b"})␤({"c" => "d"}.hash, {"a" => "b"}.hash)␤»
09:20 GlitchMr perl6: (~{'a'=>1}.WHICH,~('b'=>2).hash.WHICH).perl.say
09:20 p6eval niecza v19-13-g442e075: OUTPUT«("[-779040]", "[25B2C4C0]")␤»
09:20 p6eval ..rakudo ed269f: OUTPUT«("Hash|-1264270605", "Hash|-1261155604")␤»
09:20 GlitchMr perl6: (~{'a'=>1}.WHAT,~('b'=>2).hash.WHAT).perl.say
09:21 p6eval niecza v19-13-g442e075: OUTPUT«Unhandled exception: Cannot unbox a VarHash from an object of repr P6opaque␤  at /home/p6eval/niecza/lib/CORE.setting line 1843 (Hash.list @ 4) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1847 (Hash.Str @ 4) ␤  …
09:21 p6eval ..rakudo ed269f: OUTPUT«use of uninitialized value of type Hash in string context  in block  at /tmp/TQkKLYXhsA:1␤␤use of uninitialized value of type Hash in string context  in block  at /tmp/TQkKLYXhsA:1␤␤("", "")␤»
09:21 GlitchMr perl6: ({'a'=>1}.WHAT,('b'=>2).hash.WHAT).perl.say
09:21 p6eval rakudo ed269f, niecza v19-13-g442e075: OUTPUT«(Hash, Hash)␤»
09:21 GlitchMr perl6: ({'a'=>1},('b'=>2).hash).perl.say
09:21 p6eval rakudo ed269f: OUTPUT«({"a" => 1}, ("b" => 2).hash)␤»
09:21 p6eval ..niecza v19-13-g442e075: OUTPUT«({"a" => 1}, {"b" => 2}.hash)␤»
09:21 GlitchMr I'm already confused
09:22 GlitchMr They claim to be Hash, but after using .perl they are different
09:24 araujo joined #perl6
09:31 snearch joined #perl6
09:35 brrt left #perl6
09:36 GlitchMr perl6: class Sentence {has Str $.subject;has Str $.predicate;has Str $.object;}; Sentece.new(:subject<dog>, :predicate:<bites>, :object<man>).perl.print;
09:36 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Multi colonpair syntax not yet understood at /tmp/5nJgQqwjCA line 1:â�¤------> [32mce.new(:subject<dog>, :predicate:<bites>[33mâ��[31m, :object<man>).perl.print;[0mâ�¤â�¤Undeclared name:â�¤  'Sentece' used at line 1â�¤â�¤Unhandled exce…
09:36 p6eval ..rakudo ed269f: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2, near ":<bites>, "␤»
09:36 GlitchMr perl6: class Sentence {has Str $.subject;has Str $.predicate;has Str $.object;}; Sentence.new(:subject<dog>, :predicate:<bites>, :object<man>).perl.print;
09:36 p6eval niecza v19-13-g442e075: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Multi colonpair syntax not yet understood at /tmp/zBTVuZDoRl line 1:â�¤------> [32mce.new(:subject<dog>, :predicate:<bites>[33mâ��[31m, :object<man>).perl.print;[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecz…
09:36 p6eval ..rakudo ed269f: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2, near ":<bites>, "␤»
09:38 jnthn you have :predicate:<bites> but probably wanted :predicate<bites>
09:40 dakkar_ joined #perl6
09:42 daxim joined #perl6
09:43 mikemol joined #perl6
09:44 masak good almost-noon, #perl6
09:45 tadzik masak! \o/
09:46 hoelzro masak: good almost-noon
09:47 hoelzro masak: I have a favor to ask off you as a fellow Arch user =)
09:47 hoelzro in the interest of debugging the crash I see on my machine
09:51 masak what can I do for you, sir?
09:52 hoelzro masak: would you mind building a rakudo-star package for me, so I can test to see if my build environment is b0rked?
09:53 hoelzro (along with an nqp package)
09:53 masak download the latest Rakudo Star, build it, gzip it, and send it to you?
09:54 hoelzro I was thinking more along the lines of a full-on Arch package, but basically, yes
09:54 hoelzro I've tried building Rakudo Star under my user, as well as a "test" user, but I keep finding that crash
09:55 masak I am not so familiar with full-on Arch packages.
09:55 hoelzro oh, I can send you the PKGBUILDS after I get home from work
09:55 masak oh! speaking of which, is there to be a Star release this week?
09:55 hoelzro you would just need to do "cd nqp/ ; makepkg ; cd ../rakudo-star ; makepkg" and send me the resulting packages
09:56 masak ok. I'll do that.
09:56 masak after building it all.
09:57 hoelzro that would be much appreciated =)
09:57 hoelzro I'll send you the PKGBUILDs after work
09:57 hoelzro ~ 19:00 or so, UTC +2
09:58 masak oh, you're on this side of the pond?
09:58 hoelzro mhmm
09:58 masak I don't know why I'm surprised by that.
09:58 hoelzro well, I'm not from here =)
09:58 masak :)
09:58 hoelzro I used to live on the other side
09:58 hoelzro until a few months ago
09:59 masak ah, ok.
09:59 hoelzro so I'm not surprised at your...umm, surprise.
10:00 moritz masak: "Yapsi issues monthly releases and is actively developed" says perl6.org/compilers/
10:00 moritz masak: should I delete the entry?
10:02 tadzik random thought: is split() lazy?
10:02 moritz tadzik: yes
10:03 dalek roast: f3c9e75 | (Jason Cole)++ | S02-lexical-conventions/comments.t:
10:03 dalek roast: Bulletproof comment tests against parse failures
10:03 dalek roast: review: https://github.com/perl6/roast/commit/f3c9e75747
10:03 dalek roast: 59c9d30 | (Jason Cole)++ | S02-lexical-conventions/comments.t:
10:03 dalek roast: Remove unused tests of obsoleted feature :)
10:03 dalek roast: review: https://github.com/perl6/roast/commit/59c9d30637
10:04 moritz diakopter: do you see enough hope for sprixel to have its entry remain on perl6.org/compilers/ ?
10:04 * moritz wants do a bit of cleanup
10:17 nodmonkey joined #perl6
10:24 masak moritz: yes, please delete the entry.
10:24 masak Yapsi may or may not have a revival, but right now it sees neither active development nor monthly releases.
10:28 masak hoelzro: http://masak.org/carl/tmp/rak​udo-star-2012.06-built.tar.gz
10:28 hoelzro masak: awesome, thanks!
10:28 hoelzro does that include NQP as well?
10:28 masak the whole shebang. nqp, parrot, installed artifacts...
10:28 hoelzro awesome
10:28 hoelzro thanks much
10:29 masak hope it helps.
10:29 masak the file will remain there for a day or so.
10:29 hoelzro I just downloaded it to my work machine, so you can clear it if you'd like
10:45 masak done.
10:46 fhelmberger joined #perl6
10:49 dalek perl6.org: 31f5759 | moritz++ | source/compilers/index.html:
10:49 dalek perl6.org: [compilers] remove sprixel and Yapsi
10:49 dalek perl6.org:
10:49 dalek perl6.org: they do not seem to be actively developed at the moment
10:49 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/31f575951f
10:50 GlitchMr perl6: class Sentence {has Str $.subject;has Str $.predicate;has Str $.object;}; Sentence.new(:subject<dog>, :predicate<bites>, :object<man>).perl.print;
10:50 p6eval niecza v19-13-g442e075: OUTPUT«Sentence.new(...)»
10:50 p6eval ..rakudo ed269f: OUTPUT«Sentence.new(subject => "dog", predicate => "bites", object => "man")»
10:53 tadzik haha. Reminds me of "Man bites dog"
10:53 tadzik crazy film
10:54 masak bet it's about news.
10:54 tadzik nope, it's about a killer :)
10:54 masak oh, k.
10:57 masak <flussence> is(e, derivative(e)) # there you go :)
10:57 masak surely not. the derivative of a constant function is always 0.
10:59 mtk joined #perl6
11:00 masak quietfanatic++ # first post^Wcommit
11:00 tadzik oh, I was wondering who Jason Cole is
11:00 tadzik quietfanatic++
11:02 masak not the same person, I'm pretty sure.
11:02 masak tadzik: quietfanatic's last name is "Wall", last I check'd.
11:02 tadzik hm
11:02 tadzik okay, I'm confused then :)
11:03 masak tadzik: and if you've missed that, you might want to re-read *all* the backlog, because it'll be funnier this time :P
11:04 tadzik re-read ALL THE BACKLOG
11:09 fhelmberger_ joined #perl6
11:17 erkan joined #perl6
11:17 erkan joined #perl6
11:19 masak today is my Perl 6 day.
11:19 masak I'm gonna spend it doing macros.
11:20 jnthn How do the macros feel about this plan?
11:20 tadzik \o/
11:20 masak jnthn: they're all jittery with excitement.
11:21 masak I task the rest of the channel with coming up with all kinds of uses for {{{$ast}}} in the meantime.
11:22 jnthn .oO( Macros, know your place...holder! )
11:23 masak :P
11:23 moritz baed on name and timing, I'd expect Coleoid = Jason Cole
11:24 masak TimToady: return quasi { say $a + {{{ $ast }}} } vs return quasi [ say $a + [[[ $ast ]]] ] -- and all other kinds of quasiquote delimiters.
11:24 moritz *based
11:24 masak TimToady: propose to remove that degree of freedom and just retain 'return quasi { say $a + {{{ $ast }}} }'
11:27 masak TimToady: you say yourself (or that's how I read it, anyway), that you can't nest quasiquotes anyway (and expect something useful to come of it, that is): http://irclog.perlgeek.de/​perl6/2011-10-27#i_4624005
11:27 masak if that's so, I don't see why we bother with providing a gazillion different delimiters for quasi blocks in particular.
11:27 masak other than "This year's spring fashion is <<< $ast >>>". :)
11:32 spider-mario joined #perl6
11:36 masak TimToady: in other news, I'm looking at ¤term:() and not feeling an immediate shock of disgust or panic. which is an improvement. :)
11:38 masak (but jnthn still made a number of good points against that syntax that haven't been addressed, and that are severe enough to make me doubt taking that road in the spec. I think I put those points in the clogs, and I could go dig them up if it helps.)
11:39 Guest81693 joined #perl6
11:39 colomon joined #perl6
11:40 dalek roast: 33b7005 | (Solomon Foster)++ | S32-str/tc (2 files):
11:40 dalek roast: Add tests for code points greater than 0xFFFF.
11:40 dalek roast: review: https://github.com/perl6/roast/commit/33b7005a45
11:42 masak I believe one of the points was "yes, that's all well and good, but how the heck do you *pass* an operator to a macro?"
11:43 masak which is not a show-stopper, admittedly, but something to think about.
11:43 masak it might be that all uses of ¤infix:() will contain something like $ast.dig-around-to-find-an-infix inside the parens.
11:44 GlitchMr perl6: class Cake { has $!flavor }; Cake.new(:flavor<Strawberry>).perl.print
11:44 p6eval rakudo ed269f: OUTPUT«Cake.new()»
11:44 p6eval ..niecza v19-13-g442e075: OUTPUT«Cake.new(...)»
11:44 jnthn .u  ¤
11:44 phenny U+0020 SPACE ( )
11:44 phenny U+00A4 CURRENCY SIGN (¤)
11:45 GlitchMr perl6: class Cake { has $!flavor; method checkFlavor() { $!flavor } }; Cake.new(:flavor<Strawberr​y>).checkFlavor.perl.print
11:45 p6eval rakudo ed269f, niecza v19-13-g442e075: OUTPUT«Any»
11:46 masak GlitchMr: you can't initialize accessor-less attributes through the default .new
11:46 dalek niecza: be8bdf4 | (Solomon Foster)++ | lib/ (2 files):
11:46 dalek niecza: Add tc, tclc, and tcuc.
11:46 dalek niecza: review: https://github.com/sorear/niecza/commit/be8bdf4f52
11:46 dalek niecza: 051783d | (Solomon Foster)++ | / (2 files):
11:46 dalek niecza: Turn on tc.t and tclc.t.
11:46 dalek niecza: review: https://github.com/sorear/niecza/commit/051783dbbe
11:47 masak colomon++
11:48 colomon masak: code's still not completely elegant and can probably be optimized a bit, but they pass all the tests, including the new ones I wrote.  :)
11:48 phenny colomon: 25 Jul 18:09Z <sorear> tell colomon cool!
11:48 masak rn: say <perl ruby python>.roll ~ <jam hack jazz>.roll
11:48 p6eval rakudo ed269f: OUTPUT«pythonjam␤»
11:48 p6eval ..niecza v19-13-g442e075: OUTPUT«rubyjazz␤»
11:48 masak :)
11:49 colomon now to see how many walleye we can catch before the rain comes in....
11:49 GlitchMr perl6: say "{<perl ruby python>.roll}{<jam hack jazz>.roll}" # there is more than one way to do it
11:49 p6eval rakudo ed269f, niecza v19-13-g442e075: OUTPUT«rubyjazz␤»
11:49 GlitchMr rubyjazz again?
11:50 masak npr: say "What ", <rakudo niecza pugs>.pick, " says isn't true."
11:50 p6eval rakudo ed269f, niecza v19-13-g442e075: OUTPUT«What niecza says isn't true.␤»
11:50 p6eval ..pugs: OUTPUT«What rakudo says isn't true.␤»
11:50 masak Niecza went Epimenides today.
11:51 masak ...which dragged the other two into the whirlpool, I guess.
11:51 masak at least if paradoxicality is toxic, like NaN.
11:52 kresike compilers pointing fingers at each other ... cool :)
11:54 masak here in #perl6, we produce, bottle, and ship cool.
11:54 GlitchMr npr: say "What ", <rakudo niecza pugs>.pick, " says isn't true."
11:54 p6eval niecza v19-13-g442e075, pugs: OUTPUT«What niecza says isn't true.␤»
11:54 p6eval ..rakudo ed269f: OUTPUT«What rakudo says isn't true.␤»
11:55 masak today's mini-challenge: how many of possible outputs are paradoxical, and how many are paradox-free? write a Perl 6 program to find out.
11:56 * masak does it
11:56 GlitchMr Sounds like a fun challenge
11:58 GlitchMr for 1 .. 3 X 1 .. 3 X 1 .. 3
11:58 GlitchMr Am I doing it correctly?
12:04 masak I'm getting this: https://gist.github.com/3181677
12:04 masak 19 out of 27 possible outputs are paradoxical.
12:05 GlitchMr ok
12:09 felher yes, same here # http://bpaste.net/show/36899/
12:11 kresike masak, if you post the challenge, it doesn't seem fair that you participate in solving it :)
12:13 masak felher: sorry, you seem to be missing the two cases of 3-cycle: prn and rnp.
12:13 felher Oh, i think there more possibilites to be paradox
12:13 masak felher: yes, see https://gist.github.com/3181677
12:14 masak kresike: why not? :)
12:14 masak the outcome of it is still nice code and a learning experience.
12:16 jnthn I'm not sure my solution to yesterday's challenge was "nice code" :P
12:16 masak it was "nice" in a dimension that does not necessarily involve syntax :P
12:17 jnthn .oO( Nicely insane )
12:18 masak anyway, kudos to anyone who produces a solution involving something like `my $is-paradoxical = ?$graph.cycles.grep(*.edges % 2);`
12:18 masak clearly that's the cool way to do it. :)
12:23 masak there's a nice analogy here, by the way, between statements about who's lying and gears making adjacent gears turn the other way.
12:23 masak (except that a gear cannot be adjacent to itself the way a statement can say that it itself is lying)
12:24 masak but any cycle of an odd number of gears will also not budge, like a physical paradox.
12:27 tadzik masak: what was your opinion on @thing vs. @things?
12:27 jnthn .oO( But my cycle has 21 gears! )
12:31 * moritz likes @things, but if the name applies to the array itself (and not the contents), then singular (like, @queue)
12:31 masak bicycles are encumbered enough as it is, with Zeno's paradoxen and whatnot. ;)
12:41 felher masak: ah, yes, cycles #updated: http://bpaste.net/show/36904/
12:43 felher r: (1,2,3).map: { return 1 }
12:43 p6eval rakudo ed269f:  ( no output )
12:43 felher r: say (1,2,3).map: { return 1 }
12:43 p6eval rakudo ed269f: OUTPUT«Can not get non-existent attribute '$!storage' on class 'Parcel'␤  in method reify at src/gen/CORE.setting:4981␤  in method reify at src/gen/CORE.setting:4976␤  in method gimme at src/gen/CORE.setting:5357␤  in method eager at src/gen/CORE.setting:5336␤  in method …
12:44 * masak submits rakudobug
12:44 felher \o/ :)
12:44 masak felher: Z==, nice.
12:45 jnthn r: say (1,2,3).map: { 1 }
12:45 p6eval rakudo ed269f: OUTPUT«1 1 1␤»
12:46 jnthn hmm...it should really complain about that return.
12:46 masak sure, but not in that exact way, perhaps.
12:46 jnthn Well, I mean
12:46 jnthn r: return 1
12:46 p6eval rakudo ed269f: OUTPUT«Attempt to return outside of any Routine␤  in block  at src/gen/CORE.setting:373␤  in block  at /tmp/lAMxmoUABa:1␤␤»
12:46 mucker joined #perl6
12:46 jnthn It should do that.
12:46 jnthn I don't really understand why it doesn't.
12:54 PacoAir joined #perl6
12:55 moritz because it tries its dynamic scope too?
12:56 jnthn Oh...
12:56 jnthn Hm.
12:56 jnthn I'm not sure if it should.
12:56 jnthn It's certainly confusing if it does.
12:56 jnthn Plus explains the above output very well too.
12:56 moritz I think it shouldn't
12:57 moritz afaict we could even complain at compile time about this one
12:57 moritz "look, we're not in a routine, but you tried to return"
12:57 moritz not that it matters much, since most real-world code is written inside routines
13:00 felher And now for something completely different:
13:00 felher r: say [[1,2,0]].classify: -> $rpn { $rpn eqv [1,2,0]|[2,0,1] };
13:00 p6eval rakudo ed269f: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub METAOP_TEST_ASSIGN:<//> at src/gen/CORE.setting:11672␤  in block  at src/gen/CORE.setting:1806␤  in sub AUTOTHREAD at src/gen/CORE.setting:1798␤  in sub METAOP_TEST_ASSIGN:<//> at src/gen/CORE.setting:11672␤ …
13:01 * felher needs a "don't shoot the messenger" t-shirt :)
13:03 moritz r: say [1,2,0] eqv [1,2,0]|[2,0,1]
13:03 p6eval rakudo ed269f: OUTPUT«any(True, False)␤»
13:03 moritz felher: ah, might be easy to fix
13:03 moritz maybe just some variable that needs a Mu type instead of Any
13:04 drbean joined #perl6
13:06 felher :)
13:06 tokuhiro_ joined #perl6
13:07 * masak submits rakudobug
13:08 masak r: say [[1,2,0]].classify: -> $rpn { $rpn eqv [1,2,0] }
13:08 p6eval rakudo ed269f: OUTPUT«True      1 2 0␤»
13:08 masak r: say [1,2,3,4,5].classify: -> $rpn { $rpn eqv 1|3 }
13:08 p6eval rakudo ed269f: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub METAOP_TEST_ASSIGN:<//> at src/gen/CORE.setting:11672␤  in block  at src/gen/CORE.setting:1806␤  in sub AUTOTHREAD at src/gen/CORE.setting:1798␤  in sub METAOP_TEST_ASSIGN:<//> at src/gen/CORE.setting:11672␤ …
13:09 moritz r: say (1, 2).classify: -> $x { 1|2 }
13:09 p6eval rakudo ed269f: OUTPUT«Cannot assign to a readonly variable or a value␤  in sub METAOP_TEST_ASSIGN:<//> at src/gen/CORE.setting:11672␤  in block  at src/gen/CORE.setting:1806␤  in sub AUTOTHREAD at src/gen/CORE.setting:1798␤  in sub METAOP_TEST_ASSIGN:<//> at src/gen/CORE.setting:11672␤ …
13:09 masak moritz++
13:09 moritz r: say (1, 2).classify: 1|2
13:09 p6eval rakudo ed269f: OUTPUT«Nominal type check failed for parameter '&t'; expected Callable but got Int instead␤  in method classify at src/gen/CORE.setting:1084␤  in block  at src/gen/CORE.setting:1806␤  in sub AUTOTHREAD at src/gen/CORE.setting:1798␤  in method classify at src/gen/CORE.sett…
13:10 masak it's probably returning the junction out of the .classify block that causes trouble.
13:10 GlitchMr perl6: sub printer { print 1; map { return 1 }, 1; print 2; }; printer
13:10 p6eval niecza v19-15-g051783d: OUTPUT«1»
13:10 p6eval ..rakudo ed269f: OUTPUT«12»
13:11 moritz rakudo looks wrong here
13:11 moritz masak: correct
13:13 moritz r: my %h; %h{'a' | 'b'} = 'foo'; say %h.perl;
13:13 felher moritz: why? Because isn't lazy in sink-context?
13:13 p6eval rakudo ed269f: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤  in sub AUTOTHREAD_METHOD at src/gen/CORE.setting:1836␤  in <anon> at src/gen/Metamodel.pm:2296␤  in block  at /tmp/ZpEUfE3dWU:1␤␤»
13:13 felher *Because map
13:13 moritz felher: because the 'return' should return from sub printer
13:13 felher moritz: yeah, but isn't map lazy?
13:14 moritz felher: oh right, I forgot that
13:14 moritz then rakudo++
13:16 felher masak++ btw, for his endless effort of submitting bugs and issues :)
13:16 bluescreen10 joined #perl6
13:24 GlitchMr perl6: sub printer { print 1; { return 1 }(); print 2 }; printer
13:24 p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«1»
13:38 skids joined #perl6
13:39 masak felher: I don't see it as effort. it's more of a "bringing balance to the force" kind of thing. :) I'm a cog in a machinery which flows more easily if I shuttle data along my particular section of the tubes.
13:39 masak to mix a half a dozen metaphors.
13:40 felher masak: :D
13:43 moritz balance of the force tubes!
13:43 PerlJam this was a shock to me this morning: http://zag.ru/en/2012/208/a1/-WriteAt-m​y-opensource-startup-on-Perl-6-Pod.html
13:43 PerlJam (but in a good way :)
13:43 UncleFester6 joined #perl6
13:44 * moritz submits to reddit
13:44 moritz PerlJam++
13:45 UncleFester6 r: gather { return 1 }
13:45 p6eval rakudo ed269f:  ( no output )
13:45 UncleFester6 r: say gather { return 1 }
13:45 p6eval rakudo ed269f: OUTPUT«Can not get non-existent attribute '$!storage' on class 'Parcel'␤  in method reify at src/gen/CORE.setting:4981␤  in method reify at src/gen/CORE.setting:4976␤  in method gimme at src/gen/CORE.setting:5357␤  in method eager at src/gen/CORE.setting:5336␤  in method …
13:45 masak zag++
13:45 UncleFester6 masak: add this to your map ticket?
13:45 * masak adds it
13:48 fhelmberger joined #perl6
13:55 jnthn zag++ # nice!
13:58 JimmyZ joined #perl6
13:58 masak TimToady: nothing calls term:unquote in STD.pm6.
14:01 UncleFester6 joined #perl6
14:01 jnthn masak: It's a protoregex, innit?
14:01 jnthn A candidate for <term>
14:02 tokuhiro_ joined #perl6
14:05 felher Say i have a grammar G and an action class A. Can i do sanity checks in A while parsing and, if they fail, let the parse fail just as if it failed because of not matching the grammar?
14:06 nightlord joined #perl6
14:06 jnthn Hmmm
14:06 jnthn How soon does it need to fail?
14:06 PerlJam felher: depending on what you mean by "let the parse fail", probably
14:06 moritz felher: the current best practise is to die in the actions
14:07 moritz felher: and also to die from the grammar in helpful ways if the parse fails
14:07 moritz otherwise the response will just be "parse failed", which isn't too helpful
14:07 jnthn I guess there's always having a :my $*SANE = 1; somewhere, setting $*SANE = 0 in the actions, and having something further up do a <?{ $*SANE }>. But what moritz++ is saying is important.
14:08 jnthn (As in, prefer doing what moritz suggested to what I did.)
14:08 jnthn (In the common case. Maybe you have an interesting exception.)
14:08 tokuhiro_ joined #perl6
14:08 felher Okay, thnx folks :)
14:09 masak jnthn: oh!
14:10 masak jnthn: clearly I need more coffee. :)
14:11 thou joined #perl6
14:19 GlitchMr perl6: sub inconstant-constant($value) { my $constant = $value; return sub () is rw { $constant } }; my &constant = inconstant-constant 42; print constant
14:19 p6eval rakudo ed269f: OUTPUT«===SORRY!===␤Missing initializer on constant declaration␤at /tmp/H4lZr3G2Oa:1␤»
14:19 p6eval ..niecza v19-15-g051783d: OUTPUT«42»
14:19 GlitchMr Missing initializer?
14:21 GlitchMr perl6: sub inconstant-constant($value) { my $constant = $value; return sub () is rw { $constant } }; my &the-answer = inconstant-constant 42; say the-answer; the_answer() = 24; say the-answer;
14:21 p6eval rakudo ed269f: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&the_answer' called (line 1)␤»
14:21 p6eval ..niecza v19-15-g051783d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'the_answer' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1402 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) â�¤  a…
14:21 GlitchMr perl6: sub inconstant-constant($value) { my $constant = $value; return sub () is rw { $constant } }; my &the-answer = inconstant-constant 42; say the-answer; the-answer() = 24; say the-answer;
14:21 p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«42␤24␤»
14:22 GlitchMr perl6: sub inconstant-constant($value) { my $constant = $value; return sub () is rw { $constant } }; my &the-answer = inconstant-constant 42; say the-answer; the-answer = 24; say the-answer;
14:22 p6eval niecza v19-15-g051783d: OUTPUT«[31m===[0mSORRY![31m===[0m��Preceding context expects a term, but found infix = instead at /tmp/nCaD_Yt5FW line 1:�------> [32mconstant 42; say the-answer; the-answer [33m�[31m= 24; say the-answer;[0m��Parse failed��»
14:22 p6eval ..rakudo ed269f: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix = instead␤at /tmp/Qw3CYMrR9y:1␤»
14:23 GlitchMr What's wrong with this?
14:24 masak GlitchMr: 'the-answer = 24;'
14:24 GlitchMr But what's wrong with it?
14:24 masak GlitchMr: 'the-answer', when used as a listop like you're using it, expects a term.
14:25 masak GlitchMr: it's all there in the error message.
14:25 masak GlitchMr: think of something like 'say 42'. '42' is a term.
14:25 masak GlitchMr: 'say =' is a parse error.
14:25 GlitchMr But why I cannot assign to function?
14:25 masak BECAUSE YOU'RE DOING A PARSE ERROR
14:26 masak you can't talk about the semantics of your program when your program doesn't parse.
14:26 GlitchMr But shouldn't = infix operator accept anything on left side?
14:27 GlitchMr 2 = 2 works (it doesn't do syntax error)
14:27 masak it's like saying "Why do people bring me coffee when I say 'please bring me coffee', but not when I say 'oooooook boogedly conk!'?"
14:27 spider-mario joined #perl6
14:27 REPLeffect joined #perl6
14:27 masak GlitchMr: you seem to have a faulty picture of how the parser sees your program.
14:27 jnthn Yes, but 2 doesn't expect to parse a list afterwards.
14:28 GlitchMr But, I can do: say say, say
14:28 masak it doesn't go "oh! there's a '=' here, then I bet what comes before it should be assigned to."
14:28 masak it goes "oh! there was a listop there, so now what comes after must be a term."
14:28 GlitchMr But... comma isn't term
14:28 masak GlitchMr: 'say' is a term. there's no contradiction there.
14:29 nodmonkey joined #perl6
14:29 masak GlitchMr: please slow down and think instead of arguing for a bit.
14:29 jnthn An argument list is a term. That's why you can write the comma.
14:29 GlitchMr Oh, ok
14:29 GlitchMr Confusing
14:29 masak no.
14:29 GlitchMr But... say + say works too...
14:29 GlitchMr + isn't argument list, is it?
14:29 masak + is a *prefix*.
14:30 masak you're not slowing down and thinking!
14:30 * geekosaur has a Babbage quote in mind
14:30 GlitchMr oh, I see
14:30 GlitchMr So, I cannot do "say * say"
14:30 masak no, that's TTIAR.
14:30 masak a whatever plus a say.
14:31 masak GlitchMr: here's a helpful rule: the nature of a thing that was parsed does not changed based on things that are parsed later.
14:31 masak GlitchMr: so because 'say *' is 'say Whatever.new', the '*' there cannot be multiplicating in 'say * say'.
14:31 masak multiplication*
14:32 masak does not change*
14:32 jnthn It's nice. It means you can read programs left to right and not have to go back and re-assess things you understood already.
14:33 masak and the computer can do the same. backtracking is slow -- and unintuitive.
14:33 masak it's funny -- backtracking is a really powerful construct, and one of the reasons we like regexes. but if your regex needs to backtrack a lot, you're probably doin' it rong.
14:33 GlitchMr I through that "a = 'b'" is simply forbidden because it would be confusing
14:34 masak GlitchMr: it's OK is 'a' isn't a listop.
14:34 masak r: constant a = 42; a = 'b'
14:34 p6eval rakudo ed269f: OUTPUT«Cannot assign to a non-container␤  in block  at /tmp/XIavHDdI0Y:1␤␤»
14:34 masak it runs. no parse error.
14:34 GlitchMr oh, ok
14:35 masak (we could catch that one at compile time, but we don't, presently)
14:37 GlitchMr perl6: sub inconstant-constant($name, $value) { my &infix:[$name] = sub ($a, $b) is rw { $value } }; inconstant-constant('cons', 42); print cons
14:37 p6eval niecza v19-15-g051783d: OUTPUT«[31m===[0mSORRY![31m===[0mâ​�¤â�¤System.NullReferenceException: Object reference not set to an instance of an objectâ�¤  at Builtins.start_iter (Niecza.Variable thing) [0x00000] in <filename unknown>:0 â�¤  at Builtins.array_constructor (Niecza.Variable bits) […
14:37 p6eval ..rakudo ed269f: OUTPUT«===SORRY!===␤:[$name] cannot be resolved at compile time␤»
14:37 masak I like Rakudo's error message there.
14:38 masak you're trying to send the value 'cons' back through time.
14:39 GlitchMr I guess that Perl 6 couldn't do it... for now
14:39 masak even if that were physically possible, and you succeeded in defining &infix:<cons>... you're still using it in term position later, after 'print'.
14:39 masak GlitchMr: I'm unable to guess whether you're trying to be funny, or not getting it. assuming the former.
14:39 kresike a compiler avoiding time travel ... cool :)
14:40 masak no, Perl 6 doesn't send information back from runtime to compile time. nor are there plans for it to do that.
14:40 masak *because it is impossible*.
14:41 GlitchMr Well, impossible as long you care about performance. But well, I guess it's correct.
14:41 masak no, impossible as long as you care about the laws of time and entropy.
14:41 tadzik :)
14:41 masak when we're finally in runtime, compile time is over.
14:41 masak at already happened.
14:41 masak it belongs to the *past*.
14:41 masak you know, the thing that generally cannot be changed, unless you're Marty McFly.
14:42 GlitchMr Actually, I'm going to make language where it will be possible
14:42 GlitchMr Just to do it
14:42 masak let us know how it goes.
14:43 jnthn It'd be like an INTERCAL where the COMEFROM crosses the compile time / run time boundary
14:44 masak that *would* be how to implement reflection in INTERCAL...
14:45 geekosaur hee
14:47 flussence .oO( time travel would be an interesting way to implement threads... )
14:48 awwaiid joined #perl6
14:49 SamuraiJack_ joined #perl6
14:49 xinming_ joined #perl6
14:49 masak &
14:51 tadzik where in the spec is the signature unpacking magic?
14:52 moritz tadzik: I guess S06
14:52 bluescreen10 joined #perl6
14:59 jnthn yes, S06
15:02 jnthn ok, enough for today :)
15:02 jnthn &
15:04 pmichaud good morning, #perl6
15:06 moritz good am, pm
15:11 pmichaud (backscroll)  it *is* possible to assign to a function, but it has to be done as either    &say = ...    or   say() = ...
15:11 pmichaud (depending on what you're intending to assign)
15:27 orafu joined #perl6
15:28 dalek star: eeaeb8f | pmichaud++ | skel/docs/announce/2012.07:
15:28 dalek star: Some spelling and refactor of deprecation announcements for 2012.07 .
15:28 dalek star: review: https://github.com/rakudo/star/commit/eeaeb8fdd4
15:29 dalek star: a1a51bc | pmichaud++ | skel/docs/announce/2012.07:
15:29 dalek star: Add deprecation notes for regex spec changes.
15:29 dalek star: review: https://github.com/rakudo/star/commit/a1a51bc42f
15:36 dalek star: bc21d69 | pmichaud++ | skel/docs/announce/2012.07:
15:36 dalek star: More announcement updates.
15:36 dalek star: review: https://github.com/rakudo/star/commit/bc21d69409
15:37 pmichaud comments and patches to the star announcements welcomed.  https://github.com/rakudo/star/blob​/master/skel/docs/announce/2012.07
15:41 dalek star: e33111f | pmichaud++ | Makefile:
15:41 dalek star: Update component versions for 2012.07 release.
15:41 dalek star: review: https://github.com/rakudo/star/commit/e33111f02f
15:41 dalek star: 31522d0 | pmichaud++ | Makefile:
15:41 dalek star: Parrot puts some releases in devel/ and others in supported/ .
15:41 dalek star: review: https://github.com/rakudo/star/commit/31522d0d8e
15:53 kresike bye all
15:56 pmichaud the nqp tarball doesn't have a toplevel nqp-2012.07/ directory.  Should I just replace the existing tarball with a corrected one?
15:56 pmichaud (I don't think we need a .1 release for it.)
15:57 thelazydeveloper joined #perl6
16:10 Coleoid joined #perl6
16:11 birdwindupbird joined #perl6
16:21 dalek star: 24a8fcd | pmichaud++ | skel/tools/build/Makefile.in:
16:21 dalek star: Update star's Makefile.in with new release numbers.
16:21 dalek star: review: https://github.com/rakudo/star/commit/24a8fcd368
16:33 erkan joined #perl6
16:34 am0c joined #perl6
16:41 jerome joined #perl6
17:01 dalek star: 15129cd | pmichaud++ | skel/tools/build/module-install.pl:
17:01 dalek star: Avoid "use of uninitialized ..." warnings during module-install.
17:01 dalek star: review: https://github.com/rakudo/star/commit/15129cd721
17:06 PacoAir joined #perl6
17:34 benabik joined #perl6
17:42 fgomez joined #perl6
17:43 spaceships joined #perl6
17:48 REPLeffect joined #perl6
17:57 masak pmichaud: yes, please do.
17:58 masak pmichaud: also, perhaps make sure to update the release instructions accordingly.
18:09 pmichaud will do; although nqp needs a "make release" target like rakudo and star have.
18:11 moritz +1
18:13 masak +1
18:14 pmichaud I'm also going to update the star release process to be more turnkey; but will do that after finishing the 2012.07 release
18:14 pmichaud ...unless we want to wait a few more days for the 2012.07 star release
18:14 moritz +1 on releasing first
18:15 pmichaud I have a tarball ready now; I'm currently working on a .msi for Windows
18:16 jnthn evening, #perl6
18:23 fhelmberger joined #perl6
18:24 kst joined #perl6
18:28 Chillance joined #perl6
18:29 masak evening, #perl6! \o/
18:39 GlitchMr joined #perl6
18:46 ggoebel joined #perl6
18:46 sjohnson hi
18:46 masak sjohnson! \o/
18:47 sjohnson o/
18:47 benabik QAST merged?
18:47 masak aye!
18:47 masak jnthn++
18:47 masak others++
18:48 flussence *++
18:48 jnthn pmichaud: Looking over the announce
18:48 jnthn "* IO::File and IO::Dir will go away, and &dir now returns values of type IO::Path (which is currently the superclass of IO::File and IO::Dir)."
18:49 jnthn Is it worth noting that what dir returns stringifies to what it used to?
18:49 jnthn That gives people a clear hint at a migration path.
18:50 jnthn "* The integer argument to IO::Socket.recv will be interpreted as number of codepoints.
18:50 jnthn "
18:50 jnthn s/codepoints/characters/ ?
18:50 moritz our current notion of character is "codepoint"
18:50 jnthn Meh, true.
18:50 pmichaud jnthn: patches welcome for dir note
18:51 pmichaud we can add a note about "Rakudo's current notion of character is 'codepoint'."
18:51 TimToady which is ambiguous under UTF-16
18:51 pmichaud fair enough; it is what it is for now.
18:51 TimToady with UTF-16 you can prove that 1 == 2
18:52 jnthn Thankfully, we don't use UTF-16 in Rakudo anywhere afaik.
18:52 pmichaud oh, I suspect we do.  Parrot likes to convert things internally on us.
18:53 moritz re dir stringification, it doesn't change, which is why I didn't find it noteworthy
18:53 TimToady but I saw some carping about niecza confusing UCS-2 with UTF-16, which is incorrect, insofar as you count surrogates as separate codepoints
18:53 pmichaud TimToady: I'm open for suggestions on how to improve our release note.  :)
18:54 TimToady I'm okay with "codepoint" really, but UTF-16 is just a botch
18:54 pmichaud jnthn: whenever we convert case, Parrot goes through utf16 to do it.
18:54 TimToady as long as it's a Unicode codepoint, not a UTF-16 codepoint :)
18:55 jnthn pmichaud: Argh wtf
18:55 pmichaud from src/strings/encoding/shared.c:
18:56 pmichaud if (src->encoding != Parrot_utf16_encoding_ptr
18:56 pmichaud &&  src->encoding != Parrot_ucs2_encoding_ptr)
18:56 pmichaud src = Parrot_utf16_encoding_ptr->to_encoding(interp, src);
18:56 jnthn :/
18:56 pmichaud (in the "unicode_convert_case" function)
18:56 * masak .oO( so much potential for improvement )
18:56 flussence it has to handle utf16 *and* ucs2? eurgh.
18:56 sorear hello
18:56 masak sorear! \o/
18:56 jnthn .oO( Soon everything will be on QAST, and then.... :) )
18:57 pmichaud ...and then we'll still be using Parrot's string libraries for a while.  Or ICU.
18:58 pmichaud moritz: (stringification)  well, it doesn't change in the common case, but it does change a little, and since we're calling out the fact that it changes in the release notes I'm thinking we should at least say "...and it stringifies like it used to"
18:58 TimToady as soon as we have compact arrays of int8, int16, and int32, we can do NFG ropes.
18:58 pmichaud TimToady: believe me, I'm very much looking forward to doing that.
18:58 pmichaud well, to seeing it be done, since I doubt I'll be the one doing it.  :-)
18:59 pmichaud okay, I have another meeting to attend; I'll be back later
19:03 TimToady pmichaud: s/titlecase/tc/
19:03 moritz TimToady: I've justed noticed that
19:03 dalek star: 259e3d3 | moritz++ | skel/docs/announce/2012.07:
19:03 dalek star: [announce] try to clarify a few deprecations
19:03 dalek star: review: https://github.com/rakudo/star/commit/259e3d3ae8
19:04 TimToady oh, you got it
19:04 TimToady moritz++
19:05 TimToady anybody know if there's a way in html to shrink the interline gap for the output of http://rosettacode.org/wiki/Draw_a_cuboid#Perl_6
19:07 flussence style="line-height: 1"
19:09 TimToady that goes in a <font> or what?
19:09 flussence Just goes in a HTML attribute, I guess <span style=...> would work.
19:09 TimToady thanks
19:10 TimToady moritz: there's another 'titlecase' in the next sentence
19:10 flussence (I'm not sure what mediawiki actually allows...)
19:10 masak TimToady: whenever you think <font> nowadays, you should probably think <span style=...> instead. :)
19:10 masak TimToady: it's HTML 4.01.
19:10 TimToady I'm still on HTML without version numbers :)
19:10 spider-mario joined #perl6
19:11 masak that output is awesome, by the way.
19:11 flussence oddly enough, HTML's gone back to not using version numbers...
19:12 mikemol Very impressive output. Have you looked into abusing Unicode zargo-style for line drawing? ^^
19:12 moritz HTML version "whatever you browser understand"
19:13 mikemol s/zargo/zalgo/
19:13 mikemol Example: https://plus.google.com/10808006​2547354628132/posts/FE57B49ZyXh
19:13 dalek star: cb7ce4b | moritz++ | skel/docs/announce/2012.07:
19:13 dalek star: [announce] s/titlecase/tc/, TimToady++
19:13 dalek star: review: https://github.com/rakudo/star/commit/cb7ce4bef7
19:14 mikemol TimToady: I think your use of ⡇ hides the line spacing very well.
19:15 flussence that almost has a hand-drawn look to it
19:16 mikemol I was thinking dot-matrix. :)
19:16 mikemol Really crappy dpi, though.
19:17 TimToady it looks rather better on my terminal than in the output
19:18 TimToady the ⡇ is quite short in my firefox
19:21 TimToady anyway, style= doesn't seem to make it through the wiki
19:25 mikemol Chrome on Windows: http://img405.imageshack.us/​img405/7084/dottedlines.png
19:25 mikemol Looks pretty good to me. But perhaps your terminal looks nicer.
19:26 moritz looks unrecognizable in my firefox
19:26 atrodo joined #perl6
19:27 moritz maybe add a link to a screenshot of the output to the wiki page?
19:27 mikemol Feel free to upload a screenshot and embed it, if you like.
19:28 mikemol (Actually, that's preferable to offsite linking)
19:28 * moritz doesn't have enough wiki-fu, and doesn't want to learn at this time of day, sorry
19:28 jnthn Looks a bit off in all(Firefox, IE, Safari) here
19:28 mikemol AFAIK, there's no way to do what's being asked.
19:29 mikemol jnthn: Could you put a screenshot up, so I could see it?
19:30 jnthn mikemol: Of the rightest one or the wrongest one? :)
19:30 mikemol All three, identifiable. :)
19:33 vmspb joined #perl6
19:34 jnthn mikemol: http://jnthn.net/tmp/ie.png (and firefox.png and safari.png)
19:35 flussence looks like they're not using a monospace font for it :/
19:35 mikemol Hm. You're using a different font from me. The one I have has a small amount of space between the top and bottom pair of dots, which makes the line spacing difficult to see.
19:37 mikemol Looks monospace to me.
19:37 moritz http://moritz.faui2k3.org/tmp/ff.png
19:38 mikemol ...and it looks like work just noticed that I've been slacking off a bit, given it's my last day.
19:43 birdwindupbird joined #perl6
19:44 TimToady http://wall.org/~larry/cuboid.png is what it looks like on my screen (only in inverted colors)
19:45 masak doesn't look so bad.
19:45 * flussence goes through the entire google webfont list and doesn't find a single one with braille dots. scratch that idea :(
19:51 flussence gucharmap tells me it's in FreeMono.ttf. I wish there was a font-grep tool for this...
19:57 snearch joined #perl6
20:02 diakopter chrome just shows boxes for those chars for me
20:03 diakopter similar to moritz
20:03 TimToady well, I uploaded the png, but for some reason it doesn't show at full resolution, so it's kinda smudgey
20:04 diakopter TimToady: can you make it to up/down left/right instead of just up-right
20:04 birdwindupbird joined #perl6
20:04 diakopter and make them dance
20:04 diakopter and blink
20:05 TimToady well, the braille-graphics is agnostic to that--you just set the right bits and it'll draw it
20:05 quietfanatic At some point you're gonna just be doing 3D graphics with OpenGL and rasterizng them into Braille :)
20:05 TimToady but that would be hard :)
20:05 quietfanatic or just use libaa
20:06 TimToady I want libba
20:06 seldon joined #perl6
20:14 TimToady I doubled the size of the png, and it looks a bit better, or at least more striking
20:17 fridim_ joined #perl6
20:20 quietfanatic lol at C's shaded model of a cuboid
20:22 diakopter how should I respond to this on reddit: "Flexibility in languages is an antipattern."
20:23 diakopter I mean, there's an acknowledgement of the existence of patterns.
20:23 benabik Downvote?
20:23 masak diakopter: I am at a loss for words.
20:24 flussence To quote someone who knows what they're talking about: Computer programs should be written for human readers first, and machines only coincidentally.
20:24 * geekosaur thinks that notion would make various esolangs ideal
20:24 geekosaur (the reddit notion, that is.  but then it *is* on reddit...(
20:26 quietfanatic I would say just don't reply.  That commenter is clearly not putting as much effort into it as you are.
20:26 diakopter flussence: okay, but the thread was actually about whether a certain line of Perl 6 is readable [by humans] (the line is readable by machine)
20:27 masak diakopter: url?
20:27 diakopter sigh
20:27 diakopter http://www.reddit.com/r/perl6/comme​nts/r44do/is_perl6_code_unreadable/
20:27 diakopter 4 months ago
20:28 diakopter the person appears to comment a lot on clothing-relating topics
20:28 masak I find the url itself offensive. :(
20:28 masak I *read* Perl 6 daily! does the submitter?
20:29 masak oh, I've seen this thread before.
20:29 masak I even blogged about that very code (prior to that thread), I believe.
20:30 flussence I like that a person down the thread who admits not knowing perl6 is able to figure out what it means anyway.
20:31 masak yes, here: http://strangelyconsistent​.org/blog/idiomatic-perl-6
20:32 pmichaud http://...../is_chinese_unreadable/   *sigh*
20:33 diakopter http://...../is_brainwave_unreadable/
20:33 flussence .oO(is_my_handwriting_unreadable)
20:34 masak I learned to read Chinese. verdict: yes, it's pretty unreadable. :P
20:34 masak I say this as an expert on not being able to read Chinese well.
20:35 PerlJam but ... but ... programming languages should be immediately readable even by non-practitioners of the language, right?   (See COBOL for an example)
20:35 PerlJam ;-)
20:36 pmichaud anyway, we know that Perl 6 _is_ readable, if only because there are people who can read it.  :-)
20:36 quietfanatic (personally, I think that code would be more readable with parentheses around each argument to Z+)
20:38 TimToady I made the Z stick up high so you don't have to :)
20:39 quietfanatic I know you don't have to, but my brain still parses @^p, 0 Z+ 0, @^p as @^p, (0 Z+ 0), @^p
20:39 TimToady sure, list infixes make you think differently
20:39 PerlJam quietfanatic: My brain chunked that expression like that the first time I saw that construct as well.
20:40 TimToady that's because it's a New Thing
20:41 TimToady you don't want parens aroung 1,2,3 ... * though
20:41 TimToady that one sticks out sideways instead of vertically...
20:42 masak no-one stops you from parenthesizing if you feel you need it.
20:43 masak (but that doesn't help when reading other people's code, of course. so it still makes sense to learn precedence well.)
20:44 PerlJam understanding things always pays future dividends
20:45 TimToady what confuses people is that we get compound interest when we reinvest the dividends
20:45 flussence idea: take an AST, spit it out as nested HTML <code> tags, use the 3D view in Firefox to show precedence
20:46 quietfanatic I thought remembering lists of rules was something we tried to avoid in Perl 6...
20:46 masak quietfanatic: lists of *exceptions*, more like.
20:46 TimToady we try to put the things you have to learn in one spot, like a precedence table, or a smartmatch table
20:47 TimToady makes 'em easy to look up too
20:47 quietfanatic okay then
20:47 PerlJam quietfanatic: unless you can derive things from first-principles, you're always going to have a list of things to remember.
20:48 PerlJam quietfanatic: luckily, Perl has lots of context sensitivity to help you
20:48 TimToady and we only do that when we think the thing in question is powerful enough to warrant it
20:48 TimToady smartmatching definitely qualifies, since we use it everywhere
20:48 quietfanatic anyway, it's not about remembering rules, it's about readability
20:49 quietfanatic one of the first things my brain does (and I think most people's brains do) when encountering an expression with commas is to split it up around the commas
20:49 TimToady well, people who don't know the precedence or the smartmatching are just going to be a bit confused
20:49 TimToady quietfanatic: but you treat ; as looser than ,
20:49 quietfanatic yeah
20:50 TimToady p5 programmers know to treat 'if', 'while' as looser too
20:50 quietfanatic Okay, what I mean to say is
20:50 TimToady 'and' and 'or' are looser in both p5 and p6
20:50 quietfanatic because of all the languages I am used to (including English and mathematics), my instinctive precedence rules make that expression rather difficult to parse.
20:51 TimToady so we make the exceptions big and ugly, so they don't slip past like a comma-size operator might
20:51 quietfanatic Z+ isn't very big and ugly though
20:52 TimToady it's tall
20:52 quietfanatic so is * depending on the font
20:52 TimToady no, that's just high :P
20:52 PerlJam I'll admit that it's too bad that the Z+ isn't taller.
20:52 quietfanatic | is tall
20:52 quietfanatic and that's lower precedence than commas
20:53 TimToady sure, but people are used to that one
20:53 quietfanatic and ||
20:53 huf but it's thin.
20:53 huf Z+ is a big square thing, as operators go
20:53 * masak is so used to seeing "looser precendence" nowadays that "lower precendence" actually makes him stop and think what that means :)
20:53 TimToady mostly we're going for the fact that metaops tend to be Capitalized
20:54 huf also, no matter what new language, you'll need to give it a bit of time until you start seeing it. and perl6 tells you pretty damn early that the comma is other than what you expect: @x = 1, 2, 3;
20:54 TimToady actually, it's the = that's different there...
20:54 huf huh.
20:54 masak huf: what's "other than what you expect" in that? :)
20:54 masak it reads just like I expect it to...
20:54 huf masak: if you're coming from p5, it's weeeeird.
20:54 masak hehe.
20:55 huf anyway, when i saw that, i knew i had to look out for things like this
20:55 masak huf: I'm coming the other direction, and I always go "oh right, this is p5, I have to put *arbitrary* parens here..." :P
20:55 huf so i wasnt *that* puzzled when i first saw the above example
20:55 PerlJam huf: If all you know is p5, perhap.  But how many p5 monoglots do you know?
20:55 quietfanatic I guess I'm making the same point as diakopter was making on reddit: there's a continuum between golfing and ease-of-readability, and you can't do both
20:56 quietfanatic especially when ease-of-readability means readability for newcomers and non-perl6-knowers
20:56 huf PerlJam: true.
20:56 masak I liked the point that diakopter was making.
20:56 quietfanatic It would be doing a favor to readers who aren't familiar with the precedence table to use a few extra parens.
20:56 huf i dont think that makes much sense, optimizing for people who dont speak the language.
20:56 masak the guy who responded seems very inflexible.
20:56 TimToady there are still people who prefer rexx, despite it's tremendous verbosity
20:56 TimToady I don't think it clarifies anything to spread an algorithm over three pages
20:57 huf yes, beyond a point the sheer number of things in the file becomes a burden in itself
20:57 quietfanatic Adding a few extra parens for redundancy is not the same as spreading one line over three pages.
20:57 quietfanatic even in C extra parens are recommended when they'd be confusing
20:57 quietfanatic like *(p++)
20:57 TimToady but if you compare the typical p6 solution with the typical J solution, it makes the p6 solution look verbose
20:58 quietfanatic (when it'd be confusing without them I mean)
20:58 huf quietfanatic: but it *is* left up to the programmer to include them or not
20:58 quietfanatic yes, it is.
20:58 TimToady generally, in such a situation I'll use vertical whitespace instead of parens to make it clearer
20:58 huf and then it's up to the lead dev or manager or someone to fire them if they abuse the freedom :)
20:59 quietfanatic what I am requesting is that programmers use a few extra parens, not that the language be changed
20:59 quietfanatic I'm aiming for a cultural change, I guess.
20:59 PerlJam TimToady: actually, just some horizontal whitespace could have helped in the cited case I think
20:59 TimToady but you also get the reverse problem, that the extra parens teach people to think the precedence table is different from what it is
20:59 quietfanatic hmm
21:00 TimToady I think in the indicated case Z+ is perfectly clear all by itself
21:00 huf how would the cited example be broken up horizontally?
21:00 TimToady but you have to know about X and Z
21:00 quietfanatic A C or Haskell programmer would not think so.
21:00 quietfanatic right
21:00 TimToady Perl has always been much more readable to Perl programmers than to other people :)
21:01 PerlJam huf:  @x,0  Z+  0,@x   clearly different chunking.
21:01 quietfanatic PerlJam: I like that
21:01 lue hello world o/ .oO(Chat looks very verbose right now)
21:01 huf quietfanatic: *shrug* i cant read french, but i dont go around paris telling the people to stop it :)
21:01 huf PerlJam: ah.
21:01 masak lue! \o/
21:01 TimToady Perl is about being a language that can be used fluently by fluent speakers
21:01 quietfanatic The other end of that
21:01 TimToady fluency will sometimes look obfuscatory
21:02 TimToady "They talk to fast; I can't understand them..."
21:02 TimToady *too
21:02 quietfanatic is that Perl is also about being a language that can be spoken with "baby-perl" by people who aren't fluent.
21:02 huf yes, they can include the parens :)
21:02 huf doesnt mean baby-perl speakers can understand fluent speakers
21:02 lue ooh! Just saw qast is merged! It's in nom/ now, I presume. (jnthn++ qast_workers++)
21:02 PerlJam As long as they don't speak slowly *and* loudly ...  ;)
21:02 masak lue: your test now passes. :)
21:02 quietfanatic Perl is a complicated language
21:02 masak lue: yes, it's in nom now.
21:02 TimToady yes, and you'll note we don't force adults to speak baby-talk
21:02 quietfanatic just like not every English book is aimed at people who've studied it for 30 years
21:03 quietfanatic not every Perl 6 code example should be aimed at people who are entirely fluent in it
21:03 huf no, but most of them are aimed at people with years of experience in english
21:03 huf many years. 10+
21:03 TimToady sure, which is why we put explanations with some of the RC examples
21:03 quietfanatic especially those examples that are showing off to people "look how intuitive and easy Perl 6 is"
21:03 TimToady ...if you know Perl 6
21:04 huf some of the examples are fairly easy to guess if you know p5
21:04 huf there's clearly some resonance
21:04 huf (i wonder why.... :D)
21:04 quietfanatic Some of French is easy to get if you know Latin, sure
21:05 quietfanatic Anyway, if I may escape this argument with at least one point intact :)
21:05 quietfanatic it would be
21:05 PerlJam .oO( don't pronounce trailing consonants? )
21:05 quietfanatic you can't write advanced-level perl 6 and not expect two-thirds of the internet to say "I can't read that at all"
21:06 huf PerlJam: still better than UK place names... randomly skip the middle.. or dont.
21:06 masak quietfanatic: agreed.
21:07 masak quietfanatic: I'm still surprised how readily Perl 5 people say that, though.
21:07 PerlJam huf: we humans delight in our own created craziness :)
21:07 huf perhaps add successively less baby-talkish versions before or after the actual example?
21:07 PerlJam (see Perl 6 ;-)
21:07 tadzik oh hai
21:07 TimToady You can't write anything and not expect two-thirds of the internet to say "That sucks!"  :)
21:07 pmichaud TimToady: That sucks.
21:07 TimToady Agreed.
21:07 PerlJam TimToady: but then how do we win the TIOBE popularity contest?
21:07 quietfanatic pmichaud++
21:08 pmichaud PerlJam: The only winning move is not to play.
21:08 * lue looks up TIOBE and is shocked (Visual) BASIC is above Perl O.o
21:09 masak lue: TIOBE is very unscientific and not a good basis for... anything.
21:10 lue Clearly. After all, BASIC is above Perl! :)
21:10 huf this is often repeated by people who like the lower-ranking languages :)
21:10 PerlJam huf++
21:10 masak lue: fun exercise: learn how TIOBE collects their statistics. think about what this means.
21:11 masak huf: news at 11. :) the ones who are higher ranked complain less.
21:11 huf yep :)
21:11 masak also, many people find pain uncomfortable.
21:11 lue search results‽ .oO(Quick, create a million dummy pages containing Perl 6 keywords!)
21:12 masak lue: they have to conatin the words "Perl programming", to be exact.
21:12 huf so ... if you name your language "vcr" or some such, you'll "win"?
21:12 huf well not in 2012...
21:12 huf but you know what i mean
21:13 TimToady cable maybe
21:13 masak name it "Neurolinguistic".
21:13 pmichaud "computer"
21:13 masak haha
21:13 huf hah.
21:13 lue .oO(of course C will be above C++. I imagine the less-awesome search engines will say "C" ~~ "C++")
21:13 sorear de programming
21:13 sorear conference programming
21:14 sorear dynamic programming, linear programming
21:14 huf these are all amazingly good names :D
21:14 masak "Dynamic" is a nice name for a language.
21:14 sorear (MSDN thinks "Dynamic Programming" means System.Reflection.Emit.ILGenerator.  NOOOOOO)
21:14 PerlJam I guess the founders of TIOBE don't quite get the irony that the play was a comedy
21:14 pmichaud "network programming"
21:14 lue * programming (if wildcards were allowed in search engines)
21:15 PerlJam http://www.tiobe.com/index.php/c​ontent/company/GeneralInfo.html
21:16 masak PerlJam: or, more scarily... they did.
21:17 lue PerlJam: their "code/tiobe code" picture made me think "so, you use a lot of unnecessary whitespace?"
21:17 huf ... i wonder why showing the text on that site requires js...
21:18 TimToady Esperanto was invented 125 years ago, and some people still think it's unreadable... :)
21:18 lue huf: me too. I had to temporarily allow them in noscript :(   (to me, js needed for text is a Bad Thing™)
21:19 huf lue: i still like to delude myself that the web is made up of documents with hyperlinks connecting them...
21:19 quietfanatic obviously they want to conflate the rating for JavaScript programming
21:19 quietfanatic or inflate or whatever that word is supposed to be
21:20 masak TimToady: well, it's better than Volapuk in that regard, but probably worse than Interlingua and LFN... :)
21:20 lue .oO(what if the most popular language via web queries is unknown to TIOBE? So many flaws it's not worth finding them all)
21:20 masak quietfanatic: JavaScript already won. it doesn't need anyone's help, least of all TIOBE's.
21:21 quietfanatic masak: I should have known
21:22 masak when the dust settles and all other programming languages are all long dead, JavaScript will still be there.
21:22 pmichaud And COBOL.
21:22 masak :)
21:22 PerlJam and whatever language roaches use.
21:22 lue You're implying Camelia isn't tough enough to survive everything.
21:22 pmichaud as long as Camelia's wings are flapping, the dust won't be settled.
21:23 masak I'm implying browsers are everywhere.
21:23 masak and they all (minus epsilon) run with JavaScript installed, and *activated*.
21:23 quietfanatic It'll be a few decades before we're confortable piping multimegabytes of Perl 6 interpreter over the tubes just so we can run it on someone else's browser.
21:23 * lue suddenly remembered (and scoffed at) ChromeOS
21:24 masak I once saw a programming book that just assumed you had a browser, and taught you JavaScript with it. that made my brain click -- this language is already ubiquitous.
21:26 PerlJam That's how PHP "won" too:  ubiquity
21:26 dalek rakudo/nom: 08c72b7 | jnthn++ | src/Perl6/Actions.pm:
21:26 dalek rakudo/nom: Fix --doc (moritz++).
21:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/08c72b7140
21:26 dalek nqp: f0c85fd | jnthn++ | / (2 files):
21:26 dalek nqp: Give NQP support for mixins.
21:26 dalek nqp: review: https://github.com/perl6/nqp/commit/f0c85fdc49
21:26 dalek nqp: fe87905 | jnthn++ | / (3 files):
21:26 dalek nqp: Move arity and flat out to a role that we mix in on the handful of QAST nodes that need it. Shaves 16 bytes (on 64-bit) off the vast majority of nodes.
21:26 dalek nqp: review: https://github.com/perl6/nqp/commit/fe87905a1e
21:26 dalek nqp: ffe1cba | jnthn++ | src/QAST/ (2 files):
21:26 dalek nqp: The childorder attribute only applies to QAST::Op, so move it there; another 8 bytes of many nodes.
21:26 dalek nqp: review: https://github.com/perl6/nqp/commit/ffe1cbacc2
21:26 jnthn Hmm...we have various tests failing due to the tc updates in spectest.
21:28 pmichaud I'm not sure childorder should be limited to QAST::Op, fwiw.
21:28 pmichaud but I'm okay with the change for now.
21:28 jnthn It's not used anywhere else yet. We can twiddle as needed.
21:29 pmichaud yeah; limited capabilities to only those places where things are "used" isn't always a good design approach.
21:29 pmichaud *limiting
21:29 pmichaud but as I said, I'm okay with it for now.  :)
21:32 masak lue: you're gonna like tonight's crypt post :)
21:32 masak lue: more specifically, you're gonna like this feature.
21:33 * lue feels excited
21:35 fhelmberger joined #perl6
21:36 fhelmberger_ joined #perl6
21:36 jnthn pmichaud: Suspect you'll be OKer with the next thing I'm doing (eliminating the biggest use of $ast<foo> annotations)
21:37 masak is it risk-free to delete entries from a hash you're iterating through in Perl 6?
21:40 pmichaud I'm totally fine with reducing $ast<foo> .  \o/
21:47 diakopter if you haven't learned what Z means (or forgotten like me), then it doesn't matter whether you treat the sides as lists, since you have no chance of understanding it anyway, plus you might not even know at all that some things take lists on the left (which I had also forgotten, or never learned?), so you're definitely lost until you learn (or relearn) what Z means at all
21:48 diakopter it's not like you're going to learn what Z means without learning it takes lists, right?
21:48 masak probably not.
21:55 nodmonkey joined #perl6
21:56 nodmonkey test
21:58 masak nodmonkey: hi!
21:58 nodmonkey masak: hi back!
21:59 masak \o/
21:59 masak rn: say "hi from our two Perl 6 implementations!"
21:59 p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«hi from our two Perl 6 implementations!␤»
22:01 nodmonkey rn: say "You control the machines?"
22:01 p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«You control the machines?␤»
22:01 masak rn: for 1..3 X 1..3 -> $x, $y { say "$x × $y = {$x * $y}" }
22:01 p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«1 × 1 = 1␤1 × 2 = 2␤1 × 3 = 3␤2 × 1 = 2␤2 × 2 = 4␤2 × 3 = 6␤3 × 1 = 3␤3 × 2 = 6␤3 × 3 = 9␤»
22:01 masak for loops in two dimensions! \o/
22:02 nodmonkey r: say "only rakudo?"
22:02 p6eval rakudo ed269f: OUTPUT«only rakudo?␤»
22:02 masak :)
22:02 masak p: say "hi, I'm Pugs!"
22:02 p6eval pugs: OUTPUT«hi, I'm Pugs!␤»
22:03 nodmonkey p: say "why does nobody love me anymore? :("
22:03 p6eval pugs: OUTPUT«why does nobody love me anymore? :(␤»
22:03 lue n: say "Don't forget me, Niecza!";
22:03 p6eval niecza v19-15-g051783d: OUTPUT«Don't forget me, Niecza!␤»
22:03 masak actually, Pugs has gotten a bit of love lately. [Coke]++ quietfanatic++
22:04 nodmonkey I assume those are two usernames, not an admission that coke and fanaticism have brought love to pugs
22:04 TimToady std: say "ok 00:00 41m";
22:04 p6eval std e52e3ca: OUTPUT«ok 00:00 41m␤»
22:05 dalek nqp: 26a8bc1 | jnthn++ | src/QAST/ (4 files):
22:05 dalek nqp: Sort out compile time value handling, so Rakudo can do it without using annotations.
22:05 dalek nqp: review: https://github.com/perl6/nqp/commit/26a8bc14ed
22:06 sorear nodmonkey: aye, [Coke] and quietfanatic are real people
22:06 lue TimToady: :)
22:06 * TimToady is sitting about 6 feet from quietfanatic, in fact, who is playing Wild Arms
22:07 dalek rakudo/nom: c1747df | jnthn++ | tools/build/NQP_REVISION:
22:07 dalek rakudo/nom: Bump NQP_REVISION for memory usage reductions and better compile time value support.
22:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c1747dfccf
22:07 dalek rakudo/nom: f23a454 | jnthn++ | src/Perl6/ (6 files):
22:07 dalek rakudo/nom: Refactor to use the improved compile time value support, eliminating many uses of annotations.
22:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f23a4549f5
22:07 masak TimToady really wants to pretend he wrote a runtime... :P
22:07 sorear nodmonkey: at least, I assume [Coke] and quietfanatic are real people.  I've never actually seen either one
22:07 sorear I know this is a questionable assumption.
22:08 jnthn pmichaud: <compile_time_value> and <has_compile_time_value> are gone \o/
22:08 TimToady on my other side I have Steamy Penguin running, but he doesn't grok much Perl 6
22:08 jnthn .oO( Everything went better than expected... )
22:09 nodmonkey I heard quietfanatic is actually an emergent-ai from Perl9 with temporal tunnelling powers to assist his own ancestry.
22:09 TimToady that would explain a lot about how he was when he was younger...
22:11 TimToady maybe that would explain the upswing in autistic spectrum disorders in general...
22:12 TimToady .oO(pre hoc, ergo propter hoc)
22:12 quietfanatic we mean you no harm
22:14 masak take us to your leader, so that we can look socially awkward next to him or her.
22:15 * masak .oO( "what did you do today?" -- "oh, just perpetuated some myths about people on the spectrum." )
22:15 masak lol, I blog'd! \o/ http://strangelyconsistent.org/blog/j​uly-26-2012-doom-and-cavern-collapse
22:15 * lue reads
22:17 * TimToady just realized that http://irclog.perlgeek.de/​perl6/2012-07-26#i_5850433 is not a prediction, it's a memory
22:17 masak o_O
22:18 masak never have I been so conscious about what I'm saying on the channel as at this very moment.
22:18 * masak .oO( the future. it's watching. )
22:18 * masak waves
22:18 quietfanatic What you;re about to say masak, don't say it
22:18 quietfanatic it'll be a disaster.
22:18 masak ...
22:18 flussence you broke him!
22:18 TimToady the ceiling collapses
22:19 simcop2387 joined #perl6
22:19 masak damn, I hate closed causality loops.
22:19 timotimo masak: the :-) was line-wrapped here :(
22:19 timotimo you should turn that - into a non-breaking hyphen
22:19 masak timotimo: ouch.
22:19 timotimo or something else
22:19 timotimo you know, there's ☺
22:19 * masak should've used 哈哈 as usual
22:20 lue masak++ on the post
22:20 masak lue: you do like that feature, don't you? :)
22:20 * lue considers quickly blogging what he plans to do in his adventure  game August...
22:21 lue masak: the dropping water bit, right? :)
22:21 masak :P
22:21 masak no, the fuse hooks!
22:21 timotimo masak: when looking at your code, i get a bit sad seeing that every method starts with "die if game over, die if player is nowhere"
22:22 lue oh, yeah! That's really awesome. (And provides a bit more insight into the magic of closures)
22:22 timotimo why not make a subset of Game where not game over and not player is nowhere, or something like that?
22:22 timotimo or can you have a role or something apply to the methods that would do a precondition?
22:22 Juerd joined #perl6
22:23 timotimo method walk($direction) does PlayingTheGame { ... }
22:23 lue masak: another feature is what in Inform 6 is called "daemons" (which I would name "cron" if I implemented it). An every turn daemon could handle if player is nowhere and such.
22:23 masak timotimo: yes.
22:23 fhelmberger joined #perl6
22:23 masak timotimo: I'll get to such things in the next few days.
22:23 timotimo cool :)
22:23 masak timotimo: so far it's basically been adding features without much concern for DRY.
22:24 timotimo seems sensible from your approach, what with the blog and everything
22:24 masak lue: yes, I will have that too. I'll call them "sagas", like in the CQRS world.
22:24 masak timotimo: you're absolutely right that it's a bit too much repetition right now.
22:25 Tene lue: I advise you avoid the name "cron" for domain-specific cron-like features; at my current workplace, it's a point of annoying confusion that we have a cron-like system that's different from cron, which we also use.
22:26 masak +1
22:26 masak obviously, you should call it "Tron". :P
22:26 lue Well, I think I was inspired by .grep in P6 to name it cron
22:27 Tene this might be far enough off that it's unreasonable to be confused; I might be superoptimally wary.
22:28 masak you can't go above an optimum :P
22:28 Tene if "suboptimal" is "less than would be optimal", then "superoptimal" should be "more than would be optimal"
22:29 Tene although, I might be mixing levels there
22:29 masak "Too much of a good thing can be... wonderful" -- Mae West
22:29 Tene I considered "suboptimally", but that seemed like it might imply I was less wary than I should be.
22:30 simcop2387 joined #perl6
22:30 timotimo i think when optimising things you only ever take the distance. like |optimum - actual|
22:30 timotimo it would always be a positive number and that positive number is the amount by which your actual solution is wrong
22:30 timotimo at least that's what they are teaching me at uni and you probably all know how far uni stuff is from the reality ;)
22:32 TimToady well, "optimal" is no longer a point after you ask "optimal for what?"
22:33 Tene timotimo: it depends on whether you're talking about the value being evaluated, or the value produced by the evaluation.
22:33 Tene those are different domains.
22:33 TimToady and the evaluation itself has value :)
22:34 lue masak: "> take tiny disk \n You passed in 2 arguments, but take requires 1." (hanoi game)
22:35 sorear Tene: there is a well-known English word which expresses the concept you are looking for.
22:35 sorear "excessively"
22:35 Tene Man, you guys are smart.  :D
22:35 TimToady excessively so
22:35 masak lue: indeed. any suggestions for how to solve this? :)
22:36 TimToady It's not optimal to be so optimal.
22:36 masak lue: (see the hanoi game for how I solved it there)
22:36 lue parse adjectives
22:37 TimToady put helmet water into leaf basket
22:37 lue (I actually would've implemented a Grammar/Actions to parse the english commands instead of a quicker given/when block, but that's because that's how most of my P6 projects start :P)
22:40 sorear > time flies like an arrow
22:40 sorear parse that lue :p
22:40 TimToady > fruit flies like a banana
22:40 masak sorear: that one's easy in the context of an adventure game.
22:40 lue noun verb relation article noun
22:40 masak sorear: because 'time' has to be a verb, and the rest falls out.
22:41 TimToady hmm fruit can be a verb, but it's intransitive
22:41 masak what does it mean?
22:41 TimToady The tree is fruiting.
22:41 masak oh!
22:41 masak 'course.
22:41 lue in IF games, verb noun relation... The response would be "I do not know how to time things the way arrows do"
22:42 TimToady horse flies like a horse
22:42 TimToady horse can be transitive
22:43 masak oh man
22:43 lue .oO(actually, because all kinds of english words match (sans punctuation) <alpha>+ , the grammar would be uneventful)
22:44 masak lue, did you just thought-bubble that English sentences are uneventful to parse?
22:44 masak where were you during the last five minutes of backlog? :)
22:44 sorear It's very easy to write a grammar which matches all grammatical English sentences.
22:44 lue I mean, every word matches <alpha>+ (roughly), so token noun { <alpha>+ }; token verb { <alpha>+ };
22:44 TimToady the actual grammar of English has over 300 rules, even ignoring ambiguity
22:45 timotimo masak: now my super smart browser broke 哈哈 into two lines :)
22:45 Tene the tokenizing is less interesting than some other languages.
22:45 masak timotimo: that's fine, it's two syllables. :)
22:45 timotimo isn't there an invisible non-breaking character?
22:45 TimToady but that's okay in Chinese
22:45 timotimo ah, ok
22:45 masak ha\nha
22:47 lue I don't imagine parsing commands in IF is very complex until after the Actions (unless you're willing to put more than AST-assembling in the Actions)
22:49 simcop2387 joined #perl6
23:00 jnthn 'night, #perl6
23:15 lue masak: either today or tomorrow I'll have a blog post describing what I plan to do in my IF game during August :)
23:15 masak lue: cool.
23:15 masak 'night, #perl6
23:16 lue 'night, masak o/
23:30 simcop2387 joined #perl6
23:35 skids joined #perl6
23:42 simcop2387 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo