»ö« 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.
00:00 REPLeffect joined 00:02 libertyprime left 00:03 libertyprime joined, libertyprime left 00:04 Facefox left, libertyprime joined 00:07 crazedpsyc joined, crazedpsyc is now known as Guest32104 00:09 ivan`` joined 00:11 Facefox joined 00:13 helloworld_ joined 00:15 helloworld left, helloworld_ is now known as helloworld 00:16 helloworld is now known as replSOS 00:19 cotto joined 00:21 Guest32104 left 00:23 InfiniteLoop joined
InfiniteLoop hi all 00:23
00:23 fgomez left 00:24 fgomez joined
TimToady howdy 00:24
InfiniteLoop Im trying to compile rakudo on my ppc powerbook g4
and I get this error compiling nqp:
Unknown serialization format version 16777216
any suggestions on how to fix this ? 00:25
TimToady hmm, I'm not an expert on that bit, but are you trying to use an existing parrot, or using --gen-parrot on the Configure?
is this a new install? 00:26
InfiniteLoop this is what I have: perl Configure.pl --gen-parrot --parrot-option=--without-pcre --gen-parrot-option=--optimize
yes a new install
TimToady also wonders if the serialization has been tested on a bigendian machine
InfiniteLoop ah
TimToady the number near 2**24 is suspicious 00:27
InfiniteLoop anyway here's the relevant compiler error: snipt.org/ujfhe2
TimToady unfortunately most of the experts on compiling rakudo are already asleep 00:29
InfiniteLoop thanks TimToady, I'll try my luck later
00:33 aloha left
TimToady in fact, exactly 2**24 00:34
00:37 jrockway joined 00:38 jtpalmer joined 00:44 am0c joined, InfiniteLoop left 00:47 jrockway left 00:53 jrockway joined
TimToady phenny: ask jnthn has the serialization been tested on a big-endian machine? 00:53
phenny TimToady: I'll pass that on when jnthn is around.
00:58 jrockway left 01:03 jrockway joined
[Coke] kid51 might have tested it. 01:03
sorear I know lue had a ppc mac, but I think he left pre-bs 01:04
01:07 aloha joined, scott_ joined, scott_ is now known as Guest28776 01:14 jrockway left, tokuhirom left 01:16 jrockway joined 01:17 vinian joined 01:20 jrockway left 01:26 jrockway joined 01:36 Guest36290 left 01:44 Guest14083 joined 01:46 Guest14083 is now known as crazedpsyc 01:49 raiph joined 02:11 leprevost joined 02:12 benabik joined 02:13 pyrimidine left 02:19 orafu left, orafu joined 02:29 thou joined 03:00 orafu left 03:01 cognominal joined 03:04 cognominal_ left 03:11 HarryS left, HarryS joined 03:12 xinming left 03:13 TimToady left, xinming joined, jaldhar joined 03:14 TimToady joined, estrabd left 03:16 estrabd joined 03:41 leprevost left 03:51 replSOS left 03:52 replSOS joined 03:56 vinian left 03:57 replSOS left 04:07 xinming left, xinming joined 04:27 xinming left 04:28 actualeyes joined 04:39 xinming joined 04:41 thou left 04:54 libertyprime left, fgomez left, libertyprime joined 04:56 thou joined 04:59 fgomez joined 05:05 birdwindupbird joined 05:06 SHODAN left 05:08 SHODAN joined
moritz \o 05:09
05:13 actualeyes left
sorear o/ 05:16
05:35 replsos joined
cognominal \o 05:38
05:39 stephenlb left 05:40 am0c left
cognominal about my p6peg project. I have hit 2 bugs as show by the following stack trace. gist.github.com/2778559 05:40
1/ the error lines for QRegex.nqp are wrong 05:41
2/ my grammar has no associated action class, nevertheless the 'not' method is called. That means there is a leftover $*ACTIONS dyn variable that leaked. 05:43
*-2 shown 05:44
hoping that Whatever is correctly implemented in this irc channel :) 05:45
must go. Will read the backlog.
phenny, tell jnthn, I have probably two bugs that fall on you lap. see irclog.perlgeek.de/perl6/2012-05-24#i_5631348 05:49
phenny cognominal: I'll pass that on when jnthn is around.
dalek blets: 39afed0 | (Herbert Breunung)++ | docs/ (2 files):
clarifying statement
05:52
05:55 thou left, vlixes left, sudokode left 05:58 NamelessTee joined 06:04 kaleem joined
moritz cognominal: it is usually a good idea to avoid regex names that collides with methods in class Any 06:24
cognominal: I guess that the Actions class is just Any, and it looks if method 'not' is available in class Any, which is it. Then it tries to call it => BOOM 06:25
06:39 adu joined 07:04 DreamingInCode left
moritz r: my @blocks := (0..*).map: -> $n { -> $x, $y { $x * $y * $n } }; say @blocks.infinite 07:08
p6eval rakudo 558fd0: OUTPUT«Mu()␤»
moritz I think that should be "potentially infinite"
r: say (1..*).infinite 07:12
p6eval rakudo 558fd0: OUTPUT«True␤»
moritz r: say (1..*).map(-> $x { $x } ).infinite
p6eval rakudo 558fd0: OUTPUT«Mu()␤»
07:15 replsos_ joined
moritz r: say (67.base(2).flip.comb Z* 1, 2, 4 ... *).grep: {$_} 07:16
p6eval rakudo 558fd0: OUTPUT«1 2 64␤»
07:16 brrt joined
moritz www.perlmonks.org/?node_id=972098 07:16
r: say (67.fmt('%b').flip.comb Z* 1, 2, 4 ... *).grep: {$_}
p6eval rakudo 558fd0: OUTPUT«1 2 64␤»
07:19 replsos left, replsos_ is now known as replsos
moritz r: say (67.base(2).flip.comb Z* (^64) X** 2).grep: {$_} 07:19
p6eval rakudo 558fd0: OUTPUT«1 36␤»
moritz r: say (67.base(2).flip.comb Z* (1..64) X** 2).grep: {$_}
p6eval rakudo 558fd0: OUTPUT«1 4 49␤»
moritz r: say (1..64) X** 2 07:20
p6eval rakudo 558fd0: OUTPUT«1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 1600 1681 1764 1849 1936 2025 2116 2209 2304 2401 2500 2601 2704 2809 2916 3025 3136 3249 3364 3481 3600 3721 384…
moritz r: say (67.base(2).flip.comb Z* 2 X** ^Inf).grep: {$_}
p6eval rakudo 558fd0: OUTPUT«1 2 64␤»
moritz r: say (67.base(2).flip.comb Z* 2 X**^Inf).grep: {$_} 07:22
p6eval rakudo 558fd0: OUTPUT«1 2 64␤»
07:22 NamelessTee left
moritz r: say (67.base(2).flip.comb Z* 2X**^Inf).grep: {$_} 07:22
p6eval rakudo 558fd0: OUTPUT«===SORRY!===␤Confused␤at /tmp/mVYGEY_AxB:1␤»
moritz r: say (67.base(2).flip.comb Z* 2 X**^Inf).grep: {$_}
p6eval rakudo 558fd0: OUTPUT«1 2 64␤»
tadzik morning good 07:23
moritz I wonder if you can use regexes to get the binary representation of a number
\o tadzik
r: my regex a { ^ 1 $ | <a> $<a> }; say (1 x 67) ~~ /<a>*/ 07:25
p6eval rakudo 558fd0: OUTPUT«No such method 'a' for invocant of type 'Cursor'␤ in regex a at /tmp/LtdGyrXXYf:1␤ in method INTERPOLATE at src/gen/CORE.setting:9247␤ in regex <anon> at /tmp/LtdGyrXXYf:1␤ in method ACCEPTS at src/gen/CORE.setting:9304␤ in block <anon> at /tmp/LtdGyrXXYf:1␤␤»…
moritz r: my regex a { ^ 1 $ | <a=&a> $<a> }; say (1 x 67) ~~ /<a>*/ 07:26
p6eval rakudo 558fd0: OUTPUT«(timeout)»
moritz r: my regex a { ^ 1 $ | <a=&a> $<a> }; say (1 x 14) ~~ /<a>+/
p6eval rakudo 558fd0: OUTPUT«(timeout)»
07:27 kresike joined
kresike morning all 07:27
moritz r: say (67, * div 2 ... 0).grep(* %% 2).reverse 07:28
p6eval rakudo 558fd0: OUTPUT«0 2 4 8 16␤»
moritz hello kresike
tadzik hi kresike 07:33
07:36 replsos left
sorear o/ kresike ! 07:38
07:44 stol_ joined 07:52 fglock joined 08:00 replsos joined
jnthn morning 08:04
phenny jnthn: 00:53Z <TimToady> ask jnthn has the serialization been tested on a big-endian machine?
jnthn: 05:49Z <cognominal> tell jnthn I have probably two bugs that fall on you lap. see irclog.perlgeek.de/perl6/2012-05-24#i_5631348
tadzik hello jnthn 08:05
jnthn phenny: tell TimToady No, there are comments there saying "this probably needs fixing for big-endian". But I didn't manage to get myself access to such a box.
phenny jnthn: I'll pass that on when TimToady is around.
jnthn hi tadzik 08:06
kresike moritz, tadzik, sorear o/ 08:08
moritz jnthn: re the regex thing by cognominal, I have a short analysis of that in the backlog 08:09
kresike jnthn, o/
jnthn moritz: OK, will look later on 08:11
Today I'm meant to be doing @stuff for $client, but so far only succeeded in BSOding my machine and drinking coffee :) 08:12
Well, s/my/their/ really :)
08:12 fhelmberger joined, replsos left 08:14 Timbus left, geekosaur left 08:15 kresike left 08:16 shachaf left, Timbus joined, shachaf joined
moritz (basically $*ACTIONS ends up as Any, and Any has a method 'not', and we try to call that) 08:16
I wonder if we should special-case $*ACTIONS === Any 08:17
08:17 kresike joined
moritz or keep a $.has-actions flag around 08:17
jnthn Or better, never set $*ACTIONS
OTOH, that means it'd leak if you called a grammar from inside a grammar
So that also sucks.
moritz r: my @a := { state $x; $x++ } ... *; say @a[^5] 08:22
p6eval rakudo 558fd0: OUTPUT«0 1 2 3 4␤»
moritz r: my @a := sub () { state $x; $x++ } ... *; say @a[^5] 08:23
p6eval rakudo 558fd0: OUTPUT«0 1 2 3 4␤»
masak gowd mownin', #pewl6
jnthn r: my @a := { (state $x)++ } ... *; say @a[^5]
p6eval rakudo 558fd0: OUTPUT«0 1 2 3 4␤»
08:23 geekosaur joined
moritz good antenoon masak 08:24
jnthn o/ masak
moritz r: my @a := { (state $)++ } ... *; say @a[^5]
p6eval rakudo 558fd0: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
moritz \o\ a bug!
08:25 adu left
moritz www.perlmonks.org/?node_id=972105 dunno if that's a bug or not 08:25
jnthn Looks familiar.
masak it is. 08:27
problem is in making the var anonymous.
r: my @a := { (state $camel)++ } ... *; say @a[^5]
p6eval rakudo 558fd0: OUTPUT«0 1 2 3 4␤»
masak this one seems closest, and probably has the same ground cause: rt.perl.org/rt3/Ticket/Display.html?id=98854 08:31
s/ground/root/ 08:32
08:40 Timbus left, Timbus joined
timotimo r: class A { method foo($a) { ... } }; class A { method foo($a) { say $a } }; A().foo(99); 08:44
p6eval rakudo 558fd0: OUTPUT«===SORRY!===␤Redeclaration of symbol A␤at /tmp/_S23zMKgKq:1␤»
08:45 stol_ left
masak timotimo: what's your use case? 08:45
timotimo defining not-completely-empty classes at the top of a module, then implementing all methods later
i know i can class A { ... } and later implement it 08:46
moritz so, do that :-)
timotimo hm.
masak or define a role with the methods as { ... }, and have the class do the role.
don't work against the grain of the language ;) 08:47
timotimo that role idea doesn't sound completely bad
after all, what i'd be defining is sort of like an "interface" i want the class to implement later
moritz "the trick is to exploint perl's strengths, not its weaknesses" 08:48
timotimo r: role IFoo { method foo($a) { ... } }; class Foo does IFoo { method foo($a) { say $a + 1 } }; Foo().foo(99)
p6eval rakudo 558fd0: OUTPUT«No such method 'Foo' for invocant of type 'Parcel'␤ in <anon> at src/gen/BOOTSTRAP.pm:804␤ in <anon> at src/gen/BOOTSTRAP.pm:801␤ in any <anon> at src/gen/BOOTSTRAP.pm:796␤ in block <anon> at /tmp/zXPzx7rHDp:1␤␤»
timotimo oh, whoops? 08:49
masak Foo, not Foo()
timotimo right
r: role IFoo { method foo($a) { ... } }; class Foo does IFoo { method foo($a) { say $a + 1 } }; Foo.new().foo(99)
p6eval rakudo 558fd0: OUTPUT«100␤»
timotimo not bad, not bad.
moritz roles rock.
masak +1
timotimo to someone used to separating implementation and declaration of methods like c++ would, it would seem like a hack
but i think it's all right
masak getting past the high coding standards imposed by C++ can be a challenge :P 08:50
moritz timotimo: curiously most C++ I've recently seen implement all the classes in the headers 08:53
timotimo that's necessary for templates
moritz right
timotimo so maybe that's what that was?
i've seen non-templated code by some other person at my uni do that, too. perhaps it's some java business leaking into c++ coding?
moritz well, it's simpler 08:54
and you don't have to restructure your whole build system when you start to use templates
08:54 daxim joined
moritz and the API docs can be extracted automatically anyway 08:54
timotimo well, that's true
moritz so yes, just like Java :-)
not everything that Java does is bad :-)
timotimo that's true 08:55
perl6 even goes a bit past the "api doc extraction" with pod, doesn't it?
moritz oh and speaking of Java, Google won the patent case against oracle
yes
masak phew. the case wasn't really ever about anything substantial, but it would've been bad news for Android if Oracle had won. 08:57
timotimo bad news for more than just android 08:58
for languages in general
moritz well, and if the judge decides that APIs are copyrightable, that would be a huge mess
that decision is still pending
timotimo oh, i thought you meant that was over, too 08:59
moritz no, just the patent case
timotimo but i read somewhere that the judge himself is a programmer, so i'd think he would understand reasonably well what's at stake here
moritz he's not a programmer, but he started to learn programming during the trial
tadzik talk about a dedications 09:00
timotimo ah, that's very good
tadzik it makes sense to judge something you have at least a vague idea about
(that guy)++
moritz and his second name is Haskell :-)
timotimo though APIs and all that business is a bit deeper into a programmer's education i'd think
moritz www.fjc.gov/servlet/nGetInfo?jid=28...instate=na 09:01
brrt his second name is seriously haskell 09:02
masak .oO( "Do I know Haskell? My middle *name* is Haskell!" ) :P 09:04
tadzik ;)
09:17 NamelessTee joined
moritz timotimo: but if you learn Java, you at least *use* APIs from the very start (System.out.println for one :-) 09:17
09:17 telex joined 09:19 Antichoc joined
Antichoc Salut à vous 09:21
Je cherches quelques informations sur ILBOT, est-ce que quelqu'un connait la procédure d'installation ?
moritz Antichoc: moi
Antichoc salut moritz 09:22
moritz Antichoc: do you speak english?
Antichoc en effet, je pouvais pas mieux tomber
A little but I can try
moritz Antichoc: and we should go to private message with that
Antichoc ok
09:24 stol_ joined
moritz -> afk 09:24
09:25 Antichoc left 09:32 SatoAmbush joined
timotimo moritz: that's certainly true, but the concept of different implementations of the same API might not be clear until you progress much further (for instance until someone asks you to implement some specified api or something) 09:33
although usage of interfaces seems somewhat similar and i believe you do that rather often if you do Swing, but i'm not sure.
tadzik it depends on how do you think about it. Go for example has no concept of classes, only interfaces 09:35
timotimo interesting. how are implementations of interface-defined methods implemented (or, more interestingly, organised)? 09:38
tadzik you can define methods for any data type (int, string, map[string]int, or whatever struct you name a type) 09:42
then any type that implements all the required methods implicitly satisfies an interface that requires those 09:43
so you can, for example, add methods to built-in types to make them satisfy the interfaces you specified elsewhere
I quite like the idea of focusing on the behaviours rather than data 09:44
timotimo ah, ok 09:48
09:53 sisar left 09:54 sisar joined 10:04 cj left 10:05 cj joined 10:20 stol_ left 10:24 mtk left 10:42 PZt left 10:46 mtk joined 10:59 PZt joined 11:10 benabik left, sisar left 11:11 JimmyZ joined 11:12 sisar joined 11:13 brrt left 11:19 brrt joined 11:21 brrt left 11:47 sporous left, sporous joined 11:48 benabik joined 11:52 brrt joined 11:53 jaldhar left, jaldhar joined 11:58 skids left 12:26 domidumont left, domidumont joined 12:27 domidumont left 12:29 brrt left 12:32 brrt joined 12:34 sergot joined
sergot hi o/ 12:34
phenny sergot: 23 May 21:18Z <sjn> tell sergot Send sjn the reimbursement receipts! :)
12:41 NamelessTee left 12:44 PZt left 12:45 sftp left 12:46 bluescreen10 joined, SatoAmbush left 12:54 PacoAir joined 12:56 wooden left 12:59 domidumont joined 13:02 sergot left, araujo left
Woodi hallo 13:07
13:07 Psyche^ joined
tadzik hello Woodi 13:07
13:09 bluescreen10 left
Woodi I was thinking about modules which are "required" for Perl6 and imagined implementing all of them... but CPAN is there, full of *implemented* modules... 13:11
13:11 Patterner left, Psyche^ is now known as Patterner 13:12 bluescreen10 joined
tadzik right 13:13
that's where the desire for Perl 5 interop comes from
it used to be blizkost, now it's probably going to be done on nqp, or even Rakudo level 13:14
I wonder how possible would that be to use the C API of Perl 5 through zavolaj to provide some interop 13:15
jnthn tadzik: I'd wondered that too.
tadzik one could write a Perl5ClassHOW which would be a Perl 6 <-> Perl 5 bridge
jnthn tadzik: It's probably not the way though. 13:16
(the zavolaj approach, that is)
tadzik why not?
jnthn Well, to really integrate Perl 5 at 6model level you want to write representations, I think.
You may well want a custom meta-class too
tadzik is repr('P5_SV') or such? 13:17
I'm just wondering what's not possible to be done while having 6model in Rakudo
13:18 araujo joined, araujo left, araujo joined
jnthn tadzik: Kinda like that, yeah. 13:19
tadzik that's Zavolaj-doable
(I think) 13:20
jnthn Well, the current design is that REPRs are very low level things, written in C.
sisar r: say 42.fmt("%05d");
p6eval rakudo 558fd0: OUTPUT«00042␤»
tadzik right
sisar if that 5 is actually in a variable, how do I use it ?
jnthn sisar: Interpolate it. 13:21
tadzik r: my $five = 5; say 42.fmt("%0$fived");
p6eval rakudo 558fd0: OUTPUT«===SORRY!===␤Variable $fived is not declared␤at /tmp/6G2cKik85X:1␤»
tadzik r: my $five = 5; say 42.fmt("%0{$five}d");
p6eval rakudo 558fd0: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/dBdYaMarA0:1␤␤d␤»
sisar r: my $i = 5 ; say 42.fmt("%0{$i}d");
p6eval rakudo 558fd0: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/_zDpu1EJcI:1␤␤d␤»
jnthn huh...that should work
sisar jnthn: how ? 13:22
jnthn r: my $i = 5 ; say 42.fmt("%0{say $i; $i}d");
p6eval rakudo 558fd0: OUTPUT«===SORRY!===␤multi-dimensional indexes not yet implemented. Sorry. ␤at /tmp/ABXb4mMWy4:1␤»
jnthn oh!
r: my $i = 5 ; say 42.fmt("%0$($i)d");
p6eval rakudo 558fd0: OUTPUT«00042␤»
jnthn It was treating %0{$i} as a hash index into %0 :) 13:23
13:23 wolfman2000 left
tadzik heh 13:23
sisar how does $($i) work ?
is $() a function ?
jnthn sisar: $($i) is really $i.item which for an Int is a no-op
No, it's a contextualizer. 13:24
It's a bit of a hack to use it there
May just be nicer not to use interpolation
'%0' ~ $i ~ 'd'
r: my $i = 5 ; say 42.fmt(Q:b"%0{$i}d"); 13:25
sisar r: my $i = 5 ; say 42.fmt(%0~$i~d);
p6eval rakudo 558fd0: OUTPUT«===SORRY!===␤Colons may not be used to delimit quoting constructs at line 1, near ":b\"%0{$i}d"␤»
rakudo 558fd0: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&d' called (line 1)␤»
felher go geeks
sisar r: my $i = 5 ; say 42.fmt(%0~$i~'d');
p6eval rakudo 558fd0: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/Mb3zGMtmqP:1␤␤5d␤»
felher this should be /go geeks
jnthn sisar: quoting
felher *should have been :)
13:26 skids joined
flussence r: my $i = 5; say 42.fmt($i.fmt('%%0%dd')); 13:28
p6eval rakudo 558fd0: OUTPUT«00042␤»
flussence runs
13:33 JimmyZ left 13:34 sftp joined, JimmyZ_ joined, JimmyZ_ is now known as JimmyZ
Woodi how about parrot lvl perl5 modules integration into all parrot languages ? 13:38
tadzik blizkost tried to do that 13:39
github.com/jnthn/blizkost
it worked to some extend
see github.com/jnthn/blizkost/blob/mas...les/cgi.pl 13:40
Woodi so how about parsing 95% Perl5 with grammars ? :) 13:49
13:49 pmurias joined
[Coke] we really need to write down these historical paths so we can point folks at the story instead of having to tell it all the time. 13:51
13:51 fgomez left
[Coke] ... though I suppose the oral traditions of our forefathers are something to respect. (nah, I'm lazy.) 13:51
13:51 fgomez joined
tadzik Woodi: reimplementing Perl 5 is probably quite tough :) 13:51
13:52 fgomez left
masak [Coke]: full ACK on writing the history down. 13:52
both how the language evolves and how the community evolves.
13:57 fgomez joined 14:00 lm joined 14:02 lm left 14:05 mikemol joined 14:13 JimmyZ left 14:14 JimmyZ joined 14:19 brrt left 14:21 sudokode joined 14:27 brrt joined 14:29 JimmyZ left 14:30 kresike left 14:31 Khisanth left 14:33 JimmyZ joined 14:36 JimmyZ left 14:37 JimmyZ joined
tadzik jnthn: am I right to assume that we'd want Perl 5 interop to be not parrot-dependent, on nqp level? 14:37
felher I'd really like to have a syntax for "call method on $object if $object ist defined", let's say ".#", so that one can write $object.#getA().#getB().#getC(), which just returns the first undefined value, if there is any, or the last value. ".?" is a bit like that, but since undefined objects can have methods, it's not the same. This is a bit like the Maybe-Monad in Haskell. Just do it, or fail somewhere on 14:38
the way. I don't care where.
jnthn tadzik: I build as little as I can Parrot dependent these days.
felher Any thoughts on that? :)
tadzik right
jnthn felher: Hmm. $obj.//a() would go well with // 14:39
tadzik I'm looking at blizkost code, particularly ParrotCC to PerlCC conversions, and wonder how much of that can be reused
felher jnthn: yeah :)
Juerd felher: Isn't that a matter of temporarily decorating the global undef class (role?) with an autoload method?
masak felher: ($object // $guard).getA().getB().getC()
felher: *handwaving about how $guard looks*, not so important 14:40
PerlJam idly wonders if [.] $obj, $meth1, $meth2, $meth3 works
Juerd PerlJam: I want it to.
jnthn No :)
masak a special object whose metaobject hijacks method dispatch would work.
Juerd jnthn: Aww, why not? We have .=, so why not [.]?
masak PerlJam: no, dot pretends to be an operator, but it really isn't. 14:41
jnthn I said it doesn't work, not that it could not be made to.
Juerd :)
masak well, at least not an infix operator.
jnthn masak: Yes, it is just that.
.= is a special form.
masak right.
it's a sham, and it falls apart here.
jnthn We need to be really careful here.
Juerd jnthn: I know. I'm still not sure about the whitespace stuff with += versus .= :)
masak that said, you could easily *define* [.] yourself ;)
jnthn Because otherwise we bust up the catching of . mis-used for concat
std: 'a' . 'b'
p6eval std 8632387: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66537.␤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66576.␤===SORRY!===␤Unsupported use of . to concatenate strings; in Perl 6 please use ~ at /tmp/LE…
jnthn std: [.] 'a', 'b' 14:42
Juerd Personally I don't care much for catching that error.
p6eval std 8632387: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66537.␤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66576.␤===SORRY!===␤Unsupported use of . to concatenate strings; in Perl 6 please use ~ at /tmp/G0…
jnthn STD actually realizes that is the now-gone . op here
felher masak: the problem is that i would need a guard on every part of the chain that can fail @ ($object // $guard).getA();
Juerd I don't think the mistake of using . for concatention is likely; you'll have dots for method calls all over the place, as a reminder of the change. 14:43
jnthn ponders $foo.:foo('bar')($normal-arg, $another-arg) 14:44
14:44 adu joined
jnthn Where :foo('bar') is passed to .^find_method 14:44
masak r: sub prefix:<[.]> ($obj is copy, *@methods) { for @methods -> &m { $obj = $obj.&m }; return $obj }; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.] A.new, &A::foo, &A::bar;
p6eval rakudo 558fd0: OUTPUT«A.new()foobar␤»
masak aww :)
r: sub prefix:<[.]> ($obj is copy, *@methods) { for @methods -> &m { $obj = $obj.&m }; return $obj }; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.] (A.new, &A::foo, &A::bar);
p6eval rakudo 558fd0: OUTPUT«A.new() foo bar␤»
masak r: sub prefix:<[.]> ($obj is copy, *@methods) { for @methods -> &m { $obj = $obj.&m }; return $obj }; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.](A.new, &A::foo, &A::bar);
p6eval rakudo 558fd0: OUTPUT«A.new() foo bar␤»
masak aww :)
14:44 Khisanth joined
Juerd "purl, tell masak about play with the bot" 14:45
Haven't been there in a decade or so I guess :)
masak felher: right. so you want to actually wrap the original object using 'but'.
Juerd: what would it have said? I'm doing important research here. :)
Juerd masak: It'd sneer at you for flooding the channel, and request (demand) that you do things like that in a private conversation with it. 14:46
I don't really care; it just came to mind. 14:47
Later many factoids were changed to be much friendlier
masak I'm glad we don't have a bot for sneering at people. 14:48
felher masak: i don't know if i want that. What i want is a method-call syntax that works like Haskells Maybe-Monad ($object >>= method1 >>= method2 >>= method3 >>= method 4). If this can be achieved with 'but', then that may be exactly what i want :)
masak sorry if I pushed out too much noise into the channel. it would have been so much more impressive if it'd worked :P
felher :D
Juerd masak: #perl on efnet was a very unfriendly channel in many ways. I don't know what that channel is like now.
PerlJam It would be interesting to have a channel just for bot talk that was logged so that you could refer people to your "research" via links without interrupting the flow of conversation between actual people ;) 14:49
Juerd masak: As I said, I don't really care about the noise. I'm quite intruiged by the code actually.
flussence felher: seems like "and.=" maybe should work like "and=" does, but it doesn't :(
masak PerlJam: that presumes that the research isn't part of the flow of conversation between actual people.
PerlJam indeed.
masak PerlJam: I wasn't trying random stuff. I was defining up the prefix:<[.]> operator.
Juerd masak: Maybe you should define infix:<.> instead. I wonder what that will blow up. 14:50
masak ooh
ok, more noise coming up.
r: sub infix:<.>($obj, &method) { $obj.&method }; class A { our method bar { "OH HAI" } }; say A.new . &A::bar 14:51
p6eval rakudo 558fd0: OUTPUT«OH HAI␤»
masak \o/
felher flussence: at a first glance, and.= could be what i want, yes. But the nicest syntax was jnthn's .// :)
masak r: sub infix:<.>($obj, &method) { $obj.&method }; class A { our method bar { "OH HAI" } }; say [.] A.new, &A::bar
p6eval rakudo 558fd0: OUTPUT«OH HAI␤»
masak r: sub infix:<.>($obj, &method) { $obj.&method }; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.] A.new, &A::foo, &A::bar
p6eval rakudo 558fd0: OUTPUT«OH HAI␤»
masak \o/
Juerd++
tadzik hmm
Juerd Haha 14:52
masak that is pretty awesome.
tadzik r: sub infix:<.>($obj, $method) { $obj.$method }; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.] A.new, 'foo', 'bar'
p6eval rakudo 558fd0: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤ in <anon> at src/gen/BOOTSTRAP.pm:811␤ in any <anon> at src/gen/BOOTSTRAP.pm:807␤ in sub infix:<.> at /tmp/owqKTJFJdG:1␤ in sub <anon> at src/gen/CORE.setting:11108␤ in block <anon> at /tmp/owqKT…
masak tadzik: $obj."$method"() 14:53
tadzik ah, yes
r: sub infix:<.>($obj, $method) { $obj."$method"() }; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.] A.new, 'foo', 'bar'
p6eval rakudo 558fd0: OUTPUT«OH HAI␤»
tadzik r: sub infix:<.>($obj, $method) { $obj."$method"() }; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.] A.new, <foo bar> 14:54
p6eval rakudo 558fd0: OUTPUT«OH HAI␤»
jnthn Nice :)
Juerd This is incredible :)
tadzik r: module InfixDot { sub infix:<.>($obj, $method) is export { $obj."$method"() } }; import InfixDot; class A { our method foo { self }; our method bar { "OH HAI" } }; say [.] A.new, <foo bar> 14:55
p6eval rakudo 558fd0: OUTPUT«OH HAI␤»
tadzik . o O ( There's a module for that! )
masak felher: by tweaking the definition of infix:<.>, you can easily do what you want, too.
adu I'm getting an infinite recursion in a grammar
so wierd
jnthn decommutes 14:56
felher yeah, [.] looks quite nice. I wonder how i would use arguments with that.
Juerd felher: Just because you can, doesn't mean you should, use it.
jnthn Maybe pass a pair :)
meth_name => \(args here) 14:57
;)
jnthn really goes
felher o/ jnthn :)
14:59 thou joined 15:00 tokuhirom joined
PerlJam Hrm. 15:00
adu Captures are very JavaScripty
PerlJam Here's an LTA error message: use of uninitialized variable $pos of type Any in numeric context in block <anon> at ./foo:15 15:01
I got it when I accidentally typed @array[$1] instead of @array[$i]
15:03 NamelessTee joined
felher Well, obviously i'd like ".//" to get into the specs. Of course, as masak++ mentioned the last time i wanted something to go into the specs, just because i wan't it or use it often doesn't mean it should get specced. I fully agree on that. The real question is probably: Will it be used enough to say it's worth to spec it instead of having everyone who needs it build it for himself. I think it would be 15:07
feature which won't do something great, but quite a few nice things all over the place. Other questions (which i sadly am not able to answer) are: Is it easy to spec? Is it easy to implement? ...
adu how do I debug "maximum recursion depth exceeded"?
felher adu: maybe this helps you: github.com/jnthn/grammar-debugger/.../Tracer.pm 15:08
adu: i never used it, but i did see it do great things in one of jnthn's talks, think :) 15:09
adu hmm, maybe
if i can figure out how to use it
what does EXPORTHOW.WHO.<grammar> mean? 15:10
felher adu: i think it tells rakudo to use this class as the Meta-Class for grammars. 15:11
adu: 6guts.wordpress.com/2011/08/01/a-hi...ogramming/ might be of interest :) 15:12
adu hmm 15:14
ok
15:17 SatoAmbush joined 15:20 JimmyZ_ joined
adu omg I'm so dense 15:21
I was definining token ws { <ws> }
:P
pmurias Woodi: perlito is a perl5 (re)implementation 15:22
felher Yeah, this could take a while... :)
15:22 JimmyZ left, JimmyZ_ is now known as JimmyZ
masak adu: ah, so the reason you got an infinite loop was that you had coded one. 15:26
adu masak: it took awhile to see
but it was actually indirect
15:26 JimmyZ left
adu token ws { <atmosphere>* } ; token atmosphere { <ws> | <comment> } 15:27
masak ah. 15:28
I'm wondering how that translates to a DFA. feels like there should be some problem with recursion there.
adu DFA? 15:29
masak en.wikipedia.org/wiki/Deterministic..._automaton
it's to do with parsing. 15:30
15:30 alester left
adu i see 15:31
15:32 fglock left, SatoAmbush left
jnthn home 15:38
15:40 PacoAir left 15:45 alester joined
TimToady felher: see S02:1355 15:46
phenny TimToady: 08:05Z <jnthn> tell TimToady No, there are comments there saying "this probably needs fixing for big-endian". But I didn't manage to get myself access to such a box.
felher sees
better: /me looks for it 15:47
adu jnthn oh, so that's what you mean by "decommutes"
adu thought of some kind of real-life algebraic maneuver
moritz \o
15:48 sergot joined
adu o/^ 15:48
skids was about to offer access to re-set up his alpha for bigendian tests, but them remembered how much RAM rakudo needs.
*then
sergot o/
TimToady masak: the lexer-generator just assumes it should stop when it sees left-recursion, and that something else will constrain it somewhere 15:49
it could probably usefully emit a warning though 15:50
masak oh yes.
adu
masak adu: going home from work *is* some kind of real-life algebraic maneuver :P
adu masak: :) tell me about it
felher TimToady: oha. yes, i think this is very similiar to what i wanted and i think i can live with that. Thanks :) TimToady++ 15:51
15:51 am0c joined
TimToady I don't know that any implementation actually does that yet... 15:51
15:54 tokuhirom left 15:55 tokuhirom joined 15:59 shevy joined
shevy hi 15:59
when can use perl6 on GNU Hurd please?
15:59 tokuhirom left
brrt lol 15:59
whenever gnu hurd is done
[Coke] seriously wonders who will get done first! 16:00
TimToady oh, surely gnu hurd 16:01
Perl 6 is supposed to be a 100-year language
jnthn Hopefully hurd, because a programming langauge being "done" means it's dead and over with. :)
masak I wouldn't be surprised if using Perl 6 on GNU Hurd is just a matter of firing up GNU Hurd and compiling Rakudo.
jnthn It may well actually run there already, yeah.
masak wouldn't surprise me.
someone should try it, just for kicks.
jnthn If somebody gets me access to a big endian box running GNU Hurd, we can kill two birds with one stone :P 16:02
TimToady you might have to find yourself a Gnu c compiler...oh wait...
[Coke] masak: You should totally do that, and post a blog article about it, so that people have one more thing to point and say "see? waste of time."
sorear meh, the hurd doesn't have to be completely done to run programs
masak [Coke]: yeah. :)
TimToady someone should rewrite hurd in Perl 6
masak [Coke]: I should write a small game in Perl 6 on GNU Hurd, called "Duke Nukem Forever".
moritz afaict running programs has worked in the hurd for many years
16:02 kaare_ joined
moritz it's "just" device drivers that are missing 16:03
and some details
sorear masak: you are aware DNF came out last year?
[Coke] masak: that would funnier if DNF hadn't shipped yet.
[Coke] stares at sorear.
. o O (GET OUT OF MY MIND!)
masak the GNU Hurd people are in the really thankless position of chugging along with a project whose relevance is dubious since Linux is so successful. unlike Perl 6, which totally isn't overshadowed by Perl 5 in any way.
sorear, [Coke]: yeah. agree, it would be funnier if DNF hadn't finally shipped. 16:04
16:04 wooden joined, wooden left, wooden joined
masak we should call them up and suggest they help us, now that they're between projects and all. 16:04
16:05 brrt left 16:10 kaleem left
adu DNF = disjunctive normal form? 16:14
TimToady Did Not Finish
masak adu: en.wikipedia.org/wiki/Duke_Nukem_Forever 16:15
adu sorear: is that right?
masak looks at the cover art of that Wikipedia article, and thinks "that guy looks like he has some issues..." :) 16:16
sorear adu: look at what masak said 16:17
daxim balls of steel
adu ah ok 16:18
masak "The game was a financial success but received middling to negative critical notice." -- as opposed to Perl 6, which is loved, despised, ridiculed, and not on the financial radar :P
adu I don't see why it isn't
moritz is it just me, or are we having an usually high level of meta discussions these days?
adu I'm interested in using Perl6 for code quality automation 16:19
sorear masak: incidentally, I am really, really looking forward to a resolution of the is-QC-possible-in-the-real-world question
adu: Why can't you use Perl 5 for that? 16:20
adu sorear: you can, and for that matter, you can also use brainfuck, it's Turing equivalent
masak sorear: me too. but I'm squarely on Aaronson's side here. it would be shocking if it weren't. right now it just seems difficult. 16:21
TimToady is Quantum Chromodynamics possible in the real world? eh...
masak adu: what sorear is saying is that some tools are better suited for the job.
adu sorear: I think if your going to write an app to do static analysis and check quality of code, it should be written with quality code, and I'm not confident I can do that with Perl5
masak TimToady: Quantum Computing. 16:22
TimToady I figgered that out.
sorear masak and I are having a conversation with a time lag of half a day
TimToady that's about right for the impedance of my brane 16:23
sorear out& 16:24
adu moritz: is it too meta for you?
moritz adu: no. But often it's more productive to hack than to meta-discuss 16:25
masak not so much meta as OT, I guess. 16:26
adu Google Wave? 16:27
masak and it's probably partly my fault. I like the intelligent discussions that happen here, so I encourage them.
moritz masak: I don't think you were involved in most of the meta discussions I'm talking about 16:28
masak adu: when you ask a question consisting entirely of a noun phrase, there has to be some surrounding context for the reader to latch on to so that it's possible to derive what you mean. there isn't in this case. what do you mean? :)
moritz: ooc, which ones were you talking about?
[Coke] TimToady: there is a very excellent book about branes and the origin (sort of) of the universe. wish I could remember the title. 16:29
moritz masak: all of those tha occured within that last (or last two) weeks
adu masak: do you mean OT = operational transform? the kind used in the now dead Google Wave (r.i.p)?
[Coke] adu: OT == off topic
adu oh
masak adu: ah! that was the missing link. thank you.
adu too many TLAs
[Coke] does miss the factoid boid.
er... factoid bot! 16:30
aloha, OT?
aloha, coke?
TimToady OT isn't a TLA, it's only a TLA.
16:30 wooden left
adu lol 16:30
how do I make a bot remember that 16:31
TimToady the meatbots remember it automatically 16:32
masak terribly useful, those bags of meat.
adu goes to lunch
16:33 adu left
shevy pls that helped me not I install hurrd now 16:38
16:38 shevy left, mucker joined
masak "help-me-not", the lesser known flower of the Myosotis genus. fiercly independent. 16:40
fiercely*
16:44 daxim left 16:45 felher left 16:46 PacoAir joined, fgomez left 16:53 sergot_ joined 16:56 sergot left 17:12 birdwindupbird left
moritz quasimal.com/posts/2012-05-21-funsh.html 17:13
now that's some nice evil
17:17 fhelmberger left 17:38 adu joined 17:42 felher joined 17:43 japhb left 17:44 birdwindupbird joined
sisar r: say 12345678910.fmt("%11d"); 17:45
p6eval rakudo 558fd0: OUTPUT« -539222978␤»
sisar ^bug .
n: say 12345678910.fmt("%11d"); 17:46
p6eval niecza v17-23-gfb775fb: OUTPUT«-2147483648␤»
sisar ^bug.
it works upto %10d, but gives wrong output on %11d 17:47
r: say 1234567891.fmt("%10d");
p6eval rakudo 558fd0: OUTPUT«1234567891␤»
masak submits rakudobug
masak submits nieczabug
sisar masak++
moritz it's known, afaict
sisar i wonder what is so special about 11 ? 17:48
masak moritz: in RT? but not for Niecza?
moritz at least we know that rakudo's fmt/sprintf cannot handle bigints, and that's just one more instance of it
masak sisar: looks like just 2**31 to me.
moritz masak: I think there's one in RT about $bigint.fmt('%b') or so
masak ok, good.
sisar masak: right.
moritz r: sprintf('%d') 17:49
p6eval rakudo 558fd0: OUTPUT«Null PMC access in get_integer()␤ in sub sprintf at src/gen/CORE.setting:1998␤ in block <anon> at /tmp/rQ0P1gF2cp:1␤␤»
moritz nearly the same underlying problem
[Coke] r: say Whatever.fmt("%03i");
p6eval rakudo 558fd0: OUTPUT«No such method 'fmt' for invocant of type 'Whatever'␤ in block <anon> at /tmp/ru47CAJ1KO:1␤␤»
sisar it hurts when both compilers bite you with the same bug !
[Coke] r: say "»ö«".fmt("%03i");
p6eval rakudo 558fd0: OUTPUT«000␤»
moritz sisar: that's because it's a rather deep bug 17:50
sisar or maybe niecza<->rakudo copied each other's bug ? :p
moritz another bug is that sprintf uses native types to convert between numbers
sisar s/bug/code
moritz so that if you have a format that coerces a bigish float to int, you'll hit the system's integer limit 17:51
sisar I still don't know the difference between int and Int? and the term 'boxing'.
moritz sisar: well, both use the underlying parrot/CLR sprintf
an Int can store arbitrarily large numbers
p6: say 2**66
p6eval pugs, rakudo 558fd0, niecza v17-23-gfb775fb: OUTPUT«73786976294838206464␤»
moritz you can't do that with int. int is limited to whatever your processor, OS and VM understand as integer 17:52
sisar oh int is your int from C, which depends from system to system.
[Coke] sisar++
moritz and an int is not a "real" object; you cannot call methods on it (if it seems like you can, that's because it has been boxed into an Int for you)
[Coke] boxing == putting int "in a box" so it can be treated like an Int.
PerlJam sisar: boxing is wrapping a value type in an object and then using the object 17:53
[Coke] unboxing - take out of the box. autoboxing - convert between the two without any programmer effort, if possible.
sisar so C is not so portable after all.
geekosaur oh dear
C has never been very portable
moritz sisar: C is just more portable than assembler; that's all :-)
sisar or maybe boxing == box together as many system int's as needed to store an Int. 17:54
dalek kudo/nom: 32a6d06 | moritz++ | src/core/operators.pm:
make sequence deduction not assume numbers
sisar moritz++, [Coke]++, PerlJam++, geekosaur++ #explanations
PerlJam C is *incredibly* portable ... as long as you don't mind potentially large semantic differences between platforms ;) 17:55
dalek ast: d73fb04 | moritz++ | S03-sequence/nonnumeric.t:
a non-numeric sequence test
geekosaur despite the efforts of various standards groups, any real program is going to have a maze of compatibility #defines and #ifdefs somewhere. autoconf and Metaconfig are tools to set up all the compatibility defines that let you pretend C is slightly portable
17:55 pmurias left
sisar if I remember correctly, realizing that C's int was not the same for all computers, came really as a setback to me. I remember being felt cheated or something... 17:58
that was my first setback with programming language 17:59
PerlJam It's a shock to some people.
17:59 Chillance joined
sisar it gives me a warm feeling that Perl6 Int is _same_ everywhere :) 17:59
moritz modulo bugs, of course :-) 18:00
18:00 fgomez joined
PerlJam I remember helping a guy with some code that talked to a sensor. He couldn't understand why the sensor in ascii mode gave different numbers than when he unpacked the sensor data that was transmitted in binary mode. The machine he was unpacking on had a different endianness than the sensor. 18:01
sisar bugs are just hurdles. the fact that C99 deliberately left it to the compiler to decide int's length was a setback.
18:06 fgomez left 18:09 estrabd left
moritz did TestML ever work? 18:12
18:12 aes joined
aes perl6: say 666; 18:17
p6eval pugs, rakudo 32a6d0, niecza v17-23-gfb775fb: OUTPUT«666␤»
dalek kudo/nom: 2b36193 | moritz++ | src/core/ (2 files):
switch to strict numification by default

