»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
dalek ast: f7e8545 | coke++ | S (5 files):
s/ucfirst/tc/ - ucfirst is going away
00:06
ast: 7397cba | coke++ | S (2 files):
pugs fudge
gs.hs: 6049379 | coke++ | t/spectest.data:
run test
00:07
00:08 benabik left 00:11 skids joined
[Coke] we have tests for e, but not for its value. 00:14
there's some LHF for someone.
r: say e
p6eval rakudo ed269f: OUTPUT«2.71828182878434␤»
[Coke] p: say pi; say e
p6eval pugs: OUTPUT«3.141592653589793␤*** No such subroutine: "&e"␤ at /tmp/YaAJ6l1vbW line 1, column 13 - line 2, column 1␤»
flussence is(e, derivative(e)) # there you go :) 00:15
00:22 DarthGandalf left
[Coke] r: say log 1 00:22
p6eval rakudo ed269f: OUTPUT«0␤»
[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)␤»
[Coke] r: say ln 1
p6eval rakudo ed269f: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&ln' called (line 1)␤»
00:28 DarthGandalf joined
[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␤␤»
[Coke] huh. pugs has a 'pi' function defined that isn't used at all. 00:29
00:31 longqinsi joined 00:38 longqinsi left 00:45 erkan left 00:49 kaare_ joined 00:54 Guest14054 left 00:55 woosley left
dalek gs.hs: 7fa2ad3 | coke++ | Pugs/src/Pugs/Prim.hs:
Remove unused pi guts.
01:03
01:14 scott__ joined 01:19 lichtkind_ joined 01:20 lichtkind left, lichtkind_ is now known as lichtkind 01:31 aloha left
dalek gs.hs: 7e8013c | coke++ | / (2 files):
Add "e"
01:35
ast: bd6dc55 | coke++ | S32-trig/e.t:
pugs fudge
01:36
01:38 tokuhiro_ joined 01:41 crab2313 left 01:42 clkao joined 02:04 tokuhiro_ left, tokuhiro_ joined 02:05 jaldhar joined 02:06 orafu left, orafu joined
lue r: say log(e) 02:08
p6eval rakudo ed269f: OUTPUT«1.00000000011967␤»
02:08 tokuhiro_ left 02:09 zhutingting joined 02:11 zhutingting left 02:12 zhutingting joined
sorear [Coke]: afaik there's a (non-default) build step which uses prelude.pm to regenerate something.c 02:14
02:19 mucker left, zhutingting left
[Coke] sorear: there's a script mentioned that doesn't exist. 02:20
I opened #22 about it.
npr: my $a=1..2; $a.WHAT.say
p6eval pugs: OUTPUT«Array␤»
..rakudo ed269f, niecza v19-13-g442e075: OUTPUT«Range()␤» 02:21
02:21 lichtkind left 02:29 Vlavv_ joined 02:32 Vlavv left 02:40 Patterner left 02:42 Psyche^ joined, Psyche^ is now known as Patterner 02:45 benabik joined 03:04 woosley joined 03:07 zhutingting joined
TimToady sorear: the second (FP) solution to rosettacode.org/wiki/Digital_root#Perl_6 doesn't work in niecza for some reason 03:25
(does in rakudo)
I get: Unhandled exception: >>>Stub code executed
oh wait, I get it 03:26
can't put ... on its own line 03:27
not when the previous line ended with }
okay, wanting to write ... on a separate line is a smell that the function should be defined out-of-band from the ... 03:36
03:44 kaare_ left 04:09 crab2313 joined
[Coke] any haskell folks up? 04:11
benabik [Coke]: Kinda. 04:12
(kinda a Haskell person and kind up)
[Coke] so, I want .WHAT to return Int() instead of Int. 04:16
diakopter stringification of the type object?
benabik (whatever it does now) ++ "()" would be my first guess
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.
[Coke] I can't find "whatever it does now". ;)
moritz \o 04:17
benabik Ah. Well that requires me to know Pugs more than know Haskell. :-D 04:18
dalek d: e52e3ca | larry++ | STD.pm6:
fix uninit noticed by bbkr++
[Coke] so, it does; fmap VType . evalValType
benabik fmap is a more generic version of map 04:19
I believe that parses as (fmap (VType . evalValType)), which is (fmap (\x -> (Vtype (evalVal x)))) 04:20
VType should be a data constructor.
Not sure if this description is helpful... I have a pugs checkout and am looking for this bit. 04:21
[Coke] I suppose at this point some basic knowledge of haskell on my part would be helpful. ;) 04:23
04:23 araujo left
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
04:24 telex left
[Coke] I suspect I am looking for the stringification of VType, then. 04:24
benabik Something like?
[Coke] .Str is "op1cast VStr" 04:26
op1Cast is op1Cast :: (Value n) => (n -> Val) -> Val -> Eval Val 04:27
op1Cast f val = fmap f (fromVal val)
benabik So .Str maps the constructor VStr over the result of fromVal of what you're .String 04:29
*.Str-ing
moritz pugs: say Int
p6eval pugs: OUTPUT«Int␤»
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
Maybe I'm just too tired.
[Coke] oh, good it's not just me. ;)
quietfanatic VStr appears to be a synonym for Haskell's String 04:32
unless it's different in Types.hs from where you're looking at
benabik No, that appears to be correct. 04:34
[Coke] is fromVal a builtin?
benabik No, it's part of the Value type class in Internals.hs
quietfanatic line 65 of that file has showType which appears to convert a type to a string
benabik AST/Internals
quietfanatic but that might be too early to add the ()
04:36 odoacre left
benabik VType is a Value wrapper around Type. 04:36
04:36 telex joined
[Coke] line 65 of what file? 04:37
benabik Pugs/Types.hs
TimToady pugs went through more than one string implementation, so VStr is probably an abstraction layer to hide that 04:39
(iirc)
[Coke] most perl6 classes have a V* type, many of which map to core haskell types.
quietfanatic My guess is fromVal at AST/Internals.hs:1169 04:40
04:40 skids left
quietfanatic trying that and making... 04:41
[Coke] quietfanatic++ 04:43
benabik++
quietfanatic It works!
I don't know how to run the spectests though
Or submit a patch or do any of that stuff
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
*stringification
moritz quietfanatic: what's your github ID?
quietfanatic quietfanatic
benabik: which is why I have to test it. 04:45
moritz quietfanatic: you now have commit access to Pugs.hs (and several other repos in the perl6 organization) 04:46
quietfanatic moritz++
How do I run the spectest? 04:47
In Rakudo it was make spectest but not here
[Coke] quietfanatic: perl t/run_spectests
quietfanatic ah cool 04:48
[Coke] if you get no (or even not many) new failures, feel free to commit. 04:49
moritz and if you get new failures, you can still commit it to a branch 04:50
quietfanatic thanks
moritz so that others can look at the patch
r: say DateTime.now.Str 04:51
p6eval rakudo ed269f: OUTPUT«2012-07-26T06:51:28-0200␤»
[Coke] Issue #24, btw.
quietfanatic I'm getting a billion "perl: warning: Setting locale failed." 04:53
it's making it hard to see the tests going by.
04:53 Khisanth left
[Coke] there is a lot of noise. 04:53
I haven't seen that particular noise, though.
quietfanatic I don't recall tweaking my locale settings on this partition 04:54
[Coke] can you gist the patch? I have a known good env here. 04:55
quietfanatic sure... 04:56
(Something setting my LC_ALL to latin-1 and I don't have that locale installed or something)
*Something is
04:57 thou joined
[Coke] quietfanatic: yah.. LC_ALL has to be set or things fail, and we've had some finickiness about what works where. 04:57
if you ack for "darwin", you'll see the conditionals so far. 04:58
quietfanatic gist.github.com/3180344
I'm on linux 04:59
05:03 zhutingting left
[Coke] gist.github.com/3180360 05:05
05:06 Khisanth joined
dalek c: 53e37a8 | moritz++ | lib/Array.pod:
[Array] harmonize markup
05:06
c: b618194 | moritz++ | htmlify.pl:
[htmlify] add footers
quietfanatic [Coke]++ 05:07
Is that a new failure?
[Coke] yes. the only bug is that $?Package now reports "Main()" instad of "Main" 05:08
I'd still call that a net win.
quietfanatic nice
shall I commit then?
maybe I'll work on that next thing too
[Coke] Yes, please. 05:10
dalek gs.hs: 543ec38 | quietfanatic++ | Pugs/src/Pugs/AST/Internals.hs:
Stringification of a type object now appends ()
[Coke] Feel free to close out #24, also ;) 05:11
I'll refudge.
quietfanatic didn't wait for permission
moritz quietfanatic++ # first perl 6 commit
quietfanatic yay!
moritz well, forgiveness > permission
and we are forgiving around here :-)
quietfanatic done 05:13
now about that scope.t problem
05:15 crab2313 left
moritz quietfanatic: those tests are questionable 05:16
quietfanatic Maybe I'll leave that be then
somebody'll need to refudge 05:17
moritz pugs: eval 'die "foo"' 05:18
p6eval pugs: ( no output )
moritz that's something that needs fixing
these days eval() isn't supposed to catch exceptions anymore
[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␤»
[Coke] also, it needs to be rebuilt. ;)
moritz that's easier said than done
dalek ast: 7762601 | moritz++ | S10-packages/scope.t:
bring some small amount of sanity to S10-packages/scope.t

