»ö« 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: False2012-12-24 < 2012-07-26: False2012-07-26 < 2012-12-24: True2012-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:1use 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 1Unhandled 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 declarationat /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 1Unhandled 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«4224» | ||
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 = insteadat /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 = 11 × 2 = 21 × 3 = 32 × 1 = 22 × 2 = 42 × 3 = 63 × 1 = 33 × 2 = 63 × 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
|