»ö« 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.
lue threads as in a computer's, right? (/me only knows them from extensively reading N64 system documentation) 00:01
00:03 Trashlord joined 00:08 Trashlord left 00:09 Trashlord joined
flussence threads as in "if you segfault here, the rest of it comes crashing down" :) 00:13
lue Ooh, then I guess that was a segfault in the most recent Doctor Who episode... 00:15
sorear good * #perl6 00:18
lue hello sorear o/ 00:19
00:26 donri left
colomon \o 00:27
sorear: it seems declaring the basic arithmetic operators as multi subs is enough to bring niecza to its knees
sorear I'm not suprised 00:28
00:28 Trashlord left
sorear so I'm now awake and have no remaining major obligatons today. perl6 time :D 00:30
00:30 Trashlord joined
colomon \o/ 00:30
huh. I tried making just infix:<+> and infix:<*> multi, but it still worked. But if you make all of infix:<->, infix:</>, infix:<%>, and infix:<**> multi too, "mono run/Niecza.exe" just hangs. 00:32
00:33 Trashlord left
sorear phenny: tell masak to read about --author and --date in git-commit(1) 00:34
phenny sorear: I'll pass that on when masak is around.
00:34 Trashlord joined
colomon It's multi sub infix:</> that's the culprit, it seems 00:39
00:47 cyfi joined
colomon crap. you get the command line with + - * multi, but t/fudgeandrun t/spec/S03-metaops/reduce.t just hangs. sigh. 00:47
00:51 Trashlord left
sorear colomon: can you actually do any math that way? 00:54
I'm suprised it works at all
00:54 Trashlord joined
sorear and it'll definitely be very slow - niecza's inlining mechanism doesn't work with multis yet 00:54
colomon ah. 00:55
well, I guess I won't be fixing this bug tonight, then.
the good news: my wife just declared she is too tired to watch the dreary romantic comedy we were just watching, so I'm able to switch to the football game. :) 00:59
lue
.oO(You can't be watching it *that* closely if you have time for #perl6)
01:00
colomon it wasn't the sort of film that required close watching. 01:02
in fact, it was the sort of film that was worse the closer you were paying attention, I think.
01:04 Trashlord left 01:06 Trashlord joined 01:08 risou_awy is now known as risou 01:15 wolfman2000 joined, Trashlord left 01:16 Trashlord joined 01:17 [Coke] left 01:18 [Coke] joined 01:22 daniel-s left 01:23 [Coke] left, daniel-s joined 01:25 [Coke] joined 01:26 Trashlord left 01:27 Trashlord joined, masonkramer joined, tokuhiro_ joined
sorear heh, the issue was I broke C3 01:28
or did I? 01:29
01:32 [Coke] left 01:34 [Coke] joined
sorear ...yes, I did. 01:36
disagrees with Perl5's C3 01:37
01:37 Trashlord left 01:38 mtk left 01:39 [Coke] left 01:40 Trashlord joined, [Coke] joined
dalek ecza/serialize: 049b617 | sorear++ | lib/ObjModel.cs:
Fix misreimplementation of C3 MRO
01:43
01:46 [Coke] left 01:48 [Coke] joined 01:51 Trashlord left 01:52 [Coke] left 01:54 [Coke] joined, Trashlord joined 02:00 [Coke] left 02:02 [Coke] joined 02:06 Trashlord left 02:10 Trashlord joined
dalek ecza/serialize: a3850e3 | sorear++ | lib/Cursor.cs:
Reimplement LTM handling for parametric role variables
02:11
sorear \o/ All tests successful.
now for the things that test.pl (deliberately) doesn't test..
02:15 masonkramer left, Transformer joined 02:18 Transformer left 02:20 Trashlord left 02:25 Trashlord joined 02:27 risou is now known as risou_awy
colomon sorear: If you're there at the moment, any idea how to get access to msdn.microsoft.com/en-us/library/mi....110).aspx (FileSystem class) from mono? 02:32
I'm trying to get at a mkdir command (like FileSystem.MkDir) 02:33
hmmm, maybe System.IO.Directory.CreateDirectory instead? 02:34
sorear yes, use System.IO.Directory 02:35
sorear wanders back
02:35 Trashlord left
colomon sorear++ 02:36
02:36 Trashlord joined 02:42 benabik joined
dalek ecza: 8b9e1af | (Solomon Foster)++ | lib/ (2 files):
Add simple form of mkdir.
02:44
02:47 Trashlord left 02:49 tokuhiro_ left, Trashlord joined 03:01 Trashlord left 03:05 Trashlord joined 03:11 Chillance left 03:17 uasi joined 03:18 Trashlord left, abercrombie left 03:20 Trashlord joined 03:32 uasi left 03:35 Trashlord left 03:37 Trashlord joined 03:45 skangas joined 03:53 Trashlord left 03:55 Trashlord joined
dalek ast: 02c1b47 | Coke++ | S0 (5 files):
rakudo fudging
04:06
04:06 skangas left 04:12 Trashlord left 04:15 Trashlord joined 04:20 cyfi left 04:24 cyfi joined 04:28 Trashlord left
dalek kudo/nom: 1937529 | Coke++ | t/spectest.data:
run fudged tests
04:29
04:35 bluescreen10 left, aindilis left 04:36 aindilis joined 04:42 Trashlord joined 04:44 thou left, Trashlord left 04:45 thou joined 04:46 Trashlord joined, wolfman2000 left 04:48 skangas joined 04:59 soh_cah_toa left 05:00 uasi joined 05:02 Trashlord left 05:04 Trashlord joined 05:16 orafu left 05:17 orafu joined 05:19 Trashlord left 05:20 Trashlord joined 05:23 Trashlord left 05:24 Trashlord joined 05:34 alvis left 05:45 Trashlord left 05:47 Trashlord joined
sorear perl6: say 5 || 2 ?? 1 !! 0; 05:51
p6eval pugs b927740, rakudo 193752, niecza v10-60-g8b9e1af: OUTPUT«1␤»
05:51 F00LI5H is now known as f00li5h 05:56 cognominal___ joined 05:58 Trashlord left, cognominal___ left, cognominal___ joined 05:59 cognominal_ left 06:00 Trashlord joined 06:04 GlitchMr joined 06:12 drbean left 06:15 kaare_ joined 06:16 djanatyn is now known as djanatyn|afk
dalek ecza/serialize: d0a95e5 | sorear++ | / (6 files):
Reimplement eval. Currently breaks stash merging when used
06:23
06:29 drbean joined 06:31 dukeleto left, dukeleto joined 06:33 Trashlord left 06:34 Trashlord joined 06:38 Trashlord left 06:39 Trashlord joined 06:40 uasi left, thou left 06:42 wamba joined 06:58 Trashlord left 07:01 Trashlord joined 07:11 Trashlord left 07:15 Trashlord joined 07:20 SHODAN joined 07:31 kfo_ joined 07:35 kfo left 07:52 araujo left 08:04 wk joined
snarkyboojum what's the time line for current master to get back to the kind of regex support that ng enjoyed? 08:05
I ask, because this lack of regex goodness is blocking most of my private projects currently - and nom rocks, so I want to use it ;) 08:07
08:08 cognominal___ left 08:09 cognominal___ joined
tadzik we're blocking on pmichaud++ 08:10
08:12 im2ee joined, drbean left
Woodi Hi today :) 08:23
again about git/rakudo/nqp... cat rakudo/tools/build/NQP_REVISION -> 2011.09-31-gd2d759f 08:24
cd nqp ; git log | grep gd2d759f -> null
it means: git log do not look enough long in back ? or other branch or something ? 08:25
08:26 uasi joined
moritz Woodi: the leading 'g' is not part of the sha1 08:26
08:27 drbean joined
Woodi oops :) didn't know that... 08:28
now works :) thanx 08:30
08:32 grondilu joined
grondilu I wrote four sentences to help remember operator precedence in Perl6 08:32
s0.barwen.ch/~grondilu/methodist.txt 08:34
sirmacik s0.barwen.ch/~grondilu/methodist.txt 08:35
ops, sorry ;x
grondilu (that was weird)
moritz nice :-)
grondilu it almost sound like a poem, doesn't it? :) 08:36
sirmacik grondilu: I'm not used to putty :/
08:45 Gothmog_ left, jfried left 08:47 grondilu left 08:51 cognominal_ joined 08:54 cognominal___ left 08:57 SHODAN left
snarkyboojum sirmacik: enjoyable read :D 09:08
"tights" == "tightens"? 09:09
09:15 PacoLinux left 09:16 PacoLinux joined 09:17 manildomin joined
manildomin hi everyone 09:17
tadzik hi manildomin 09:18
manildomin I am reading Using Perl6 but I've got a few issues with the first example
can you give me some help? 09:19
snarkyboojum manildomin: I reckon you should just ask ;) 09:21
manildomin ok, I have tried to run the first example in the book "Using Perl6", which is about parsing a file containing scores of a table tennis tournament 09:22
when I try to run it with "perl6 test.pl", I get:
Use of uninitialized value in numeric contextUse of uninitialized value in numeric context
and the code I strive to run is exactly the same as the code given in the book 09:23
tadzik it appears that the book examples need some review, ney? We should probably turn them into tests or such
manildomin: it may be that the code did not follow the latest compiler changes, sorry for that 09:24
I'll take a look at it now
manildomin ok thanks
I'm using rakudo 2011.09
tadzik manildomin: I just tried it and it works fine for me 09:25
09:25 Kivutarrr joined
tadzik the code starting with my $file = open 'scores';, right? 09:25
manildomin no, mine start with "use v6;" 09:26
but the next line is the one you put
tadzik yeah, that's fine
use v6 doesn't really matter
manildomin: gist.github.com/1307166
I'm using a bit newer Rakudo, but I don't think that matters. Are you sure you're running the same code with the same data? 09:27
manildomin yes 09:28
I replaced my code with yours and I've got the same result
perl6 --version gives me: 09:29
This is perl6 version 2011.09 built on parrot 3.8.0 revision 0
tadzik snarkyboojum: do you have 2011.09 in handy, maybe?
sirmacik: or you?
snarkyboojum tadzik: nope - just latest master 09:30
tadzik manildomin: that may be the version issue then, do you haev a possibility to upgrade to 2011.10?
manildomin I will have to compile the new version manually then 09:31
colomon are you sure there's not an extra blank line or two at the end of the data file?
manildomin there are no extra blank lines
TiMBuS hey, is there a version of p6eval on github somewhere? i wanna run it on another server..
also hi
tadzik TiMBuS: isn't that perl6/evalbot or so?
moritz it is 09:32
TiMBuS probably!
snarkyboojum we should definitely have tests run as part of 'make'ing the book imo
TiMBuS is it safe or do i gotta jail it etc
moritz it's not safe at all.
TiMBuS :<
moritz I run it as a separate user in a chroot on a VM that isn't used for important stuff 09:33
TiMBuS i guess i might do that 09:35
09:36 xinming joined, alvis joined 09:37 MayDaniel joined
snarkyboojum manildomin: fwiw, I get errors trying to run that example too :) 09:37
manildomin ah
I will compile the latest rakudo release 09:38
snarkyboojum and my perl 6 isn't that old either
moritz works on current rakudo 09:39
what's the error message you get? 09:40
snarkyboojum gist.github.com/1307178
tadzik trailing blank lines
oh, it's something different 09:41
masak morron, #perl6 09:42
phenny masak: 00:34Z <sorear> tell masak to read about --author and --date in git-commit(1)
masak sorear: I did, but decided against that option. 09:43
snarkyboojum tadzik: trailing blank lines?
masak mostly because it felt like I'd have to clear that before TheDamian before making commits in his name.
s:1st/before/with/
tadzik snarkyboojum: in scores, maybe? 09:44
snarkyboojum tadzik: nope
tadzik: just using space in gist for clarity ;)
tadzik ok ;) 09:45
I should probably write a blogpost about MuEvent
09:47 mj41_nb joined, mj41 joined
snarkyboojum what's MuEvent? :D 09:48
tadzik yes, I should :)
this: gist.github.com/1305904
it's an anyevent lookalike
snarkyboojum ah - I thought it was a new cool Perl6 conference :D 09:49
but this is a new cool anyevent lookalike
awesome
masak we should totally have a MuEvent Perl 6 event ;) 09:51
tadzik :)
let's define it. Oh, wait 09:52
masak I object!
snarkyboojum tadzik: look forward to the post 10:02
masak man, Yudkowsky keeps rocking my world.
10:02 manildomin left
masak "If you want to sound deep, you can never say anything that is more than a single step of inferential distance away from your listener's current mental state." :) 10:06
tadzik heh
phenny: "mów do głupca mądrze a nazwie cię idiotą"?
phenny tadzik: "Speak to the wise fool and called you an idiot" (pl to en, translate.google.com)
tadzik not really
"speak wisely to the fool, and he'll call you an idiot"
masak maybe "wisely" could be taken as "taking more than a single step of inferential distance away from the fool's current mental state", then. 10:10
tadzik probably 10:11
masak I see the same things happening in understanding programming and design concepts.
first you need to understand that DRY is everything.
*then* you need to understand that DRY isn't everything. :)
but it's quite important to learn it in that order. 10:12
tadzik like with optimization
masak how is it like with optimization?
tadzik "don't do it", is the first rule 10:13
then, how do I wrap it in words
if you're wise enough to optimize correctly, then you're wise enough to know when to break the first rule
10:14 Mowah_ joined
masak rightright. 10:15
it's interesting what topics are like that, where people need to be *told* that they aren't competent enough to do a good enough job. 10:17
security/encryption seems to be another.
perl6: my $a = 1; my $b = 2; ($a, $b) = $b, $a; say $a; say $b 10:28
p6eval pugs b927740, rakudo 193752, niecza v10-60-g8b9e1af: OUTPUT«2␤1␤»
masak \o/ 10:29
10:37 Grrrr joined
masak perl6: say 1 +^ 2 +^ 3 10:46
p6eval pugs b927740, rakudo 193752, niecza v10-60-g8b9e1af: OUTPUT«0␤»
masak perl6: say 1 +^ 4 +^ 5
p6eval pugs b927740, rakudo 193752, niecza v10-60-g8b9e1af: OUTPUT«0␤» 10:47
masak wonders if it'd be worth it to manually translate his June blogging games into JavaScript, so they can be played online 10:49
maybe I should translate them into Dart. ;) 10:51
10:52 manildomin joined
manildomin I'm back 10:52
masak re-greetings, manildomin 10:53
manildomin I compiled an older version of rakudo (This is Rakudo Perl 6, version 2011.04 built on parrot 3.8.0 0) and the source code doesn't work either!!
I get :
Method 'split' not found for invocant of class '' in <anon> at line 12:test.pl in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp
masak yeah, I saw in the backlog that you had problems with the first example in the book.
allow me to try it out locally to see if I can reproduce your warnings. 10:54
manildomin yes
ok
masak I'm running Rakudo 2011.06 here, for some reason.
ooc, how did you copy the source code? from the PDF? 10:55
manildomin I wrote it myself
masak how diligent. :)
manildomin and I checked for errors
masak I'll take a shortcut and copy it from the source repository.
manildomin ok
masak hm. no warnings here. 10:57
how about I make a gist of the contents of my two files, and then you can compare at your leisure?
manildomin which version of parrot and rakudo do you have ?
ok
masak Rakudo 2011.06, and the Parrot that goes with that release, 3.5.0. 10:58
manildomin: gist.github.com/1307245 10:59
I didn't even de-indent things, so everything has a four space indentation. but I don't think it much matters one way or another. 11:00
manildomin thanks I try it 11:01
11:01 wk left
masak the script also works fine on current HEAD revision. no warnings. 11:02
manildomin it works with (Rakudo Perl 6, version 2011.04 built on parrot 3.8.0 0) 11:08
I understood the problem:
I have a blank line at the beginning of the 'scores' files 11:09
how stupid i am
masak not to worry.
you found the problem :)
manildomin I will try this again with the newer rakudo 2011.09
thanks 11:10
masak I think it'll work there. it works fine on HEAD.
no problemo.
11:12 cognominal___ joined
masak std: my @names; my @sorted = @names.sort({ %sets{$_} }).sort({ %matches{$_} }).reverse; say @sorted.perl 11:13
p6eval std 580b69a: OUTPUT«===SORRY!===␤Variable %sets is not predeclared at /tmp/6FwKmw6DRP line 1:␤------> my @names; my @sorted = @names.sort({ ⏏%sets{$_} }).sort({ %matches{$_} }).reve␤Variable %matches is not predeclared at /tmp/6FwKmw6DRP line 1:␤----…
masak std: my (@names, %sets, %matches); my @sorted = @names.sort({ %sets{$_} }).sort({ %matches{$_} }).reverse; say @sorted.perl 11:14
p6eval std 580b69a: OUTPUT«ok 00:01 125m␤»
masak std: my (@names, %sets, %matches); my @sorted = @names.sort: { %sets{$_} }.sort: { %matches{$_} }.reverse; say @sorted.perl
p6eval std 580b69a: OUTPUT«ok 00:01 125m␤»
masak std: my (@names, %sets, %matches); @names ==> sort: { %sets{$_} } ==> sort: { %matches{$_} } ==> reverse ==> my @sorted; say @sorted.perl
p6eval std 580b69a: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'sort' (see line 1) at /tmp/YWCtyqEueC line 1:␤------> names ==> sort: { %sets{$_} } ==> sort: ⏏{ %matches{$_} } ==> reverse ==> my @sor␤Preceding context expects a term, but found infi…
masak std: my (@names, %sets, %matches); @names ==> sort { %sets{$_} } ==> sort { %matches{$_} } ==> reverse ==> my @sorted; say @sorted.perl 11:15
p6eval std 580b69a: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix ==> instead at /tmp/_6mh8ci_7D line 1:␤------> } ==> sort { %matches{$_} } ==> reverse ⏏==> my @sorted; say @sorted.perl␤Parse failed␤FAILED 00:01 126m␤»
masak std: my (@names, %sets, %matches); @names ==> sort({ %sets{$_} }) ==> sort({ %matches{$_} }) ==> reverse ==> my @sorted; say @sorted.perl
11:15 cognominal_ left
p6eval std 580b69a: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix ==> instead at /tmp/OndsN7L2vG line 1:␤------> ==> sort({ %matches{$_} }) ==> reverse ⏏==> my @sorted; say @sorted.perl␤Parse failed␤FAILED 00:01 126m␤» 11:15
masak hm.
im2ee nom: class a { method abc ( @l ) { say @l.perl; }; }; my $a = a.new; $a.abc(<a b c>); 11:26
p6eval nom 193752: OUTPUT«("a", "b", "c")␤»
im2ee nom: class a { method abc ( @l is rw ) { say @l.perl; }; }; my $a = a.new; $a.abc(<a b c>);
p6eval nom 193752: OUTPUT«("a", "b", "c")␤»
11:29 manildomin left 11:30 cognominal___ left, cognominal___ joined 11:31 SHODAN joined 11:35 whiteknight joined 11:38 Psyche^ joined 11:40 araujo joined 11:41 Patterner left, Psyche^ is now known as Patterner 11:42 Manildomin joined
Manildomin hi again 11:42
I confirm that with rakudo 2011.09, the code works too
11:44 cognominal___ left, cognominal___ joined
masak \o/ 11:48
11:59 Manildomin left
im2ee masak, that bug, which we found yesterday is repaired? :) 12:07
flussence anyone remember that thing TimToady++ said about most of the helpful errors just being TTIAR rephrased in context? Maybe that'd be a good idea for undef errors too... 12:08
snarkyboojum I definitely found the first book example breaking on my Rakudo, until I updated to latest nqp, parrot, rakudo 12:09
fwiw
masak im2ee: you will have to be more specific :) which bug?
rt.perl.org/rt3/Ticket/Display.html?id=101964 ? 12:10
12:10 tokuhiro_ joined, overrosy left
im2ee masak, yes. This one. :) 12:11
masak it hasn't been fixed yet. but I could debug it with you, if you want. 12:12
12:12 overrosy joined
im2ee masak, it'll be great, if so. :) 12:12
masak, but.. how? :)
12:13 mj41_nb left, mj41 left
masak well, we should probably start by generating out the PAST. 12:14
the interesting question is "why do attribute arrays behave differently when passed to a method?"
im2ee Right.
masak nom: class A { has @!c is rw; method foo { self!bar(@!c) };
p6eval nom 193752: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
masak hrm. 12:15
nom: class A { has @!c is rw; method foo { self!bar(@!c) }; method !bar(@r is rw) { say "OH HAI" } }; A.new.foo
p6eval nom 193752: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method bar at /tmp/qIZtOSVxUz:1␤ in method dispatch:<!> at src/gen/CORE.setting:710␤ in method foo at /tmp/qIZtOSVxUz:1␤ in block <anon> at /tmp/qIZtOSVxUz:1␤ in <anon> at /tmp/qIZtOSVxUz:1␤»…
masak nom: class A { has @!c is rw; method foo { bar(@!c) } }; sub bar(@r is rw) { say "OH HAI" }; A.new.foo
p6eval nom 193752: OUTPUT«OH HAI␤»
masak so it has to be a method.
nom: class A { has @!c is rw; method foo { self.bar(@!c) }; method bar(@r is rw) { say "OH HAI" } }; A.new.foo 12:16
p6eval nom 193752: OUTPUT«OH HAI␤»
12:16 Thrawn joined
masak and it has to be a private method. 12:16
then my hunch is that we'll find the problem somewhere in the code that handles private method invocation.
Thrawn hey everyone 12:17
im2ee Where is it?
masak, will it be rakudo's code? 12:18
12:19 Kivutarrr left 12:20 colomon left, Thrawn left 12:24 cognominal___ left
masak im2ee: the bug is inside Rakudo, most likely, yes. 12:24
12:25 cognominal joined, dual left 12:34 tokuhiro_ left 12:46 Manildomin joined 12:50 mj41 joined, tokuhiro_ joined 12:55 finanalyst joined
finanalyst rakudo: my $x = 1.2345678912 12:56
p6eval rakudo 193752: ( no output )
finanalyst rakudo: my $x = 1.234567891
p6eval rakudo 193752: ( no output )
finanalyst rakudo: my $x = 1.2345678912 ; $x.say 12:57
p6eval rakudo 193752: OUTPUT«1.2345678912␤»
finanalyst rakudo: my $x = 1.2345678912345 ; $x.say
p6eval rakudo 193752: OUTPUT«1.2345678912345␤»
finanalyst hello. I seem to have a problem on rakudo on my machine that is not happening here 12:59
I am getting an error message: "no bigint lib loaded" when i assign 1.2345678912 to a variable 13:00
masak that's because you didn't compile Parrot with the biging library.
bigint*
finanalyst i used the standard perl Configure.pl --gen-parrot 13:01
what else do i need to add?
masak which OS/distro are you on?
13:01 kaare_ left
finanalyst linux ubuntu 13:01
masak ISTR there's a package you download to get the bigint functionality. 13:02
but I might be mistaken.
finanalyst its never happened before
masak I can't seem to get at the IRC logs right now to confirm this.
finanalyst and perl6 code that was working stopped working 13:03
couldnt work out why. seems a simple multiplication failed because there was a number with lots of decimal positions 13:04
gfldex finanalyst: 32 or 64bit?
finanalyst i dont even need the precision: the data was generated by perl 5 script
flussence reproducible on 32bit 13:05
finanalyst does it matter 32/64 bit?
why should $x=1.234567891 be acceptible, but $x=1.2345678912 not?
flussence > my $x = 1.2345678912 ␤bigint_get_long: number too big 13:06
version string here - This is perl6 version 2011.09-173-g5af761e built on parrot 3.9.0 revision RELEASE_3_9_0
13:07 donri joined 13:08 djanatyn|afk left
finanalyst I have: This is perl6 version 2011.10-7-g142c416 built on parrot 3.9.0 revision RELEASE_3_9_0 13:08
flussence parrot 3.9 bug?
finanalyst so why do i get it on my computers (both home and work) and not reproducible here? 13:09
flussence p6eval runs on x86-64
Manildomin I've got another issue with another piece of code from the book "Using Perl6" ><
flussence there's lots of problems with numeric data on 32bit right now
Manildomin can someone try to run the piece of code I put there : pastebin.com/PNLUTxvy ?
when I try it I have no error message but the program does nothing and never ends 13:10
finanalyst flussence: I have a samsung laptop. is that 32 or 64 bit? how do i test?
flussence finanalyst: if this hangs on the REPL, it's 32-bit: 13:11
Manildomin uname -m in the terminal to know whether it's 32 or 64 bits
flussence perl6: say now
p6eval rakudo 193752: OUTPUT«Instant:1319375514.09358␤»
..pugs b927740: OUTPUT«*** No such subroutine: "&now"␤ at /tmp/aCbE1Fx9AJ line 1, column 5 - line 2, column 1␤»
..niecza v10-60-g8b9e1af: OUTPUT«Instant.new(...)␤»
finanalyst uname -m => i686 13:12
Manildomin 32 bits
finanalyst thanx
how far back do i need to go to get a rakudo that starts working again? Lots of problems and I wanted this code to work 13:13
that is, working code stopped working fairly recently 13:14
flussence try 2011.07 or 04 from github.com/rakudo/star/downloads 13:16
Manildomin: on line 8 you have a space between - and ' that shouldn't be there
oh wait, never mind 13:17
that code all looks right to me.
Manildomin ok 13:18
jnthn finanalyst: If you are mostly concerned with stuff keeping working, then the star releases are the best bet. There's a reason we haven't done one from nom yet: as you've noticed, there are some areas where things aren't working as well as they should be yet (of note, protoregexes and some numeric bits)
phenny jnthn: 21 Oct 21:02Z <[Coke]> tell jnthn --gen-parrot is definitely easier with activestate if you're using msvc.
jnthn: 21 Oct 21:08Z <[Coke]> tell jnthn (except that the build failed. hurm.)
jnthn: 22 Oct 01:27Z <[Coke]> tell jnthn there are like 4 tickets that all involve weird issues when defining a sub called "if".
jnthn: 22 Oct 11:21Z <masak> ask jnthn if I read dispatch:<.*> correctly, callsame/nextsame has nothing whatsoever to do with .* dispatch. is that right?
jnthn phenny: tell masak yes
phenny jnthn: I'll pass that on when masak is around.
jnthn masak: The reason being that whether a method chooses to defer is a decision of the method itself - that is, an implementation detail of it. .+ and .* are saying "I want to call all method up the chain". You shouldn't be concerning yourself with their internal implementation details. 13:19
masak phenny: you don't need to tell me yes. 13:21
phenny masak: 13:18Z <jnthn> tell masak yes
masak jnthn: makes sense.
jnthn: so there are only two types of dispatchers, then. not three. 13:22
the (outer) mro dispatchers, and the (inner) proto dispatchers.
no, wait. there's wrapper dispatchers too, I guess.
flussence rakudo: my $bar-graph = 'X' x *; say $bar-graph(5) 13:23
jnthn .?, .* and .+ are just different outer mro dispatchers really.
p6eval rakudo 193752: OUTPUT«XXXXX␤»
finanalyst jnthn: thanx
13:23 finanalyst left
masak if they're dispatchers, they're dispatchers without any effect on 'nextsame' et al. 13:23
I always thought all dispatchers had that.
jnthn masak: I'm not sure what you mean by "without any effect" 13:24
Oh, I think I see what you might be getting at... 13:25
masak oh phew.
because it's what we were just talking about ;)
13:25 masonkramer joined
jnthn masak: Is there something you'd expect to work that doesn't? 13:26
I'd not expect nextsame et al to mean you don't visit things in the "top level" list of things .+ and .* work through just because you deferred to them
But the individual methods, when visited, should be able to nextsame as an implementation detail. If they can't, then that's a bug. 13:27
13:28 djanatyn|afk joined
masak jnthn: I'm just trying, as I have been for the past three years, to build an accurate model of 'nextsame' et al.'s semantics. without that, I won't feel comfortable using them, or explaining them to others. 13:32
13:33 mj41 left
masak for some reason I had assumed until now that .* would have something to do with nextsame. I see now that it doesn't. 13:35
jnthn masak: Well, generally you should be able to work out what nextsame will do from relatively local context
masak aye.
jnthn If you're in a multi, then you know it's going to defer to the next multi candidate. If you're in an only method, you know it's going to defer to the next thing in the MRO. If you're in a wrapper, you know it's going to go to the inner wrapper or original. 13:36
masak jnthn: on a different note: im2ee and I are investigating rt.perl.org/rt3/Ticket/Display.html?id=101964 -- we've found so far that in dispatch:<!> in core/Mu.pm, @pos is empty. I suspect that there's something odd with the PAST. 13:37
care to have a look?
jnthn The problem with tying it to .* and .+ is that you as the method don't know that you're under a different dispatcher than the one you expected, so it's probably better to leave the two disassociated, and each method call gets a "fresh"dispatcher.
(for the purposes of nextsame) 13:38
masak I agree.
the more predictable, the better.
jnthn (101964) weird. 13:39
nom: class A { has @!c is rw; method foo { self!bar(@!c) }; method !bar(@r is rw) { say "OH HAI" } }; A.new.foo 13:40
p6eval nom 193752: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method bar at /tmp/RoP9N2aq9m:1␤ in method dispatch:<!> at src/gen/CORE.setting:710␤ in method foo at /tmp/RoP9N2aq9m:1␤ in block <anon> at /tmp/RoP9N2aq9m:1␤ in <anon> at /tmp/RoP9N2aq9m:1␤»…
jnthn nom: class A { has @!c is rw; method foo { self!bar(@!c) }; method !bar(@r) { say "OH HAI" } }; A.new.foo
p6eval nom 193752: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method bar at /tmp/0Ac5k5z8qO:1␤ in method dispatch:<!> at src/gen/CORE.setting:710␤ in method foo at /tmp/0Ac5k5z8qO:1␤ in block <anon> at /tmp/0Ac5k5z8qO:1␤ in <anon> at /tmp/0Ac5k5z8qO:1␤»…
jnthn nom: class A { has @!c; method foo { self!bar(@!c) }; method !bar(@r) { say "OH HAI" } }; A.new.foo
p6eval nom 193752: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method bar at /tmp/nOzwVfg1FQ:1␤ in method dispatch:<!> at src/gen/CORE.setting:710␤ in method foo at /tmp/nOzwVfg1FQ:1␤ in block <anon> at /tmp/nOzwVfg1FQ:1␤ in <anon> at /tmp/nOzwVfg1FQ:1␤»…
jnthn nom: class A { has @!c; method foo { self!A::bar(@!c) }; method !bar(@r) { say "OH HAI" } }; A.new.foo
13:40 Manildomin left
p6eval nom 193752: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method bar at /tmp/eeBSmJQvqW:1␤ in method dispatch:<!> at src/gen/CORE.setting:710␤ in method foo at /tmp/eeBSmJQvqW:1␤ in block <anon> at /tmp/eeBSmJQvqW:1␤ in <anon> at /tmp/eeBSmJQvqW:1␤»… 13:40
masak we've isolated the necessary ingredients: private method call, array attribute. 13:41
hm, did I ever check whether't needed to be an array?
yes, I think I did.
jnthn yeah, think I see it 13:42
masak wow.
do explain.
jnthn nom: sub foo($a, :$b) { say "$a $b" }; sub bar(|$c) { foo(|$c) }; bar(1, :b<2>) 13:43
p6eval nom 193752: OUTPUT«1 2␤»
jnthn The dispatchers should be using |$c to get the args to pass on 13:44
But that wasn't implemented when they were written.
Which causes horrible wrongness.
masak nom: class A { has @!c; method foo { self!bar(@!c) }; method !bar(@r) { say "OH HAI" } }; A.new.foo 13:45
p6eval nom 193752: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method bar at /tmp/uX2c_xedpk:1␤ in method dispatch:<!> at src/gen/CORE.setting:710␤ in method foo at /tmp/uX2c_xedpk:1␤ in block <anon> at /tmp/uX2c_xedpk:1␤ in <anon> at /tmp/uX2c_xedpk:1␤»…
jnthn You don't need the attribute.
masak oh?
I haven't been able to produce it without the attribute.
jnthn nom: class A { method foo { self!bar([]) }; method !bar(@r) { say "OH HAI" } }; A.new.foo
p6eval nom 193752: OUTPUT«OH HAI␤»
jnthn hm 13:46
masak nom: class A { method foo { my @c; self!bar(@c) }; method !bar(@r) { say "OH HAI" } }; A.new.foo
p6eval nom 193752: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method bar at /tmp/bSxfrTQ8VY:1␤ in method dispatch:<!> at src/gen/CORE.setting:710␤ in method foo at /tmp/bSxfrTQ8VY:1␤ in block <anon> at /tmp/bSxfrTQ8VY:1␤ in <anon> at /tmp/bSxfrTQ8VY:1␤»…
masak oh.
jnthn Right.
masak there we go :)
whassedifference?
13:46 whiteknight left
masak between [] and @c, I mean. 13:46
jnthn One is marked with flatten
masak ah. 13:47
eventually I'll get the hang of flatten, I'm sure.
ok, is there anything I can do to patch this?
change *@pos to |$c ? 13:48
jnthn spectesting a patch now
crap, I mussed it to master, not nom 13:51
dalek kudo: d7f45ff | moritz++ | src/core/Cool.pm:
Cool.eval
masak jnthn: good thing there's cherry-pick.
jnthn think I stopped it just in time 13:52
masak :) 13:53
13:54 djanatyn|afk left
dalek kudo/nom: ca26563 | jnthn++ | src/core/Mu.pm:
Fix various dispatchers.
13:54
jnthn ...mussed...messed + pushed :)
13:54 agentzh joined
jnthn
.oO( dammit, my fingers pun when my brane is too tired to... )
13:55
masak it's interesting that dalek's reaction to your mussing was to publish the last commit that went into master, one from 19 September.
jnthn hm, I guess I shoulda tested that the patch actually fixed the bug 13:56
> class A { has @!c is rw; method foo { self!bar(@!c) }; method !bar(@r is rw) { say "OH HAI" } }; A.new.foo
yes, it does :)
OH HAI
masak \o/ 13:57
jnthn++
ah, so anything empty that flattened turned into 0 positional parameters?
I think I get it now.
13:58 Manildomin joined
jnthn
.oO( pushed to wrong branch, didn't actually check my patch fixed the bug...yeah, maybe I shouldn't touch my keyboard much more today :) )
13:58
masak: yes, that.
masak yay
jnthn ticket updated
oh my 13:59
nom: say 699 - 102
p6eval nom 193752: OUTPUT«597␤»
jnthn Wow. :)
It's also a nice sign that the oldest bug on the final page on RT is from 3 months ago 14:01
Put another way, many new bugs getting filed are getting dealt with.
im2ee jnthn++, what is |$c? :) 14:02
jnthn im2ee: It means "put all the arguments not bound yet into a Capture
"
(when ti's in the signature)
When it's in a call it means "take all the arguments from this capture and flatten them into this call's arguments" 14:03
14:03 overrosy left
im2ee Thanks jnthn :) 14:04
Hmm, what means the "proto" keyword before a method?
14:05 overrosy joined 14:06 djanatyn|afk joined
jnthn im2ee: Means that it is a dispatcher; you normally don't write one as writing multi methods causes a proto to be auto-generated for you. 14:07
masak im2ee: it means that method dispatches to several 'multi' methods, possibly in subclasses.
jnthn afk for a little bit
im2ee Thanks ! :) 14:08
14:19 overrosy left 14:21 overrosy joined 14:23 jfried joined 14:31 wolfman2000 joined 14:33 jaldhar left 14:40 static_perl joined 14:48 jaldhar joined 14:49 overrosy left 14:51 static_perl left, overrosy joined 14:52 Manildomin left
moritz was kinda surprised to see a commit to rakudo/master, and even more surprised who the author was :-) 14:53
masak just a dalek hiccup ;) 14:54
moritz my first thought was that maybe somebody had cherry-picked a commit of mine to master
14:57 mj41 joined
jnthn I think it was a jnthn hiccup... :) 14:59
14:59 tokuhiro_ left 15:08 risou_awy is now known as risou
jnthn grr, I can't reproduce the Buf segfault here 15:11
I can, it seems, make Buf a bunch faster though...
15:12 jaldhar left 15:13 grondilu joined, daniel-s left 15:14 _jaldhar joined, jaldhar joined, jaldhar left
moritz that would be welcome too :-) 15:16
jnthn: fwiw I've re-coded the same logic in PIR, and there it didn't segfault
jnthn moritz: I can't make it segfault on this box :( 15:17
15:18 Gothmog_ joined
moritz jnthn: nopaste.snit.ch/89845 is the backtrace I get 15:19
jnthn wow. 15:21
15:21 bluescreen10 joined
moritz what's impressive about it? that it's not the GC? 15:22
masak ;)
15:22 [Coke] left
jnthn hmm 15:23
In VTABLE INTVAL get_integer_keyed_int(INTVAL position) it dereferences content without ensuring it's not null.
15:24 mj41 left, [Coke] joined
jnthn oh, also 15:24
set_string_native is wrong. 15:25
It doesn't zero allocated_size
moritz it has 15:26
SET_ATTR_allocated_size(INTERP, SELF, 0);
jnthn oh, yes
ah, it's not that then. 15:27
moritz would love to see mls_++' exception and ENTER/LEAVE work merged 15:28
jnthn moritz: I've got plenty of time in the next couple of days. I'll look at it then. 15:29
I may look later today, but I'm a little headachey and can't concentrate as much as that patch needs 15:30
15:31 dual joined
moritz jnthn: don't hurry, BUT DO IT SOON :-) 15:35
jnthn :P
Got a patch that makes that code get up to the first 25 iterations 3 times faster.
spectesting it now
benabik has had a boss tell him "no hurry, but we needed it by the end of today." 15:36
jnthn Runs in 9ish seconds instead of 27
That's still too slow but it's an improvement.
moritz \o/
moritz wonders what stupid things he did
jnthn .keys
15:36 agentzh left
jnthn Granted this was almost certainly written before we had nice things like native ints so we could do fast lops 15:37
*loops 15:38
dalek p: 5ed5bc0 | jnthn++ | src/PAST/NQP.pir:
Fill out nqp op space a little more.
kudo/nom: 977b33b | jnthn++ | tools/build/NQP_REVISION:
Bump NQP revision.
15:41
kudo/nom: 7ac6d1e | jnthn++ | src/core/Buf.pm:
Improve performance of Buf creation and listification.
15:42 abercrombie joined 15:43 kemit_khulet joined
moritz jnthn: I just wondered if we have a nice, efficient path for Array.[int] 16:02
jnthn moritz: not yet 16:03
moritz starts with a small benchmark 16:05
16:05 _jaldhar left
moritz nom: multi f(Int $x) { 'Int' }; multi f (int $x) { 'int' }; say f 3 16:05
p6eval nom 7ac6d1: OUTPUT«int␤»
moritz nom: multi f(Int $x) { 'Int' }; multi f (int $x) { 'int' }; say f 3 + 3
p6eval nom 7ac6d1: OUTPUT«int␤»
moritz nom: multi f(Int $x) { 'Int' }; multi f (int $x) { 'int' }; say f 3 + 3 * 5
jnthn Yes but...it's a method call
p6eval nom 7ac6d1: OUTPUT«int␤»
moritz I know
jnthn The optimizer can't resolve those
I think at the moment the assumption is "we have to box" 16:06
moritz but the dispatcher can distinguish them, right?
jnthn Hm
Potentially
It should be doable now
I'll have to check exactly what it's doing with code-gen there.
moritz I'm thinking of a multi method postcifucmix:<[ ]>(int $pos) is rw { ... } 16:07
jnthn *nod*
moritz in Any
and a List.at_pos(int)
jnthn Sounds sane. 16:09
Just need to check the generated code to ensure it's as efficient as we'd actually like it to be.
moritz well, I'd benchmark :-)
jnthn sure :)
Well, looking at the generated PIR will probably be telling too :) 16:10
Feel free to work on it; I'm happy to help if the code gen side needs tweaks.
I think there's still some bits from the time when the binder and multi dispatcher didn't know how to handle natives.
OK, got some more speedups :) 16:12
Got it over 5 times faster getting up to 25 now :)
moritz it seems we will box eventually, because I'm not going to write native int variants of all the methods involved (exists, gimme) 16:13
jnthn *nod* 16:14
moritz but we can save a method call to .Int at least 16:15
jnthn Well, checking if $!items is already long enough to give us the index we want without having to gimme is probably doable without boxing too
dalek kudo/nom: fc3d314 | jnthn++ | src/core/Buf.pm:
Eliminate unrequired slurpiness.
16:16
kudo/nom: f7995a5 | jnthn++ | src/core/metaops.pm:
Optimize reduction meta-op by avoiding inferior runloop for boolification - just do what .Bool does anyway.
kudo/nom: f7d3d5d | jnthn++ | src/core/List.pm:
Optimize push a little.
kudo/nom: 81ce668 | jnthn++ | src/core/Buf.pm:
Don't use .push in Buf.list when we already know exactly what index we're going to use.
16:17
16:20 kemit_khulet left
jnthn ooh, I got the segfault 16:21
Looks like memory corruption. 16:22
abercrombie Hi, is the lookaround not implemented yet in nom/rakudo?
16:22 tokuhiro_ joined
tadzik lookahead is, methinks 16:23
abercrombie Oh, yes, I was tring to use <!before> and <?before> 16:24
[Coke] phenny: ask moritz if 5fe92c09 on roast is another example of the eval issue. (had to todo this for niecza.)
phenny [Coke]: I'll pass that on when moritz is around.
moritz [Coke]: no, eval_dies_ok needs to catch exceptions, and does 16:27
phenny moritz: 16:24Z <[Coke]> ask moritz if 5fe92c09 on roast is another example of the eval issue. (had to todo this for niecza.)
16:29 grondilu left 16:34 risou is now known as risou_awy 16:36 jaldhar joined 16:53 nebuchadnezzar left 16:54 nebuchadnezzar joined
moritz .u plus minus 16:55
phenny U+00B1 PLUS-MINUS SIGN (±)
16:55 soh_cah_toa joined
dalek ast: 1c1df5b | Coke++ | S (3 files):
niecza fudging
16:57
16:58 djanatyn|afk is now known as djanatyn
dalek ecza: bacff10 | Coke++ | t/spectest.data:
Skip this test.

  (too many failures, test has platform based skips instead of impl-based)
