»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:01 envi_ joined 00:04 molaf_ joined 00:06 molaf left
diakopter anyone around who knows nqp regexes? 00:15
specifically, the substitute kind 00:16
00:17 aloha left 00:20 replore joined 00:21 aloha joined 00:30 soh_cah_toa left 00:32 icovnik left 00:39 benabik joined 00:40 whiteknight joined 00:41 whiteknight is now known as Guest84118 00:42 mkramer joined, shinobicl_ joined 00:43 mkramer left, packetknife joined 00:44 scottp joined 00:45 shinobicl_ left, shinobicl_ joined 00:52 benabik left 00:53 wolfman2000 left 01:02 pmurias joined
pmurias diakopter: hi 01:02
diakopter hi 01:03
pmurias diakopter: what's the state of the lua 6model? 01:04
diakopter getting there... it's all ported; most of the setting loads; I'm tracking down the last few little bugs 01:05
pmurias and the compiler?
diakopter same one as 6model/dotnet
pmurias diakopter: you mean most of the Perl 6 setting?
diakopter no, the NQP setting in the 6model repo (much much smaller) 01:06
pmurias diakopter: and once the lua 6model is completed rakudo will run on lua? 01:09
diakopter after a lot more work... there are lots of pir guts, such as the regex compiler
(not to mention the pir that the regex compiler emits) 01:10
there's a long way to go. 01:12
omg; nqp regexes are so slow 01:24
01:29 hypolin joined
dalek odel: 9cc0442 | diakopter++ | lua/compiler/LST2Lua.pm:
Add a "registerizer" (really, localizer) of sorts, so the first 190 locals of a routine are stored in lua locals, not the locals[] table. Takes FOREVER to run because it does a billion NQP regexes; will be run only to generate the .lua that will be committed to git. jnthn++ promises to refactor the compiler someday to make this expensive optimization unnecessary.
01:33
01:34 Trashlord left
pmurias diakopter: you can try writing a niecza lua backend ;) 01:34
diakopter ;) 01:37
sorear's CodeGen.cs is scary 01:42
01:44 colomon left, colomon joined
colomon nom: multi trait_mod:<is>(Method $m, :$symmetric!) { say "Woah!" }; sub foo(Int $a, Num $b) is symmetric { $a.Num + $b }; say foo(1e0, 10); 01:47
p6eval nom 16b498: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $info, Any $inlinable)␤:(Parameter $param, Any $readonly)␤:(Parameter $param, Any…
dalek odel: 743beb8 | diakopter++ | lua/compiler/LST2Lua.pm:
minor fix to the localizer
01:48
colomon nom: multi trait_mod:<is>(Method $m, :$symmetric!) { say "Woah!" }; sub foo is symmetric (Int $a, Num $b) { $a.Num + $b }; say foo(1e0, 10); 01:49
p6eval nom 16b498: OUTPUT«===SORRY!===␤Malformed block at line 1, near "(Int $a, N"␤»
pmurias diakopter: coping over and tweaking CodeGen.cs to make it emit lua code seems a very bad idea
diakopter of course
colomon nom: multi trait_mod:<is>(Method $m, :$symmetric!) { say "Woah!"; $m; }; sub foo(Int $a, Num $b) is symmetric { $a.Num + $b }; say foo(1e0, 10);
pmurias especially as it emits bytecode
p6eval nom 16b498: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $info, Any $inlinable)␤:(Parameter $param, Any $readonly)␤:(Parameter $param, Any…
colomon nom: multi trait_mod:<is>(Routine $m, :$symmetric!) { say "Woah!"; $m; }; sub foo(Int $a, Num $b) is symmetric { $a.Num + $b }; say foo(1e0, 10); 01:50
p6eval nom 16b498: OUTPUT«Woah!␤===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (num, int) (line 1)␤ Expected: :(Int $a, Num $b)␤»
colomon aha!
pmurias diakopter: the route i went when working on the lisp backend is to load the nam opcodes from .json
diakopter how were you going to handle labels/goto 01:51
pmurias lisp has labels/gotos?
diakopter that's what I'm asking 01:52
I figured nam opcodes would include gotos
decommute 01:53
pmurias diakopter: lisp has them
diakopter: it's a rare opcode in them .nam
colomon nom: multi trait_mod:<is>(Routine $m, :$symmetric!) { say $m.Signature; $m; }; sub foo(Int $a, Num $b) is symmetric { $a.Num + $b }; say foo(1e0, 10); 01:54
p6eval nom 16b498: OUTPUT«===SORRY!===␤Method 'Signature' not found for invocant of class 'Sub'␤»
colomon nom: multi trait_mod:<is>(Routine $m, :$symmetric!) { say $m.params.perl; $m; }; sub foo(Int $a, Num $b) is symmetric { $a.Num + $b }; say foo(1e0, 10); 01:55
p6eval nom 16b498: OUTPUT«===SORRY!===␤Method 'params' not found for invocant of class 'Sub'␤»
01:56 Guest84118 left
colomon nom: multi trait_mod:<is>(Routine $m, :$symmetric!) { say $m.signature.perl; $m; }; sub foo(Int $a, Num $b) is symmetric { $a.Num + $b }; say foo(1e0, 10); 02:00
p6eval nom 16b498: OUTPUT«:(Int $a, Num $b)␤===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (num, int) (line 1)␤ Expected: :(Int $a, Num $b)␤»
02:04 wolfman2000 joined 02:10 envi_ left 02:13 fsergot joined
colomon jnthn: any hints on how to do meta programming on subs? 02:15
02:17 fsergot left 02:30 pmurias left 02:32 Chillance left 02:34 packetknife left 02:36 worr left 02:50 alc joined 02:59 woosley joined 03:17 thou left 03:19 FAruk joined
FAruk hello 03:19
say "hello 03:20
03:20 FAruk left 03:23 thou joined
japhb nom: my %h; %h<a><b> = 1; 03:27
p6eval nom 16b498: OUTPUT«Method 'at_key' not found for invocant of class 'Any'␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1039␤ in block <anon> at /tmp/fqkPO8DfXf:1␤ in <anon> at /tmp/fqkPO8DfXf:1␤»
japhb known?
03:31 Faruk joined
Faruk hi I am new 03:31
I need to know how to intstall perl6 in window7 03:32
japhb Faruk, I believe that both Rakudo and Niecza (the two top Perl 6 compilers right now) will both run on Windows. Try rakudo.org/how-to-get-rakudo and github.com/sorear/niecza 03:34
Faruk Thanks japhb. Let me try 03:35
03:40 vlixes joined
sorear good * #perl6 03:45
sorear wonders if niecza needs a "proper website" and if so what form it should take. 03:46
03:48 Bucciarati left
sorear ping moritz 03:48
03:49 kaleem joined 03:57 satyavvd joined 04:03 Faruk left 04:07 am0c left 04:10 skangas joined 04:31 skangas left 04:32 daniel-s joined, vlixes left 04:34 skangas joined 04:42 shinobicl_ left 04:48 araujo left
moritz sorear: pong 04:49
04:55 sunnavy left 04:56 sunnavy joined
sorear moritz: do you think niecza needs more of a web site? 05:00
moritz sorear: yes 05:01
05:02 ethndbst left
shachaf sorear: Does it have any of a website right now? 05:10
I suppose the github page is something. 05:11
05:16 orafu left 05:17 molaf_ left, orafu joined
dalek ecza: 4391579 | moritz++ | README.pod:
fix grammar in README.pod
05:24
moritz well, people typically want a webpage with at least the information from the README, plus release announcements (and possibly other blog posts) 05:25
and an RSS or atom feed to follow them
05:47 ethndbst joined
sorear is unsure of the best cource of action 06:00
moritz: what would constitute a webpage? 06:10
06:15 araujo joined, araujo left, araujo joined
sorear moritz: do you think I need to set up something comparable to rakudo.org? 06:24
colomon: wow. I had no idea :16 would be so easy 06:25
colomon, moritz: niecza needs a new framework for handling str/num conversions. I'm putting it off because I really don't want to write a decimal/binary floating point number convertere 06:26
dalek ecza: e2d48d3 | sorear++ | docs/ (2 files):
mv docs/{tracing,environment}.pod and update
06:59
sorear sleep
07:05 wtw joined 07:18 kaleem left 07:26 GlitchMr joined 07:27 icovnik joined 07:31 kaleem joined, thou left 07:40 GlitchMr left, GlitchMr joined
tadzik wake 07:49
07:49 icovnik left 08:14 sayu joined 08:19 mj41 joined 08:22 mj41 left 08:23 mj41 joined 08:27 Trashlord joined 08:50 agentzh joined 09:00 daxim joined 09:04 mkramer joined, mkramer left 09:09 icovnik joined
moritz zombie state 09:09
09:15 kaleem left 09:16 kaleem joined
gfldex hands moritz his morning brain 09:20
moritz takes a deep bite 09:21
09:23 nek joined 09:26 alc left 09:30 sayu left 09:36 sunnavy left 09:37 sunnavy joined 09:42 GlitchMr left
moritz std: sub f(|:$x) { } 09:54
p6eval std be1f10e: OUTPUT«===SORRY!===␤Malformed parameter at /tmp/GW2PGoczyb line 1:␤------> sub f(⏏|:$x) { }␤ expecting any of:␤ name␤ new name to be defined␤ parameter␤ routine_def␤ signature␤Parse failed␤FAILED 00:01 120m␤» 09:55
moritz nom: sub f(:$x) { }; say &f.signature.params[0].perl
p6eval nom 16b498: OUTPUT«Any $x␤»
moritz nom: sub f(:$x) { }; say &f.signature.params[0].named_names.perl 09:56
p6eval nom 16b498: OUTPUT«Array.new("x")␤»
moritz nom: sub f(*%) { }; say &f.signature.params[0].named_names.perl 09:57
p6eval nom 16b498: OUTPUT«().list␤» 09:58
moritz nom: sub f(*%) { }; say &f.signature.params[0].perl
p6eval nom 16b498: OUTPUT«Associative␤»
09:59 hypolin left
moritz woah, Parameter.perl has to handle so many cases that I'm asking myself if it wasn't easier to just store its source code in the Parameter object 10:03
10:03 Kivutarrr joined
moritz jnthn: how costly would another str attribute in Parameter be? 10:06
10:10 GlitchMr joined
GlitchMr perl6: my $i = 0; while $i < 10000000 { $i = $i + 1 }; say $i 10:10
p6eval niecza v11-8-ge2d48d3: OUTPUT«10000000␤» 10:11
..pugs b927740, rakudo 16b498: OUTPUT«(timeout)»
GlitchMr perl6: multi sub foo(Str $s) { say $s }
foo(42)
p6eval pugs b927740, rakudo 16b498: ( no output )
..niecza v11-8-ge2d48d3: OUTPUT«Potential difficulties:␤ &foo is declared but not used at /tmp/j5YcF1PswX line 1:␤------> multi sub foo⏏(Str $s) { say $s }␤␤»
GlitchMr ...
moritz nom: my int $i = 0; while $i < 10000000 { $i = $i + 1 }; say $i
GlitchMr Accidental line break...
perl6: multi sub foo(Str $s) { say $s } foo(42) 10:12
p6eval nom 16b498: OUTPUT«(timeout)»
niecza v11-8-ge2d48d3: OUTPUT«===SORRY!===␤␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/y2UmRipGhw line 1:␤------> multi sub foo(Str $s) { say $s }⏏ foo(42)␤␤Parse failed␤␤»
..rakudo 16b498: OUTPUT«===SORRY!===␤Confused at line 1, near "multi sub "␤»
..pugs b927740: OUTPUT«42␤»
GlitchMr perl6: multi sub foo(Str $s) { say $s }; foo(42) 10:13
p6eval rakudo 16b498: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (int) (line 1)␤ Expected any of:␤ :(Str $s)␤»
..niecza v11-8-ge2d48d3: OUTPUT«␤Unhandled Exception: No matching candidates to dispatch for &foo␤ at <unknown> line 0 (&foo @ 0) ␤ at /tmp/1mkP_BbePc line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2223 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 22…
..pugs b927740: OUTPUT«42␤»
GlitchMr perl6: multi sub foo(Str $s) { say $s }; eval('multi sub foo(Int $s) {say $s*2};'); foo(42)
p6eval rakudo 16b498: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (int) (line 1)␤ Expected any of:␤ :(Str $s)␤»
..niecza v11-8-ge2d48d3: OUTPUT«Potential difficulties:␤ &foo is declared but not used at (eval) line 1:␤------> multi sub foo⏏(Int $s) {say $s*2};␤␤␤Unhandled Exception: No matching candidates to dispatch for &foo␤ at <unknown> line 0 (&foo @ 0) ␤ at /tmp/j6xhsBDUuw…
..pugs b927740: OUTPUT«42␤»
10:13 nek left
GlitchMr perl6: multi sub foo(Str $s) { say $s }; multi sub foo(Int $s) {say $s*2}; foo(42) 10:14
p6eval rakudo 16b498, niecza v11-8-ge2d48d3: OUTPUT«84␤»
..pugs b927740: OUTPUT«42␤»
GlitchMr eval() causes problems... not surprised...
moritz why problems?
so far it looks according to spec
GlitchMr ok :)
moritz routines are lexically scoped by default 10:15
GlitchMr I though that eval() is... well... eval()...
moritz and eval() introduces a new scope
GlitchMr Makes sense...
moritz so unless you take extra care, what is declared in an eval stays in the eval
GlitchMr perl6: multi sub Main::foo(Str $s) { say $s }; multi sub Main::foo(Int $s) {say $s*2}; foo(42)
p6eval niecza v11-8-ge2d48d3: OUTPUT«===SORRY!===␤␤Two definitions found for symbol ::GLOBAL::Main::&foo␤␤ first at ??? line 0␤ second at ??? line 0 at /tmp/PzZD3_7rii line 1:␤------> (Str $s) { say $s }; multi sub Main::foo⏏(Int $s) {say $s*2}; foo(42)␤␤…
..pugs b927740: OUTPUT«84␤»
..rakudo 16b498: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&foo' called (line 1)␤»
GlitchMr But there is probably failure on my part...
moritz probably. 10:16
GlitchMr Main::foo has different meaning than foo, I guess...
moritz that's what the output suggests, yes 10:17
GlitchMr perl6: print sqrt(-1) 10:19
p6eval niecza v11-8-ge2d48d3: OUTPUT«0+1i»
..pugs b927740, rakudo 16b498: OUTPUT«NaN»
GlitchMr perl6: my $a = 2;$a+<=2;print $a 10:22
p6eval rakudo 16b498, niecza v11-8-ge2d48d3: OUTPUT«8»
..pugs b927740: OUTPUT«2»
GlitchMr perl6: my $a = 2;$a====2;print $a 10:23
p6eval rakudo 16b498: OUTPUT«True»
..pugs b927740: OUTPUT«2»
..niecza v11-8-ge2d48d3: OUTPUT«===SORRY!===␤␤Cannot make assignment out of === because chaining operators are diffy at /tmp/xtKlOJvNtv line 1:␤------> my $a = 2;$a====⏏2;print $a␤␤␤Unhandled Exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/C…
GlitchMr perl6: my &ultraprint = sub {print @_}; ultraprint(2, '+', 2, '=', 4) 10:28
p6eval rakudo 16b498: OUTPUT«2+2=4»
..niecza v11-8-ge2d48d3: OUTPUT«2 + 2 = 4»
..pugs b927740: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = True, subName = \"&\", subType = SubPrim, subOuterPads = [], subInnerPad = MkPad (padToList []), subPackage = , subAssoc = AIrrelevantToParsing, subParams = [], subBindings = [], subSlurpLimit = [], subReturns …
GlitchMr 2+2=4
2 + 2 = 4
... ok...
I see differences there.
10:38 replore left 10:39 replore_ joined 10:40 replore_ left 11:02 skangas left 11:17 tzhs joined
dalek kudo/nom: 11e836e | moritz++ | src/Perl6/SymbolTable.pm:
use more nqp:: ops in SymbolTable
11:17
11:21 daxim left 11:24 daniel-s left 11:34 satyavvd left 11:38 Psyche^ joined 11:40 GlitchMr left 11:42 Patterner left, Psyche^ is now known as Patterner 11:46 wk left 11:53 donri joined
jnthn o/ from TCPW :) 12:07
colomon \o
jnthn: so, about that "is symmetric"... how do I register a new sub in nom? metaprogramming, I mean... 12:10
;)
jnthn colomon: Your trait_mod didn't get found as you put Method in the signature and then applied to trait to a Sub :)
moritz: (str for the Perl source) fairly cheap I guess
colomon jnthn: if you scroll down further, you'll see I did get it right eventually 12:11
jnthn colomon: ah, ok :)
colomon: I need to do some work yet on the meta-programming bits for signatures and parameters.
colomon but I still don't know how to .... ah
jnthn Mostly, they're missing various perl 6 space constructors and stuff 12:12
I guess actually having a use case now helps give me an idea how to start working on it :)
12:12 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner 12:14 bluescreen10 joined
masak lol hai from TCPW... heh, jnthn++ beat me to it ;) 12:17
jnthn :P 12:22
what's new :P
masak moritz has become a zombie, it seems. 12:23
masak hopes that won't affect moritz' excellent stewardship of roast 12:24
moritz tried to get the $!perl attribute into Parameter, and got a segfault as the answer
nom: class A { has str $.x }; sa A.new.x 12:27
p6eval nom 11e836: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&sa' called (line 1)␤»
moritz nom: class A { has str $.x }; say A.new.x
p6eval nom 11e836: OUTPUT«␤»
12:27 replore joined, [particle]1 left 12:28 [particle] joined
jnthn moritz: Where did you add it? 12:33
moritz: At the end, or?
moritz jnthn: right after $!variable_name 12:34
does it matter?
jnthn moritz: yes
moritz: If you do that, binder.h needs updating.
moritz oh
jnthn (take a look, it should be clear what to do) 12:35
moritz indeed it is, thank you 12:36
jnthn moritz: I would suggest putting it at the end though (more) 12:37
The attributes are roughly sorted in order of importance at bind time.
So as to get better cache hit
moritz nom: say (3 ?| 4).WHAT 12:38
p6eval nom 11e836: OUTPUT«Bool()␤»
jnthn (CPU cache)
moritz jnthn: ok
12:43 bluescreen100 joined
dalek Heuristic branch merge: pushed 20 commits to nqp/bigint by jnthn 12:48
p/bigint: 60d70e2 | jonathan++ | src/ops/nqp_bigint.ops:
Update bigint ops to work with new repr API.
moritz nom: -> $a, $b {YOU_ARE_HERE} 12:54
p6eval nom 11e836: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 20376793␤␤»
moritz nom: my $x = -> $a, $b {YOU_ARE_HERE}
p6eval nom 11e836: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 71357083␤␤»
dalek p/bigint: e388430 | jonathan++ | src/ (3 files):
Split bigint repr struct into instance and body. Split instance_of into allocate and initialize to match new API.
13:03
p/bigint: f4f9287 | jonathan++ | src/6model/reprs/P6bigint.c:
Toss defined, which is gone from the repr API. Fix up attribute related repr methods.
13:03 mkramer joined 13:06 [Coke] left 13:07 [Coke] joined
moritz not to self: reconfigure after changing to bigint branch 13:08
*note 13:09
moritz still in zombie mode
dalek p/bigint: b0f876a | jonathan++ | src/6model/reprs/P6bigint.c:
Implement copy_to, get rid of repr_clone.
jnthn moritz: Wait a little...still some patches to go.
13:09 jlaire left
moritz jnthn: just noticed that the build still fails 13:10
13:10 jlaire joined
jnthn yes :) 13:10
moritz in particular P6bigint.c doesn't know about the Body distinction
erm, that was before your last patch :-) 13:11
masak convenient... moritz develops a full-fledged IRC logging solution so that he can leave notes to self. :P 13:12
moritz well, everybody can leave notes to themselves on IRC 13:13
moritz reads www.littlehart.net/atthekeyboard/20...ture-debt/ and finds himself nodding at nearly every paragraph 13:14
dalek p/bigint: 1eea4e5 | jonathan++ | src/6model/reprs/P6bigint.c:
Update get/set native repr functions to new API.
13:15
flussence can relate to that article without even reading beyond the URL 13:16
moritz that I could too :-) 13:17
13:18 mkramer left
jnthn hmm...have I broken the negative case of get_int or was it already weird... 13:22
moritz it wasn't broken :-)
but you can push it and let me have a look at it 13:23
dalek p/bigint: 324df8e | jonathan++ | src/6model/reprs/P6bigint.c:
Update GC related bit of the bigint repr. Builds again.
jnthn moritz: Yeah, somehow I have got it so I lost the assignment to ret...
moritz: I'm confused.
moritz: I don't seem to have changed that bit...
if (MP_LT == mp_cmp_d(&i, 0)) { 13:24
mp_neg(&i, &i);
return ret;
...but it never sets ret.
moritz oops
should be 13:29
mp_neg(&i, &i);
ret = mp_get_int(&i);
mp_neg(&i, &i);
return ret;
moritz recompiles and tests
jnthn hmm, think I may have busted tests 13:30
[Coke] is bit by "master" not being the right branch.
PerlJam [Coke]: how hard did it bite you? Is it time to make master == nom ? 13:31
[Coke] wonders if he updated t/spectest.data at some point while pointing at the wrong branch. whooops.
PerlJam: eh. just wasted 10m.
(of computer time, not coleda time.)
PerlJam okie
13:32 donri left
moritz Could not find method 'compose' 13:32
jnthn yeah, same here
dalek p/bigint: d387ce9 | moritz++ | src/6model/reprs/P6bigint.c:
initialize return value in P6bigint -> get_int
13:33
jnthn Hmm. Confusing bug is confusing. But not bigint specific. 13:41
moritz [Coke]: I recommend git branch -D master 13:42
then master branch is gone, and you can't accidentally merge to it, change to it etc.
[Coke] moritz: this was a relatively new clone. 13:44
moritz huh, origin still has master :/ 13:45
[Coke] er, relatively untouched. it existed before nom did. Either way, you have to remember at least once to switch it. ;)
I wonder how much time I lost on this project because I was (implicitly) expecting hashes to interate in insertion order by default. 13:46
moritz roast assumed that in some places too :/ 13:47
[Coke] *iterate, whoops. weird thinko. 13:48
dalek p/bigint: f9262fc | jonathan++ | t/nqp/60-bigint.t:
Avoid a curious, seemingly new issue by removing a needless .HOW (what get_knowhow gives is already a HOW).
13:52
jnthn moritz: found what's going on...this works around it
moritz ... and set_int is broken for negative numbers, again :( 13:55
13:56 thou joined
moritz but this time it returns 0, not the 2s complement 13:56
mls hi perl6! 13:57
masak hi mls!
13:57 woosley left
moritz \o m.* 13:57
mls jnthn: did you read my comment about the excess ops in while loops 13:58
moritz wonders if the mp_int i = ... line copies 13:59
and I should only store the pointer
moritz doesn't really understand C, and thus experiments 14:00
masak tadzik: question from us here at TCPW: can you somehow attach Pod to tests? 14:02
moritz what's a test? :-)
masak I left that open because I don't want to ask an XY problem question :P 14:03
moritz class MyTest { #= that's it! \n method doit() { is 1+1, 2, 'addition works'; } }; MyTest.doit 14:04
jnthn mls: Yes; I don't know that it's quite so simple. 14:05
mls I think you have to define a "native bool" or something. 14:06
masak niceza: grammar G { regex TOP { <ident> !~~ ^ 'moose' $ }; regex ident { \w+ } }; say ?G.parse("foo"); say ?G.parse("moose") 14:11
jnthn moritz: oh, yes, I think it does
masak niecza: grammar G { regex TOP { <ident> !~~ ^ 'moose' $ }; regex ident { \w+ } }; say ?G.parse("foo"); say ?G.parse("moose")
p6eval niecza v11-8-ge2d48d3: OUTPUT«===SORRY!===␤␤Action method quantifier:sym<~~> not yet implemented at /tmp/cq_veDmkI7 line 1:␤------> grammar G { regex TOP { <ident> !~~ ^⏏ 'moose' $ }; regex ident { \w+ } }; say␤␤␤Unhandled Exception: Cannot use hash …
masak don't worry, I won't unspec this one ;) 14:12
but I am a bit curious if it's ever been used for something.
jnthn Well, given it's not implemented :P 14:13
masak niecza: say so "foo" ~~ /"foo"/
p6eval niecza v11-8-ge2d48d3: OUTPUT«Bool::True␤»
masak jnthn: I was thinking maybe STD implemented it and used it
I do think that the $0 ~~ <.ident> use case looks interesting. 14:14
14:16 sunnavy left 14:17 sunnavy joined 14:18 tokuhiro_ joined
jnthn moritz: got a fix here that passes all the test 14:18
s
moritz: Will deuglify it then commit :)
moritz \o/ 14:21
jnthn pushed 14:22
dalek p/bigint: 2163a93 | jonathan++ | src/6model/reprs/P6bigint.c:
Fix get_int/set_int in P6bigint.
jnthn moritz: all tests pass here now :)
moritz still fails here. I wonder if it didn't rebuild, or something 14:28
jnthn hm, odd 14:29
moritz after a 'make clean', everything passes again 14:31
jnthn oh hmm...looks like we may have a makefile dependency fial
moritz when I touch P6Bigint.c, it does trigger some rebuilds 14:32
jnthn yeah, wrong ones
14:33 fsergot joined
moritz ah 14:33
DYNOPS don't seem to depend on DYNPMC
and DYNPMC is what depends on METAMDODEL_SOURCE
jnthn found it 14:34
moritz too 14:35
$(OPS_DIR)/$(BIGIN_OPS)$(LOAD_EXT) doesn't depend on the bigint repr
jnthn yeah, patched here 14:36
dalek p/bigint: ebffd93 | jonathan++ | tools/build/Makefile.in:
Make the right thing depend on the bigint repr.
moritz it's good that our build system is still simple enough that I'm not running away screaming :-) 14:37
jnthn really doesn't like complex build systems :)
14:40 lateau_ joined, slavik1 joined 14:41 tokuhiro_ left
moritz so, what's next? merge bigint into master, update nom to it, and start to switch rakudo's Int? 14:43
jnthn moritz: One missing thing in including bigint within Int yet. 14:44
14:44 alvis left
jnthn No reason not to merge the branch now though. 14:45
moritz kinda hoped it would be as easy as adding a :repr('P6bigint') in the bootstrap somehow...
jnthn No, because Int has to stay as a P6opaque and embed a P6bigint.
moritz so that classes inheriting from Int can have attributes? 14:46
jnthn And while that bit is done, the thing for the bigint ops to locate the bigint without the P6opaque object body isn't done yet
moritz: yes, or mixins
moritz still has problems with mixins into Int/Num/Str. Shouldn't those be immutable objects? 14:47
jnthn moritz: but 14:48
(as oposed to does)
does should not work on them
moritz hm
jnthn (though does because nobody can tell me what I should look at to make that decision, and I didn't have a good idea for how it should look yet) 14:49
moritz so it's supposed to return a new object that wraps the Int, thus not violating the immutability?
jnthn: I still maintain that we need a way to flag classes as producing immutable objects
jnthn moritz: me too but it's just what that API should look like :) 14:50
moritz trait on the class would be my first instinct
or maybe a separte declaration keyword
immutable_class Foo { has int $.x; has int $.y } 14:51
jnthn trait works for a start I guess...ew can always upgrade to something better later
moritz some of our classes in the setting which are supposed to be immutable probably aren't under the hood right now 14:52
jnthn indeed
moritz they might need some small degree of fixing
I'm thinking of Date and Rat there 14:53
jnthn 42 does Blah actually works
and should not.
moritz which probably initialize attributes wrongly
jnthn ah, ok
moritz ah right, Rat.new creates an instance, and then calls .BUILD($numerator, $denominator) 14:57
14:59 fsergot left
masak niecza: say so "foo" ~~ / |w foo / 14:59
p6eval niecza v11-8-ge2d48d3: OUTPUT«Bool::False␤»
masak |w not implemented...
moritz wtf is |w?
masak oh wait, it's <|w> 15:00
it's the new \b
niecza: say so "foo" ~~ / <|w> foo /
p6eval niecza v11-8-ge2d48d3: OUTPUT«===SORRY!===␤␤Unrecognized regex assertion at /tmp/AqImRfMdNU line 1:␤------> say so "foo" ~~ / <⏏|w> foo /␤␤Parse failed␤␤»
moritz ah right
I recently read that in S05 and wondered where it came from :-)
masak it's a fairly recent change. 15:01
jnthn std: say so "foo" ~~ / <|w> foo /
p6eval std be1f10e: OUTPUT«ok 00:01 123m␤»
masak <~~0> # match according to $0's pattern 15:04
<~~foo> # match according to $foo's pattern
shouldn't that be "$<foo>'s pattern"?
jnthn prolly
masak TimToady: ^^
[Coke] IWBNI github let you RSS-subscribe to all the commits, the way dalek can get them all. 15:05
masak do tell github. they seem nice.
moritz agreed
masak maybe it works already :)
moritz masak: don't tell TimToady, fix it :-)
(dalek only gets them all because we install post-commit hooks, fwiw) 15:06
15:06 lateau_1 joined
masak moritz: I woulda fix'd it if I got any stronger response than "prolly" ;) 15:06
[Coke] moritz: I didn't mean in the same technical way, right. 15:07
moritz masak: I'm pretty sure $<foo> is what is meant
masak fixes
15:07 Chillance joined
dalek ecs: 88326a9 | masak++ | S05-regex.pod:
[S05] fix braino
15:09
15:09 lateau_ left 15:15 molaf joined 15:18 kaleem left 15:19 fsergot joined 15:28 kaleem joined 15:33 Kivutarrr left
masak std: m(foo) 15:33
p6eval std be1f10e: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'foo' used at line 1␤ 'm' used at line 1␤Check failed␤FAILED 00:01 119m␤»
masak std: m:g (foo)
p6eval std be1f10e: OUTPUT«ok 00:01 120m␤»
moritz that is... weird.
sjn std: m (foo) 15:34
p6eval std be1f10e: OUTPUT«ok 00:01 120m␤»
masak oh my :)
it's spec, though.
15:34 simcop2387 left
sjn it's also deeply confusing for newbies 15:34
moritz std: m:g( foo )
p6eval std be1f10e: OUTPUT«===SORRY!===␤No delimiter found at /tmp/5_Y5MNWzrA line 1 (EOF):␤------> m:g( foo )⏏<EOL>␤Undeclared routine:␤ 'foo' used at line 1␤Parse failed␤FAILED 00:01 119m␤»
moritz delimiter for what? 15:35
masak the regex.
(foo) becomes an argument for :g
moritz oh.
masak nom & 15:37
15:38 simcop2387 joined
masak oops, premature '&' ;) 15:41
15:44 pmurias joined 15:52 tzhs left 15:53 lateau_1 left 15:56 _jaldhar left 15:58 risou_awy is now known as risou 15:59 avar left, avar joined 16:01 MayDaniel joined
dalek kudo/nom: 79c1c9f | moritz++ | Configure.pl:
[Configure.pl] fix import list, not_gerd++
16:04
16:07 icovnik left
tadzik masak: well, what do you want to achieve by that? :) 16:11
like, as a test description on steroids? 16:12
( hello #perl6! ) 16:13
[Coke] why were you trying to fix gerd in the first place? 16:18
16:19 agentzh left
masak tadzik: I want to write documentation and tests in the same file. so that I can pull out and render the Pod afterwards, and it's already "tied" to passing/failing tests. 16:19
I got this idea from listening to lichtkind++ talk about Documentation-Driven Development. 16:20
[Coke]: ww? 16:22
[Coke] 12:04 <+dalek> rakudo/nom: [Configure.pl] fix import list, not_gerd++
masak ah. 16:23
:)
16:23 DarthGandalf left
TimToady masak: www? :) 16:23
masak apparently ;) 16:25
16:26 DarthGandalf joined
tadzik masak: ok; how is that different to writing your Pod in any other file, from the users' perspective? 16:28
masak tadzik: the goal was to cheaply link pieces of Pod to individual tests. 16:30
hm, or to groups of tests, I guess.
tadzik so to get some special kind of tests-pod introspection? 16:31
masak I'm not proposing any new Perl 6 features. just wondering if there's a way to combine Pod and tests. 16:32
tadzik well, nothing stops you :)
I don't see how is that different from writing Pod along with any other code. Do you want any tests-Pod interaction?
masak only want to know which order the Pod and the tests come in. 16:33
so that I can emit the pod as HTML-or-whatever with the test pass/fail status interleaved in the right places. 16:34
16:34 kaleem left
tadzik oh, that's what you want 16:34
masak yeah. sorry for exaplaining crappily :)
tadzik hmm
so TAP output along with formatted Pod? 16:35
[Coke] masak: just use the pod var for "recent pod" as the test description
masak tadzik: well, I'm thinking more of the HTML rendering of the documentation as primary, and the test results interleaved -- but yes, they would probably be extracted from the TAP output somehow. 16:37
[Coke]: I don't know about such a var.
tadzik there isn't any
but you can $=POD.shift every time you want some
masak that's far too brittle.
tadzik or write yourself an iterator
masak especially since there might be many tests per piece of Pod.
tadzik that's reasonable 16:38
but how is that connected?
You want Test.pm to automagically print Pod pieces?
masak I guess my mental image for this is what we used to have with the spec and the spectests -- except there it's done through smartlinks.
no, I don't want a special testing framework. I want a special documentation serializer ;) 16:39
there's a subtle difference.
tadzik sorry, but I completely don't get it :)
masak g'ah, I lost you! :)
tadzik spec and spectests, hrm 16:40
masak tadzik: did you ever see the spec with test pass/fail statuses interleaved?
tadzik oh, oh
masak: nope
masak because that's exactly what I mean.
it was quite nice.
but the mechanism behind that was smartlinks, which some people implemented during the Golden Age, and then it broke and no-one had the brains to fix it.
I'd like for the mechanism to be... Pod, basically. 16:41
I was wondering what primitives there are in place already for doing that, without too much boilerplate.
16:44 am0c joined
masak I mean, if I have a Perl 6 parser that's willing to part with enough AST information, I'll probably be able to recreate the relative positions of Pod and tests. if I just have a non-Perl6 parser, I could still make educated guesses but it might be more brittle. if I had enough introspective information, it'd be outright easy. 16:49
16:50 fsergot left 16:51 Faruk joined
Faruk Hello 16:51
masak hi Faruk
welcome back.
Faruk I am new here. please bear with me 16:52
How can I install perl6 plugin on latest version of padre
I need some step
masak we are good at bearing with newcomers :)
Faruk :)
masak but I don't know the answer to your question, unfortunately. I don't use Padre regularly.
maybe someone else here does. 16:53
szabgab?
tadzik szabgab probably
Faruk ok, Thanks so much
tadzik you may want to ask on #padre channel somewhere
masak here on #freenode, I think.
Faruk Please help if any body can on this
ok
masak er, s/#freenode/frenode/ 16:54
argh
16:55 kaleem joined
Faruk Anybody here know how can I install perl6 plugin on latest version of padre? 16:56
PerlJam Faruk: um ... the same way you install any other plugin? 16:57
[Coke] I'm not sure anyone here uses padre. 16:58
masak metacpan.org/module/Padre::Plugin::Perl6
pmurias masak: re smartlinks for modules, what i would find usefull is to have the tests serve as (additional) examples for the docs
PerlJam I use padre off and on but I haven't really used it with Perl 6 (other than install the plugin and test that it works :) 16:59
pmurias masak: as fail/pass won't be especially usefull for released modules which are supposed to have 100% passes
masak true. 17:00
17:02 wtw left
masak nom & 17:08
17:13 Faruk left 17:16 alvis joined 17:24 am0c left 17:25 GlitchMr joined 17:39 GlitchMr left, dual left 17:40 GlitchMr joined, GlitchMr left 17:41 GlitchMr joined 17:42 GlitchMr left, icovnik joined 17:43 GlitchMr joined, mj41 left 17:44 GlitchMr left 17:45 GlitchMr joined 17:47 GlitchMr left, GlitchMr joined 17:49 GlitchMr left 17:50 GlitchMr joined 17:54 thou left
sorear good * #perl6 17:54
17:55 smash left 17:58 GlitchMr left, GlitchMr joined
felher o/ 18:02
18:02 mkramer joined 18:04 [particle] left 18:06 tlocalhos left 18:08 tlocalhos joined 18:11 Chillance left, Chillance joined
dalek odel: 4c6650e | diakopter++ | .gitignore:
prepare for .lua scripts
18:17
18:25 icovnik left 18:32 mj41 joined 18:33 molaf left 18:46 dual joined 18:58 MayDaniel left 19:01 thou joined 19:05 wolfman2000 left 19:10 MayDaniel joined 19:17 MayDaniel left
moritz nom: .say for $(1, 2); 19:21
p6eval nom 79c1c9: OUTPUT«1 2␤»
19:23 soh_cah_toa joined 19:28 GlitchMr42 joined
dalek odel: 67020dd | diakopter++ | lua/compiler/ (4 files):
rewrite localizer from nqp to lua; achieve 300,000% speedup (regex-heavy code).
19:29
flussence I... what... 19:30
19:30 kaleem left
dalek odel: f30959d | diakopter++ | lua/compiler/LocalsOptimizer.lua:
oops; add LocalsOptimizer.lua I forgot
19:31
19:31 GlitchMr left
diakopter flussence: ? 19:31
flussence 300 *thousand*? 19:32
diakopter yeah, 50 hours to 1 minute
flussence holy crap.
diakopter nqp regexes are very slow
19:37 alvis left
dalek q: 5738d87 | moritz++ | questions:
another question: does Perl 6 have coroutines?
19:38
q: a784c68 | moritz++ | / (2 files):
explain item context and list-(non)-flattening
19:38 camel-661 joined
moritz IWBN if somebody could look over that last commit and tell me if it makes sense, and if I got carried away (too long?) 19:38
19:38 icovnik joined
dalek odel: f52dae6 | diakopter++ | lua/compiler/ (2 files):
bugfix
19:38
flussence moritz: makes sense to me. it's one of the things I keep forgetting too :) 19:39
moritz flussence: good, thanks for looking 19:41
diakopter looked too and agreed
now to track down why NQPCode is getting set in the BootstrapSetting, but not in the NQPSetting 19:42
19:46 wk joined
dalek q: 64de598 | moritz++ | / (2 files):
coroutines
19:57
20:03 mj41 left 20:05 wk left 20:07 Ingis is now known as IngisKahn
cognominal___ nom: eager 1|2 20:13
p6eval nom 79c1c9: ( no output )
20:13 camel-661 left 20:14 flussence_ joined
dalek ecza: 5b74146 | sorear++ | docs/nam.pod:
[docs/nam.pod] Update basic details. Have not yet touched the big list of ops.
20:16
20:17 y3llow left, pothos_ joined, y3llow_ joined, flussence left 20:18 ksi joined, y3llow_ is now known as y3llow, wk joined 20:19 pothos left, pothos_ is now known as pothos 20:28 bluescreen10 left, bluescreen100 left, carlin joined 20:32 mj41 joined
dalek q: fb957a6 | moritz++ | answers.md:
add ids to the answers
20:34
q: 21709ee | moritz++ | / (2 files):
answer "is Perl 6 ready yet?" question
20:39 GlitchMr42 left
dalek q: 8e5d92a | sorear++ | answers.md:
Fix typo
20:47
20:55 mkramer left
dalek q: d16a0ce | moritz++ | / (2 files):
answer "why Perl 6?"
20:55
moritz should stop answering questions, and should focus on getting them online somewhere
cognominal___ moritz: PEG? I peg your pardon, what is it? :) 20:56
dalek : cdd8ca1 | moritz++ | docs/u4x/web/style.css:
[u4x] update source location
moritz straw poll, would you prefer [ ] doc.perl6.org/faq or [ ] faq.perl6.org ? 20:57
sorear secure.wikimedia.org/wikipedia/en/...on_grammar
20:57 cirne100 joined
dalek q: 41b3b5e | moritz++ | answers.md:
annotate PEG with a link, cognominal++, sorear++
20:58
20:58 cirne100 left 21:00 cirne100 joined 21:05 thou left 21:07 cirne100 left 21:09 cirne100 joined
sorear moritz: how do you plan to answer the question about threading when nobody puts much stock in S19? 21:11
*S17
moritz sorear: either "we don't really know yet", or I'll wait until somebody implements a decent amount of threading 21:12
21:13 MayDaniel joined
moritz sorear: do you have a better idea than that? 21:14
dalek q: 07826f7 | moritz++ | / (4 files):
start to generate web pages
21:17
sorear moritz: nope 21:20
colomon: ping 21:22
moritz faq.perl6.org/ # please don't link to it until we have some prettier layout 21:23
and you can shortlink to individual FAQ items like this: faq.perl6.org/#ref 21:24
21:33 fsergot joined
fsergot hi! :) 21:33
moritz hi 21:34
faq.perl6.org/ is now updated from its repo via cron job, twice per hour
moritz goes to sleep, and hopes that some desgin fairy makes the website pretty over night 21:35
fsergot moritz++ :) 21:37
21:40 alvis joined, alvis left
sorear diakopter: ISTR you saying earlier that you wanted to allow unrestricted CLR access on p6eval but I can't find the relevant log 22:00
diakopter I went back and forth 22:06
sorear wonders about adding a "needs tests" category
oh, nvm, we HAVE the tests. 22:07
22:08 tlocalhos is now known as localhost
dalek ecza: c599e5a | sorear++ | lib/ (2 files):
sqrt(-1) is NaN, complex math is opt-in (fixes #64)
22:09
ast: 040fce3 | sorear++ | S32-num/sqrt.t:
[S32-num/sqrt] Unfudges for sorear/niecza#64
22:12
22:13 localhost left 22:14 localhost joined
diakopter omg. 22:14
nqplua lives
dalek odel: 8200643 | diakopter++ | lua/ (7 files):
passes nqp/t/02-05
22:18
flussence_ rakudo: lines.map(*.say) 22:25
p6eval rakudo 79c1c9: ( no output )
flussence_ rakudo: eager lines.map(*.say) 22:26
p6eval rakudo 79c1c9: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunftsreich!␤Heimat bist du großer Söhne,␤Volk, begnadet für das Schöne,␤vielgerühmtes Österreich,␤vielgerühmtes Österreich!␤␤Heiß umfehdet, wild umstritten␤liegst dem Erdteil du inmi…
flussence_ bug?
22:27 flussence_ is now known as flussence
dalek odel: 4b343a9 | diakopter++ | lua/ (4 files):
more tests pass
22:43
22:45 replore left
sorear flussence: no 22:48
22:56 carlin left 23:03 BinGOs left 23:04 BinGOs joined
sorear diakopter: so... are you back to pro-sandboxing? 23:11
diakopter sorear: I guess so; more people are using niecza and it'd be a pain to reconstruct parts of the p6eval chroot if it were overwritten/deleted 23:12
sorear I guess we should make that easier 23:16
automate the reconstruction of p6eval in some way
colomon sorear: o/
oh, pong!
sorear was reading about the Open Virtualization Format yesterday (related to the GitHub enterprise stuff)
colomon: I'd like your input on the most useful interpretation of use ...:from<clr ...> 23:17
colomon oh!
23:17 ksi left
colomon like a shorter (more portable, I'm guessing) way of doing the constant Application = CLR::("Gtk.Application,$GTK"); stuff? 23:18
sorear yes
colomon sounds sweet! what's your question? 23:19
dalek ecza: 1f5c317 | sorear++ | lib/NieczaCLR.cs:
Correct handling of undefined values in CoerceArgument (fixes #66)
sorear colomon: what the best interpretation of the syntax is 23:20
23:20 benabik joined
sorear colomon: how would you prefer to write the header? 23:20
colomon Hmmm. I haven't given anything like that thought before, mostly I was hoping I'd one day (now? haven't tried) be able to package those CLR::("Gtk.Application,$GTK"); lines in a module. 23:21
dalek ecza: 5392c63 | sorear++ | src/niecza:
Mention -I in help output (fixes #52)
23:22
colomon Are you suggesting something like use Application :from<clr Gtk> ?
sorear colomon: that's one way, but not necessarily the best 23:23
in fact probably not
I was hoping that someone who actually uses this stuff could help
colomon hmmm. 23:25
my first thought is that (like I hinted at there), ideally you wouldn't have to specify all that in your script at all. it would be much nicer if you could bundle whatever was needed in some sort of module, so that your final script would just be something like use Gtk; 23:26
maybe that's very obvious, but I guess what I'm trying to say is that efficiency of declaring an individual class may be relatively unimportant, if the goal is to wrap them up in a module once and use that forever after. 23:27
sorear colomon: it sounds like you're stockholmizing the boilerplate code 23:30
colomon: imagine a world where you don't have to write Gtk.pm6 at all
colomon as in stockholm syndrome?
sorear yes
there's no reason use has to be limited to one class at a time 23:31
colomon I'd like to point out that a world where you only have to write Gtk.pm6 once (particularly where that can be made into a module that anyone can use) is still a pretty nice world.
but sure, imagining even that is unnecessary now... 23:32
then something like
use Gtk :from<clr>
?
that seems simple and powerful. but is it enough info for niecza to work it all out?
23:34 Fried_ joined
sorear by Gtk.pm6 do you really mean GtkSharp.pm6? 23:35
colomon ..... yes
sorear or are you imagining another Zavolaj-based Gtk?
niecza needs, at least, the assembly strongname (from $GTK) 23:36
colomon gtk-sharp, right. I just internalized it as Gtk, as that is the namespace name.
that's the Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f stuff?
sorear yes
it feels to me that having a Gtk.pm6 module is useful iff it can usefully hide details and make apps more portable 23:37
colomon yeah. 23:38
23:40 MayDaniel left
colomon I guess I can see it both ways. 23:40
If I'm using Gtk(-sharp) a lot, I probably want to hide the assembly strongname away from my main code; if not, it's as it's a mouthful I'm going to be cutting and pasting forever, and then what happens when I need to change it? 23:41
On the other hand, for a one-off use of a library, a one-line 23:42
use GtkSharp :from<clr Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f>
would be pretty darned awesome
23:45 f00li5h left
dalek odel: edafbfa | diakopter++ | lua/runtime/Runtime/ (2 files):
pass a whole lot more tests
23:47
diakopter whee
23:52 Fried_ left