»ö« 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!===Confusedat /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 Aat /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 declaredat /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:1d» | ||
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:1d» | ||
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:15d» | ||
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«8910» | ||
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«1098» | ||
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
|