But allow numification of '' to 0 without failure
18:18
kudo/nom: 525a664 | moritz++ | docs/ChangeLog:
update ChangeLog
moritz ok, this might be a pretty big change for our users
so, everyone please test (and fix) their code after this commit :-)
aes perl6: my @blocks := (0..*).map: -> $n { -> $x, $y { $x * $y * $n } }; 18:19
p6eval niecza v17-23-gfb775fb: OUTPUT«Potential difficulties:␤ @blocks is declared but not used at /tmp/owaqaEmWKh line 1:␤------> my ⏏@blocks := (0..*).map: -> $n { -> $x, $y␤␤» 18:20
..pugs: OUTPUT«(timeout)»
..rakudo 32a6d0: ( no output )
jnthn r: say 666 ** 666
p6eval rakudo 32a6d0: OUTPUT«2715417592887128558260874551700217860278385210650169871782230046965783675347846036880134178612873170810403693946181369253763907767348141423592699549814385853090580057925757772865477669740320306227094006360766303376954723573441938832586188596016367470293927056824802…
jnthn aes: You need "say" or something to get it to output.
moritz but don't "say" the whole thing; it's infinite :-) 18:21
jnthn er, though that looks to be making a lazy list of closures too :)
moritz r: say (666 ** 666).chars
p6eval rakudo 32a6d0: OUTPUT«1881␤»
aes Howdy moritz.
moritz r: say log(666, 10) * 666
p6eval rakudo 32a6d0: OUTPUT«1880.43383662742␤»
moritz r: say ceiling log(666, 10) * 666
p6eval rakudo 32a6d0: OUTPUT«1881␤»
moritz hello aes 18:22
sergot_ nom: my $s = 'aaa'; $s ~~ s:g/a//; say $s;
p6eval rakudo 32a6d0: OUTPUT«␤»
sergot_ nom: my $s = 'aaa'; $s ~~ s/a+//; say $s;
p6eval rakudo 32a6d0: OUTPUT«␤»
jnthn hah...if we implemented "cat" then "ceiling cat" is valid Perl 6... :)
...and useless. :) 18:23
18:23 [particle] left, alester left
aes perl6: my @blocks := (0..*).map: -> $n { -> $x, $y { $x * $y * $n } }; say @blocks[0].(3,5), @blocks[1].(3,5), @blocks[2].(3,5); 18:23
18:23 alester joined
p6eval rakudo 32a6d0, niecza v17-23-gfb775fb: OUTPUT«01530␤» 18:23
..pugs: OUTPUT«(timeout)»
18:24 fibo joined, [particle] joined
moritz Q: how can a vocabular trainer be political? A: by teaching you 'priest' right after 'plague' :-) 18:25
so happened on memrise.com while trying to learn bokmål
18:27 mikemol left, araujo left, ponpon left, aes left 18:28 ponpon joined, bluescreen10 left, takesako left 18:29 ponpon is now known as Guest26382, araujo joined, bluescreen10 joined 18:31 takesako joined 18:33 PacoAir left, PacoAir joined 18:34 aes joined
eiro masak, jnthn, tadzik: any news about your flight ? rafl is trying to find his way to fpw. if we have a tight flight schedule at the same airport, maybe i can take you by car 18:35
also josette
and maybe mst 18:36
[Coke] NOT MST!
jnthn: DOOOO IT 18:37
can can be an alias for print!
*cat
eiro damn it! fpw at Strasbourg and rafl will be the only one german! such a shame!
jnthn eiro: No, I didn't look at flights yet...will try and figure something out soon :) 18:38
[Coke]: cat is already in the spec, iirc
eiro ok 18:39
jnthn [Coke]: Yes, S03 :) 18:40
tadzik eiro: I'll probably be able to get to FPW :) 18:42
My last exam is 28th 18:43
eiro tadzik, YEAH!
tadzik \o/
moritz $ perl6 -Ilib -e 'say $*PROGRAM_NAME' 18:44
-Ilib
/o\
diakopter once I get around to reading S03, I expect I will start fuzzing a lot more again.
skimming through it, I realize I haven't read it ever, or at least don't remember doing so. 18:45
no wonder I don't understand list context
tadzik decomutees
18:48 mucker left 18:50 brrt joined
masak I'm not sure S03 will help so much with list context. 18:50
diakopter oh :'( 18:51
masak submits $*PROGRAM_NAME bug
aes r: my @blocks := (0..*).map: -> $n { -> $x, $y { $x + $y + $n } }; say @blocks[0].(3,5); say @blocks[1].(3,5); say @blocks[2].(3,5); 18:52
p6eval rakudo 32a6d0: OUTPUT«8␤9␤10␤»
aes r: my @blocks := (0..*).map: -> $n { -> $x, $y { $x + $y + $n } }; say @blocks[2].(3,5); say @blocks[1].(3,5); say @blocks[0].(3,5); 18:53
p6eval rakudo 32a6d0: OUTPUT«10␤9␤8␤»
19:00 fgomez joined
masak diakopter: I would turn to S07 for that. but be aware that S07 has been pending revision for a long time. 19:05
19:06 Antichoc-Mob joined
Antichoc-Mob moritz, 19:07
i have a problème 19:08
i chant sray connecting
moritz Antichoc-Mob: if you are not in a hurry, we can try tomorrow, in the hope that your connection is more stable then
Antichoc-Mob tes 19:09
wich time do you prefer?
yes sorry 19:10
masak just show up; we'll be around to help you :)
Antichoc-Mob ok i m connecting tommorow all the day.. 19:11
sorry 19:12
moritz no problem
masak: Antichoc-Mob is looking for help with the IR clogs, not with Perl 6, I'm afraid :-)
[Coke] whoa. I just showed my daughter a screen of an app I'm working on for work, and she got excited, and proceeded to describe to me the binary search I explained to her months ago the last time I was working from home. sweet. 19:15
moritz wow.
19:17 aes left
[Coke] (4th grader) 19:17
19:17 dukeleto joined
moritz does that mean ~10 years old? 19:18
masak moritz: oh, I see.
[Coke]: daughter++ 19:19
19:20 brrt left 19:21 aesundstrom joined
[Coke] moritz: 9 19:26
19:27 Guest26382 is now known as ponpon
moritz nqp: try { pir::die('foo'); CATCH { pir::exit(1) } }; say 'alive' 19:28
p6eval nqp: OUTPUT«Confused at line 1, near "say 'alive"␤current instr.: 'nqp;HLL;Grammar;panic' pc 22008 (src/stage2/gen/NQPHLL.pir:7047) (src/stage2/gen/NQPHLL.pm:329)␤»
moritz nqp: try { pir::die('foo'); CATCH { pir::exit(1) } }; say('alive')
p6eval nqp: ( no output )
19:29 NamelessTee left 19:35 adu left 19:39 Antichoc-Mob left 19:48 bluescreen10 left
dalek p/toqast: a5d179c | masak++ | src/QAST/Operations.nqp:
[QAST::Operations] simplified copy/pasted code some