still full of mathoms
[Coke] quietfanatic: I fudged those 3 tests and am doing an autounfudge run now.
quietfanatic didn't know there was an autounfudge, but it makes sense 05:20
[Coke] heh. "moritz authored in 12 minutes"
quietfanatic is a bit out of a loop or two
[Coke] moritz++ # autounfudge
pretty sure he wrote it for rakudo, and I use it on niecza and pugs. 05:21
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
moritz [Coke]: thanks for reminding me to install ntpdate on that machine here... :-) 05:24
looks much better now 05:25
05:26 kaare_ joined
[Coke] quick, commit something else! 05:31
;)
diakopter [Coke]: you watch the Late Late Show?
05:33 birdwindupbird joined 05:38 crab2313 joined
dalek c: bb60ccf | moritz++ | htmlify.pl:
ilnk to superclasses and roles
05:41
05:41 plobsing left
moritz still missing: roles that are done by superclasses 05:45
05:48 plobsing joined
quietfanatic can that even work? 05:52
I guess it could. 05:53
moritz roles basically copy there methods into the class they are applied to 05:54
*their
05:54 thou left
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:55
quietfanatic oh 05:56
I thought you mean a role that is done by a superclass of the role
like A does B and B is A
which, given that I believe roles issing classes means it makes any class that does it is the class 05:57
makes sense
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
quietfanatic yeah 05:58
moritz so A does B and B is A would be A inheriting from A
which doesn't work
quietfanatic just like I said but with much better grmmar :)
moritz and I'm not even a native speaker :-)
quietfanatic A inheriting from A makes sense to me
moritz not to me :-)
quietfanatic I was using 'is' as a weird verb meaning "to inherit from"
moritz what would that mean?
quietfanatic Well
not inheriting, I mean 05:59
but an A *is* an A.
moritz well yes :-)
quietfanatic and 'is' is the keyword Perl 6 uses for inheritance.
that is my thinking.
[Coke] diakopter: nope. 06:00
moritz (except that it's not a keyword, just a trait mod)
06:01 SamuraiJack joined
diakopter [Coke]: twitter recommended I follow him because you follow him 06:01
so I did
quietfanatic right
[Coke] him who
diakopter the host of the Late Late Show... Craig Ferguson
[Coke] I don't really follow half the people I follow on twitter. too much firehose. 06:02
diakopter oh
[Coke] ah. he's funny, but I only very rarely see clips of his show.
dalek c: 1ac7939 | moritz++ | htmlify.pl:
[htmlify] include roles done by superclasses
moritz doc.perl6.org/type/Array#Methods%20...Positional 06:05
r: say Date.today.is-leap-year 06:09
p6eval rakudo ed269f: OUTPUT«True␤»
moritz r: say Date.is-leap-year(2012) 06:10
p6eval rakudo ed269f: OUTPUT«True␤»
moritz r: say Date.^mro
p6eval rakudo ed269f: OUTPUT«Date() Any() Mu()␤»
06:11 nodmonkey joined
dalek ast: 623a9ac | coke++ | S1 (3 files):
pugs fudge
06:13
quietfanatic Date is an object that serves as a module? 06:14
moritz doesn't understand the question
Date is a class.
quietfanatic I mean
it appears like you're using it like it's a module
just as an extra name qualifier
you're not actually instantiating it.
moritz Date has some class methods 06:15
quietfanatic hm
moritz Date.today is a constructor, for example
[Coke] static vs. instance methods.
quietfanatic ah
moritz and is-leap-year can be both a class method and an instance method
quietfanatic It's a little messy but I guess it makes sense
(personally, I'd have had a date module that has seperate classes for dates and times and such) 06:16
moritz quietfanatic: then you'll be happy to learn that we have Date and DateTime :-) 06:17
quietfanatic I mean, I'd have the module and the class be separate 06:18
maybe I just don't like class methods
moritz I don't see much sense in that
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
that'd be a function in the module
moritz and why should I offer two different APIs for that, depending on whether you want to create an object or not?
quietfanatic rather than a method on an uninstantiated class
uh
You're already offering two different APIs. 06:20
moritz no
quietfanatic I mean
moritz it's unified
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
quietfanatic but what I mean is you're offering both an object-oriented and non-OO set of behaviors
but you're sticking them both on the class
in fact 06:22
if is-leap-year is not a method
then you can have is-leap-year default to today, and get rid of today-is-leap-year entirely.
moritz there is no today-is-leap-year 06:23
quietfanatic oh
I misread that then
right
moritz and both forms are object oriented, in the sense that you get inheritance and all the stuff
quietfanatic this -> <moritz> r: say Date.today.is-leap-year
never mind that then
moritz call methods on a type object is no less OO than calling methods on an instance
*calling 06:24
moritz shuts up now
quietfanatic hmm
I think I just have different preferences for organization than TimToady
moritz fwiw TimToady didn't have a hand in the Date class thingy
quietfanatic whoever made it then 06:25
moritz that's my fault, with much inspiration from p5's Date::Simple
06:25 kaleem joined
moritz btw, if you don't like class methods, how would you construct objects? 06:25
quietfanatic No, I misunderstood what was going on there 06:26
moritz ok
quietfanatic I thought that that Date.today.is-leap-year was Date.today-is-leap-year
hence my confusion 06:27
06:28 GlitchMr joined 06:32 GlitchMr left
moritz r: say Date.new(2012, 12, 24).day-of-week 06:33
06:33 nodmonkey left
p6eval rakudo ed269f: OUTPUT«1␤» 06:33
moritz r: say Date.today.day-of-week
p6eval rakudo ed269f: OUTPUT«4␤»
moritz really wants an enum for that
06:46 vinian joined
dalek c: 294903c | moritz++ | lib/Date.pod:
[Date] docs
06:48
06:55 GlitchMr joined 07:00 wtw joined, hoelzro|away is now known as hoelzro
moritz jnthn: I found a toqast bug :-) 07:01
jnthn: run perl6 --doc lib/Date.pod in an up-to-date perl6/doc checkout 07:02
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'
with --ll-exception it shows it's from a block called from nqp;QAST;Compiler;as_post
hm, seems to be a general problem with $=pod handling, not just in this file 07:03
hoelzro masak: are you around? 07:04
I have a favor to ask of a fellow Archer =)
dalek c: 8b3be19 | moritz++ | lib/Date.pod:
[Date] month-in-year, is-leap-year
07:06
c: 561c4f9 | moritz++ | lib/Date.pod:
[Date] small fixes
07:12 brrt joined
mhasch takes cover 07:34
07:35 ivan`` left 07:36 sudokode left, mikemol left 07:37 nodmonkey joined 07:38 ivan`` joined
jnthn morning o/ 07:39
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
morning jnthn
tadzik hm 07:42
there's a date format, which you can sort alphabetically and it Just Works
some ISO one I think
hello jnthn
felher I think it should be .Num() instead of .Int(), iirc. 07:45
mhasch alphabetic ordering might fail if different time zones or dst jumps are involved (so would naive mappings to integers) 07:46
07:50 fgomez left
jnthn moritz: Hmm, and we had no spectests for that? 07:55
oh, --doc...
07:56 bbkr joined
GlitchMr I would agree with conversion to int for date. Even JavaScript does that. 07:58
>>> +new Date
1343289509466
08:00 am0c joined
mhasch looks like UTC milliseconds 08:00
08:04 spider-mario joined
mhasch in other words, can only work with dates that have a fixed relation to UTC and at most millisecond granularity 08:05
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
there you have it, then 08:07
sorear what do you mean?
08:08 am0c left
mhasch I mean GlitchMr's suggestion would not match to a more general DateTime concept 08:08
GlitchMr If you convert '12' and '12.0' to integer, would you expect they would be different values? 08:09
sorear mhasch: perl 6 datetimes are TAI seconds, expressed as (Fat)Rat 08:10
08:12 crab2313 left
mhasch sorear: Oh, that's nice. This would make ordering simple, but guessing the time based on (incomplete) information of the OS hard. 08:14
08:16 birdwindupbird left
sorear mhasch: yeah, especially for times in the future 08:16
dalek href="https://perl6.org:">perl6.org: 19e43b6 | GlitchMr++ | source/whatever/index.html:
Fix #5 by removing link to removed repository.
08:17
href="https://perl6.org:">perl6.org: 3fcaf5d | GlitchMr++ | source/compilers/index.html:
Fix #4 by fixing link to lead to correct place
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
DateTime is civil time
and I don't know enough about perl 6 DateTime to comment
08:19 birdwindupbird joined, sudokode joined
mhasch I'll look at the p6 modules before commenting further. Civil time is one heck of a can of worms. 08:21
GlitchMr Just wondering, is there any page with information which modules compile? 08:23
sorear sleep&
tadzik GlitchMr: tjs.azalayah.net/index.html maybe? 08:24
GlitchMr yeah, this page :)
tadzik yep :)
I've updated it yesterday or so
08:26 crab2313 joined
GlitchMr ok, now I know where I could have fun and try to fix modules :) 08:26
Missing or wrong version of dependency 'src/gen/CORE.setting' 08:27
I guess that this means - run bootstrap.pl again
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:␤------> / a ** b⏏ /␤␤»
..rakudo ed269f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " b /"␤»
tadzik yep
GlitchMr perl6: / ^ <line> ** \n <empty_line>? $ /
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:␤------> / ^ <line> ** \n⏏ <empty_line>? $ /␤␤»
..rakudo ed269f: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " \\n <empty"␤»
tadzik GlitchMr: could you try the offline-bootstrap branch of panda? 08:32
GlitchMr offline-bootstrap?
tadzik yep
moritz felher: +1 to Date comparison ops, -1 to .Int
08:33 birdwindupbird left
moritz felher: .Int requires us to define an epoch, and that can only be very arbitrary 08:33
08:33 crab2313 left
GlitchMr Just wondering, when rakduo will have run(), will you change shell to run? 08:33
08:33 kresike joined
GlitchMr rakudo* 08:33
kresike hello all you happy perl6 people
moritz GlitchMr: shell and run will remain separate, they do different things 08:34
felher moritz: i see :)
moritz (btw you can already compare dates with lt/gt/eq) 08:35
08:35 birdwindupbird joined
GlitchMr I meant, panda currently uses shell 08:35
08:35 cognominal joined
moritz oh, you meant if we change panda 08:36
probably, eventually
08:37 dakkar joined
felher It seems i can already compare them with <, >, ==, even if not specced: 08:37
r: for ((Date.new, Date.today) X (Date.new, Date.today)).tree { say "{.[0]} < {.[1]}: {.[0] < .[1]}" }
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 birdwindupbird left
dalek c: 96cbd0c | moritz++ | lib/Date.pod:
[Date] move synopsis to the right place
08:41
moritz felher: ah yes, we have the ops in rakudo already
dalek c: 2a183cf | moritz++ | lib/Date.pod:
[Date] remove empty heading
08:45
c: 34f72c3 | moritz++ | lib/Date.pod:
note no date comparisons, felher++
08:47
c: 1b1a0b1 | moritz++ | htmlify.pl:
[htmlify] fix URL munging
08:59
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)␤»
..niecza v19-13-g442e075: OUTPUT«({"c" => "d"}, {"a" => "b"})␤({"c" => "d"}.hash, {"a" => "b"}.hash)␤»
09:16 nodmonkey left
GlitchMr perl6: (~{'a'=>1}.WHICH,~('b'=>2).hash.WHICH).perl.say 09:20
p6eval niecza v19-13-g442e075: OUTPUT«("[-779040]", "[25B2C4C0]")␤»
..rakudo ed269f: OUTPUT«("Hash|-1264270605", "Hash|-1261155604")␤»
GlitchMr perl6: (~{'a'=>1}.WHAT,~('b'=>2).hash.WHAT).perl.say
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
..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␤␤("", "")␤»
GlitchMr perl6: ({'a'=>1}.WHAT,('b'=>2).hash.WHAT).perl.say
p6eval rakudo ed269f, niecza v19-13-g442e075: OUTPUT«(Hash, Hash)␤»
GlitchMr perl6: ({'a'=>1},('b'=>2).hash).perl.say
p6eval rakudo ed269f: OUTPUT«({"a" => 1}, ("b" => 2).hash)␤»
..niecza v19-13-g442e075: OUTPUT«({"a" => 1}, {"b" => 2}.hash)␤»
GlitchMr I'm already confused
They claim to be Hash, but after using .perl they are different 09:22
09:24 araujo joined 09:31 snearch joined 09:35 brrt left
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«===SORRY!===␤␤Multi colonpair syntax not yet understood at /tmp/5nJgQqwjCA line 1:␤------> ce.new(:subject<dog>, :predicate:<bites>⏏, :object<man>).perl.print;␤␤Undeclared name:␤ 'Sentece' used at line 1␤␤Unhandled exce…
..rakudo ed269f: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2, near ":<bites>, "␤»
GlitchMr perl6: class Sentence {has Str $.subject;has Str $.predicate;has Str $.object;}; Sentence.new(:subject<dog>, :predicate:<bites>, :object<man>).perl.print;
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Multi colonpair syntax not yet understood at /tmp/zBTVuZDoRl line 1:␤------> ce.new(:subject<dog>, :predicate:<bites>⏏, :object<man>).perl.print;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecz…
..rakudo ed269f: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2, near ":<bites>, "␤»
jnthn you have :predicate:<bites> but probably wanted :predicate<bites> 09:38
09:40 dakkar left, dakkar_ joined, dakkar_ is now known as dakkar 09:42 daxim joined 09:43 mikemol joined
masak good almost-noon, #perl6 09:44
tadzik masak! \o/ 09:45
hoelzro masak: good almost-noon 09:46
masak: I have a favor to ask off you as a fellow Arch user =) 09:47
in the interest of debugging the crash I see on my machine
masak what can I do for you, sir? 09:51
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:52
(along with an nqp package) 09:53
masak download the latest Rakudo Star, build it, gzip it, and send it to you?
hoelzro I was thinking more along the lines of a full-on Arch package, but basically, yes 09:54
I've tried building Rakudo Star under my user, as well as a "test" user, but I keep finding that crash
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
masak oh! speaking of which, is there to be a Star release this week?
hoelzro you would just need to do "cd nqp/ ; makepkg ; cd ../rakudo-star ; makepkg" and send me the resulting packages
masak ok. I'll do that. 09:56
after building it all.
hoelzro that would be much appreciated =) 09:57
I'll send you the PKGBUILDs after work
~ 19:00 or so, UTC +2
masak oh, you're on this side of the pond? 09:58
hoelzro mhmm
masak I don't know why I'm surprised by that.
hoelzro well, I'm not from here =)
masak :)
hoelzro I used to live on the other side
until a few months ago
masak ah, ok. 09:59
hoelzro so I'm not surprised at your...umm, surprise.
09:59 vinian left 10:00 atrodo left
moritz masak: "Yapsi issues monthly releases and is actively developed" says perl6.org/compilers/ 10:00
masak: should I delete the entry?
tadzik random thought: is split() lazy? 10:02
moritz tadzik: yes
dalek ast: f3c9e75 | (Jason Cole)++ | S02-lexical-conventions/comments.t:
Bulletproof comment tests against parse failures
10:03
ast: 59c9d30 | (Jason Cole)++ | S02-lexical-conventions/comments.t:
Remove unused tests of obsoleted feature :)
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:06 scott__ left 10:17 nodmonkey joined
masak moritz: yes, please delete the entry. 10:24
Yapsi may or may not have a revival, but right now it sees neither active development nor monthly releases.
hoelzro: masak.org/carl/tmp/rakudo-star-2012...ilt.tar.gz 10:28
hoelzro masak: awesome, thanks!
does that include NQP as well?
masak the whole shebang. nqp, parrot, installed artifacts...
hoelzro awesome
thanks much
masak hope it helps. 10:29
the file will remain there for a day or so.
hoelzro I just downloaded it to my work machine, so you can clear it if you'd like
10:35 spider-mario left 10:39 snearch left
masak done. 10:45
10:46 fhelmberger joined
dalek href="https://perl6.org:">perl6.org: 31f5759 | moritz++ | source/compilers/index.html:
[compilers] remove sprixel and Yapsi

