|
»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moderator on 10 October 2009. |
|||
| diakopter | std: sub my { my &my }; my(); | 00:15 | |
| p6eval | std 28804: OUTPUT«ok 00:02 128m» | ||
|
00:18
Confield left,
Confield joined
|
|||
| tann | rakudo: caller(); # :) | 00:21 | |
| p6eval | rakudo d5a2ee: OUTPUT«caller() is not yet implemented in Rakudo, sorryin sub caller (file src/gen_setting.pm, line 2360)called from Main (file /tmp/efpqVsPwTY, line 0)» | ||
| diakopter | :) | ||
|
00:21
frew joined
|
|||
| diakopter | rakudo: Main | 00:22 | |
| p6eval | rakudo d5a2ee: OUTPUT«Could not find non-existent sub Mainin Main (file src/gen_setting.pm, line 206)» | ||
| diakopter | rakudo: non-existent | 00:23 | |
| p6eval | rakudo d5a2ee: OUTPUT«Could not find non-existent sub non-existentin Main (file src/gen_setting.pm, line 206)» | ||
| diakopter | rakudo: my &say := ¨ say 6; # not a "re-declaration"? | 00:32 | |
| p6eval | rakudo d5a2ee: OUTPUT«6in Main (file /tmp/euHlSByODN, line 0)» | ||
|
00:38
lumi joined
00:49
brunov joined
00:57
agentzh joined
01:14
Raugturi joined
01:19
lumi joined
01:22
hercynium joined
01:26
Raugturi joined
01:27
kst joined
01:28
Raugturi joined
01:30
Raugturi joined
01:34
Raugturi joined
01:35
rgrau joined
01:36
orafu joined
01:37
kst joined
01:53
TiMBuS joined
|
|||
| colomon | rakudo: sub infix:<T+>($a, $b) { $a + $b; }; say [T+](1, 2, 3); | 01:54 | |
| p6eval | rakudo d5a2ee: OUTPUT«6» | ||
| pugs_svn | r28805 | colomon++ | [t/spec] Test [+] and [T+], the later of which triggers the Texas "non-dwimmy hyperoperator" bug. | 01:57 | |
|
01:59
lumi joined
|
|||
| diakopter | rakudo: say 4 R+ 5; | 02:00 | |
| p6eval | rakudo d5a2ee: OUTPUT«9» | ||
| colomon | Oooo, R! I forgot about that. Another set of tests to add... | 02:03 | |
| rakudo: sub infix:<T+>($a, $b) { $a + $b; }; say 4 RT+ 5; | 02:04 | ||
| p6eval | rakudo d5a2ee: OUTPUT«9» | ||
| colomon | wow, I didn't expect that to actually work... | ||
|
02:05
eternaleye joined
|
|||
| araujo wonders if some perl6 peep is already google waving here | 02:06 | ||
| pmichaud | fair warning: dalek flood imminent | 02:07 | |
|
02:09
dalek joined
02:18
lumi joined
02:21
nbrown joined
02:32
xenoterracide joined
02:33
envi^home joined
02:53
nbrown joined
02:59
lumi joined
03:17
kst joined
03:27
tak11 joined
03:50
sparc joined
03:57
rhr joined
04:09
rhr__ joined
04:14
lumi joined
04:25
justatheory joined
04:59
kst joined
05:05
lumi joined
05:21
hudnix joined
|
|||
| eternaleye | rakudo: class A { Str $name; method iAm() { say $name ~ " is class " ~ self.WHAT ~ " software!"; }; }; my $vm = A.new( name => "Rakudo" ); $vm.iAm(); | 05:29 | |
| p6eval | rakudo d5a2ee: OUTPUT«Confused at line 2, near "$name; met"in Main (file <unknown>, line <unknown>)» | ||
| carlin | rakudo: class A { has Str $name; method iAm() { say $name ~ " is class " ~ self.WHAT ~ " software!"; }; }; my $vm = A.new( name => "Rakudo" ); $vm.iAm(); | 05:30 | |
| p6eval | rakudo d5a2ee: OUTPUT«Rakudo is class A() software!» | ||
| carlin | rakudo: class A { has Str $name; method iAm() { say $name ~ " is class " ~ self.WHAT.perl ~ " software!"; }; }; my $vm = A.new( name => "Rakudo" ); $vm.iAm(); # fix A() ;-) | 05:32 | |
| p6eval | rakudo d5a2ee: OUTPUT«Rakudo is class A software!» | ||
| eternaleye | carlin: Thanks | 05:35 | |
|
05:38
lumi joined
05:49
ShaneC joined
06:01
zamolxes joined
06:05
awwaiid joined
06:11
infrared joined
|
|||
| quietfanatic | rakudo: ::int32 := ::Int; say int32.WHAT | 06:12 | |
| p6eval | rakudo d5a2ee: OUTPUT«Int()» | ||
| quietfanatic | rakudo: subset int32 of Int; say int32.WHAT | ||
| p6eval | rakudo d5a2ee: OUTPUT«()» | ||
| quietfanatic | rakudo: subset int32 of Int; say int32.perl | ||
| p6eval | rakudo d5a2ee: OUTPUT«» | ||
| quietfanatic | rakudo: subset int32 of Int; say int32.WHAT.perl | ||
| p6eval | rakudo d5a2ee: OUTPUT«» | ||
| quietfanatic | rakudo: subset int32 of Int; .say for int32.^methods | ||
| p6eval | rakudo d5a2ee: OUTPUT«!SUBTYPE_ACCEPTS!SUBTYPE_PROTOOVERRIDES» | ||
| quietfanatic | rakudo: subset int32 of Int where {2**$_; say int32.WHAT | 06:13 | |
| p6eval | rakudo d5a2ee: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ""in Main (file <unknown>, line <unknown>)» | ||
| quietfanatic | oops | ||
| rakudo: subset int32 of Int where {-(2**16) <= $_ < 2**16}; say int32.WHAT | |||
| p6eval | rakudo d5a2ee: OUTPUT«()» | ||
| quietfanatic | rakudo: subset int32 of Int where {-(2**16) <= $_ < 2**16}; say int32!SUBTYPE_ACCEPTS | 06:14 | |
| p6eval | rakudo d5a2ee: OUTPUT«Method '!SUBTYPE_ACCEPTS' not found for invocant of class ''in Main (file src/gen_setting.pm, line 206)» | ||
| quietfanatic | rakudo: subset int32 of Int where {-(2**16) <= $_ < 2**16}; say int32.'!SUBTYPE_ACCEPTS' | ||
| p6eval | rakudo d5a2ee: OUTPUT«Method '!SUBTYPE_ACCEPTS' not found for invocant of class ''in Main (file src/gen_setting.pm, line 206)» | ||
| quietfanatic | rakudo: class int32 is Int {}; say int32.WHAT | 06:15 | |
| p6eval | rakudo d5a2ee: OUTPUT«int32()» | ||
| quietfanatic | rakudo: class int32 is Int {}; my int32 $x = 42; say $x.WHAT | ||
| p6eval | rakudo d5a2ee: OUTPUT«Assignment type check failed; expected int32, but got Intin Main (file <unknown>, line <unknown>)» | ||
|
06:17
infrared joined
06:18
kst joined
06:20
am0c joined
06:23
lumi joined
06:24
infrared joined
06:44
desertm4x joined
06:55
schemer999iphone joined
07:03
infrared joined
07:12
schemer999iphone left
07:34
yves joined
07:38
iblechbot joined
08:06
Su-Shee joined
|
|||
| Su-Shee | good morning. :) | 08:06 | |
|
08:07
lumi joined
08:08
rblasch joined
08:13
Bzek joined
08:14
dr_df0 joined
08:23
icwiener joined
08:24
rblasch_ joined
|
|||
| pugs_svn | r28806 | colomon++ | [t/spec] Add tests for R (reversed) versions of basic overloaded operatiors. | 08:43 | |
|
08:44
dr_df0 left
08:51
eMaX joined
08:52
zamolxes joined
|
|||
| carlin wishes "Method 'foo' not found for invocant of class 'bar'"-type errors gave a file/line number ... | 09:02 | ||
|
09:17
Khisanth joined
09:18
masak joined
|
|||
| masak | aloha, Perl 6 people. | 09:18 | |
| again, The Weekend has arrived. | |||
| dalek | p-rx: 9e137f5 | pmichaud++ | build/ (4 files): A few final bootstrap pieces. |
09:22 | |
| p-rx: 8439afd | pmichaud++ | (8 files): Complete parse bootstrapping of P6Regex library -- PGE is no |
|||
| p-rx: d561f7f | pmichaud++ | (4 files): More build cleanups -- remove references to PGE libraries and code. |
|||
| p-rx: ddf1fa8 | pmichaud++ | src/stage0/P6 (2 files): Update the stage0 compiler files. |
|||
| p-rx: 1e495f8 | pmichaud++ | src/cheats/PGE.pir: Remove no-longer-needed cheats for PGE. |
|||
| masak | pmichaud++ | 09:23 | |
| carlin | pmichaud++ # Making dalek work for his living | ||
|
09:24
lumi joined
09:32
NorwayGeek joined
10:00
kst joined
10:02
houghton joined
10:13
zloyrusskiy joined
|
|||
| masak | perl6: my @a = { foo => "one" }, { foo => "zwei" }, { foo => "trois" }; say (@a>>.<foo>).perl | 10:14 | |
| p6eval | elf 28806: OUTPUT«Not a HASH reference at ./elf_h line 260. at ./elf_h line 5881» | ||
| ..pugs: OUTPUT«undef» | |||
| ..rakudo d5a2ee: OUTPUT«["one", "zwei", "trois"]» | |||
| masak | rakudo++ | ||
|
10:20
desertm4x_ joined
|
|||
| avar | so rakudo is better than pugs now?:) | 10:30 | |
| masak | please be more specific :) | 10:31 | |
|
10:34
eMaX joined,
lichtkind joined,
TiMBuS|Away joined
|
|||
| lichtkind | jnthn: hai | 10:34 | |
|
10:39
bpetering joined
11:09
araujo joined
11:14
muixirt joined
|
|||
| muixirt | hi | 11:14 | |
| perl6: $i=0; say $i | 11:15 | ||
| p6eval | rakudo d5a2ee: OUTPUT«Symbol '$i' not predeclared in <anonymous> (/tmp/uRMVUhH32E:2)in Main (file <unknown>, line <unknown>)» | ||
| ..pugs: OUTPUT«***  Unexpected "=" expecting "::" Variable "$i" requires predeclaration or explicit package name at /tmp/0ioj60svE2 line 1, column 3» | |||
| ..elf 28806: OUTPUT«Global symbol "$i" requires explicit package name at (eval 122) line 3.Global symbol "$i" requires explicit package name at (eval 122) line 4. at ./elf_h line 5881» | |||
| muixirt | declaring variables is a must in Rakudo? | 11:16 | |
| will that change? | |||
| carlin | Strict mode is enabled by default | 11:17 | |
| I think there are plans to disable it on the command-line but it will still be default for scripts | |||
| muixirt looks at en.wikibooks.org/wiki/Perl_6_Progra..._Variables | 11:18 | ||
|
11:19
maschla joined
|
|||
| muixirt | the spec says: | 11:25 | |
| When "strict" is in effect (which is the default except for one-liners), non-qualified variables (such as $x and @y) are only looked up from lexical scopes, but never from package scopes. | |||
| what does that mean? | |||
| masak | it means you have to use 'my'. | 11:26 | |
| or some other declarator. | |||
| muixirt | perl6: {$i=0; say $i} | 11:27 | |
| p6eval | rakudo d5a2ee: OUTPUT«Symbol '$i' not predeclared in <anonymous> (/tmp/zwkeE2OaMT:2)in Main (file <unknown>, line <unknown>)» | ||
| ..pugs: OUTPUT«***  Unexpected "=" expecting "::" Variable "$i" requires predeclaration or explicit package name at /tmp/3ClDIMvspC line 1, column 4» | |||
| ..elf 28806: OUTPUT«Global symbol "$i" requires explicit package name at (eval 122) line 3.Global symbol "$i" requires explicit package name at (eval 122) line 4. at ./elf_h line 5881» | |||
| masak | muixirt: the outer {} are unnecessary in this case. | ||
| bpetering | muixirt: you can probably get by with just 'rakudo: ' to avoid polluting the channel :) | 11:28 | |
| muixirt | rakudo: sub a {$i=0; say $i}; a() | ||
| p6eval | rakudo d5a2ee: OUTPUT«Symbol '$i' not predeclared in a (/tmp/r4JdRYzFKU:2)in Main (file <unknown>, line <unknown>)» | 11:29 | |
| masak | bpetering! \\o/ | ||
| bpetering | hi masakbot :O) | ||
| masak hovers happily in the air | |||
| muixirt | so if non-qualified variables are only looked up from lexical scopes, so what is a lexical scope then? | 11:30 | |
| muixirt is sorry about dumb questions but ... | |||
| masak | muixirt: a lexical scope is anything within a pair of {}. questions are completely OK here. | ||
| rakudo: my $a = 2; if True { my $a = 5; say $a }; say $a | 11:31 | ||
| p6eval | rakudo d5a2ee: OUTPUT«52» | ||
| muixirt | so my example with that sub a should work in strict mode? | ||
|
11:31
Whiteknight joined
|
|||
| masak | muixirt: there are two lexical scopes in there. one outside the if block, and one inside. | 11:31 | |
| muixirt: do you mean non-strict mode? | |||
| muixirt | masak: please look at en.wikibooks.org/wiki/Perl_6_Progra..._Variables | 11:32 | |
| masak | Ok, I'm looking. | ||
| muixirt | so a "non-qualified variables" is a variable without being declared with my? | 11:34 | |
| masak | "Variables don't need to be declared beforehand, but Perl 6 gives you the flexibility to do it if you want." -- This is only true in non-strict mode, which is off everywhere by default except in -e programs. | ||
| muixirt: aye. | |||
| muixirt | but rakudo fails with ./perl6 -e '$i=0; say $i' | 11:36 | |
| masak | correct. | ||
| muixirt | but is this coreect behaviour | 11:37 | |
| muixirt confused | |||
| masak | muixirt: as carlin said, it's not implemented yet. | ||
| muixirt | oh, i forgot | ||
| masak | remember, Rakudo isn't Perl 6, but it tries to be, little by litte. | ||
| bpetering | Think of Perl 6 as the Platonic Ideal and Rakudo as... | 11:39 | |
| masak | ...shadows on the wall of a cave. :) | 11:40 | |
| bpetering | Tag-team explanations FTW | 11:41 | |
|
11:41
lumi joined
|
|||
| bpetering | Laziness FTW. Thanks masakbot :) | 11:43 | |
| masak | any time, citizen. | 11:45 | |
| bpetering | SPQR - Same Perl, Quite Reworked? | 11:47 | |
| carlin | rakudo: my %h = foo => 'bar'; say %h<quux>.defined; say %h.perl | 11:48 | |
| jnthn | oh hai | ||
| p6eval | rakudo d5a2ee: OUTPUT«0{"foo" => "bar", "quux" => undef}» | ||
| masak | \\o/ | ||
| jnthn | oooh...somebody mentioned me...or wanted me. | ||
| jnthn backlogs to find out | |||
| masak | jnthn: I think it was lichtkind who said hai. | ||
| lichtkind | jnthn: masak: yes | 11:49 | |
| jnthn | lichtkind: oh hai | ||
| lichtkind: ako sa mas? :-) | |||
| jnthn caught up on sleep | 11:50 | ||
| lichtkind | jnthn: ujde, vipada to na hadku | ||
|
11:51
fridim_ joined
|
|||
| masak | the LTA error message I love the least right now: on UnknownType.new(), Rakudo emits "invoke() not implemented in class 'Undef'", with a line number and file in gen_setting. finding the offending line of code (and what went wrong) is left as an exercise to the programmer. whoppee. | 11:51 | |
| jnthn | std: UnknownType.new() | 11:52 | |
| p6eval | std 28806: OUTPUT«Undeclared name: UnknownType used at line 1ok 00:01 104m» | ||
| jnthn | std je ovela lepsie | ||
| oh, gah | |||
| STD is a lot better. | |||
| Not enough coffee to do multiple languages in one IRC channel yet today. :-) | |||
| jnthn goes to fill up the coffee machine with raw materials | 11:53 | ||
| bpetering | jnthn: coffee for effect or are you an afficionado? | 11:54 | |
| jnthn | bpetering: Coffee seems to give my brain a kick start in a morning. | 11:56 | |
| bpetering: I actually only drink coffee in the morning though. If I drink coffee on an evening, I can't sleep. | |||
| Well, "morning" | 11:57 | ||
| ;-) | |||
| bpetering | I'm the same with evenings. I stay up all night thinking... usually nonsense | ||
| bpetering thinks of Voltaire | 11:59 | ||
| is this morning for you jnthn? | 12:01 | ||
| jnthn | bpetering: Well, it's still "the couple of hours after I got out of bed". | 12:02 | |
| So it's morning in that sense. ;-) | |||
| Though in my timezone morning ended a while ago. | 12:03 | ||
| jnthn was debugging resig until 1:30am-ish, and then needed some time to wind down before attempting to sleep | |||
| bpetering | Heh, my mornings finish about 4pm that way :) | 12:04 | |
| carlin | "Method 'postcircumfix:{ }' not found for invocant of class 'Failure' in Main (file src/gen_setting.pm, line 206)" | 12:11 | |
| :( | |||
| masak | carlin: let me guess, you're overriging postcircumfix:<{ }>? | ||
| s/overriging/overriding/ | 12:12 | ||
| oh, or maybe just doing $foo<bar><baz> where $foo<bar> doesn't exist... | |||
| jnthn | Aye, it may be an auto-viv fail. | ||
| carlin | masak: It'll be the second one. But finding where it is will be fun | 12:13 | |
| jnthn | rakudo: my %foo; say %foo<bar><bar> | ||
| p6eval | rakudo d5a2ee: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'in Main (file src/gen_setting.pm, line 206)» | ||
| jnthn | rakudo: class Failure is also { method postcircumfix:<{ }>(*@slice) { die "oh noes" } }; my %foo; say %foo<bar><bar> | 12:14 | |
| p6eval | rakudo d5a2ee: OUTPUT«oh noesin method Failure::postcircumfix:{ } (file /tmp/NufSpXpr6k, line 2)called from Main (file /tmp/NufSpXpr6k, line 0)» | ||
| jnthn | What's supposed to happen when you index into a failure object, anyway? | 12:15 | |
| Because somebody with enough fu to add something to the setting can possibly improve current situation. :-) | |||
| masak | that'd be very nice. | ||
| jnthn | heh, some days the BBC really does win on "insightful" | 12:17 | |
| I mean, "6% of the worlds languages are spoken by 94% of the world's population" is just fine. | |||
| However, the following bullet point being "The remaining 94% of languages are spoken by only 6% of the population" is, erm, kinda redundant. :-) | |||
| masak | very reassuring, though. :) | 12:20 | |
| jnthn readies himself to dig into a couple of awkward changes | 12:23 | ||
| Su-Shee bakes a cake due to c++ frustration. can I have a native webkit in perl6 now, please? | 12:24 | ||
| jnthn | oh wow, pmichaud++ has bootstrapped NQP! | 12:25 | |
| masak | aye. pmichaud++! | 12:26 | |
| jnthn | rofl | ||
|
12:26
lumi joined
|
|||
| jnthn didn't read README yet, but he just found IGNOREME and read that. | 12:27 | ||
| carlin | (reverse psychology)++ | ||
|
12:28
Chillance joined
|
|||
| jnthn ponders which ouch-task to do first. | 12:28 | ||
| muixirt | 'Buf' doesn't work in Rakudo right now? | 12:54 | |
| masak | only very little. | ||
| it's undertested in the spectests, too. | |||
| muixirt | rakudo: my Buf @a; say @a.WHAT | 12:55 | |
| p6eval | rakudo d5a2ee: OUTPUT«Array()» | ||
| masak | rakudo: my $x = Buf.new; say $x.WHAT | ||
| p6eval | rakudo d5a2ee: OUTPUT«Buf()» | ||
| masak | muixirt: when you put a type before '@a', you do not give the type of @a, but of its elements. | ||
| muixirt | rakudo: my $x=Buf.new; $x=1,2,3,4; | 12:56 | |
| p6eval | rakudo d5a2ee: ( no output ) | ||
| muixirt | masak: thanks | 12:57 | |
| rakudo: my $x=Buf.new; $x=1,2,3,4; say $x | 12:58 | ||
| p6eval | rakudo d5a2ee: OUTPUT«1 2 3 4» | ||
| jnthn | rakudo: sub foo($a, $b = $a, $c = $b) { say "$a,$b,$c" }; foo(1) | ||
| p6eval | rakudo d5a2ee: OUTPUT«1,1,1» | ||
| masak | muixirt: you just replaced the Buf with [1,2,3,4]. | ||
| jnthn | Ah, current Rakudo gets that right too. | ||
| (resig just started to...) | |||
| muixirt | rakudo: my $x=Buf.new; $x=1,2,3,4; say $x.WHAT | 12:59 | |
| p6eval | rakudo d5a2ee: OUTPUT«Array()» | ||
| muixirt | rakudo: my $x=Buf.new; $x=[1,2,3,4]; say $x.WHAT | ||
| p6eval | rakudo d5a2ee: OUTPUT«Array()» | ||
| masak | weird; t/spec/S02-builtin_data_types/buf.t does not contain a single test pertaining to Bufs. | ||
| muixirt | so how do I put stuff in a Buf? | ||
| masak | rakudo: my $buf = 'ab'.encode('ASCII'); say $buf.list.perl | 13:00 | |
| p6eval | rakudo d5a2ee: OUTPUT«[97, 98]» | ||
| masak | rakudo: my $buf = Buf.new(97, 98); say $buf.decode | 13:03 | |
| p6eval | rakudo d5a2ee: OUTPUT«» | ||
| masak | hmpf. that didn't work. | ||
| muixirt | is Buf suitable for binary data? | ||
| masak | yes, I'd say it is. | 13:04 | |
|
13:05
icwiener_ joined
|
|||
| jnthn | masak: Would you not have to give Buf an encoding too? | 13:05 | |
| masak | rakudo: my $buf = Buf.new(97, 98); say $buf.decode('ASCII') | 13:06 | |
| p6eval | rakudo d5a2ee: OUTPUT«» | ||
| jnthn | Aww. | ||
| masak | jnthn: it should default to some encoding. | ||
| jnthn | rakudo: my $buf = 'ab'.encode('ASCII'); say $buf.decode('ASCII'); | 13:07 | |
| p6eval | rakudo d5a2ee: OUTPUT«» | ||
| jnthn | fail | ||
|
13:12
dr_df0 joined
|
|||
| jnthn | rakudo: sub foo($a, $b where { $b > $a }) { say "ok" }; foo(1,2); foo(1,1) | 13:14 | |
| p6eval | rakudo d5a2ee: OUTPUT«okParameter type check failed; expected Any, but got Int for $b in call to fooin sub foo (file <unknown>, line <unknown>)called from Main (file /tmp/t9TzYFprfK, line 0)» | ||
| jnthn | std: sub foo($a, $b where { $b > $a }) { say "ok" }; foo(1,2); foo(1,1) | 13:15 | |
| p6eval | std 28806: OUTPUT«ok 00:02 115m» | ||
| jnthn | You know, there's one interesting thing about this. | ||
| We actually have to bind $b before we can finish checking whether we can bind $b. | |||
| It took me all of 30 seconds to re-order to code and make this work, now I've fixed the tougher cookie of the lexical capture stuff. | 13:16 | ||
| But it had never really occured to me before. | |||
| masak | why do we actually have to bind $b? | 13:18 | |
| jnthn | masak: Look at the constraint block. | ||
| masak | yes. I see now. | ||
| we do. | 13:19 | ||
| jnthn | masak: It needs to find the lexical $b. | ||
| masak | aye. | ||
| jnthn | We were sorta getting it by accident before. | ||
| masak | :) | ||
| jnthn | Because we had a two-pass bind and then check thingy. | ||
| masak | std: sub foo($a where ( $b > $a }, $b) {} | ||
| p6eval | std 28806: OUTPUT«[31m===[0mSORRY![31m===[0mUnable to parse parenthesized expression; couldn't find final ')' at /tmp/Cg8NpYeOVi line 1:------> [32msub foo($a where ( $b > $a [33m⏏[31m}, $b) {}[0m expecting any of: standard stopper statement modifier loop terminatorFAILED | ||
| ..00:02 113… | |||
| masak | opos. | 13:20 | |
| std: sub foo($a where { $b > $a }, $b) {} | |||
| p6eval | std 28806: OUTPUT«ok 00:01 108m» | ||
| masak | jnthn: I don't think STD.pm is really 100% correct here. | ||
| jnthn | Hmm. That one *is* going to fail. | ||
| masak: Me either. | |||
| masak | so we shouldn't rule out that your example might be erroneous too. | ||
| maybe $b simply isn't bound at that point. | 13:21 | ||
| jnthn | masak: That is also quite possible. | ||
| masak | TimToady: ^ | ||
| jnthn | If it's the case, I expect we'll have some spectets to fix. | ||
| masak | it is an interesting question. | 13:22 | |
|
13:22
lumi joined,
Bzek_ joined
|
|||
| jnthn | I guess the counter-point is, "I wrote it after the parameter name so I'd expect reading along the line of code it's already introduced" | 13:22 | |
| std: my $a = $a++ | 13:23 | ||
| p6eval | std 28806: OUTPUT«ok 00:01 106m» | ||
| jnthn | See, you can do that. And immediately after the "my $a", $a refes to that $a. | ||
| It's, more practically, what we expect in my Dog $x .= new(name => 'Fido') | 13:24 | ||
| So if we consider the presence of a parameter name in a signature as a kind of "declaration"... | |||
| But then, I'm not really sure it is. Signatures themselves don't declare things, they just suggest to the thingy they're attached to - if any - what it might like to declare. | 13:25 | ||
| masak | nod. | 13:29 | |
| in other words, we don't really know. | |||
| bpetering | just trying to follow this discussion - "my $a = $a++" refers to an old P5 trick to get the value of an outer lexical, no? | 13:30 | |
| jnthn | bpetering: Not in Perl 6. | ||
| rakudo: my $a = $a++; say $a; | |||
| p6eval | rakudo d5a2ee: OUTPUT«Use of uninitialized value» | ||
| masak | bpetering: though the contrast is illustrative. | ||
| jnthn | oh heh | ||
| masak | rakudo: my $a = ++$a; say $a | 13:31 | |
| p6eval | rakudo d5a2ee: OUTPUT«1» | ||
| jnthn | oh, masak++ | ||
| masak | ++masak | ||
| jnthn | rakudo++ # beats me :-) | ||
| bpetering | jnthn: I know, just making sure my understanding of the semantics is correct and is likely to lead to overall comprehension. :) | ||
| dr_df0 | :) | ||
| bpetering | s/semantics/Perl 6 semantics/ | 13:32 | |
| sorry to derail... please continue. :) | 13:35 | ||
| jnthn | bpetering: It's OK, I think I've already said all I was going to. :-) | 13:36 | |
| Well, one of two tricky fixes done. | 13:40 | ||
| carlin | rakudo: my @a=1..5; @a[10].defined; say @a.perl | 13:42 | |
| p6eval | rakudo d5a2ee: OUTPUT«[1, 2, 3, 4, 5, undef, undef, undef, undef, undef, undef]» | ||
| carlin | Is that supposed to do that? | ||
| jnthn | carlin: I *think* that's an auto-vivification bug. | 13:44 | |
| masak | it is. | 13:45 | |
| jnthn | ooh, for once I think I've found a test fail that's going to be easy to fix... | 13:46 | |
| carlin | rakudo: my @a = 1..5; say @a.exists(3); say @a.exists(6); | ||
| p6eval | rakudo d5a2ee: OUTPUT«10» | ||
| jnthn | carlin: exists is probably fine, I think the problem is in postcircumfix:<[ ]> | 13:47 | |
| carlin | rakudo: my @a=1..5; @a.exists(10); say @a.perl | ||
| p6eval | rakudo d5a2ee: OUTPUT«[1, 2, 3, 4, 5]» | ||
| carlin | Yip | 13:48 | |
| Easy to work around then | |||
|
14:07
Psyche^ joined
14:13
lumi joined
|
|||
| masak | wow, this feels just like the summer of 2008. my codebase is now so big that I'm running into Parrot complexity limitations. | 14:13 | |
| bpetering | g'night all... masak, i'm working, not shirking off Text::CSV tests :) | 14:15 | |
| jnthn | Hmm. Does anyone have trouble building master Rakudo against latest Parrot? | 14:16 | |
| masak | what's the difference? :P | ||
| jnthn: yes. for three days now. | |||
| bpetering | masak: one brings me food. | ||
| jnthn | ah shit. | ||
| masak: It looks like: | |||
| Null PMC access in find_method() | |||
| current instr.: 'perl6;Perl6;Grammar;Actions;_block13' | |||
| For you too? | |||
| masak | yeah, something like that. | ||
| jnthn | Shit. | ||
| masak | let me try again, and I'll check. | ||
| jnthn | Just what I need. | ||
| parrot-- | |||
|
14:16
fridim_ joined
|
|||
| masak | If I'm the little bird you bring down in a mine to check that the oxygen doesn't run out, then people have more or less been ignoring that little bird in the last few days. :) | 14:19 | |
| I think the most attention I've gotten for this is "you should probably try to build with PARROT_REVISION, not bleeding Parrot" | 14:20 | ||
| (but that didn't work, either) | |||
| jnthn | Trouble is, I need to bump to latest. | ||
| masak | yup, that's the exact error message I'm getting. | 14:21 | |
| good hunting! | 14:22 | ||
|
14:25
Limbic_Region joined
|
|||
| masak | jnthn: I'll see if I can bisect while you're having lunch. | 14:26 | |
| jnthn | masak: Thanks! | ||
| masak: kid51 suggests trying at 41833 | |||
| masak | yeah, I saw. | ||
| I'll try that. | |||
| jnthn | Thanks. | 14:29 | |
| jnthn makes niva sandwich | |||
|
14:36
xinming_ joined
14:43
vapace joined
|
|||
| pmichaud | good morning, #perl6 | 14:43 | |
| jnthn | pmichaud: oh hai | 14:44 | |
| pmichaud: I fear one of your recent NQP/PAST changes may have borken the Rakudo build...not sure yet though. | 14:45 | ||
| masak | pmichaud: o/ -- nqp-rx straps boots, cool! | ||
| jnthn | pmichaud: Nice work on the bootstrap though ;-) | ||
| masak | jnthn: so far I have 41833 builds, 41897 doesn't. | ||
| jnthn | masak: OK. 41871 would be a good one to check. | 14:46 | |
| japhb | masak, "straps boots" makes me think of "knocks boots", and I fear such interaction with a parrot may be illegal in some jurisdictions ... | ||
| masak | jnthn: gotcha. | ||
| jnthn googles knocks boots out of curiosity | 14:47 | ||
| japhb: oh my... | |||
| colomon | rakudo: say [R+] (1, 2, 3); | ||
| p6eval | rakudo d5a2ee: OUTPUT«6» | 14:48 | |
| colomon | rakudo: say (<a b c> <<R~>> <1 2 3>).perl; | ||
| p6eval | rakudo d5a2ee: OUTPUT«Bool::False» | ||
| colomon | errr... what? | 14:49 | |
| japhb | rakudo: say (<a b c> >>R~<< <1 2 3>).perl; | ||
| p6eval | rakudo d5a2ee: OUTPUT«Confused at line 2, near ">>R~<< <1 "in Main (file <unknown>, line <unknown>)» | ||
| pmichaud | jnthn: afaik, my NQP/PAST changes have been pretty innocuous, but it's possible they've broken something. Should be an easy-ish fix if that's the case. | ||
| nqp-rx is bootstrapping the parser, yes; next step is to bootstrap all of nqp | 14:50 | ||
| jnthn | pmichaud: I'm hoping so, because that's much preferable to horrible Parrot guts bug that I first expected | ||
| colomon | std: say (<a b c> <<R~>> <1 2 3>).perl; | ||
| p6eval | std 28806: OUTPUT«ok 00:01 111m» | ||
| jnthn | pmichaud: It appears to crash really, really early on in gen_actions.pir | ||
| pmichaud: Here: | |||
| get_hll_global $P15, "P6metaclass" | |||
| $P15."new_class"("Perl6::Grammar::Actions") | |||
| It looks like $P15 ends up null. | |||
| colomon | rakudo: say (<a b c> >>R~<< <1 2 3>).perl; | ||
| p6eval | rakudo d5a2ee: OUTPUT«Confused at line 2, near ">>R~<< <1 "in Main (file <unknown>, line <unknown>)» | ||
| colomon | std: say (<a b c> >>R~<< <1 2 3>).perl; | ||
| p6eval | std 28806: OUTPUT«ok 00:02 109m» | ||
| pmichaud | oh, yes, that'd be a fail. | 14:51 | |
| checking. | |||
| jnthn | pmichaud: Thanks. | ||
|
14:51
arthur-_ joined
|
|||
| jnthn just bumped Parrot to latest and was a tad...irked...by this. ;-) | 14:51 | ||
| jnthn feels better now he's eaten | 14:52 | ||
| japhb: The worst bit is that the second hit on Google for it lets you order a mug with the phrase and definition on it... | 14:53 | ||
| jnthn adds to list of things NOT to buy mum for Christmas. | |||
| masak | jnthn: 41865 builds, 41871 doesn't. | 14:54 | |
|
14:54
infrared_ joined
|
|||
| jnthn | pmichaud: Probably issue was in patch "[nqp]: Add simple class inheritance to NQP." | 14:54 | |
| pmichaud | it is. | ||
| I changed a get_root_global to a get_hll_global | |||
| jnthn | Oops. | ||
| pmichaud | and that doesn't work in non-parrot hll namespaces. | ||
|
14:56
lumi joined
|
|||
| jnthn | OK. At least seems something quickly fixable. :-) | 14:56 | |
| pmichaud | It is, fixing now. | 14:57 | |
| japhb | jnthn, Gosh, I can't imagine why you wouldn't want to send those mugs to your whole family! | ||
|
14:57
japhb left,
japhb joined
|
|||
| japhb | grrr | 14:57 | |
| Apparently I don't have X focus set to follow mental focus yet. | 14:58 | ||
| masak | yup. 41870 builds fine. so the badness starts at 41871. | 15:02 | |
| diakopter | #perl6: g'morning | ||
| pmichaud | I've fixed the badness locally -- testing parrot and then will commit. | 15:03 | |
| oops, not fixed yet. (sigh) | |||
| okay, now fixed. testing. | 15:05 | ||
| I guess this trunk fail mars the celebration of nqp-rx progress, eh? ;-) | 15:06 | ||
| this morning I've been idly wondering how hard it would be to port NQP to smop. | 15:07 | ||
| (er, nqp-rx) | 15:08 | ||
| jnthn | pmichaud: eh, shit happens. :-) | ||
| pmichaud | one of the features of nqp-rx is that it no longer requires Parrot coroutines. | ||
| or continuations (yet), for that matter. | |||
| jnthn would be interested to port to .Net CLR. | |||
| pmichaud | r41901 should fix the nqp problem. | 15:09 | |
| (just committed) | |||
| jnthn | pmichaud: ok, thanks, checking | ||
| colomon just read the section on hyper operators properly for the first time, wow. | 15:13 | ||
| pmichaud | okay, time for me to head to a meeting; bbiaw | 15:14 | |
| colomon | say -<< (1, 2, 3); | 15:15 | |
| rakudo: say -<< (1, 2, 3); | 15:17 | ||
| p6eval | rakudo d5a2ee: OUTPUT«say requires an argument at line 2, near " -<< (1, 2"in Main (file src/gen_setting.pm, line 2545)» | ||
| jnthn | colomon: Note that Rakudo doesn't parse all hyperoperators yet. | ||
| colomon | rakudo: say -« (1, 2, 3); | ||
| p6eval | rakudo d5a2ee: OUTPUT«say requires an argument at line 2, near " -\\x{ab} (1, 2,"in Main (file src/gen_setting.pm, line 2545)» | ||
| jnthn | Including unary ones. | ||
| colomon | Yes, the coolness of that example is somewhat reduced by it not working. | ||
| jnthn | colomon: I expect the switch to a more std-like grammar will fix that up. | 15:18 | |
| colomon | sure, sure. | ||
|
15:18
justatheory joined
|
|||
| jnthn | pmichaud: It helped, thanks! | 15:20 | |
| colomon | I'm still just trying to add tests to S06-operator-overloading/workout.t, and never realized before today that prefix operators could be hypered. | ||
| do you guys know -- is it intended that something like >>R-<< should work? | 15:21 | ||
| spec seems vague here... | |||
| or R>>-<< for that matter? | |||
| masak | now getting "Class Signature already registered!" when compiling perl6_s1.pbc... | 15:22 | |
| jnthn | masak: Ah, ouch | 15:23 | |
| I just fixed that in my branch. | |||
| masak: And forgot it would affect master too. | |||
| masak | glad you're on it, then. | ||
|
15:23
lichtkind_ joined
|
|||
| jnthn | masak: in src/parser/signature.pir, try this: | 15:24 | |
| -class Perl6::Compiler::Signature; | |||
| +module Perl6::Compiler::Signature; | |||
| (evil but seems to work) | |||
| masak: oh, sorry | 15:26 | ||
| s/pir/pm/ | |||
| masak | nod. | ||
| jnthn: aye, works. | |||
| jnthn | \\o/ | ||
| masak: Feel free to push. | |||
| masak | will do. | ||
| jnthn | Not sure what'll happen come merge time, giving I've also done it. | 15:27 | |
| Hopefully git will just be like "lol identical win!" and not care. :-) | |||
| masak | git is wise and wondrous. | ||
| oops, I accidentally formatted my commit like a bug report. ;) | 15:29 | ||
| jnthn | Habbits. :-P | 15:31 | |
| Aww. | |||
| I tried to subclass Parrot's Sub PMC to give us our own P6Sub PMC so it could manage signature cloning without us having to keep doing isa checks all over the place, and missing them. | 15:32 | ||
| masak | and with the new freshly-built Rakudo, I'm not getting those pesky Parrot stacktraces any more. \\o/ | ||
| jnthn | But...segv. :-| | ||
| dalek | kudo: 24ebf39 | masak++ | src/parser/signature.pm: [src/parser/signature.pm] fixed class collision perl6_s1.pbc... <jnthn> masak: Ah, ouch <jnthn> masak: in src/parser/signature.pm, try this: <jnthn> -class Perl6::Compiler::Signature; <jnthn> +module Perl6::Compiler::Signature; <jnthn> (evil but seems to work) <masak> jnthn: aye, works. <jnthn> \\o/ <jnthn> masak: Feel free to push. <masak> will do. |
||
| masak | :/ | 15:33 | |
|
15:33
lumi joined
|
|||
| colomon | Unexpected. My refactoring / improvements to workout.t have earned me a Null PMC access. I haven't gotten one of those with this file yet... | 15:40 | |
| on a test that used to work.... | 15:41 | ||
| Ah, it was an accidentally doubled semicolon. | 15:42 | ||
| jnthn | Doubled semicolon = segv?! | ||
| masak | sometimes, yes. | ||
| colomon | rakudo: sub A($a) { $a * $a;; }; say A(10) + 2; | ||
| p6eval | rakudo d5a2ee: OUTPUT«Null PMC access in can()in Main (file src/gen_setting.pm, line 206)» | 15:43 | |
| masak | at the end of blocks, for exa... yeah. | ||
| colomon | just like that, pretty much. | ||
| masak | there's a ticket about it. | ||
| colomon | that one's been reporte... masak++ | ||
| I'm assuming that isn't supposed to work, right? | 15:44 | ||
| masak | please be more specific. | 15:45 | |
|
15:45
FOAD_ joined
|
|||
| colomon | $a * $a;; should return null rather than $a * $a, right? | 15:46 | |
| s/null/undef/ | 15:47 | ||
| Ack, switching to non-Texas operators internally in the basic operator definitions really broke workout.t. | 15:48 | ||
| colomon is wondering if it would be faster to fix the dang Rakudobug than it would be to add all the skips to workout.t... | |||
| jnthn | :-/ | 15:52 | |
| Ah, that's 2 more spectets won back. | 15:55 | ||
|
16:02
justatheory joined
16:04
markmont joined,
tak11 joined,
rdice joined
16:06
NorwayGeek_ joined
16:07
pmurias joined
|
|||
| pmurias | hi | 16:08 | |
| masak | o/ | 16:09 | |
|
16:09
rblasch__ joined
16:19
am0c joined
|
|||
| masak | question: what would put Perl 6 on Slashdot before April? | 16:23 | |
| s/Slashdot/Whatever tech reporting site/ | |||
| pmurias | masak: why do you ask? | 16:24 | |
| masak | pmurias: because I figure the answer might lead to new ways of thinking. | ||
|
16:26
xinming joined
|
|||
| Su-Shee | masak: a cool application based on perl 6. some well-known important developer suddenly participiating. | 16:27 | |
| masak | aye. | ||
| it'd have to be a pretty cool application. | |||
| Su-Shee | I don't think so, people are already waiting for something six-ish; something real and tangible will probably reported. | 16:28 | |
| masak | we already have real and tangible things. they haven't made frontpages so far. :) | 16:33 | |
|
16:33
mberends joined
|
|||
| jnthn | mberends! \\o/ | 16:33 | |
| mberends | oh hai jnthn! | 16:34 | |
| jnthn | masak: Well, yeah, but we probably didn't shout about them either. ;-) | ||
| masak | mberends! | ||
| mberends | :D | ||
| jnthn | mberends: How goes things? | ||
| masak | just when I was about to defect and make dinner... | ||
|
16:34
nihiliad joined
|
|||
| jnthn | Oh wow, placeholders were very broken in resig. Those probably count for some of the fails... | 16:35 | |
| mberends | jnthn: fine. had very little time for coding lately, but have almost managed to keep up with backlogs offline :) The progress on the new binder and regex engine are amazing! | 16:36 | |
| jnthn | mberends: New binder is being hard work. | 16:37 | |
| mberends: More than I might have first guessed. | |||
| But, getting there. | 16:38 | ||
| The regex engine stuff from pmichaud++ is awesome progress, though we've yet to plug it into Rakudo and start using it for real. | |||
| mberends | jnthn: yes, it must be a gut-wrench for Rakudo, but there is so much that will $profit from this refactor. | 16:39 | |
| jnthn | I think after the merge we immediately will win 100s of tests. | ||
| By being able to bind nameds to positionals. | |||
| mberends | masak, sprixel testing is sliding down my todo list, due to multiple internal organ replacement surgery, and proto is now top of the pile :) | 16:41 | |
| mberends gets head down into proto | |||
| masak | hugme: hug mberends | ||
| hugme hugs mberends and blushes | |||
| masak | mberends: just so you know, people have been asking about the installed-modules branch. | 16:42 | |
| mberends blushes and grins :D | |||
| diakopter | internal organs and exoskeleton | ||
| mberends | diakopter: would you call this your 5th generation? | ||
| diakopter | heh | 16:43 | |
| close to that..., counting the versions in JS, and then the versions in C#, and now the versions in JS | 16:44 | ||
| mberends | diakopter, do you have any (non working) code to show? I'm dead curious how it looks... | ||
| diakopter | I keep 'discovering' more efficient interpreter model techniques and they each require total refactorings :D | 16:45 | |
| sure I'll commit it now )o( | |||
| mberends | :D diakopter++ | ||
| diakopter | heh | 16:46 | |
| you say that now... | |||
| yesterday on the plane back from Shwartzifornia I got args and subroutines working again... this time declared/installed from the Perl 6 setting instead of JS. 'cept just about all they can do is run the jseval 'jscode' form.... but that's sufficient for bootlevitation | 16:48 | ||
| masak | mmm... bootlevitation... | 16:49 | |
| diakopter | (running the jseval 'jscode' form is their sole functionality b/c nothing else is built-in. Oh, and class declaration/constructors and 'type objects'. I guess that's something. | 16:52 | |
| ) | |||
| mberends | ) ;) | 16:54 | |
| masak | is that a levitating banana? | ||
|
16:54
kst joined
|
|||
| diakopter | mberends: e.g., there's an Int.pm under setting/ a la rakudo's | 16:54 | |
| masak | mberends: I might do some Temporal Flux hacking tonight, if I'm not caught up in other coding. either way, I'll be here tomorrow. | 16:55 | |
| jnthn finally makes the cup of tea he's been repeatedly boiling the kettle for the last hour to make, but kept forgetting. | 16:56 | ||
| mberends | diakopter: so will there be a sprixel specific set of setting/ modules? | ||
| colomon | www.lostechies.com/blogs/dahlbyk/ar...lever.aspx | ||
| diakopter | mberends: sprixel-specific as opposed to what | ||
| jnthn | masak: btw, in the next couple of days it may be good to set some Real Code onto the new signature binder. | 16:58 | |
| mberends | diakopter: er, I thought rakudo's setting modules were implementation independent, apart from the few containing Q:PIR code. | ||
| pmurias | pmichaud: re porting nqp to smop, the hard part would be writing the runtime | ||
| diakopter | mberends: not really... b/c they're "is also" | ||
| masak | jnthn: I figured as much. when you think it's ready, I'll build November, Druid and proto against the branch. | 16:59 | |
| diakopter | colomon: C#? yay! | ||
| masak | colomon: is functional abstraction too clever? no. | ||
| pmurias | lets just use goto! ;) | 17:01 | |
| masak | need to make food. see you people around. o/ | 17:02 | |
| jnthn | I suspect quite a few C# folks have a "OO is the one true way" and are still clinging to that rather than embracing functional programming. | ||
| Certainly that was the sense I got when reading comments from some folks about the introduction of anonymous methods, then lambdas. | |||
| diakopter | jnthn: :) but "we know how to make optimizers for OO" | 17:03 | |
| pmurias hates having a broken t on the keyboard :( | |||
| diakopter | pmurias: pong from days ago | 17:04 | |
| pmurias | i don't remember why i ponged you then | 17:05 | |
| pugs_svn | r28807 | diakopter++ | [sprixel] much regression. <- an understatement | ||
| jnthn | Hmm...we have a test case like this: | ||
| pmurias | s/ponged/pinged/ | ||
| jnthn | my $topic = 'topic unchanged'; | ||
| my @topic_array = <topic array unchanged>; | |||
| my $c = { $topic = $_; @topic_array = @_ }; | |||
| $c( 2, 3, 4, 5 ); | |||
| The test expects that $_ gets 2 bound to it, and @_ gets (2,3,4,5) | 17:06 | ||
| Which is kinda...huh? | |||
|
17:06
Whiteknight joined
|
|||
| jnthn | I mean, @_ is a slurpy array here, no? | 17:06 | |
| pmurias | diakopter: might have been thinking about unifing sprixel's and mildew-js runtimes | ||
| diakopter | pmurias: oh.. :) cool idea to think about | 17:07 | |
| jnthn | So either $_ should get a value, and @_ gets the rest, or $_ gets nothing and @_ gets the lot, but not the same value getting bound to $_ *and* into the slurpy, surely... | ||
| diakopter | jnthn: sorry to noisify your question/musings | ||
| colomon | Sorry, guys, didn't mean to imply I agreed with the article. (I blame infant interruptions for my disjointed irc'ing.) Just thought it was an interesting code example, and wondered about how to approach it in p6. | ||
| pmurias | & | 17:08 | |
| jnthn | ah, here we are, from S06. | 17:09 | |
| Note also that if the sub's block contains placeholder variables | |||
| (such as C<$^foo> or C<$:bar>), those are considered to be formal | |||
| parameters already, so in that case C<@_> or C<%_> fill the role of | |||
| sopping up unmatched arguments. | |||
| So @_ should not get things that are bound to other parmaeters. | 17:10 | ||
| That reduces the question to whether $_ is considered a parameter on that block. | |||
|
17:12
lumi joined
|
|||
| diakopter | pmichaud: I switched sprixel to operate on state objects, each linked to a node in the original ast instead of cloning the nodes in the ast. Each operation/opcode can still hang cached stuff on the original ast, though. | 17:12 | |
| pmichaud: oh wait, you're not pmurias; where'd he go | 17:13 | ||
| pm<tab><tab> | |||
| mberends | heh: sprixel/setting/Int.pm: this.invoker.invoker.invoker.invoker.invoker.class_obj.ctor = ... | 17:14 | |
| diakopter | :) | ||
| mberends | diakopter: do you think you're still sane? | ||
|
17:14
zloyrusskiy joined
|
|||
| diakopter | hey, what kind of question is that | 17:16 | |
| :P | |||
| I suspect it takes a lot to get an insane person to recognize/admit they're insane......? | |||
| jnthn | lol | 17:17 | |
| mberends | diakopter: that was the double meaning of my question ;) | 17:18 | |
| colomon | diakopter: for what it's worth, neither Rat.pm nor Complex.pm uses "is also". though there are a couple of PIR functions in Complex... | 17:19 | |
| pugs_svn | r28808 | jnthn++ | [t/spec] Correct a test that I'm pretty sure expects the wrong thing (and if that's the right thing, it's a silly right thing anyway. ;-)) | 17:20 | |
| colomon | rakudo: my $n = 10; my $m = 20; (^($n - 1)).map({^$m}.pick}).say | ||
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "({^$m}.pic"in Main (file <unknown>, line <unknown>)» | ||
| colomon | rakudo: my $n = 10; my $m = 20; (^($n - 1)).map({(^$m).pick}).say | 17:21 | |
| p6eval | rakudo 24ebf3: OUTPUT«52110700513» | ||
| diakopter | colomon: oh... I just meant they're not directly useful without a little munging | ||
|
17:21
justatheory joined
|
|||
| diakopter | I mean, they can't be used directly/drop-in | 17:21 | |
| jnthn | diakopter: We'll probably stop using "is also" in a little while. | ||
| But yes, for now a little munge required. | |||
| colomon | rakudo: my $n = 10; my $m = 20; (^($n - 1)).map({(^$m).pick}).perl.say | 17:22 | |
| p6eval | rakudo 24ebf3: OUTPUT«[3, 10, 2, 6, 13, 12, 5, 8, 18]» | ||
| colomon | rakudo: my $n = 10; my $m = 20; (^($n - 1)).map({(^$m).pick}).sort.perl.say | ||
| p6eval | rakudo 24ebf3: OUTPUT«[0, 1, 2, 4, 5, 6, 10, 14, 19]» | ||
| diakopter | more to the point though, every implementation's circularity saw slices itself in different [numbers of] dimensions, so much of the functionality that works in rakudo's setting would have to be built up incrementally in sprixel | 17:23 | |
| actually, I guess not *too* incrementally, since most of the tree's branches are deferred.. | 17:27 | ||
| mberends: Act.js is the new interp.js | |||
| Act[ivation] | 17:28 | ||
| builtin.js goes away as well | |||
| builtins.js I meant | |||
|
17:29
meppl joined
|
|||
| diakopter | separate files for each "opcode" are nice... | 17:30 | |
|
17:31
mikehh joined
|
|||
| mberends suddenly has a lot of code surveying to do. nice :) | 17:33 | ||
| mikehh | rakudo (24ebf39) builds on parrot r41901 - make test PASS / make spectest_smolder (up to r28807 -> #29130) FAIL - Ubuntu 9.10 (beta) amd64 | ||
| rakudo - t/spec/S06-signature/optional.rakudo - Failed test: 12 | |||
| rakudo - 35,259 ok, 1 failed, 519 todo, 6,880 skipped and 0 unexpectedly succeeded | |||
| that's 27859 passing tests - 79%+ | 17:35 | ||
|
17:38
lumi joined
17:39
zloyrusskiy joined
|
|||
| pugs_svn | r28809 | diakopter++ | [sprixel] workaround my File::Find ignorance | 17:40 | |
| muixirt | is there a working archive of the perl6 mailing lists? | 17:42 | |
| pmichaud | dev.perl.org/perl6/lists | 17:44 | |
| see also perl6.org/community/ | 17:45 | ||
| diakopter | mberends: also, this refactor will allow sprixel to stop faking the setting for STD, and just use the real sprixelCORE.setting | ||
| muixirt | perl.org seems to be down. ? | 17:47 | |
| colomon | rakudo: my $n = 10; my $m = 2; my @a = (^($n - 1)).map({(^$m).pick}).sort; ((@a, $m) >>-<< (0, @a)).perl.say | ||
| p6eval | rakudo 24ebf3: OUTPUT«[0, 0, 0, 1, 0, 0, 0, 0, 0, 1]» | ||
| pmichaud | yes, perl.org seems downish | ||
| muixirt | pmichaud: ok, thanks | ||
| pmichaud | I also sometimes use google groups -- e.g. groups.google.com/group/perl.perl6....age/topics | ||
| but I often find it frustrating to search/use. | |||
| colomon | rakudo: my $n = 10; my $m = 2; my @a = (^($n - 1)).map({(^$m).pick}).sort; @a.perl.say; ((@a, $m) >>-<< (0, @a)).perl.say | 17:48 | |
| p6eval | rakudo 24ebf3: OUTPUT«[0, 0, 0, 0, 1, 1, 1, 1, 1][0, 0, 0, 0, 1, 0, 0, 0, 0, 1]» | ||
| colomon | rakudo: my $n = 10; my $m = 20; my @a = (^($n - 1)).map({(1..($m-1)).pick}).sort; @a.perl.say; ((@a, $m) >>-<< (0, @a)).perl.say | 17:49 | |
| p6eval | rakudo 24ebf3: OUTPUT«[8, 10, 10, 10, 10, 16, 17, 19, 19][8, 2, 0, 0, 0, 6, 1, 2, 0, 1]» | ||
| mberends | diakopter: it's terrific! You's bin workin' hard! It looks like you might be making some other radical changes before sprixel settles down, so thanks for the early commit. | 17:50 | |
| diakopter | mberends: I figure it's better to get the runtime's internals/opcodes stable and fully capable earlier than later... not a glamorous route though. | 17:52 | |
| mberends | diakopter: quite right. It's no fun changing the foundation when the walls are busy going up. | 17:53 | |
| diakopter | :) or working on the walls while the foundation is converted from slab to pier-and-beam (or skyhooks). | 17:54 | |
| or, working on the walls and roof, and then discovering the foundation is atop a landfill or former gasoline tanks or toxic waste dump, and realizing the whole building needs lifted and [trans-]ported to another foundation on an entirely different property. | 17:57 | ||
| or atop a cemetery of Indigenous Persons | 17:58 | ||
| jnthn | Even changing one part of the foundations is an epic pain when a lot is built on top of it. | 18:00 | |
| diakopter wants a foundation made of skyhooks | 18:02 | ||
| lisppaste3 | colomon pasted "My implementation of the "Is Functional Abstraction Too Clever?" code" at paste.lisp.org/display/88801 | ||
|
18:04
shinobi-cl joined
|
|||
| shinobi-cl | rakudo: class AClass; my Str $!name; method A (Str $!name) {...}; method show_name { say $!name }; my AClass Test .= new; Test.A('somename'); Test.show_name; | 18:06 | |
| p6eval | rakudo 24ebf3: OUTPUT«Malformed declaration at line 2, near "AClass Tes"in Main (file <unknown>, line <unknown>)» | ||
| shinobi-cl | rakudo: class AClass; my Str $!name; method A (Str $!name) {...}; method show_name { say $!name }; my AClass $Test .= new; $Test.A('somename'); $Test.show_name; | 18:07 | |
| p6eval | rakudo 24ebf3: OUTPUT«No such attribute '$!name'in Main (file src/gen_setting.pm, line 206)» | ||
| jnthn | shinobi-cl: has Str $!name | ||
| shinobi-cl | oh, yes i forgot | ||
| rakudo: class AClass; has Str $!name; method A (Str $!name) {...}; method show_name { say $!name }; my AClass $Test .= new; $Test.A('somename'); $Test.show_name; | 18:08 | ||
| p6eval | rakudo 24ebf3: OUTPUT«Str()» | ||
| shinobi-cl | rakudo: class AClass; has Str $!name; method A (Str $!name) {...}; method show_name { say $!name }; my AClass $Test .= new; &Test.A('somename'); &Test.show_name; | ||
| p6eval | rakudo 24ebf3: OUTPUT«Method 'A' not found for invocant of class 'Failure'in Main (file src/gen_setting.pm, line 206)» | ||
| diakopter | oops; forgot a dir | 18:10 | |
|
18:10
payload joined
|
|||
| shinobi-cl | rakudo: class AClass; has Str $!name; method A (Str $a_name) { $!name = $a_name }; method show_name { say $!name }; my AClass $Test .= new; $Test.A('somename'); $Test.show_name; | 18:11 | |
| p6eval | rakudo 24ebf3: OUTPUT«somename» | ||
|
18:13
lumi joined
|
|||
| shinobi-cl | rakudo: say qx[ls -l]; | 18:14 | |
| p6eval | rakudo 24ebf3: OUTPUT«operation not permitted in safe modein Main (file /home/p6eval//p1/lib/parrot/1.6.0-devel/languages/perl6/lib/Safe.pm, line 24)» | ||
| shinobi-cl | rakudo: say readdir; | 18:15 | |
| p6eval | rakudo 24ebf3: OUTPUT«Could not find non-existent sub readdirin Main (file src/gen_setting.pm, line 206)» | ||
|
18:18
justatheory joined
18:21
pmurias joined
|
|||
| diakopter | pmurias: see backlog above... mis-sent to pmichaud | 18:23 | |
| pmurias | seen | 18:24 | |
| diakopter: what we would need to share runtime would be to unify the way methods are called | 18:25 | ||
| diakopter | Perl 6 methods or runtime object methods? | 18:26 | |
| pmurias | same thing | 18:27 | |
| what do you mean by runtime object methods? | |||
| diakopter | what do you mean by "same thing"? :) | ||
| I meant underlying js objects and ast operations/expressions. | 18:28 | ||
| jnthn | oh phew...fixing all of the parameterized roles tests that were failing just needed a well-placed one-line code addition. :-) | ||
| pmurias would love to hear of a way to remap caps lock to t | 18:29 | ||
| (on x windows) | |||
|
18:30
lumi joined
|
|||
| pmurias | diakopter: what do you mean by underlyin js objects | 18:30 | |
| ? | |||
| diakopter | probably it would be better if you explain first what you meant by unifying the way methods are called... (Perl 6 methods) | 18:31 | |
| pmurias | ok :) | ||
| in mildew a method call is compiled to object.DISPAtCH(interpreter,identifier,capture) | 18:32 | ||
|
18:33
Ptn joined
|
|||
| pmurias | and returns stuff by calling setr | 18:33 | |
| diakopter | ok, sounds good. what does the interpreter object store? | ||
| pmurias | the current continuation | 18:34 | |
| diakopter | oh | ||
| pmurias | i'll jus? use ? ins?ead of t as pas?ing i? is slow | ||
| diakopter | ok :) | ||
| pmurias | ?he in?erpre?er could be made a globall | 18:35 | |
| lambdabot | help <command>. Ask for help for <command>. Try 'list' for all commands | ||
|
18:35
__ash__ joined
|
|||
| diakop | hrm ?ha? didn'? work | 18:35 | |
| pmurias suspec?s he annoys people grea?ly wi?h using ? | 18:36 | ||
| diakopter | how about _ instead; it's a little easier on the eyes | ||
| pmurias | ok | 18:37 | |
| _ does'_ look like an enocoding epic fail | |||
| __ash__ | can you make pointers in perl6? | ||
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; $lang_list.substr ('<LANG>', 'mydir'); say $lang_list; | 18:38 | |
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "('<LANG>',"in Main (file <unknown>, line <unknown>)» | ||
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; $lang_list.subst ('<LANG>', 'mydir'); say $lang_list; | ||
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "('<LANG>',"in Main (file <unknown>, line <unknown>)» | ||
| diakopter | the in_erpre_er doesn'_ need to be a global; the current continuation is the 'this' object in sprixel's opcode function bodies | 18:39 | |
| pmurias looks at sprixel | 18:40 | ||
| diakopter | I was just about to write the (single-dispatch only for now, of course) .DISPATCH method, but I wasn't going to make that routine a JS member of the JS objects representing Perl 6 objects. | ||
| pmurias: disregard interp.js and builtins.js; they're the old new thing | 18:41 | ||
|
18:41
quietfanatic joined
|
|||
| pmurias | diakopter: so wha_ should i look a_? | 18:41 | |
| quietfanatic | pmurias: xmodmap -e 'keysym Caps_Lock = t' | ||
| oh wait | |||
| that has an unexpected side effect | 18:42 | ||
| diakopter | Act.js, Context.js (just committing now), setting/Int.pm, control_flow/*.js (forgot to commit earlier), misc/*.js | 18:43 | |
| pmurias | quietfanatic: didn'_ work | ||
| quietfanatic | huh, weird | ||
| well, when I do it IT make it LOOK LIKE This. | |||
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; say $lang_list.subst('<LANG>', 'mydir'); | 18:44 | |
| p6eval | rakudo 24ebf3: OUTPUT« ls -1 mydir | tr [:upper:] [:lower:] » | ||
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; $lang_list.= subst ('<LANG>', 'mydir'); say $lang_list; | ||
| p6eval | rakudo 24ebf3: OUTPUT«No applicable methods.in Main (file src/gen_setting.pm, line 206)» | ||
| diakopter | pmurias: one minute for me to commit | ||
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; $lang_list .= subst ('<LANG>', 'mydir'); say $lang_list; | 18:45 | |
| p6eval | rakudo 24ebf3: OUTPUT«No applicable methods.in Main (file src/gen_setting.pm, line 206)» | ||
| pugs_svn | r28810 | diakopter++ | [sprixel] stuff I forgot earlier. mberends: see this ci too | 18:46 | |
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; given $lang_list { subst ('<LANG>', 'mydir'); say} | 18:47 | |
| p6eval | rakudo 24ebf3: OUTPUT«say requires an argument at line 2, near "}"in Main (file src/gen_setting.pm, line 2545)» | 18:48 | |
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; given $lang_list { subst ('<LANG>', 'mydir'); say $_} | ||
| p6eval | rakudo 24ebf3: OUTPUT«Could not find non-existent sub substin Main (file src/gen_setting.pm, line 206)» | ||
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; given $lang_list { $_=$_.subst ('<LANG>', 'mydir'); say $_} | 18:49 | |
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "('<LANG>',"in Main (file <unknown>, line <unknown>)» | ||
| shinobi-cl | rakudo: my $lang_list = ' ls -1 <LANG> | tr [:upper:] [:lower:] '; given $lang_list { $_ = $_.subst ('<LANG>', 'mydir'); say $_} | ||
|
18:49
justatheory joined
|
|||
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "('<LANG>',"in Main (file <unknown>, line <unknown>)» | 18:49 | |
| shinobi-cl | i dont know what im doing wrong, how do i do a subst in one sentence? | 18:51 | |
|
18:52
NorwayGeek joined
|
|||
| shinobi-cl | alas s///; | 18:52 | |
| and using <op>= | |||
| this, $A .= subst('X', 'Y'); should be the same as $A = $A.subst('X','Y')? | 18:53 | ||
| diakopter | pmurias: (committed) | 18:54 | |
| Ptn | Does anyone have a spare 5 minutes to help a nub with some issues building the latest rakudo/parrot release? | ||
| pmurias | & | 18:55 | |
| jnthn | Ptn: Sure | ||
| Ptn: I'm kinda cooking dinner too, so I'll be back and forth a bit. :-) | |||
| shinobi-cl | rakudo.org/how-to-get-rakudo <- this works flawlessly to me | ||
| jnthn | But ask away. | 18:56 | |
| Ptn | Been breaking for me shinobi-cl, probably something daft oO | ||
| Okies, jnthn ta. | |||
| shinobi-cl | so, you have git , icu library and perl installed? | 18:57 | |
| Ptn | Using the tarball, and yes to the others. | ||
| pugs_svn | r28811 | diakopter++ | [sprixel] delete extraneous file | ||
| Ptn | It's falling over building parrot I believe. | 18:58 | |
| Using Mingw | |||
|
18:58
PZt joined
|
|||
| jnthn | Ptn: It fails during "perl Configure.pl --gen-parrot"? | 18:58 | |
| Ptn | aye, looks like it has issues withsome of the files it grabs for the parrot isntall | ||
| Complains about missing operands files like parrot.h and similar errors in a few files. | 18:59 | ||
| jnthn | Oh, that's...odd | 19:01 | |
| Can you no-paste the output? | |||
| Ptn | It's entirely likely Eeem, how much of it? | ||
| jnthn | I wonder if you somehow got an incomplete Parrot checkout? | ||
| Ptn: Well, the last lines. | 19:02 | ||
| Ptn | Rgr, one sec | ||
| jnthn | gist.github.com/ is a good way to paste it :-) | ||
|
19:04
colomon joined
|
|||
| diakopter never got parrot to build in mingw | 19:04 | ||
| Ptn | Eep | 19:05 | |
|
19:07
lumi joined
|
|||
| jnthn wipes the tears from his eyes so he can see IRC again | 19:07 | ||
| diakopter | I got it to build in cygwin/gcc and in cmd.exe/msvc, but not mingw | ||
| tears | |||
| ? | |||
| jnthn | she left^W^Wchopping apparently super-super-strength onions | 19:08 | |
| I think they rate as one of my favorite veg to eat and least favorite to chop. :-) | |||
| Ptn | Nasty | ||
| jnthn | It's OK, they're in the pan and cooking now. | 19:09 | |
| Frying even. | |||
| hotdogs++ | |||
| diakopter | jnthn: do you know whether anyone's built it on mingw lately? a few months ago I hadn't heard of anyone doing that | ||
| (ever) | |||
| jnthn | Well...I'd say "oh, Parrot on mingw is probably broken", but... | ||
| ...I thought that wsa what fperrad who makes the Windows binaries each month of Parrot and Rakudo builds on. | 19:10 | ||
| Ptn | Binaries you say? | ||
| jnthn | ah, this could be an easy solution for you ;-) | ||
| Ptn | To shreds you say? | ||
| jnthn | second, I'll fidn 'em | ||
| parrotwin32.sourceforge.net/ | 19:11 | ||
| There you go. | |||
| Ptn | I did have a hunt, but I came up empty handed. | ||
| Well, there you go =D | |||
| jnthn | Ptn: I think iirc you need to download two things - first the Parrot 1.6.0 and then the Rakudo add-on. | ||
| Ptn | I'll try this "setup-parrot-1.6.0-rakudo-21.exe" file, see what if anything explodes. | 19:12 | |
| jnthn | Ptn: Oh, I think that may actually be both bundled into one. | 19:14 | |
| If so, fperrad++ | |||
| BTW, if anyone here has rakudo.org wiki edit privs, we maybe should link to these binaries on that page. | |||
| Ptn | There is a perl6 present ^crosses fingers* | ||
| jnthn | (I can do it later to...) | ||
| Ptn | Ooer "unable to find dynops and dnpmcs library" | 19:15 | |
| __ash__ | hmmm are captures like pointers? | 19:16 | |
| jnthn | Ptn: Hmm. Did the directory where the binary went get added to your PATH? | 19:19 | |
| Ptn | To the paths! | ||
| Seems to have, unless I'm looking for somethig else oO | 19:20 | ||
| Hmm, I'll do some poking around (ooer missus) after dinner. | 19:22 | ||
| Thanks for your help gents. | |||
| jnthn | __ash__: You could perhaps see them as a kind of "fat reference". | 19:24 | |
| __ash__ | how would one make a linked list? with captures then? | ||
|
19:26
lumi joined
|
|||
| jnthn | __ash__: You don't really need to, since you objects are reference types by default anyway. | 19:28 | |
| jnthn eating - bbiab | |||
|
19:28
dr_df0 joined
|
|||
| dr_df0 | hi all | 19:28 | |
| mberends | hi dr_df0 | 19:29 | |
| dr_df0 | is it possible, that slurp does not work in rakudo in a list context? | ||
| mberends | true, slurping a file returns a string, I think | ||
| dr_df0 | when I do: my @l=slurp "file_with_four_lines"; say @l[0]; | ||
| it returns whole file | 19:30 | ||
| I thought, that the behavior is similar to Perl::Slurp module | |||
| mberends | suggestion: split the string using "\\n" as delimiter | ||
| dr_df0 | that was implementing perl6 built-in :) | 19:31 | |
| mberends | there is the lines() function, definitely returns an array | ||
| Su-Shee | dr_df0: @foo = fh.lines | 19:32 | |
| aeh, $fh.lines, sorry | |||
| mberends | and also: @foo = lines( "file_name" ); | ||
| Su-Shee | mberends: I don't have to open it? | 19:33 | |
| mberends | lines opens ( and closes ;) | ||
| dr_df0 | ok, thanks | ||
| Su-Shee | another line less.. :) | ||
| one day - in perl 7 - I just can say "hey, computer - do!" ;) | 19:34 | ||
| dr_df0 | I'll check two options ... the problem with splitting is that the file I have i 40k+ lines :) | ||
| mberends | only if the argument is a name, not a $handle | ||
| Su-Shee | probably something like for $fh.lines works.. | 19:35 | |
| mberends | rakudo: my @a = lines("/etc/passwd"); say @a[0]; | 19:36 | |
| p6eval | rakudo 24ebf3: OUTPUT«root:x:0:0:root:/root:/bin/bash» | ||
| dr_df0 | doing slurp on a BIG file, and splitting it causes "segmentation fault" | 19:39 | |
| yesterday I reported a bug with sigsegv on reding that file line by line and splitting it line by line into records ... :) | 19:40 | ||
|
19:40
mikehh joined
|
|||
| mberends | rakudo: for lines("/etc/passwd") -> $a { say $a if $a ~~ /^r/;} # for dr_df0 and Su-Shee | 19:41 | |
| p6eval | rakudo 24ebf3: OUTPUT«root:x:0:0:root:/root:/bin/bash» | ||
| dr_df0 | thnx | 19:42 | |
| Su-Shee | for lines "/etc/passwd" { } works as well. | 19:45 | |
| mberends | Su-Shee: you didn't tell us you were into golf as well ;) | 19:48 | |
|
19:49
kst joined
|
|||
| Su-Shee | mberends: I totally love the natural language flow of perl. | 19:49 | |
| wow :) | 19:50 | ||
| say $_ for lines "/etc/passwd"; works :) | |||
| mberends | Su-Shee: .say for lines "/etc/passwd" | 19:51 | |
| jnthn back | 19:54 | ||
| dr_df0 | guys | ||
| Su-Shee | mberends: also nice. :) | ||
| dr_df0 | for lines("big_filename") -> $i { .... } # tries to read the whole file into memory before any operations in the block | 19:55 | |
| mberends | Su-Shee: lines("/etc/passwd")>>.say # seen before on #perl6 | ||
| dr_df0 | it should be "big_file" | ||
| so, on my 2GB machine I'm starting to swap | 19:56 | ||
| is there any lazy version of lines? | |||
| mberends | $handle.get is one line at a time | 19:57 | |
| dr_df0 | Yes, but that's not lazy :) | ||
| in a sense that Haskell executes ... | |||
|
19:58
payload joined
|
|||
| shinobi-cl | rakudo: class AClass; submethod BUILD { say 'BUILD here!' } method new { say 'new here!' } my AClass $x .= new; | 19:59 | |
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "method new"in Main (file <unknown>, line <unknown>)» | ||
| shinobi-cl | rakudo: class AClass; submethod BUILD { say 'BUILD here!' }; method new { say 'new here!' }; my AClass $x .= new; | 20:00 | |
| p6eval | rakudo 24ebf3: OUTPUT«new here!Assignment type check failed; expected AClass, but got Boolin Main (file <unknown>, line <unknown>)» | ||
| Su-Shee | dr_df0: shouldn't this work line by line and not reading the entire file first? | ||
| shinobi-cl | rakudo: class AClass; submethod BUILD { say 'BUILD here!' }; my AClass $x .= new; | 20:01 | |
| p6eval | rakudo 24ebf3: OUTPUT«BUILD here!» | ||
| shinobi-cl | rakudo: class AClass { submethod BUILD { say 'BUILD here!' }; method new { say 'new here!' }; }; my AClass $x .= new; | ||
| p6eval | rakudo 24ebf3: OUTPUT«new here!Assignment type check failed; expected AClass, but got Boolin Main (file <unknown>, line <unknown>)» | ||
| shinobi-cl | this should call 'new', and 'BUILD' later? | 20:02 | |
| dr_df0 | Su-Shee: I'm trying to find a workaround for the problem I reported yesterday in perl#69840 bug | ||
| Su-Shee: rakudo is segfaulting when reading the file line by line, splitting it and pushing second field into array | 20:03 | ||
| jnthn | dr_df0: .lines is specified as lazy. | ||
| dr_df0: Rakudo doesn't implement lazy lists yet, so we currently have to handle it as eager. | |||
| dr_df0 | jnthn: Hi, it's krzys from yesterday :) | 20:04 | |
| jnthn | dr_df0: This probably isn't useful to you now, since you have a 2GB file now, but in the future uses of .lines will "auto-upgrade" to lazy semantics once Rakudo knows about that. | ||
| dr_df0: oh hai :-) | |||
| dr_df0 | jnthn: no, the file is actually 1.7MB | ||
| jnthn: but reading it with lines fills up my 2GB of memory :( | 20:05 | ||
| mberends | dr_df0: I had a similar experience with a Perl 6 Pod translator a few months ago. At that time rakudo consumed 15000 bytes of RAM for every byte in the file being read :/ | 20:06 | |
| dr_df0 | Su-Shee: working with lines looked promissing, since it was processing the file much farther, but i run out of memory | ||
| Su-Shee | dr_df0: sorry, I didn't know about your bug, I was plainly assuming that .lines will work smart and only line by line. | 20:07 | |
|
20:07
lumi joined
|
|||
| jnthn | Su-Shee: Yeah. Will do. Not yet. ;-) | 20:08 | |
| mberends: That sounds...awful. | |||
| mberends: I'd really like to get to the bottom of that one, if you are able to consdense it to a small example, btw. | |||
| mberends | dr_df0: the memory consumption seems to come from using heap memory where other languages use (and re-use) the same stack space repeatedly | 20:09 | |
| __ash__ | rakudo: role Node is rw { has $.right; has $.left; }; my $a = 5; $a does Node; $a.right = $a; $a.left = $a; say $a.right; say $a.right.right; say $a.right.right.right; | 20:10 | |
| p6eval | rakudo 24ebf3: OUTPUT«5Method 'right' not found for invocant of class 'Undef'in Main (file src/gen_setting.pm, line 206)» | ||
| jnthn | mberends: Yes, but we shouldn't leak said heap memory ;-) | ||
| mberends | jnthn: I am suspicious of GC having problems that are seldom triggered because short programs run out of work before they run out of heap. | ||
| jnthn | mberends: I am suspicious of GC having problems. | ||
| ;-) | |||
| mberends | jnthn: I'll try to write a condensed example, later :) | 20:11 | |
| jnthn | mberends: I think one big issue that *should* have now gone away is that we used to leak contexts (and thus register frames) like mad. | ||
|
20:11
crythias joined
|
|||
| jnthn | OK - news on resig. | 20:12 | |
| Latest spectest results show only 7 tests that would seem to need attention. | |||
| This is a rather large improvement on 70. | |||
| mberends | jnthn++ | ||
| shinobi-cl | when defining a BUILD submethod and a new method for a class, which runs first when an object is instantiated? | ||
| jnthn | Here's details. | 20:13 | |
| t\\spec\\S02-builtin_data_types\\capture - one failure, don't understand the test anyway, may just regress | |||
| t\\spec\\S04-closure-traits\\start - couple of failures, probably same issue as test below | |||
| t\\spec\\S04-declarations\\state - couple of failures | |||
| t\\spec\\S06-advanced_subroutine_features\\wrap - epic, epic fail | |||
| t\\spec\\S12-methods\\instance - one failure, didn't investigate yet | |||
| t\\spec\\S32-num\\rat - fails, but I think I just need to rebase to get a fix in master | |||
| t\\spec\\integration\\packages - epic, epic fail | |||
| shinobi-cl: new is what gets called immediately, e.g. it's an override of the constructor. | |||
| shinobi-cl: BUILD is called by BUILDALL which is called by bless which is called by new (either the default one, or yours). | 20:14 | ||
| shinobi-cl | rakudo: class AClass; submethod BUILD { say 'BUILD here!' }; method new { say 'new here!'; }; my AClass $x .= new; | ||
| p6eval | rakudo 24ebf3: OUTPUT«new here!Assignment type check failed; expected AClass, but got Boolin Main (file <unknown>, line <unknown>)» | ||
| __ash__ | jnthn: this is the reference thing i was referring to, its not working the way I thought it would if all assignments are reference assignments | 20:15 | |
| jnthn | shinobi-cl: Your new method actually has to create an object. ;-) | ||
| shinobi-cl | rakudo: class AClass; submethod BUILD { say 'BUILD here!' }; method new { say 'new here!'; BUILD(self); }; my AClass $x .= new; | ||
| p6eval | rakudo 24ebf3: OUTPUT«new here!BUILD here!Assignment type check failed; expected AClass, but got Boolin Main (file <unknown>, line <unknown>)» | ||
| __ash__ | rakudo: role Node is rw { has $.right; has $.left; }; my $a = 5; $a does Node; $a.right = $a; $a.left = $a; say $a.right; say $a.right.right; say $a.right.right.right; | ||
| p6eval | rakudo 24ebf3: OUTPUT«5Method 'right' not found for invocant of class 'Undef'in Main (file src/gen_setting.pm, line 206)» | ||
| jnthn | __ash__: Int has value assignment semantics, that's why. :-) | 20:16 | |
| __ash__: I said objects by default, not all objects. :-) | |||
| __ash__ | oh, okay, hmmm | 20:17 | |
| jnthn | Int is an object that chooses to have value semantics instead. | ||
| Well, a class, whose objects... | |||
| shinobi-cl | rakudo: class AClass; has $!name; submethod BUILD { say $!name~'BUILD here!' }; my AClass $x .= new($name => 'hai'); | 20:19 | |
| p6eval | rakudo 24ebf3: OUTPUT«Symbol '$name' not predeclared in <anonymous> (/tmp/8l7IFqN9Pc:2)in Main (file <unknown>, line <unknown>)» | ||
| shinobi-cl | rakudo: class AClass; has $!name; submethod BUILD { say $!name~'BUILD here!' }; my AClass $x .= new('name' => 'hai'); | 20:20 | |
| p6eval | rakudo 24ebf3: OUTPUT«Use of uninitialized valueBUILD here!» | ||
| shinobi-cl | rakudo: class AClass; has $.name; submethod BUILD { say $.name~'BUILD here!' }; my AClass $x .= new('name' => 'hai'); | ||
| p6eval | rakudo 24ebf3: OUTPUT«Use of uninitialized valueBUILD here!» | ||
| shinobi-cl | rakudo: class AClass; has $.name; submethod BUILD { say $.name~'BUILD here!' }; my AClass $x .= new($name => 'hai'); | ||
| p6eval | rakudo 24ebf3: OUTPUT«Symbol '$name' not predeclared in <anonymous> (/tmp/J4qoCrQ7ne:2)in Main (file <unknown>, line <unknown>)» | 20:21 | |
| pugs_svn | r28812 | lwall++ | [STD] tell constraints they're not declarative, masak++ | 20:30 | |
| jnthn wonders which way around that was called | 20:31 | ||
| Hmm. So if I'm in a branch and I want to get the latest things in master, I just "git rebase master", yes? | |||
| oh, I rather suspect it didn't do what I expected 'cus I forgot to git pull while in master. | 20:32 | ||
| oh *sigh* wtf has it done... | 20:34 | ||
| shinobi-cl | rakudo: class AClass; has $.name; submethod BUILD { say $.name~'BUILD here!' }; init (Str $a_name) {$.name = $a_name}; my AClass $x .= new('hai'); $x.$.name; | 20:37 | |
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "$a_name) {"in Main (file <unknown>, line <unknown>)» | ||
| shinobi-cl | rakudo: class AClass; has $.name; submethod BUILD { say $.name~'BUILD here!' }; init (Str $a_name) {$.name = $a_name}; my AClass $x .= new('hai'); say $x.$.name; | ||
| p6eval | rakudo 24ebf3: OUTPUT«Confused at line 2, near "$a_name) {"in Main (file <unknown>, line <unknown>)» | ||
| mberends | jnthn: git pull is a kinda macro for git fetch && get merge, fwiw | 20:38 | |
|
20:39
shinobi-cl left
|
|||
| jnthn | mberends: And what should git rebase master have done? | 20:39 | |
| I thought it would sync my current branch with master, and apply all of my patches on top of that. | 20:40 | ||
| Instead, somehow after pushing this (git push origin resig), instead I now see every single patch since I started the branch appear a second time. | 20:41 | ||
| And I'm still missing the latest changes from master. | |||
|
20:41
FullMetalHarlot joined,
shinobi-cl joined
20:42
rblasch_ joined
|
|||
| mberends | jnthn: iana(git expert), but it should have done something similar to removing (stashing) your changes, fast forward others' changes, then re-apply your edits. | 20:42 | |
| jnthn | mberends: Heh, that was my expectation too. | 20:43 | |
| mberends | jnthn: that git push was probably too soon. | ||
| jnthn | "too soon"? | ||
| I'd finished the rebase, what else was I meant to do? | |||
| mberends | jnthn: you may have rebased other peoples' resig changes, not master changes. | 20:44 | |
| jnthn | mberends: afaik, nobody else has commited anything to resig though. | 20:45 | |
| mberends | jnthn: i know that, you know that, but git may not have thought you meant that ;) | 20:46 | |
| jnthn | Thing is, now it also wants to duplicately apply all of my patches, so an attempt to rebase again is going to be a huge problem. | ||
|
20:47
lumi joined
|
|||
| jnthn | This is about the point where I create resig2, and copy-paste the source tree and commit the lot as one change. *sigh* | 20:47 | |
| mberends | jnthn: resig is all your work, of course. I humbly suggest you may have asked git to do the wrong thing. | ||
| jnthn | mberends: I'm sure I have. | ||
| mberends: I'd just love to know what. | |||
| mberends | jnthn: the git-heads always say it's no problem, everything is logged | ||
|
20:47
rblasch joined
|
|||
| mberends | jnthn: you just have to know how to fish the needle out of the haystack | 20:47 | |
| jnthn | meh. I'll do whatever works, and if somebody wants to complain about me having made history imprecise, they can fix it themselves. | 20:48 | |
| mberends | :) | ||
| pmichaud | "precise history" is generally a myth anyway. :) | ||
| history often depends on the perspective of the viewer. | |||
| jnthn | ;-) | ||
| pmichaud | or, put another way, I'll absolve you of any history imperfects :) | ||
| *imperfections :) | |||
| jnthn | And to think that I only did this now because I wanted to get form 7 fails to 6. | 20:49 | |
| :-| | |||
| pmichaud | (and yes, if someone doesn't like it, they can fix the history themselves) | ||
| mberends | history will say you took a long way round, and still reached the goal | ||
| pmichaud | I've decided that PAST needs to become a bit smarter about constants generation... including constant structures. | 20:50 | |
| Otherwise operator precedence parsing in nqp-rx is going to become (1) cumbersome, or (2) very slow, or (3) both. | 20:51 | ||
| mberends | no! please no! | 20:52 | |
| jnthn | I guess this will have benefits beyond nqp-rx too | 20:53 | |
| pmichaud | sure | ||
| essentially I'm thinking that I'll cache a constant once it's been computed the first time (i.e., lazy constants) | |||
| subsequent requests for the constant will reuse the cached value | |||
| thus: for 1..20 { say <the quick brown fox>; } will build "the quick brown fox" list only once | 20:54 | ||
| jnthn | ooh, nice. | 20:55 | |
| pmichaud | I was thinking about building all of the constants at load time, but that increases startup cost | ||
| jnthn | Yes | ||
| pmichaud | we can also try building them at compile time (e.g., via :immediate), but that might lead to a few other issues | 20:56 | |
| jnthn | Our startup cost is already kinda high. | ||
| Yes | |||
| It's something to work towards, but probably not something we can do yet. | |||
| pmichaud | well, I particularly want to be able to create hash constants (for operator precedence tables) | ||
| i.e., I want { %additive, :pirop<add> } to produce a constant hash (assuming %additive is also a constant hash) | 20:57 | ||
| jnthn | ah, ok | ||
| pmichaud | I don't want to be computing a new hash like that every time an infix:<+> is encountered in the source :) | ||
| jnthn | No, you sure don't. :-) | 20:58 | |
| We need to be faster, not just slow in a different way. ;-) | |||
| pmichaud | first, another bugfix for PAST | ||
| currently we generate subid's using a timestamp to avoid conflicts | |||
| apparently 1-second resolution isn't sufficient :-| | 20:59 | ||
| I sometimes run into places during the nqp-rx build where I end up with identically-identified subs from separate compilation requests | |||
| jnthn | oh | ||
| eww. | |||
| Yes, that's bad. | |||
| pmichaud | otoh, it's a good sign that our compilation speed is fast enough that 1-second resolution is insufficient :) | 21:00 | |
| jnthn | Well, there is that way of looking at it. :-) | ||
| jnthn finally may have a branch with the things that he wants in it. | 21:01 | ||
| mberends | .oO( compile code... wait for next clock tick for unique id... compile code... ) |
||
| pmichaud | mberends: I thought of that :-) | 21:02 | |
| really I'd prefer a nicer uuid generator than timestamps :-) | |||
| this does in a pinch, though :) | |||
| jnthn | ./nqp foo.pm && sleep 1 | ||
| ;-) | |||
| Well, that's rat.t crossed off my list. | 21:04 | ||
| Sheesh, that was more work than fixing all of the S14 failures. :-/ | |||
| pmichaud | .oO( pmurias: when your 't' key goes ou+ again, +ry using +he '+' key ins+ead. :-) |
21:05 | |
| jnthn | I+ look lee+. | ||
| pmichaud | exac+ly | ||
| I once had the 'p' key go out on my keyboard, so I re.laced all of the occurrences with .eriods. | 21:06 | ||
| that worked out .retty well also | |||
| and the dot is easy to ty.e | |||
| jnthn | That's an interesting method. | ||
| pmichaud | (and in regexes dot matches any character, although this occurred long before .erl existed) :-) | 21:07 | |
|
21:07
justatheory joined
|
|||
| jnthn | pmichaud: I'm srsly pondering regressing on one test. | 21:07 | |
| pmichaud | which test? | ||
| jnthn | S02-builtin_data_types/capture.rakudo, test 16 | 21:08 | |
| pmichaud looks. | |||
| jnthn | I don't really understand what it's after. | ||
| pmichaud | do you know the line number in capture.t, off hand? | ||
| jnthn | Nor why we got it right before, or why we get it wrong now. | ||
| pmichaud | or the description of the test? | ||
| jnthn | not ok 16 - unflattened captures can be passed to subs | 21:09 | |
| pmichaud | I have no problem with regressing that test. | ||
| jnthn | Does it look correct to you? | ||
| pmichaud | Nor am I certain that the test is correct. | ||
| jnthn | That is, a valid test? | ||
| Yeah, I was like, "huh". | |||
| pmichaud | and it may all be moot after the parcel changes anyway. | 21:10 | |
| jnthn | I've stared at it 3 times already and not really got the point of what it wants. | ||
| pmichaud | I think it wants captures to act exactly like references somehow. | ||
| jnthn | I guess we can review it in amongst the parcel/capture changes later on. | 21:11 | |
| pmichaud | anyway, I know why we passed it previously (because our \\(...) captures do act like references at the moment) | ||
| jnthn | I'm not sure why we don't pass it now... | 21:12 | |
| pmichaud | but that test isn't important enough to be a blocker. | ||
| jnthn | Which does bother me a little. | ||
| But since all of the passing arrays/hashes/sclars/etc tests pass... | |||
| pmichaud | I'd say we review it among parcel/capture changes. | ||
| anyway, it's perfectly okay with me for us to regress that test. | |||
| jnthn | OK, sounds good. | ||
| At the moment, I think the other 5 test files I'm left with should all be fixed. | 21:13 | ||
| I think two of them are the same underlying issue anyway. | |||
| One of them points to a deep issue (the need to split up package blocks into declarative and non-declarative bits.) | 21:14 | ||
| And two I'm not sure about how hard they are to deal with yet. | |||
|
21:15
Su-Shee left,
am0c joined
21:28
shinobi-cl left
21:29
tkr joined
21:33
shinobi-cl joined,
shinobi-cl left
|
|||
| lichtkind_ | good night | 22:11 | |
| mberends | good night lichtkind_ | ||
| lichtkind_ | thanks | ||
|
22:16
lumi joined
|
|||
| jnthn | We're down to 3 test files as far as I'm aware that need attention. | 22:27 | |
| Before resig2 is ready. | |||
| I've tried to deal with the wrap.t fails tonight, but it's...something odd. | 22:28 | ||
| (not sure what yet) | |||
| Anyway, enough for today. Tomorrow I'll try and work on book a bit. | |||
| mberends | jnthn: well done, good night | 22:32 | |
|
22:48
kst joined
22:51
TiMBuS joined
23:14
tak11 joined
23:32
lumi joined
23:42
quietfanatic joined
23:57
colomon joined
|
|||