Not using this variable; removing it.
19:52
p/toqast: a6c9a36 | masak++ | / (2 files):
[QAST::Operations] implement repeat_while/repeat_until
p/qbootstrap: 2e354d1 | jnthn++ | src/QHLL/Grammar.pm:
Toss a couple of commented out lines from debugging/updating.
19:54
19:55 aesundstrom left 19:58 aesundstrom joined, sergot_ left 20:02 am0c left 20:04 fgomez left
moritz nqp: class A { }; if nqp::create(A) { say('true') } 20:05
p6eval nqp: OUTPUT«true␤»
20:10 Facefox left
dalek p: c4cc06a | moritz++ | src/HLL/Compiler.pm:
expose parsed command line options and arguments to the user
20:12
20:13 Facefox joined 20:14 thou left
dalek kudo/nom: 5da3671 | moritz++ | / (2 files):
fix $*PROGRAM_NAME in the presence of command line options
20:15
20:16 DreamingInCode joined 20:29 brrt joined 20:31 brrt left 20:34 sivoais left 20:37 sivoais joined 20:41 NamelessTee joined 20:45 fgomez joined
masak good $night, #perl6 20:46
tadzik 'night
raiph www.tbray.org/ongoing/When/200x/200...r-dot-next
20:48 aesundstrom left 20:50 fgomez left 20:51 fibo left 20:53 birdwindupbird left
raiph (Lots of great stuff such as "Ingredients that might go into the winning formula that brings concurrent programming to the mainstream.") 20:54
20:56 kaare_ left 21:00 tyatpi left
DreamingInCode raiph: This is indeed good stuff. Traditional imperative programming hits a brick wall at a certain point, and it's a big question mark as to how to solve this problem pragmatically. Unfortunately most concurrent programming languages seem to be ill suited to this type of task from a developer standpoint. 21:00
raiph www.macs.hw.ac.uk/~dsg/gph/papers/h...egies.html 21:01
21:06 Facefox left
raiph lambda-the-ultimate.org/node/3465 # nice overview of programming paradigms 21:06
21:06 skids left
raiph DreamingInCode: I've been digging around the net, provoked by the comments to www.reddit.com/r/perl/comments/u1y3...ductizing/ 21:07
21:08 bruges left 21:09 benabik left 21:10 bruges joined 21:12 aesundstrom joined, Antichoc joined 21:13 tyatpi joined
jnthn Today's lesson: Parrot's ResizableIntegerArray doesn't give you a zeroed out array. 21:13
(Unfun way to discover this: your NFA seemingly randomly trims branches when it shouldn't, because sometimes you get unlucky enough to ahve exactly the "right" values in there chunk of memory you get...) 21:14
DreamingInCode Even at this late date, I suspect the broader engineering community has a poor level of comprehension of just how scary and non-scalable traditional threading models are. 21:15
jnthn (fwiw, Parrot doesn't anywhere I can see promise to zero 'em, so it's not a bug. Just a bad assumption to took a while to track down...) 21:19
PerlJam jnthn: seems like that's a good promise for parrot to make if it wanted to though
diakopter jnthn: I can imagine there being *lots* of places you'll want to update to zero things yourself now. Or write a version of RIA that zeroes and use that instead. 21:20
jnthn diakopter: We don't use RIAs all that heavily. But I am gonna go audit places I do. 21:21
21:22 aesundstrom left 21:25 aesundstrom joined, fgomez joined
dalek p/qbootstrap: 7da814f | jnthn++ | src/ops/nqp.ops:
Turns out that ResizableIntegerArrays aren't zeroed to start with, which caused random failures when running NFAs. This fixes the various sporadic, seemingly random parse failures under qbootstrap.
21:26
21:29 fgomez left 21:30 aesundstrom left, aesundstrom joined
raiph DreamingInCode: Agreed. From the tbray link: "very hard to find humans who can actually reason about threads well enough to be usefully productive." 21:36
flussence I tried writing threaded p5 code a while back in $dayjob. Did not go well... 21:37
DreamingInCode In theory the solution is simple: use haskell. lol. However turning your brain (and your database driven application) inside-out to do that is non-trivial. 21:39
same goes for any language that is decent with concurrency far as I'm aware. We humans prefer to think linearly, which requires more mental gymnastics than are practical when you have to "get shit done" (TM) 21:43
So instead, we bide our time, clinging to our imperative programming for as long as our hardware will bear. sucks
21:46 aesundstrom left 21:49 aesundstrom joined, libertyprime left, aesundstrom left 21:50 raiph left 21:51 libertyprime joined 21:52 PacoAir left 21:53 Antichoc left 21:59 thou joined 22:07 tyatpi left, dukeleto left 22:11 lestrrat left 22:13 lestrrat joined 22:16 benabik joined
dalek p/qbootstrap: c13c4e2 | jnthn++ | src/QHLL/Actions.pm:
Fix :w quotemod check in action method (this is faster than what was done before, though it probably shoulda still worked the way it originally was). This means qbootstrap is down to just three test files with failures in t/nqp.
22:20
22:32 tokuhirom joined
diakopter prepares to push fixes to grammaros and typos in S03. I like editing. 22:32
22:32 skids joined 22:33 NamelessTee left 22:43 PZt joined 22:45 lestrrat left 22:46 lestrrat joined 22:49 tyatpi joined 22:54 fgomez joined 22:57 mikemol joined 22:58 fgomez left 23:01 wolfman2000 joined 23:09 whiteknight joined 23:10 whiteknight is now known as Guest57249 23:16 Chillance left 23:17 stephenlb joined 23:20 wolfman2000 left 23:28 lestrrat left
diakopter std: say({3}␤,3) 23:28
p6eval std 8632387: OUTPUT«===SORRY!===␤Unable to parse argument list at /tmp/0KxtvRAqnz line 1:␤------> say⏏({3}␤Couldn't find final ')'; gave up at /tmp/0KxtvRAqnz line 2:␤------> <BOL>⏏,3)␤ expecting any of:␤ argument list␤ block␤ p…
23:29 lestrrat joined
jnthn .u ␤ 23:30
phenny U+2424 SYMBOL FOR NEWLINE (␤)
sorear note, p6eval munges U+2424 into U+000A on input
jnthn oh!
diakopter oh, heh
oops. I meant to put a newline there 23:31
oh. now I see what you're saying sorear
I was testing something I read in S03 (that }␤ terminates an argument list) 23:35
r: say({3}␤,3)
p6eval rakudo 5da367: OUTPUT«Block.new()3␤»
23:36 fgomez joined
diakopter n: say(|@(|@(3,5))) 23:37
p6eval niecza v17-23-gfb775fb: OUTPUT«35␤»
diakopter r: say(|@(|@(3,5)))
p6eval rakudo 5da367: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&prefix:<|>' called (line 1)␤»
diakopter pugs: say(|@(|@(3,5))) 23:38
p6eval pugs: OUTPUT«35␤»
23:39 fgomez left, DreamingInCode left, fgomez joined
dalek ecs: a2c0304 | (Matthew Wilson)++ | S03-operators.pod:
first batch of my S03 typo/grammaro fixes
23:43
diakopter ergh. my git username is still wrong.
there, fixed I think 23:44
23:53 wolfman2000 joined 23:54 Facefox joined, DreamingInCode joined