they do not seem to be actively developed at the moment
10:49
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(...)»
..rakudo ed269f: OUTPUT«Sentence.new(subject => "dog", predicate => "bites", object => "man")»
tadzik haha. Reminds me of "Man bites dog" 10:53
crazy film
masak bet it's about news. 10:54
tadzik nope, it's about a killer :)
masak oh, k.
10:57 mtk left
masak <flussence> is(e, derivative(e)) # there you go :) 10:57
surely not. the derivative of a constant function is always 0.
10:59 mtk joined
masak quietfanatic++ # first post^Wcommit 11:00
tadzik oh, I was wondering who Jason Cole is
quietfanatic++
masak not the same person, I'm pretty sure. 11:02
tadzik: quietfanatic's last name is "Wall", last I check'd.
tadzik hm
okay, I'm confused then :)
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:03
tadzik re-read ALL THE BACKLOG 11:04
11:09 fhelmberger_ joined 11:11 fhelmberger left 11:17 erkan joined, erkan left, erkan joined
masak today is my Perl 6 day. 11:19
I'm gonna spend it doing macros.
jnthn How do the macros feel about this plan? 11:20
tadzik \o/
masak jnthn: they're all jittery with excitement.
I task the rest of the channel with coming up with all kinds of uses for {{{$ast}}} in the meantime. 11:21
jnthn
.oO( Macros, know your place...holder! )
11:22
masak :P 11:23
moritz baed on name and timing, I'd expect Coleoid = Jason Cole
masak TimToady: return quasi { say $a + {{{ $ast }}} } vs return quasi [ say $a + [[[ $ast ]]] ] -- and all other kinds of quasiquote delimiters. 11:24
moritz *based
masak TimToady: propose to remove that degree of freedom and just retain 'return quasi { say $a + {{{ $ast }}} }'
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): irclog.perlgeek.de/perl6/2011-10-27#i_4624005 11:27
if that's so, I don't see why we bother with providing a gazillion different delimiters for quasi blocks in particular.
other than "This year's spring fashion is <<< $ast >>>". :)
11:32 spider-mario joined
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:36
(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:38
11:39 Guest81693 joined, colomon joined
dalek ast: 33b7005 | (Solomon Foster)++ | S32-str/tc (2 files):
Add tests for code points greater than 0xFFFF.
11:40
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:42
which is not a show-stopper, admittedly, but something to think about. 11:43
it might be that all uses of ¤infix:() will contain something like $ast.dig-around-to-find-an-infix inside the parens.
GlitchMr perl6: class Cake { has $!flavor }; Cake.new(:flavor<Strawberry>).perl.print 11:44
p6eval rakudo ed269f: OUTPUT«Cake.new()»
..niecza v19-13-g442e075: OUTPUT«Cake.new(...)»
jnthn .u ¤
phenny U+0020 SPACE ( )
U+00A4 CURRENCY SIGN (¤)
GlitchMr perl6: class Cake { has $!flavor; method checkFlavor() { $!flavor } }; Cake.new(:flavor<Strawberry>).checkFlavor.perl.print 11:45
p6eval rakudo ed269f, niecza v19-13-g442e075: OUTPUT«Any»
masak GlitchMr: you can't initialize accessor-less attributes through the default .new 11:46
dalek ecza: be8bdf4 | (Solomon Foster)++ | lib/ (2 files):
Add tc, tclc, and tcuc.
ecza: 051783d | (Solomon Foster)++ | / (2 files):
Turn on tc.t and tclc.t.
masak colomon++ 11:47
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!
masak rn: say <perl ruby python>.roll ~ <jam hack jazz>.roll
p6eval rakudo ed269f: OUTPUT«pythonjam␤»
..niecza v19-13-g442e075: OUTPUT«rubyjazz␤»
masak :)
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
p6eval rakudo ed269f, niecza v19-13-g442e075: OUTPUT«rubyjazz␤»
11:49 colomon left
GlitchMr rubyjazz again? 11:49
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.␤»
..pugs: OUTPUT«What rakudo says isn't true.␤»
masak Niecza went Epimenides today.
...which dragged the other two into the whirlpool, I guess. 11:51
at least if paradoxicality is toxic, like NaN.
kresike compilers pointing fingers at each other ... cool :) 11:52
masak here in #perl6, we produce, bottle, and ship cool. 11:54
GlitchMr npr: say "What ", <rakudo niecza pugs>.pick, " says isn't true."
p6eval niecza v19-13-g442e075, pugs: OUTPUT«What niecza says isn't true.␤»
..rakudo ed269f: OUTPUT«What rakudo says isn't true.␤»
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:55
masak does it 11:56
GlitchMr Sounds like a fun challenge
for 1 .. 3 X 1 .. 3 X 1 .. 3 11:58
Am I doing it correctly?
masak I'm getting this: gist.github.com/3181677 12:04
19 out of 27 possible outputs are paradoxical.
GlitchMr ok 12:05
12:06 Coleoid left
felher yes, same here # bpaste.net/show/36899/ 12:09
kresike masak, if you post the challenge, it doesn't seem fair that you participate in solving it :) 12:11
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
masak felher: yes, see gist.github.com/3181677
kresike: why not? :) 12:14
the outcome of it is still nice code and a learning experience.
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
jnthn
.oO( Nicely insane )
12:17
masak anyway, kudos to anyone who produces a solution involving something like `my $is-paradoxical = ?$graph.cycles.grep(*.edges % 2);` 12:18
clearly that's the cool way to do it. :)
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
(except that a gear cannot be adjacent to itself the way a statement can say that it itself is lying)
but any cycle of an odd number of gears will also not budge, like a physical paradox. 12:24
tadzik masak: what was your opinion on @thing vs. @things? 12:27
jnthn
.oO( But my cycle has 21 gears! )
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 Guest81693 left
felher masak: ah, yes, cycles #updated: bpaste.net/show/36904/ 12:41
r: (1,2,3).map: { return 1 } 12:43
p6eval rakudo ed269f: ( no output )
felher r: say (1,2,3).map: { return 1 }
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 …
masak submits rakudobug 12:44
felher \o/ :)
masak felher: Z==, nice.
jnthn r: say (1,2,3).map: { 1 } 12:45
p6eval rakudo ed269f: OUTPUT«1 1 1␤»
jnthn hmm...it should really complain about that return. 12:46
12:46 nodmonkey left
masak sure, but not in that exact way, perhaps. 12:46
jnthn Well, I mean
r: return 1
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
jnthn It should do that. 12:46
I don't really understand why it doesn't.
12:54 PacoAir joined
moritz because it tries its dynamic scope too? 12:55
jnthn Oh... 12:56
Hm.
I'm not sure if it should.
It's certainly confusing if it does.
Plus explains the above output very well too.
moritz I think it shouldn't
afaict we could even complain at compile time about this one 12:57
"look, we're not in a routine, but you tried to return"
not that it matters much, since most real-world code is written inside routines
felher And now for something completely different: 13:00
r: say [[1,2,0]].classify: -> $rpn { $rpn eqv [1,2,0]|[2,0,1] };
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␤ …
felher needs a "don't shoot the messenger" t-shirt :) 13:01
13:02 drbean left
moritz r: say [1,2,0] eqv [1,2,0]|[2,0,1] 13:03
p6eval rakudo ed269f: OUTPUT«any(True, False)␤»
moritz felher: ah, might be easy to fix
maybe just some variable that needs a Mu type instead of Any
13:04 drbean joined
felher :) 13:06
13:06 tokuhiro_ joined 13:07 kaleem left
masak submits rakudobug 13:07
r: say [[1,2,0]].classify: -> $rpn { $rpn eqv [1,2,0] } 13:08
p6eval rakudo ed269f: OUTPUT«True 1 2 0␤»
masak r: say [1,2,3,4,5].classify: -> $rpn { $rpn eqv 1|3 }
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␤ …
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␤ …
masak moritz++
moritz r: say (1, 2).classify: 1|2
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…
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
p6eval niecza v19-15-g051783d: OUTPUT«1»
..rakudo ed269f: OUTPUT«12»
moritz rakudo looks wrong here 13:11
masak: correct
r: my %h; %h{'a' | 'b'} = 'foo'; say %h.perl; 13:13
felher moritz: why? Because isn't lazy in sink-context?
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␤␤»
felher *Because map
moritz felher: because the 'return' should return from sub printer
felher moritz: yeah, but isn't map lazy?
moritz felher: oh right, I forgot that 13:14
then rakudo++
felher masak++ btw, for his endless effort of submitting bugs and issues :) 13:16
13:16 bluescreen10 joined 13:18 erkan left
GlitchMr perl6: sub printer { print 1; { return 1 }(); print 2 }; printer 13:24
p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«1»
13:27 wtw left 13:38 skids joined
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
to mix a half a dozen metaphors.
felher masak: :D 13:40
moritz balance of the force tubes! 13:43
13:43 fhelmberger_ left
PerlJam this was a shock to me this morning: zag.ru/en/2012/208/a1/-WriteAt-my-o...6-Pod.html 13:43
(but in a good way :)
13:43 UncleFester6 joined
moritz submits to reddit 13:44
PerlJam++
UncleFester6 r: gather { return 1 } 13:45
p6eval rakudo ed269f: ( no output )
UncleFester6 r: say gather { return 1 }
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 …
masak zag++
UncleFester6 masak: add this to your map ticket?
masak adds it
13:48 fhelmberger joined 13:55 UncleFester6 left
jnthn zag++ # nice! 13:55
13:58 JimmyZ joined
masak TimToady: nothing calls term:unquote in STD.pm6. 13:58
14:01 UncleFester6 joined
jnthn masak: It's a protoregex, innit? 14:01
A candidate for <term>
14:01 tokuhiro_ left 14:02 tokuhiro_ joined 14:04 spider-mario left
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:05
14:06 nightlord joined
jnthn Hmmm 14:06
How soon does it need to fail?
14:06 tokuhiro_ left
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
felher: and also to die from the grammar in helpful ways if the parse fails 14:07
otherwise the response will just be "parse failed", which isn't too helpful
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.
(As in, prefer doing what moritz suggested to what I did.) 14:08
(In the common case. Maybe you have an interesting exception.)
14:08 tokuhiro_ joined
felher Okay, thnx folks :) 14:08
masak jnthn: oh! 14:09
jnthn: clearly I need more coffee. :) 14:10
14:10 UncleFester6 left 14:11 thou joined 14:14 REPLeffect left 14:18 fhelmberger left
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␤»
..niecza v19-15-g051783d: OUTPUT«42»
GlitchMr Missing initializer?
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)␤»
..niecza v19-15-g051783d: OUTPUT«===SORRY!===␤␤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…
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;
p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«42␤24␤»
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«===SORRY!===␤␤Preceding context expects a term, but found infix = instead at /tmp/nCaD_Yt5FW line 1:␤------> constant 42; say the-answer; the-answer ⏏= 24; say the-answer;␤␤Parse failed␤␤»
..rakudo ed269f: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix = instead␤at /tmp/Qw3CYMrR9y:1␤»
GlitchMr What's wrong with this? 14:23
masak GlitchMr: 'the-answer = 24;' 14:24
GlitchMr But what's wrong with it?
masak GlitchMr: 'the-answer', when used as a listop like you're using it, expects a term.
GlitchMr: it's all there in the error message. 14:25
GlitchMr: think of something like 'say 42'. '42' is a term.
GlitchMr: 'say =' is a parse error.
GlitchMr But why I cannot assign to function?
masak BECAUSE YOU'RE DOING A PARSE ERROR
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?
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, REPLeffect joined
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.
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."
it goes "oh! there was a listop there, so now what comes after must be a term."
GlitchMr But... comma isn't term
masak GlitchMr: 'say' is a term. there's no contradiction there.
14:29 nodmonkey joined
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.
GlitchMr Oh, ok
14:29 awwaiid left
GlitchMr Confusing 14:29
masak no.
GlitchMr But... say + say works too...
+ isn't argument list, is it?
masak + is a *prefix*.
you're not slowing down and thinking! 14:30
geekosaur has a Babbage quote in mind
GlitchMr oh, I see
So, I cannot do "say * say"
masak no, that's TTIAR.
a whatever plus a say.
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
GlitchMr: so because 'say *' is 'say Whatever.new', the '*' there cannot be multiplicating in 'say * say'.
14:31 tokuhiro_ left
masak multiplication* 14:31
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.
masak and the computer can do the same. backtracking is slow -- and unintuitive. 14:33
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.
GlitchMr I through that "a = 'b'" is simply forbidden because it would be confusing
masak GlitchMr: it's OK is 'a' isn't a listop. 14:34
r: constant a = 42; a = 'b'
p6eval rakudo ed269f: OUTPUT«Cannot assign to a non-container␤ in block at /tmp/XIavHDdI0Y:1␤␤»
masak it runs. no parse error.
GlitchMr oh, ok
masak (we could catch that one at compile time, but we don't, presently) 14:35
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«===SORRY!===␤␤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) […
..rakudo ed269f: OUTPUT«===SORRY!===␤:[$name] cannot be resolved at compile time␤»
masak I like Rakudo's error message there.
you're trying to send the value 'cons' back through time. 14:38
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'.
GlitchMr: I'm unable to guess whether you're trying to be funny, or not getting it. assuming the former.
kresike a compiler avoiding time travel ... cool :)
14:39 bluescreen10 left
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
*because it is impossible*.
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.
tadzik :)
masak when we're finally in runtime, compile time is over.
at already happened.
it belongs to the *past*.
you know, the thing that generally cannot be changed, unless you're Marty McFly.
GlitchMr Actually, I'm going to make language where it will be possible 14:42
Just to do it
masak let us know how it goes.
jnthn It'd be like an INTERCAL where the COMEFROM crosses the compile time / run time boundary 14:43
masak that *would* be how to implement reflection in INTERCAL... 14:44
geekosaur hee 14:45
flussence
.oO( time travel would be an interesting way to implement threads... )
14:47
14:48 awwaiid joined 14:49 SamuraiJack_ joined, xinming_ joined
masak & 14:49
14:50 SamuraiJack left
tadzik where in the spec is the signature unpacking magic? 14:51
moritz tadzik: I guess S06 14:52
14:52 bluescreen10 joined, xinming left
jnthn yes, S06 14:59
ok, enough for today :) 15:02
&
pmichaud good morning, #perl6 15:04
moritz good am, pm 15:06
15:09 orafu left
pmichaud (backscroll) it *is* possible to assign to a function, but it has to be done as either &say = ... or say() = ... 15:11
(depending on what you're intending to assign)
15:27 orafu joined
dalek ar: eeaeb8f | pmichaud++ | skel/docs/announce/2012.07:
Some spelling and refactor of deprecation announcements for 2012.07 .
15:28
ar: a1a51bc | pmichaud++ | skel/docs/announce/2012.07:
Add deprecation notes for regex spec changes.
15:29
15:33 JimmyZ left
dalek ar: bc21d69 | pmichaud++ | skel/docs/announce/2012.07:
More announcement updates.
15:36
pmichaud comments and patches to the star announcements welcomed. github.com/rakudo/star/blob/master...ce/2012.07 15:37
dalek ar: e33111f | pmichaud++ | Makefile:
Update component versions for 2012.07 release.
15:41
ar: 31522d0 | pmichaud++ | Makefile:
Parrot puts some releases in devel/ and others in supported/ .
15:42 bbkr left 15:48 hoelzro is now known as hoelzro|away
kresike bye all 15:53
15:53 kresike left
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
(I don't think we need a .1 release for it.)
15:57 thelazydeveloper joined 16:02 nightlord left 16:10 Coleoid joined 16:11 birdwindupbird joined
dalek ar: 24a8fcd | pmichaud++ | skel/tools/build/Makefile.in:
Update star's Makefile.in with new release numbers.
16:21
16:33 erkan joined 16:34 am0c joined 16:38 jerome left 16:41 jerome joined
dalek ar: 15129cd | pmichaud++ | skel/tools/build/module-install.pl:
Avoid "use of uninitialized ..." warnings during module-install.
17:01
17:05 PacoAir left 17:06 PacoAir joined 17:08 dakkar left 17:13 birdwindupbird left 17:27 Coleoid left 17:33 benabik left 17:34 benabik joined 17:38 kst left 17:42 fgomez joined 17:43 spaceships joined 17:46 REPLeffect left 17:48 REPLeffect joined
masak pmichaud: yes, please do. 17:57
pmichaud: also, perhaps make sure to update the release instructions accordingly. 17:58
18:03 GlitchMr left
pmichaud will do; although nqp needs a "make release" target like rakudo and star have. 18:09
moritz +1 18:11
masak +1 18:13
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
...unless we want to wait a few more days for the 2012.07 star release
18:14 erkan left
moritz +1 on releasing first 18:14
pmichaud I have a tarball ready now; I'm currently working on a .msi for Windows 18:15
jnthn evening, #perl6 18:16
18:18 daxim left 18:23 fhelmberger joined 18:24 kst joined 18:26 spider-mario left 18:28 Chillance joined
masak evening, #perl6! \o/ 18:29
18:39 GlitchMr joined 18:41 ggoebel left 18:44 GlitchMr left 18:46 ggoebel joined
sjohnson hi 18:46
masak sjohnson! \o/
sjohnson o/ 18:47
benabik QAST merged?
masak aye!
jnthn++
others++
flussence *++ 18:48
jnthn pmichaud: Looking over the announce
"* 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)."
Is it worth noting that what dir returns stringifies to what it used to? 18:49
That gives people a clear hint at a migration path.
"* The integer argument to IO::Socket.recv will be interpreted as number of codepoints. 18:50
"
s/codepoints/characters/ ?
moritz our current notion of character is "codepoint"
jnthn Meh, true.
pmichaud jnthn: patches welcome for dir note
we can add a note about "Rakudo's current notion of character is 'codepoint'." 18:51
TimToady which is ambiguous under UTF-16
pmichaud fair enough; it is what it is for now.
TimToady with UTF-16 you can prove that 1 == 2
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
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
pmichaud TimToady: I'm open for suggestions on how to improve our release note. :)
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.
TimToady as long as it's a Unicode codepoint, not a UTF-16 codepoint :)
jnthn pmichaud: Argh wtf 18:55
pmichaud from src/strings/encoding/shared.c:
if (src->encoding != Parrot_utf16_encoding_ptr 18:56
&& src->encoding != Parrot_ucs2_encoding_ptr)
src = Parrot_utf16_encoding_ptr->to_encoding(interp, src);
jnthn :/
pmichaud (in the "unicode_convert_case" function)
masak .oO( so much potential for improvement )
flussence it has to handle utf16 *and* ucs2? eurgh.
sorear hello
18:56 fhelmberger left
masak sorear! \o/ 18:56
jnthn
.oO( Soon everything will be on QAST, and then.... :) )
pmichaud ...and then we'll still be using Parrot's string libraries for a while. Or ICU. 18:57
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.
pmichaud TimToady: believe me, I'm very much looking forward to doing that.
well, to seeing it be done, since I doubt I'll be the one doing it. :-)
okay, I have another meeting to attend; I'll be back later 18:59
TimToady pmichaud: s/titlecase/tc/ 19:03
moritz TimToady: I've justed noticed that
dalek ar: 259e3d3 | moritz++ | skel/docs/announce/2012.07:
[announce] try to clarify a few deprecations
TimToady oh, you got it 19:04
moritz++
anybody know if there's a way in html to shrink the interline gap for the output of rosettacode.org/wiki/Draw_a_cuboid#Perl_6 19:05
flussence style="line-height: 1" 19:07
TimToady that goes in a <font> or what? 19:09
flussence Just goes in a HTML attribute, I guess <span style=...> would work.
TimToady thanks
moritz: there's another 'titlecase' in the next sentence 19:10
flussence (I'm not sure what mediawiki actually allows...)
masak TimToady: whenever you think <font> nowadays, you should probably think <span style=...> instead. :)
TimToady: it's HTML 4.01.
TimToady I'm still on HTML without version numbers :)
19:10 spider-mario joined
masak that output is awesome, by the way. 19:11
flussence oddly enough, HTML's gone back to not using version numbers...
mikemol Very impressive output. Have you looked into abusing Unicode zargo-style for line drawing? ^^ 19:12
moritz HTML version "whatever you browser understand"
mikemol s/zargo/zalgo/ 19:13
Example: plus.google.com/108080062547354628...E57B49ZyXh
dalek ar: cb7ce4b | moritz++ | skel/docs/announce/2012.07:
[announce] s/titlecase/tc/, TimToady++
mikemol TimToady: I think your use of ⡇ hides the line spacing very well. 19:14
flussence that almost has a hand-drawn look to it 19:15
mikemol I was thinking dot-matrix. :) 19:16
Really crappy dpi, though.
19:17 bluescreen10 left
TimToady it looks rather better on my terminal than in the output 19:17
the ⡇ is quite short in my firefox 19:18
19:19 kaare_ left
TimToady anyway, style= doesn't seem to make it through the wiki 19:21
mikemol Chrome on Windows: img405.imageshack.us/img405/7084/dottedlines.png 19:25
Looks pretty good to me. But perhaps your terminal looks nicer.
moritz looks unrecognizable in my firefox 19:26
19:26 atrodo joined
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.
(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
jnthn Looks a bit off in all(Firefox, IE, Safari) here
mikemol AFAIK, there's no way to do what's being asked.
jnthn: Could you put a screenshot up, so I could see it? 19:29
jnthn mikemol: Of the rightest one or the wrongest one? :) 19:30
mikemol All three, identifiable. :)
19:33 vmspb joined
jnthn mikemol: jnthn.net/tmp/ie.png (and firefox.png and safari.png) 19:34
19:34 nodmonkey left
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.
Looks monospace to me. 19:37
moritz 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
TimToady wall.org/~larry/cuboid.png is what it looks like on my screen (only in inverted colors) 19:44
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 :(
gucharmap tells me it's in FreeMono.ttf. I wish there was a font-grep tool for this... 19:51
19:57 snearch joined 20:01 SamuraiJack_ left 20:02 birdwindupbird left
diakopter chrome just shows boxes for those chars for me 20:02
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
diakopter TimToady: can you make it to up/down left/right instead of just up-right 20:04
20:04 birdwindupbird joined
diakopter and make them dance 20:04
and blink
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 :)
TimToady but that would be hard :)
quietfanatic or just use libaa
TimToady I want libba 20:06
20:06 seldon joined
TimToady I doubled the size of the png, and it looks a bit better, or at least more striking 20:14
20:17 fridim_ joined
quietfanatic lol at C's shaded model of a cuboid 20:20
diakopter how should I respond to this on reddit: "Flexibility in languages is an antipattern." 20:22
I mean, there's an acknowledgement of the existence of patterns. 20:23
benabik Downvote?
masak diakopter: I am at a loss for words.
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
(the reddit notion, that is. but then it *is* on reddit...(
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)
masak diakopter: url? 20:27
diakopter sigh
www.reddit.com/r/perl6/comments/r44...nreadable/
4 months ago
the person appears to comment a lot on clothing-relating topics 20:28
masak I find the url itself offensive. :(
I *read* Perl 6 daily! does the submitter?
oh, I've seen this thread before. 20:29
I even blogged about that very code (prior to that thread), I believe.
flussence I like that a person down the thread who admits not knowing perl6 is able to figure out what it means anyway. 20:30
masak yes, here: strangelyconsistent.org/blog/idiomatic-perl-6 20:31
pmichaud ...../is_chinese_unreadable/ *sigh* 20:32
diakopter ...../is_brainwave_unreadable/ 20:33
flussence
.oO(is_my_handwriting_unreadable)
masak I learned to read Chinese. verdict: yes, it's pretty unreadable. :P 20:34
I say this as an expert on not being able to read Chinese well.
PerlJam but ... but ... programming languages should be immediately readable even by non-practitioners of the language, right? (See COBOL for an example) 20:35
;-)
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+)
TimToady I made the Z stick up high so you don't have to :) 20:38
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
PerlJam quietfanatic: My brain chunked that expression like that the first time I saw that construct as well.
TimToady that's because it's a New Thing 20:40
you don't want parens aroung 1,2,3 ... * though 20:41
that one sticks out sideways instead of vertically...
masak no-one stops you from parenthesizing if you feel you need it. 20:42
(but that doesn't help when reading other people's code, of course. so it still makes sense to learn precedence well.) 20:43
20:43 birdwindupbird left
PerlJam understanding things always pays future dividends 20:44
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
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.
TimToady we try to put the things you have to learn in one spot, like a precedence table, or a smartmatch table
makes 'em easy to look up too 20:47
quietfanatic okay then
PerlJam quietfanatic: unless you can derive things from first-principles, you're always going to have a list of things to remember.
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
smartmatching definitely qualifies, since we use it everywhere
quietfanatic anyway, it's not about remembering rules, it's about readability
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
quietfanatic: but you treat ; as looser than ,
quietfanatic yeah
TimToady p5 programmers know to treat 'if', 'while' as looser too 20:50
quietfanatic Okay, what I mean to say is
TimToady 'and' and 'or' are looser in both p5 and p6
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.
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
TimToady it's tall 20:52
quietfanatic so is * depending on the font
TimToady no, that's just high :P
PerlJam I'll admit that it's too bad that the Z+ isn't taller.
quietfanatic | is tall
and that's lower precedence than commas
TimToady sure, but people are used to that one 20:53
quietfanatic and ||
huf but it's thin.
Z+ is a big square thing, as operators go
masak is so used to seeing "looser precendence" nowadays that "lower precendence" actually makes him stop and think what that means :)
TimToady mostly we're going for the fact that metaops tend to be Capitalized
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...
huf huh.
masak huf: what's "other than what you expect" in that? :)
it reads just like I expect it to...
huf masak: if you're coming from p5, it's weeeeird.
masak hehe.
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
huf so i wasnt *that* puzzled when i first saw the above example
PerlJam huf: If all you know is p5, perhap. But how many p5 monoglots do you know?
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
especially when ease-of-readability means readability for newcomers and non-perl6-knowers 20:56
huf PerlJam: true.
masak I liked the point that diakopter was making.
quietfanatic It would be doing a favor to readers who aren't familiar with the precedence table to use a few extra parens.
huf i dont think that makes much sense, optimizing for people who dont speak the language.
masak the guy who responded seems very inflexible.
TimToady there are still people who prefer rexx, despite it's tremendous verbosity
I don't think it clarifies anything to spread an algorithm over three pages
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.
even in C extra parens are recommended when they'd be confusing
like *(p++)
TimToady but if you compare the typical p6 solution with the typical J solution, it makes the p6 solution look verbose
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
quietfanatic yes, it is.
TimToady generally, in such a situation I'll use vertical whitespace instead of parens to make it clearer
huf and then it's up to the lead dev or manager or someone to fire them if they abuse the freedom :)
quietfanatic what I am requesting is that programmers use a few extra parens, not that the language be changed 20:59
I'm aiming for a cultural change, I guess.
PerlJam TimToady: actually, just some horizontal whitespace could have helped in the cited case I think
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
quietfanatic hmm
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?
TimToady but you have to know about X and Z
quietfanatic A C or Haskell programmer would not think so.
right
TimToady Perl has always been much more readable to Perl programmers than to other people :)
PerlJam huf: @x,0 Z+ 0,@x clearly different chunking. 21:01
quietfanatic PerlJam: I like that
lue hello world o/ .oO(Chat looks very verbose right now)
huf quietfanatic: *shrug* i cant read french, but i dont go around paris telling the people to stop it :)
PerlJam: ah.
masak lue! \o/
TimToady Perl is about being a language that can be used fluently by fluent speakers
21:01 skids left
quietfanatic The other end of that 21:01
TimToady fluency will sometimes look obfuscatory
"They talk to fast; I can't understand them..." 21:02
*too
quietfanatic is that Perl is also about being a language that can be spoken with "baby-perl" by people who aren't fluent.
huf yes, they can include the parens :)
doesnt mean baby-perl speakers can understand fluent speakers
lue ooh! Just saw qast is merged! It's in nom/ now, I presume. (jnthn++ qast_workers++)
PerlJam As long as they don't speak slowly *and* loudly ... ;)
masak lue: your test now passes. :)
quietfanatic Perl is a complicated language
masak lue: yes, it's in nom now.
TimToady yes, and you'll note we don't force adults to speak baby-talk
quietfanatic just like not every English book is aimed at people who've studied it for 30 years
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
many years. 10+
TimToady sure, which is why we put explanations with some of the RC examples
quietfanatic especially those examples that are showing off to people "look how intuitive and easy Perl 6 is"
TimToady ...if you know Perl 6
huf some of the examples are fairly easy to guess if you know p5 21:04
there's clearly some resonance
(i wonder why.... :D)
quietfanatic Some of French is easy to get if you know Latin, sure
Anyway, if I may escape this argument with at least one point intact :) 21:05
it would be
PerlJam
.oO( don't pronounce trailing consonants? )
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"
huf PerlJam: still better than UK place names... randomly skip the middle.. or dont. 21:06
masak quietfanatic: agreed.
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 :)
huf perhaps add successively less baby-talkish versions before or after the actual example?
PerlJam (see Perl 6 ;-)
tadzik oh hai
TimToady You can't write anything and not expect two-thirds of the internet to say "That sucks!" :)
pmichaud TimToady: That sucks.
TimToady Agreed.
PerlJam TimToady: but then how do we win the TIOBE popularity contest?
quietfanatic pmichaud++
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
masak lue: TIOBE is very unscientific and not a good basis for... anything. 21:09
lue Clearly. After all, BASIC is above Perl! :) 21:10
huf this is often repeated by people who like the lower-ranking languages :)
PerlJam huf++
masak lue: fun exercise: learn how TIOBE collects their statistics. think about what this means.
huf: news at 11. :) the ones who are higher ranked complain less. 21:11
huf yep :)
masak also, many people find pain uncomfortable.
lue search results‽ .oO(Quick, create a million dummy pages containing Perl 6 keywords!)
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"?
well not in 2012...
but you know what i mean
TimToady cable maybe 21:13
masak name it "Neurolinguistic".
pmichaud "computer"
masak haha
huf hah.
lue
.oO(of course C will be above C++. I imagine the less-awesome search engines will say "C" ~~ "C++")
sorear de programming
conference programming
dynamic programming, linear programming 21:14
huf these are all amazingly good names :D
masak "Dynamic" is a nice name for a language.
sorear (MSDN thinks "Dynamic Programming" means System.Reflection.Emit.ILGenerator. NOOOOOO)
PerlJam I guess the founders of TIOBE don't quite get the irony that the play was a comedy
pmichaud "network programming"
lue * programming (if wildcards were allowed in search engines)
PerlJam www.tiobe.com/index.php/content/com...lInfo.html 21:15
masak PerlJam: or, more scarily... they did. 21:16
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...
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:18 snearch left
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
or inflate or whatever that word is supposed to be
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)
masak quietfanatic: JavaScript already won. it doesn't need anyone's help, least of all TIOBE's.
quietfanatic masak: I should have known 21:21
masak when the dust settles and all other programming languages are all long dead, JavaScript will still be there. 21:22
pmichaud And COBOL.
masak :)
PerlJam and whatever language roaches use.
lue You're implying Camelia isn't tough enough to survive everything.
pmichaud as long as Camelia's wings are flapping, the dust won't be settled.
masak I'm implying browsers are everywhere. 21:23
and they all (minus epsilon) run with JavaScript installed, and *activated*.
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.
lue suddenly remembered (and scoffed at) ChromeOS
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:24
PerlJam That's how PHP "won" too: ubiquity 21:26
21:26 seldon left
dalek kudo/nom: 08c72b7 | jnthn++ | src/Perl6/Actions.pm:
Fix --doc (moritz++).
21:26
p: f0c85fd | jnthn++ | / (2 files):
Give NQP support for mixins.
p: fe87905 | jnthn++ | / (3 files):
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.
p: ffe1cba | jnthn++ | src/QAST/ (2 files):
The childorder attribute only applies to QAST::Op, so move it there; another 8 bytes of many nodes.
jnthn Hmm...we have various tests failing due to the tc updates in spectest.
pmichaud I'm not sure childorder should be limited to QAST::Op, fwiw. 21:28
but I'm okay with the change for now.
jnthn It's not used anywhere else yet. We can twiddle as needed.
pmichaud yeah; limited capabilities to only those places where things are "used" isn't always a good design approach. 21:29
*limiting
but as I said, I'm okay with it for now. :)
masak lue: you're gonna like tonight's crypt post :) 21:32
lue: more specifically, you're gonna like this feature.
lue feels excited 21:33
21:35 fhelmberger joined 21:36 fhelmberger_ joined
jnthn pmichaud: Suspect you'll be OKer with the next thing I'm doing (eliminating the biggest use of $ast<foo> annotations) 21:36
masak is it risk-free to delete entries from a hash you're iterating through in Perl 6? 21:37
21:39 fhelmberger left
pmichaud I'm totally fine with reducing $ast<foo> . \o/ 21:40
21:46 fhelmberger_ left
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:47
it's not like you're going to learn what Z means without learning it takes lists, right? 21:48
masak probably not.
21:51 spider-mario left 21:55 nodmonkey joined
nodmonkey test 21:56
masak nodmonkey: hi! 21:58
nodmonkey masak: hi back!
masak \o/ 21:59
rn: say "hi from our two Perl 6 implementations!"
p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«hi from our two Perl 6 implementations!␤»
nodmonkey rn: say "You control the machines?" 22:01
p6eval rakudo ed269f, niecza v19-15-g051783d: OUTPUT«You control the machines?␤»
masak rn: for 1..3 X 1..3 -> $x, $y { say "$x × $y = {$x * $y}" }
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␤»
masak for loops in two dimensions! \o/
nodmonkey r: say "only rakudo?" 22:02
p6eval rakudo ed269f: OUTPUT«only rakudo?␤»
masak :)
p: say "hi, I'm Pugs!"
p6eval pugs: OUTPUT«hi, I'm Pugs!␤»
nodmonkey p: say "why does nobody love me anymore? :(" 22:03
p6eval pugs: OUTPUT«why does nobody love me anymore? :(␤»
lue n: say "Don't forget me, Niecza!";
p6eval niecza v19-15-g051783d: OUTPUT«Don't forget me, Niecza!␤»
masak actually, Pugs has gotten a bit of love lately. [Coke]++ quietfanatic++
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";
p6eval std e52e3ca: OUTPUT«ok 00:00 41m␤»
dalek p: 26a8bc1 | jnthn++ | src/QAST/ (4 files):
Sort out compile time value handling, so Rakudo can do it without using annotations.
22:05
sorear nodmonkey: aye, [Coke] and quietfanatic are real people 22:06
lue TimToady: :)
TimToady is sitting about 6 feet from quietfanatic, in fact, who is playing Wild Arms
dalek kudo/nom: c1747df | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for memory usage reductions and better compile time value support.
22:07
kudo/nom: f23a454 | jnthn++ | src/Perl6/ (6 files):
Refactor to use the improved compile time value support, eliminating many uses of annotations.
masak TimToady really wants to pretend he wrote a runtime... :P
sorear nodmonkey: at least, I assume [Coke] and quietfanatic are real people. I've never actually seen either one
I know this is a questionable assumption.
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
jnthn
.oO( Everything went better than expected... )
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...
maybe that would explain the upswing in autistic spectrum disorders in general... 22:11
.oO(pre hoc, ergo propter hoc)
22:12
quietfanatic we mean you no harm
masak take us to your leader, so that we can look socially awkward next to him or her. 22:14
masak .oO( "what did you do today?" -- "oh, just perpetuated some myths about people on the spectrum." ) 22:15
lol, I blog'd! \o/ strangelyconsistent.org/blog/july-2...n-collapse
lue reads
22:16 simcop2387 left
TimToady just realized that irclog.perlgeek.de/perl6/2012-07-26#i_5850433 is not a prediction, it's a memory 22:17
masak o_O
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. )
masak waves
quietfanatic What you;re about to say masak, don't say it
it'll be a disaster.
masak ...
flussence you broke him!
TimToady the ceiling collapses
22:19 simcop2387 joined
masak damn, I hate closed causality loops. 22:19
timotimo masak: the :-) was line-wrapped here :(
you should turn that - into a non-breaking hyphen
masak timotimo: ouch.
timotimo or something else
you know, there's ☺
masak should've used 哈哈 as usual
lue masak++ on the post 22:20
masak lue: you do like that feature, don't you? :)
lue considers quickly blogging what he plans to do in his adventure game August...
masak: the dropping water bit, right? :) 22:21
masak :P
no, the fuse hooks!
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"
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 Juerd left
timotimo or can you have a role or something apply to the methods that would do a precondition? 22:22
22:22 Juerd joined, PacoAir left
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.
masak timotimo: yes.
22:23 fhelmberger joined
masak timotimo: I'll get to such things in the next few days. 22:23
timotimo cool :)
masak timotimo: so far it's basically been adding features without much concern for DRY.
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.
timotimo: you're absolutely right that it's a bit too much repetition right now.
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:25
masak +1 22:26
obviously, you should call it "Tron". :P
lue Well, I think I was inspired by .grep in P6 to name it cron
Tene this might be far enough off that it's unreasonable to be confused; I might be superoptimally wary. 22:27
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"
although, I might be mixing levels there 22:29
masak "Too much of a good thing can be... wonderful" -- Mae West
22:29 simcop2387 left
Tene I considered "suboptimally", but that seemed like it might imply I was less wary than I should be. 22:29
22:30 simcop2387 joined
timotimo i think when optimising things you only ever take the distance. like |optimum - actual| 22:30
it would always be a positive number and that positive number is the amount by which your actual solution is wrong
at least that's what they are teaching me at uni and you probably all know how far uni stuff is from the reality ;)
TimToady well, "optimal" is no longer a point after you ask "optimal for what?" 22:32
Tene timotimo: it depends on whether you're talking about the value being evaluated, or the value produced by the evaluation. 22:33
those are different domains.
TimToady and the evaluation itself has value :)
lue masak: "> take tiny disk \n You passed in 2 arguments, but take requires 1." (hanoi game) 22:34
sorear Tene: there is a well-known English word which expresses the concept you are looking for. 22:35
"excessively"
Tene Man, you guys are smart. :D
TimToady excessively so
masak lue: indeed. any suggestions for how to solve this? :)
TimToady It's not optimal to be so optimal. 22:36
masak lue: (see the hanoi game for how I solved it there)
lue parse adjectives
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)
sorear > time flies like an arrow 22:40
parse that lue :p
TimToady > fruit flies like a banana
masak sorear: that one's easy in the context of an adventure game.
lue noun verb relation article noun
masak sorear: because 'time' has to be a verb, and the rest falls out.
TimToady hmm fruit can be a verb, but it's intransitive 22:41
masak what does it mean?
TimToady The tree is fruiting.
masak oh!
'course.
lue in IF games, verb noun relation... The response would be "I do not know how to time things the way arrows do"
TimToady horse flies like a horse 22:42
horse can be transitive
masak oh man 22:43
lue
.oO(actually, because all kinds of english words match (sans punctuation) <alpha>+ , the grammar would be uneventful)
22:43 Chillance left
masak lue, did you just thought-bubble that English sentences are uneventful to parse? 22:44
where were you during the last five minutes of backlog? :)
sorear It's very easy to write a grammar which matches all grammatical English sentences.
lue I mean, every word matches <alpha>+ (roughly), so token noun { <alpha>+ }; token verb { <alpha>+ };
TimToady the actual grammar of English has over 300 rules, even ignoring ambiguity
timotimo masak: now my super smart browser broke 哈哈 into two lines :) 22:45
Tene the tokenizing is less interesting than some other languages.
masak timotimo: that's fine, it's two syllables. :)
timotimo isn't there an invisible non-breaking character?
TimToady but that's okay in Chinese
timotimo ah, ok
masak ha\nha
22:46 simcop2387 left
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:47
22:49 simcop2387 joined 22:53 vmspb left
jnthn 'night, #perl6 23:00
23:12 nodmonkey left
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.
'night, #perl6
lue 'night, masak o/ 23:16
23:20 fhelmberger left 23:27 simcop2387 left 23:30 simcop2387 joined 23:35 skids joined 23:41 simcop2387 left 23:42 simcop2387 joined 23:48 ironcamel left 23:57 thelazydeveloper left