16:59
p: d7cec32 | jnthn++ | src/6model/reprs/P6opaque.c:
Ensure we don't try to change the type of a type object.
17:01
p: bbe37f3 | jnthn++ | src/6model/reprs/P6opaque.c:
Ensure that when a type object is cloned, we don't lose the type object flag.
p: 7bc5fcd | jnthn++ | src/ops/nqp.ops:
Add a missing write barrier.
kudo/nom: ecc293a | jnthn++ | src/ (2 files):
Add write barriers in a couple of places they are potentially needed.
17:06
kudo/nom: ee65d38 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get fix for the mixin to type object segfault issue.
17:08 Chillance joined
arnsholt masak: Thanks for mentioning MJD's blog yesterday. Even though I probably don't have time to read all the archives =) 17:11
cognominal why List.Bool code is not { self.elems.Bool } ? self.gimme(1).Bool does not make any sense to me. 17:12
sorear good * #perl6
cognominal: .elems would hang with an infinite list
moritz .u sigma 17:13
phenny U+03C3 GREEK SMALL LETTER SIGMA (σ)
cognominal ok, what if the first element has a false value? 17:14
I suppose List.Bool returns thru if List has a least one element (or can generate one)? 17:15
masak arnsholt: they're worth reading.
when I grow up, I want to be like MJD. 17:16
cognominal ok, I did not understandd what gimme does
jnthn cognominal: gimme gives you the number of elements it can actually give.
masak rakudo: my @a = <a b c d e>; say @a.gimme 17:17
p6eval rakudo 81ce66: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method gimme at src/gen/CORE.setting:4304␤ in block <anon> at /tmp/m072rwC3DO:1␤ in <anon> at /tmp/m072rwC3DO:1␤»
masak rakudo: my @a = <a b c d e>; say @a.gimme(5)
p6eval rakudo 81ce66: OUTPUT«5␤»
masak rakudo: my @a = <a b c d e>; say @a.gimme(10)
p6eval rakudo 81ce66: OUTPUT«5␤»
masak rakudo: my @a = <a b c d e>; say @a.gimme(Inf)
p6eval rakudo 81ce66: OUTPUT«5␤»
masak rakudo: my @a = <a b c d e>; say @a.gimme(-5)
p6eval rakudo 81ce66: OUTPUT«5␤»
masak rakudo: my @a = <a b c d e>; say @a.gimme(*)
p6eval rakudo 81ce66: OUTPUT«5␤»
masak rakudo: my @a = <a b c d e>; say @a.gimme(1i)
p6eval rakudo 81ce66: OUTPUT«5␤»
masak what a boring function ;)
jnthn Is somebody hunting for a rakudobug? :P
masak I would never...! 17:18
:P
17:18 plobsing left
jnthn "How boring, I can't make it explode!" 17:18
arnsholt masak: That's pretty much one of my thoughts as well. "MJD is really cool. I wouldn't mind being like that."
17:19 Grrrr left 17:20 plobsing joined 17:22 kaare_ joined 17:23 Kivutarrr joined
jnthn moritz: What exactly did your PIR version of the segfaulting program do? 17:26
(the buf one)
moritz: I can reliably segfault it also in ByteBuffer with my $b = Buf.new(1); for ^5000 { $b~=Buf.new(1..100); } 17:28
im2ee What means *? The same what in unix system? 17:31
And "
"li"?
From @a.gimme(1i)
oh, its 1 not l. :)
tadzik 1i, like i, which is sqrt(-1)
moritz jnthn: nopaste forthcoming 17:32
tadzik yes, in school they tell you there can be no sqrt(-1). They lie. I was disappointed too
moritz jnthn: gist.github.com/1307615
17:34 tokuhiro_ left
sorear wait, wait, what? gimme takes Complex? 17:34
moritz uhm, where?
sorear 10:31 < im2ee> From @a.gimme(1i)
moritz yes, but where is that code from? 17:35
tadzik masak wrote that
moritz jnthn: gist.github.com/1307619
17:36 pmurias joined, uasi left 17:37 uasi joined
moritz jnthn: so with the patch it seems to be a wee bit faster, erm wait, I may not call it "faster", becaues it's not statistically significant 17:37
jnthn moritz: Erm.
I get 5 times faster here with the bunch of patches I've put in for Buf today.
(was testing it up to 25) 17:38
moritz jnthn: that patch is not related to Buf at all
jnthn moritz: oh, wait
moritz: What are we talking bout? :)
moritz just postcircumfix:<[ ]>
jnthn moritz: The array access?
oh!
moritz the patch is in the gist :-)
jnthn moritz: oooh!
You gisted me two things
I missed the second one :)
moritz: On gist.github.com/1307615 - byte buffer one 17:39
moritz: I can make it segfault here by upping the iteration count.
moritz: Changing it to:
unless $I0 == 10000 goto loop
(e.g. 10 times more iterations) 17:40
gets the segfault here
Guess in Rakudo we just have more GC churn going on so it needs less.
17:40 jaldhar left
masak im2ee: 1i is a en.wikipedia.org/wiki/Complex_number 17:41
sorear: I just wanted to see what .gimme did about a Complex. seems it did pretty OK. 17:42
jnthn moritz: I *think* that you'd need to have an at_pos variant in Array.pm too, not just List.pm
moritz jnthn: doesn't segfault with 1000 iterations here
jnthn moritz: 10000 17:43
moritz my OOM killer just shot down thunderbird :-)
tadzik :P 17:44
jnthn ouch
moritz and before dying, it printed
this should not be happening! arrgggggh!
several times :-)
jnthn lol
17:45 c9s left
jnthn moritz: I've got a rough guess at what is going on. 17:45
moritz: It looks like Parrot does string heap compaction.
That means it may move strstart...but ByteBuffer caches that.
masak very nice "how do I fix my git mess?" flow chart: justinhileman.info/article/git-pret...pretty.png
moritz nice indeed 17:48
benabik masak: Important question there: "Enough to form a lynch mob?"
moritz I menat to make similar instructions one day, in form of a blog post
*meant
jnthn The bottom left hand corner is great :) 17:49
17:49 sftp left
jnthn moritz: Did you manage to get the segfault with 10000 iterations? 17:50
17:50 dukeleto left
jnthn moritz: I did so I guess I can file a ticket somewhere ;) 17:50
Where am I meant to file tickets on Parrot things these days?
moritz jnthn: no, I did not. Aborted before it ate all of my RAM
jnthn: github
17:50 dukeleto joined, dukeleto left
jnthn moritz: heh. Some days 16 gigs come in handy :) 17:51
17:51 dukeleto joined, dukeleto left
jnthn Only ate 2.7 gigs before it explodes :) 17:51
17:51 dukeleto joined 17:52 dukeleto left
jnthn but wait a moment... 17:52
17:52 dukeleto joined
jnthn nom: say 100 * 10000 17:52
p6eval nom 81ce66: OUTPUT«1000000␤»
jnthn The largest string we get up to should be about a meg in size?
moritz I think I had another factor of 10 somewhere 17:53
still, 10M shouldn't be too bad
jnthn right
something is horribly wrong if it's getting into the gigs range then.
17:55 sftp joined, dukeleto left, dukeleto joined 17:56 dukeleto left, im2ee left, dukeleto joined, dukeleto left, im2ee joined 17:57 Grrrr joined, dukeleto joined, dukeleto left, dukeleto joined, dukeleto left 17:58 dukeleto joined, dukeleto left
jnthn Filed github.com/parrot/parrot/issues/182 17:58
17:58 dukeleto joined
sorear I s'pose we need a dalek thingie for reporting on github issues 17:59
17:59 dukeleto left
sorear
.oO( luckily, github just added push notification for those )
17:59
17:59 dukeleto joined, dukeleto left 18:00 dukeleto joined
tadzik the more I look at the parameter documenting syntax the more I fell that not many people will like it and use it 18:00
18:00 dukeleto left
sorear what syntax? 18:00
18:00 dukeleto joined, dukeleto left
tadzik sorear: perlcabal.org/syn/S26.html#Declarator+blocks scroll to 'sub fu' 18:01
18:01 dukeleto joined, dukeleto left
tadzik I suppose people will just put everything into the sub documentation, it seems easier and more convenient 18:01
18:01 dukeleto joined
tadzik that's how I fell when documenting MuEvent 18:02
18:02 dukeleto left
masak tadzik: the advantage of documenting the paramters is that you don't have to repeat their names. 18:02
18:02 dukeleto joined, dukeleto left 18:03 dukeleto joined, dukeleto left, dukeleto joined
tadzik well, I suppose it's still less typing than #= and whitespace you have to put there to make those things work *and* not look like *&!#^*!$^ 18:03
18:03 dukeleto left 18:04 dukeleto joined, dukeleto left, dukeleto joined 18:05 dukeleto left
sorear ponders banning dukeleto 18:05
tadzik I wish Pod and Declarators were convenient enough for people to prefer them to plain old... well, pod
jnthn afk, shop
tadzik sorear: ever tried turning off join/part events?
18:05 dukeleto joined, dukeleto left
tadzik I did that some time ago and I don't think I ever regretted that 18:05
it still displays those if this person was active a short enough while ago 18:06
18:06 dukeleto joined, dukeleto left
sorear tadzik: I *did* regret it. 18:06
18:06 dukeleto joined, dukeleto left
tadzik ok then 18:07
sorear tadzik: I beleive in fixing problems at their source, not forcing 100s of downstream users to implement countermeasures
18:07 dukeleto joined
masak dukeleto: hey! you're doin' it again! :( 18:07
18:07 dukeleto left, colomon joined, dukeleto joined
colomon dukeleto!! 18:08
sorear o/ colomon
tadzik sorear: I agree with that
18:08 dukeleto left
moritz ignores joins and leaves/quits in #perl6, and consults the IR clogs when he's interested in joins/leaves 18:08
18:08 dukeleto joined, dukeleto left 18:09 dukeleto joined
sorear moritz: the irclogs have reliable join/part data now? 18:09
moritz sorear: reliable joins and leaves; not quite^Hs
*quits
18:13 nornagest joined
nornagest Hi 18:13
moritz hi nornagest 18:14
jnthn: added at_pos to List, still not significant (this time 0.4 sigma slower)
sorear o/ nornagest 18:17
18:17 pmurias left 18:18 pmurias joined
nornagest \o 18:19
[Coke] sorear,colomon: had to comment out an IO test today from niecza spectest. dunno if it was new tests or what. 18:20
colomon more details?
sorear, \o
sorear hmm, nornagest != nornagon 18:21
welcome, nornagest
nornagest indeed - thanks
18:29 [Coke] left 18:31 [Coke] joined
masak hi nornagest 18:32
jnthn moritz: try this patch: gist.github.com/1307684 18:35
moritz: And explicitly write out the postcircumfix call
dalek ecza/serialize: 8edc022 | sorear++ | / (4 files):
Starting inventory of globals that need isolation
jnthn moritz: e.g. instead of @a[$j] do @a.postcircumfix:<[ ]>($j) 18:36
(yes, I can fix the other case up too...it's just a tad more involved)
oh, that patch causes issues :( 18:38
im2ee Does "do" exists in p6? :) 18:41
tadzik yep
im2ee And how to include, just like perl5 ?
include some code
masak im2ee: 'require' or 'use' 18:42
im2ee Great. :)
18:42 hanekomu joined
masak but, hm, that's for modules. 18:42
maybe you mean just a regular script file?
then it's probably eval(slurp("file.pl"))
im2ee masak++, thanks. :) 18:44
18:44 wk joined
im2ee do doesn't include the code? (like in p5) 18:44
moritz im2ee: there are two 'do's in Perl 5, a do BLOCK and a do EXPR. The former still persists in Perl 6 18:45
rakudo: do { say 1 }
p6eval rakudo ee65d3: OUTPUT«1␤»
sorear do EXPR is very strongly deprecated in Perl 5
im2ee Where the do functions is declared? 18:46
function*
moritz sorear: that's not what perldoc -f do says
18:46 hanekomu_ joined, hanekomu left, hanekomu_ left 18:47 hanekomu joined
sorear im2ee: do isn't a function, it's a special syntactic form 18:48
jnthn moritz: Here's another patch that doesn't mess up setting compilation and that means you can leave it as @a[$j]: gist.github.com/1307705 18:51
GlitchMr perl6: (*..3).perl.say 18:52
p6eval niecza v10-61-gbacff10: OUTPUT«-Infinity..3␤»
..rakudo ee65d3: OUTPUT«-Infe0..3␤»
..pugs b927740: OUTPUT«()␤»
GlitchMr I know it doesn't make sense :P
masak im2ee: 'do' in Perl 6 has a different function than in Perl 5. in Perl 6, it's used for turning a statement into (part of) an expression.
why does Rakudo do Infe0? 18:53
GlitchMr Because it's garbage?
There is no way of accessing that 3 which I have specified 18:54
perl6: (*..*).perl.say
jnthn rakudo: say -Inf
p6eval niecza v10-61-gbacff10: OUTPUT«-Infinity..Infinity␤»
..pugs b927740: OUTPUT«pugs: out of memory (requested 1048576 bytes)␤»
..rakudo ee65d3: OUTPUT«Failure.new()␤»
rakudo ee65d3: OUTPUT«-Inf␤»
jnthn rakudo: say ~(-Inf)
benabik *..* is Failure?
p6eval rakudo ee65d3: OUTPUT«-Inf␤»
jnthn Hmm
Wonder how on earth it ends up with the e0 18:55
benabik nom: Int.WHAT.say
p6eval nom ee65d3: OUTPUT«Int()␤»
benabik nom: Inf.WHAT.say
p6eval nom ee65d3: OUTPUT«Num()␤»
im2ee Thanks sorear, masak. :)
and moritz too. :)
jnthn rakudo: say (*..3).from 18:56
p6eval rakudo ee65d3: OUTPUT«Method 'from' not found for invocant of class 'Range'␤ in block <anon> at /tmp/Co5C5txBKZ:1␤ in <anon> at /tmp/Co5C5txBKZ:1␤»
jnthn rakudo: say (*..3).min
p6eval rakudo ee65d3: OUTPUT«-Inf␤»
GlitchMr perl6: (0, *+0.1...100).perl.print
jnthn rakudo: say ~(*..3)
oh, that may take a while... :)
duh. :)
p6eval niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: Unable to resolve method print in class Str␤ at /tmp/7MOOYyOz5J line 1 (MAIN mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2181 (CORE C1041_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2182 (CORE module-C…
..rakudo ee65d3: OUTPUT«(0, 1/10, 1/5, 3/10, 2/5, 1/2, 3/5, 7/10, 4/5, 9/10, 1/1, 11/10, 6/5, 13/10, 7/5, 3/2, 8/5, 17/10, 9/5, 19/10, 2/1, 21/10, 11/5, 23/10, 12/5, 5/2, 13/5, 27/10, 14/5, 29/10, 3/1, 31/10, 16/5, 33/10, 17/5, 7/2, 18/5, 37/10, 19/5, 39/10, 4/1, 41/10, 21/5, 43/10, 22/5,…
..pugs b927740: OUTPUT«*** ␤ Unexpected "100"␤ expecting operator or ")"␤ at /tmp/cIvAuZtnNx line 1, column 13␤»
rakudo ee65d3: OUTPUT«(timeout)» 18:57
GlitchMr perl6: (2, *+0.05...3).perl.say
p6eval rakudo ee65d3, niecza v10-61-gbacff10: OUTPUT«(2, 41/20, 21/10, 43/20, 11/5, 9/4, 23/10, 47/20, 12/5, 49/20, 5/2, 51/20, 13/5, 53/20, 27/10, 11/4, 14/5, 57/20, 29/10, 59/20, 3/1).list␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "3"␤ expecting operator or ")"␤ at /tmp/4NKFB9z28X line 1, column 14␤»
GlitchMr perl6: (reverse 1..*).perl.say 18:59
I'm probably crazy, but whatever
p6eval niecza v10-61-gbacff10: OUTPUT«(timeout)»
..pugs b927740: OUTPUT«pugs: out of memory (requested 1048576 bytes)␤»
..rakudo ee65d3: OUTPUT«Failure.new()␤»
GlitchMr perl6: 1>2>print('wrong') 19:00
p6eval pugs b927740, rakudo ee65d3, niecza v10-61-gbacff10: ( no output ) 19:01
GlitchMr perl6: 'a' ==> print() 19:02
p6eval niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: Feed ops NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 790 (CORE die @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1955 (CORE infix:<==>> @ 2) ␤ at /tmp/756_KL3OMT line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/…
..pugs b927740: OUTPUT«*** ␤ Unexpected " print"␤ at /tmp/mQV4bebEZv line 1, column 8␤»
..rakudo ee65d3: OUTPUT«a»
GlitchMr perl6: 'a' ==> print
p6eval niecza v10-61-gbacff10: OUTPUT«===SORRY!===␤␤Unsupported use of bare 'print'; in Perl 6 please use .print if you meant $_, or use an explicit invocant or argument at /tmp/EYpE8bKX0S line 1 (EOF):␤------> 'a' ==> print⏏<EOL>␤␤␤Unhandled Exception: Che…
..pugs b927740: OUTPUT«*** ␤ Unexpected " print"␤ at /tmp/2qkwFVA1lc line 1, column 8␤»
..rakudo ee65d3: OUTPUT«a»
GlitchMr ... ok...
19:02 wolfman2000 left
GlitchMr perl6: [Z].perl.say 19:08
p6eval rakudo ee65d3: OUTPUT«Any␤»
..niecza v10-61-gbacff10: OUTPUT«(timeout)»
..pugs b927740: OUTPUT«()␤»
19:11 GlitchMr left 19:18 [Coke] left 19:19 [Coke] joined 19:26 uasi left 19:27 sivoais left, sivoais joined 19:28 kaare_ left 19:29 ksi joined 19:31 kaare_ joined, mberends joined
sorear o/ mberends 19:33
diakopter . 19:34
sorear o/ diakopter
diakopter o/
19:36 ab5tract joined 19:37 kaare_ left
mberends o/ (home in .nl after a week in .si) 19:37
tadzik hello mberends! 19:42
masak welcome home, mberends!
mberends hi tadzik! hi masak! It's nice to catch up the backlog :) 19:43
19:44 [Coke] left 19:46 [Coke] joined 19:50 pmurias left, PacoLinux left 19:51 [Coke] left 19:58 [Coke] joined, im2ee left 19:59 im2ee joined 20:03 [Coke] left
masak perl6: say 10 ... 0 20:04
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected "0"␤ expecting operator, ":" or ","␤ at /tmp/ZzlEHDRKld line 1, column 12␤»
..rakudo ee65d3, niecza v10-61-gbacff10: OUTPUT«10 9 8 7 6 5 4 3 2 1 0␤»
20:04 [Coke] joined 20:06 Manildomin joined
Manildomin hi everybody 20:07
masak hi Manildomin 20:11
Manildomin I said I have an issue with the second example code given in the book "Using Perl6"
I virtualized Debian Wheezy and installed in it its own version of rakudo and parrot, and with these the same code just works fine 20:12
20:13 [Coke] left
masak what was your issue? could you perhaps make a gist of the error you get? 20:14
Manildomin I had no error messag
message*
the program ran but never output what it was intended to output 20:15
and it never stopped
masak this is interesting to us. 20:16
Manildomin this is that piece of code : pastebin.com/rnyutrH2
20:16 [Coke] joined
masak any idea what might have differed between the two setups? 20:16
different Rakudo versions?
Manildomin the one I have on my real system (archlinux) is the most up to date
yes
sorear Manildomin: which version is it?
Manildomin rakudo 2011.07 on debian wheezy 20:17
2011.09 on archlinux
parrot 3.8.0 on archlinux
parrot 3.6.0 on debian wheezy
masak aha! seems I need a wrap_return_handler for my macros to fix moritz++' bug. 20:18
Manildomin: I run it locally with no problem on Rakudo HEAD. 20:20
20:23 im2ee left, im2ee joined 20:24 im2ee left 20:28 [Coke] left 20:30 [Coke] joined
dalek kudo/macros: b1c555f | masak++ | src/Perl6/Actions.pm:
make it possible to return from macros

Kudos to moritz++ for discovering this use case.
20:31
Manildomin I am installing an older version of rakudo (rakudo-star 2011.04) and see if it runs the piece of code
wk Manildomin: i tried your example with rakudo 2011.07 and it worked well (Ubuntu 11.04) 20:34
Manildomin yes, I use rakudo 2011.07 on debian wheezy and it works too 20:35
wk Manildomin: but igot same behaviour with nom snapshot installed about two month ago
Manildomin ok
wk Manildomin: with "same beahaviour" i meant: it runs forever without output
Manildomin nice, so we seem to encounter the same issue 20:36
masak here's the current status of the macros branch: 'my $a = 42; macro foo { quasi { say $a } }; foo' works and prints 42.
'macro foo { my $a = 42; quasi { say $a } }; foo' dies with a Null PMC Access, for fairly obvious reasons.
I feel I should fix the latter before proposing we merge the D1 work. (and I'm going to write tests too, of course) 20:37
soh_cah_toa what's the quasi() subroutine for? never heard of it
masak it's not a subroutine, it's a syntactic form, like 'while' or 'sub'. 20:38
wk Manildomin: i hope it helps to localise period, where it come in, because my nom is installed on YAPC:EU, so around 13th August
20:40 Kivutarrr left
Manildomin I installed rakudo 2011.09 from here : aur.archlinux.org/packages.php?ID=29068 20:41
with (Rakudo Perl 6, version 2011.04 built on parrot 3.8.0 0), the same code works fine 20:50
on archlinix
archlinux* 20:51
20:54 quuxrev joined 20:58 ab5tract left 21:00 fsergot joined 21:04 fsergot left, fsergot joined, y3llow_ joined 21:05 pothos_ joined, SHODAN left 21:06 fsergot left, pothos left, y3llow left 21:07 pothos_ is now known as pothos, y3llow_ is now known as y3llow 21:09 masonkramer left 21:11 ab5tract joined 21:14 whiteknight joined
masak nom: sub foo { my $*a = 42; return { say $*a } }; foo 21:21
p6eval nom ee65d3: ( no output )
masak nom: sub foo { my $*a = 42; return { say $*a } }; my $c = foo; $c()
p6eval nom ee65d3: OUTPUT«Failure.new()␤»
21:21 Mowah_ left
dalek kudo/nom: 18dea93 | jnthn++ | src/ (15 files):
Add an nqp::p6decont and eliminate pir::perl6_decontainerize in the setting in favor of it.
21:25
21:27 MayDaniel left 21:30 Manildomin left 21:34 ab5tract left 21:40 aloha left 21:42 aloha joined, ksi left
masak good night, #perl6 21:48
tadzik good night masak
jnthn nom: my $a = 1; my $b = 2; my $c = [$a, $b]; $a++; say $c.perl 21:49
p6eval nom ee65d3: OUTPUT«[2, 2]␤»
jnthn perl6: my $a = 1; my $b = 2; my $c = [$a, $b]; $a++; say $c.perl 21:50
p6eval rakudo ee65d3: OUTPUT«[2, 2]␤»
..pugs b927740, niecza v10-61-gbacff10: OUTPUT«[1, 2]␤»
jnthn b: my $a = 1; my $b = 2; my $c = [$a, $b]; $a++; say $c.perl
p6eval b 1b7dd1: OUTPUT«[1, 2]␤»
jnthn tssk
Turns out that a bug in take and return masked this issue in various tests. 21:52
Now I've fixed take and return I have broken tests, seemingly because of the above.
22:02 dorlamm joined
jnthn perl6: sub foo(*@a) { @a[0]++ }; my $a = 1; foo([$a]); say $a; 22:04
p6eval pugs b927740: OUTPUT«*** Can't modify constant item: VRef <Array:0x7f7a165a3459>␤ at /tmp/aEdoMWmRdK line 1, column 16-24␤»
..niecza v10-61-gbacff10: OUTPUT«␤Unhandled Exception: cannot increment a value of type Array␤ at line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 25 (CORE Mu.succ @ 8) ␤ at line 0 (ExitRunloop @ 0) ␤ at /tmp/tAEBNKPPi_ line 0 (MAIN foo @ 0) ␤ at /tmp/tAEBNKP…
..rakudo 18dea9: OUTPUT«Method 'succ' not found for invocant of class 'Array'␤ in sub postfix:<++> at src/gen/CORE.setting:1065␤ in sub foo at /tmp/M_C4AkFn8l:1␤ in block <anon> at /tmp/M_C4AkFn8l:1␤ in <anon> at /tmp/M_C4AkFn8l:1␤»
jnthn perl6: sub foo(*@a) { @a[0]++ }; my $a = 1; foo($a); say $a;
p6eval niecza v10-61-gbacff10: OUTPUT«2␤»
..rakudo 18dea9: OUTPUT«1␤»
..pugs b927740: OUTPUT«*** Can't modify constant item: VInt 1␤ at /tmp/IiGrqIKufP line 1, column 16-24␤»
jnthn b: sub foo(*@a) { @a[0]++ }; my $a = 1; foo($a); say $a; 22:05
p6eval b 1b7dd1: OUTPUT«1␤»
22:06 dual left 22:11 dju left 22:23 donri left, dju joined
nornagest Good night! 22:27
22:27 nornagest left 22:37 quuxrev left 22:43 cyfi left 22:48 dorlamm left 23:05 Grrrr left 23:08 molaf_ joined 23:09 molaf__ left 23:22 thou joined 23:25 wamba left 23:40 dukeleto left, dukeleto joined, dukeleto left 23:41 dukeleto joined, dukeleto left, dukeleto joined 23:42 dukeleto left, dukeleto joined, benabik left
lue rakudo: role A { }; role B is A { }; say "alive!"; # I thought roles could only be applied with does. bug? 23:52
p6eval rakudo 18dea9: OUTPUT«alive!␤»
23:53 tokuhiro_ joined