»ö« 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:02 ksi left 00:05 thou joined 00:07 molaf left 00:12 tokuhirom left 00:14 wolfman2000 left 00:20 arlinius left 00:22 molaf joined 00:24 replore joined, arlinius joined 00:31 tokuhirom joined 00:42 hundskatt left 00:50 tokuhirom left 00:56 hundskatt joined 01:01 panterax joined, replore left 01:03 panterax left 01:04 lestrrat left 01:05 panterax joined, lestrrat joined
dalek ecza: 82ae125 | (Paweł Murias)++ | lib/Perl5Interpreter.cs:
Fix memory leak.
01:07
colomon \o/ 01:34
01:43 Chillance left 01:49 zjmarlow left 02:03 pmurias left 02:07 whiteknight left 02:25 DarthGandalf left 02:26 xinming joined 02:32 DarthGandalf joined 02:41 DarthGandalf left 02:45 wolfman2000 joined, DarthGandalf joined
sorear huh, Rakudo's attributive parameters use assignment 03:00
std: my $x = 5; $x but= role { }; # oops 03:07
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Cannot make assignment out of but because structural infix operators are diffy at /tmp/lGmrcw3CN_ line 1:␤------> my $x = 5; $x but=⏏ role { }; # oops␤Check failed␤FAILED 00:01 110m␤»
TimToady STD doesn't like to generate type-changing operators 03:14
03:18 dku joined
[Coke] gist.github.com/1476841 ... soooo close. 03:22
dalek ast: 764ef9e | (Solomon Foster)++ | S32-trig/generate-tests.pl:
Add FatRat tests (appropriately fudged for Rakudo), remove fudging for Niecza.
sorear 14:37 < [Coke]> # 01/15/2012 - niecza at 98.54%
colomon [Coke]: I've got more coming in a minute or two 03:23
sorear is there supposed to be a new(er) line in the gist?
dalek ast: 5ce04dc | (Solomon Foster)++ | S32-trig/ (13 files):
Add FatRat tests (appropriately fudged for Rakudo), remove fudging for Niecza.
03:24
colomon [Coke]: there, that last push should be 13 * 8 or so more passing tests for niecza.
[Coke] I'll do a quick check for some LHF and rerun. 03:26
dalek ast: 9ebc638 | coke++ | S05-metasyntax/interpolating-closure.t:
fudge for niecza
03:32
ecza: f9b2ede | coke++ | t/spectest.data:
run S05-metasyntax/interpolating-closure.t
03:36 orafu left 03:37 ponbiki joined
sorear std: :(:$!bar) 03:37
p6eval std dc62e1d: OUTPUT«ok 00:01 109m␤»
03:38 Psyche^ joined, orafu joined
sorear std: :(:$!bar = 10, :$!baz?) 03:40
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Cannot put optional positional parameter after variadic parameters at /tmp/F9ScIONWFQ line 1:␤------> :(:$!bar = 10, :$!baz?⏏)␤Check failed␤FAILED 00:01 111m␤»
TimToady o.O
03:41 Patterner left, Psyche^ is now known as Patterner
sorear found the bug... testing fix 03:55
what did you mean by? 19:14 < TimToady> STD doesn't like to generate type-changing operators
TimToady I put operators into that category that return a different type from their inputs 03:56
so they don't make a lot of sense for change-in-place operations 03:57
04:07 ponbiki left 04:20 eclipse_11 joined
[Coke] colomon, sorear: updatd. 04:22
# 01/15/2012 - niecza at 99.31%
b: say 19058-18927 04:23
p6eval b 1b7dd1: OUTPUT«131␤»
colomon ah, man
I really need to go to bed instead of trying to find those last 131 tests... 04:24
afk
04:26 agentzh joined, agentzh left 04:27 agentzh joined 04:28 agentzh left
[Coke] also updated docs.google.com/spreadsheet/ccc?ke...URFM1A0cHc 04:31
dalek ecza: 4fbf388 | sorear++ | / (7 files):
Add support for attributive parameters, & role constraint
04:49
ast: 6755bea | sorear++ | S (2 files):
[S12-attributes/instance,S06-signature/code] Unfudge for niecza
[Coke] sorear: estimate on how many more that gives us?
sorear 10? 20? 04:51
probably closer to 10
niecza: class { has ($!x, $!y) }
p6eval niecza v13-266-g6383a22: OUTPUT«===SORRY!===␤␤Unhandled parameter twigil ! at /tmp/zes9sdHpve line 1:␤------> class { has ($!x⏏, $!y) }␤␤Unhandled parameter twigil ! at /tmp/zes9sdHpve line 1:␤------> class { has ($!x, $!y⏏) }␤␤Use…
sorear niecza: class { has $x } 04:53
p6eval niecza v13-266-g6383a22: ( no output )
[Coke] I have 42 more unfuding shorting.
*unfudging shortly.
dalek ast: 9b324ea | coke++ | S05-metasyntax/angle-brackets.t:
fudge for niecza
04:54
ecza: 0e97331 | coke++ | t/spectest.data:
run S05-metasyntax/angle-brackets.t
04:59 zjmarlow joined
dalek ast: 239510c | coke++ | S05-metasyntax/longest-alternative.t:
fudge for niecza
05:01
ecza: a638258 | coke++ | t/spectest.data:
run S05-metasyntax/longest-alternative.t
[Coke] 19 more..
05:03 s1n joined 05:11 zjmarlow left, zjmarlow joined
dalek ast: 06bb994 | coke++ | S05-match/capturing-contexts.t:
fudge for niecza
05:13
ecza: 6b78f00 | coke++ | t/spectest.data:
run S05-match/capturing-contexts.t
[Coke] 25 more...
05:18 zjmarlow_ joined, zjmarlow left
dalek ast: cef0c9a | coke++ | S05-metasyntax/regex.t:
niecza fudge
05:18
ecza: 4d79458 | coke++ | t/spectest.data:
run S05-metasyntax/regex.t
05:19
[Coke] 22 more...
05:21 zjmarlow__ joined 05:24 zjmarlow_ left 05:25 birdwindupbird joined, zjmarlow__ left 05:26 hundskatt left, zjmarlow__ joined 05:28 woosley joined 05:30 eclipse_11 left
dalek ecza: bf92914 | coke++ | t/spectest.data:
run S12-methods/attribute-params.t
05:31
[Coke] 13..
05:33 zjmarlow__ left 05:34 zjmarlow__ joined 05:38 dku left 05:47 odoacre left, zjmarlow__ left 05:48 odoacre joined 05:52 zjmarlow joined
[Coke] # 01/16/2012 - niecza at 100.02% 05:57
BOOYAH!
sorear \o/
[Coke] gist updated, google doc not. zzzzz. 05:58
moritz \o/ 06:04
sorear++ [Coke]++ colomon++ 06:05
congratulations everybody
06:19 koban joined 06:36 raiph joined 06:37 hundskatt joined 06:39 lestrrat left 06:40 lestrrat joined 06:44 Trashlord left 06:46 Trashlord joined 06:50 kaleem joined 07:00 c1sung joined
sorear std: our ($A::b, $C::d) 07:01
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Malformed parameter at /tmp/qZP7Jq7DgE line 1:␤------> our ($A::⏏b, $C::d)␤ expecting any of:␤ formal parameter␤ named_param␤Parse failed␤FAILED 00:01 109m␤»
sorear std: our $A::b
p6eval std dc62e1d: OUTPUT«ok 00:01 108m␤»
dalek ast: 631d013 | moritz++ | integration/error-reporting.t:
RT #76986, multiple anon vars in the same scope
07:02
07:02 wtw joined 07:03 GlitchMr joined
sorear niecza: has $x 07:06
p6eval niecza v13-275-ga638258: OUTPUT«===SORRY!===␤␤Attribute $!x declared outside of any class at /tmp/vSJlcG2LFj line 1 (EOF):␤------> has $x⏏<EOL>␤␤Potential difficulties:␤ 'has' declaration outside of class at /tmp/vSJlcG2LFj line 1:␤------> has…
masak wow, Easter is early this year.
sorear++ [Coke]++ colomon++
sorear o/ masak 07:07
07:07 jeffreykegler joined 07:14 jeffreykegler left
masak sorear: \o 07:15
sorear ponders splitting up NieczaActions into a couple of semi-arbitrary pieces 07:18
07:26 benabik joined 07:27 benabik left
masak sorear: how's the work on 6model convergence going? the v13 announcement says that's a future direction. 07:31
sorear masak: the role implementation work was a large part of that
the main remaining hurdle is allowing users to write their own metaclasses ... 07:32
moritz niecza: say 1.HOW
p6eval niecza v13-275-ga638258: OUTPUT«ClassHOW.new(...)␤»
moritz niecza: say 1.HOW.HOW
p6eval niecza v13-275-ga638258: OUTPUT«ClassHOW.new(...)␤» 07:33
moritz circularity++
niecza: say Numeric.^HOW
p6eval niecza v13-275-ga638258: OUTPUT«Unhandled exception: Unable to resolve method HOW in class ClassHOW␤ at /tmp/fROk3wKHj3 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3013 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3014 (module-CORE @ 59) ␤ at /h…
moritz niecza: say Numeric.HOW
p6eval niecza v13-275-ga638258: OUTPUT«ClassHOW.new(...)␤»
sorear niecza's ClassHOW is a thin wrapper over a C# class ... that can't even usefully be subclassed at the C# level
moritz is Numeric a class?
sorear and there's only one of it, with an 'int type;' field that can be CLASS, ROLE, etc
no 07:34
moritz so ClassHOW handles roles too?
sorear yes
most of the '6model' tasks from here on is refactoring ClassHOW to expose more of its interface as Perl 6 methods that can be overriden
07:35 thou left
sorear and break it up into separate ClassHOW, RoleHOW, CurriedRoleHOW, ParametricRoleHOW, PackageHOW, ModuleHOW, and SubsetHOW classes 07:35
moritz SomeHOW sounds like and interesting task :-) 07:36
07:36 justatest joined
sorear another problem is dealing with the 'cascading augment' feature that niecza has classically had 07:37
moritz what's cascading augment? 07:38
sorear right now in niecza you can say augment class Any { method pies() { 5 } } and the new method instantly shows up on every Any-derived class in the system and calling it is no slower than if it were defined on the class in the first place
making this work properly requires weak references and a fair amount of support from ClassHOW
oh, it also heavily colludes with the serializer 07:41
masak sorear: and EnumHOW :)
sorear There is no EnumHOW. Enums have no metamodel features that distinguish them from other classes.
07:42 justatest left
masak hm. 07:42
moritz so what do they have? a custom superclass?
sorear yes
moritz an enum needs to get its .pick method from somewhere...
sorear will probably be refactored into a role someday 07:43
moritz sorear: and where is that superclass determined?
in ClassHOW?
07:43 daxim joined
sorear moritz: in the action method 07:45
enum foo < a > desugars to class foo is Int is IntBasedEnum { ... }
(actually, the bulk of the logic in the action method concerns constructing the 'constant's inside the enum) 07:46
(which is a WHO issue, not a HOW issue, anyway)
moritz rakudo has a separate metaclass for enums, but I guess both approaches work 07:47
commute&
sorear nom: class Foo { has $x; say $x } 07:48
p6eval nom 326de8: OUTPUT«Can only use repr_get_attr_obj on a SixModelObject␤ in <anon> at /tmp/gjsC6z7cwU:1␤ in block <anon> at /tmp/gjsC6z7cwU:1␤ in <anon> at /tmp/gjsC6z7cwU:1␤»
07:53 muixirt joined
muixirt good morning 07:53
sorear good morning muixirt 07:54
muixirt I mentioned y'day the merge_sort example on rosetta code
07:55 lestrrat left
muixirt it still doesn't work with nom 07:55
07:56 lestrrat joined
muixirt if you change one line: my @r = merge_sort @a[ $m ..^ @a ]; 07:56
to: my @r = merge_sort @a[ $m ..^ @a.elems ]; 07:57
then it works, any explanations?
sorear I guess ..^ isn't numifying the rhs right 07:58
TimToady how old is your nom? This bug was fixed recently, I think 07:59
sorear o/ TimToady
muixirt TimToady: brand new (and several things were fixed, jnthn++) 08:00
08:00 koban left
TimToady maybe it has regressed; rebuilding latest here 08:01
muixirt y'day Util's version didn't work, now it works
TimToady are you sure $m is an Int? 08:05
muixirt no
Int() 08:08
TimToady .. only upgrades the rhs to numeric if the left side is
hmm
08:08 fridim left
TimToady nom: my @a = 1,2,3,4,5; say (3..^@a).list 08:08
p6eval nom 326de8: OUTPUT«3 4␤»
TimToady that seems right
nom: my @a = 1,2,3,4,5; say @a[ 3..^@a ] 08:09
p6eval nom 326de8: OUTPUT«4 5␤»
muixirt TimToady: did you try it?
TimToady that also seems right
not the whole thing
dalek ecza: 16b6b2e | sorear++ | / (5 files):
Implement has $x creating an alias pseudo-lexical
08:10
muixirt that's why I'm asking, I couldn't reproduce the bug with a smaller code snippet
dalek ast: 86cfd86 | sorear++ | S (2 files):
Unfudges for sorear/niecza@16b6b2e
08:19 domidumont left
sorear -> sleep 08:20
08:23 domidumont joined
masak 'night, sorear. 08:30
dream of specific HOWs.
sorear's comment made me wonder why we have an EnumHOW in Rakudo :) 08:34
moritz I think one goal was to move some of the actions logic to the meta class 08:36
where it can be generalized more easily
the second thing that I just remembered is that enums have specialized mixin rules 08:37
$thing but True # overrides method $thing.Bool
masak oh! 08:38
jnthn Different declarator = Different HOW. 08:54
08:56 bacek left
jnthn And yes, .^composalize for getting a composable thingy from the EnumHOW is a nice way to factor the role thingy in a very general way. 08:57
08:57 nornagest joined
masak "composalize". beautiful coinage. 09:00
jnthn: could I use E.^add_enum_value( $some-value ) to change an Enum at runtime? 09:01
09:03 preflex joined
moritz nom: enum A <b c>; A.^add_enum_value(6'); A.^compose; say A.enums 09:03
p6eval nom 326de8: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2␤»
moritz nom: enum A <b c>; A.^add_enum_value(6); A.^compose; say A.enums
p6eval nom 326de8: OUTPUT«Method 'value' not found for invocant of class 'Int'␤ in add_enum_value at src/gen/Metamodel.pm:2375␤ in method dispatch:<.^> at src/gen/CORE.setting:788␤ in block <anon> at /tmp/UGrRSNXZvY:1␤ in <anon> at /tmp/UGrRSNXZvY:1␤»
moritz nom: enum A <b c>; A.^add_enum_value("x" => 6); A.^compose; say A.enums
p6eval nom 326de8: OUTPUT«("b" => 0, "c" => 1, "x" => 6).hash␤»
moritz it seems you can; not sure if you should can though. 09:04
jnthn Normal meta-programming rule applies
You can if you understand the consequences.
daxim coinages are the translator's nightmare 09:05
perl6: so algol, we invent a whole new language for our whole new language! 09:06
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected "new"␤ expecting ":" or "("␤ at /tmp/Vh53pSCHIJ line 1, column 56␤»
..niecza v13-275-ga638258: OUTPUT«===SORRY!===␤␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at /tmp/KALejEFN9W line 1:␤------> o algol, we invent a whole new language ⏏for our whole new language!␤␤Undeclared routi…
..rakudo 326de8: OUTPUT«===SORRY!===␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 1, near "for our wh"␤»
masak moritz++ # should can
daxim: indeed. see strangelyconsistent.org/blog/the-gh...f-algol-68 09:07
daxim I know this
moritz (totally unrelated): de.arxiv.org/PS_cache/arxiv/pdf/120...2801v1.pdf 09:08
09:08 bacek joined 09:09 JustMe04_ left 09:13 ponbiki joined
tadzik good morning 09:14
masak good actual morning, tadzik. :) 09:15
tadzik what an exceptional day
masak moritz: I am confused by the term "metamaterial" :)
tadzik: truly a remarkable set of 24 hours.
moritz masak: it's jargon for a solid that is structered on a smaller scale then the wavelength of light 09:16
masak: which can lead to weird effects, like negative refractive index
masak right.
daxim slaps the material scientists with a greek dictionary
masak so, "micromaterial" would've been OK :) 09:17
moritz more like "nano"
masak yeah! we should introduce the term "nanomaterial" :P
moritz but "nano" is already taken by a different branch of material scientists 09:18
masak starts cranking out "hands off my 'meta'" stickers
daxim it's perfectly cromulent to talk about nano-scale material even if it does not come out of a drexler-type nano-factory 09:19
context etc.
daxim pokes george clooney. want "diamond age" film, now. 09:20
09:27 bacek left 09:34 ponbiki left, dakkar joined
masak wow, Zavolaj! jnthn++ 09:35
09:40 bacek joined 09:41 donri joined
muixirt wonders if rosetta code Anagrams was ever tested with perl6 and the original data file 09:48
09:52 GlitchMr42 joined
mathw I think 'nanomaterial' might already mean something else 09:52
although somethign that probably blurs into 'metamaterial' along the way
jnthn masak: You...only just discovered Zavolaj? :) 09:53
mathw jnthn: I for one only discovered with your blog post how awesome it's got
masak jnthn: no, but I like the recent improvements.
jnthn Ah. :)
And there's more to come yet. :)
09:53 GlitchMr left, GlitchMr42 is now known as GlitchMr
moritz are nested structs already implemented? 09:53
jnthn moritz: Not yet. 09:54
mathw arrays of structs with arrays of structs containing structs in them!
(instant headache time)
jnthn mathw: Should be possible once I'm done.
mathw jnthn: hopefully it gets to the point where the extra levels just happen thanks to the existing mechanisms 09:55
masak HN is currently discussing HN's recent "kindness scaling" trouble: news.ycombinator.com/item?id=3469453
interesting discussion.
jnthn masak: Yeah, that's how the design is meant to fall out. Of course, implementation is where we see how well that works out. :) 09:56
er, mathw ^^ 09:58
tab fail strajks again
09:58 mj41 joined
mathw :) 10:02
10:03 woosley left
mathw well it would be a pretty poor design if you had to hand-code it for every possible depth level 10:03
and that's not the kind of thing you'd do
10:06 geekosaur left, jrockway_ joined, eviltwin_b joined, clkao_ joined, itz_ joined 10:07 shachaf_ joined, zostay_ joined, LoRe_ joined, mj41 left, clkao left, rafl left 10:08 nornagest left, mj41 joined 10:09 rafl joined, tomaw joined 10:14 shachaf_ is now known as shachaf 10:15 mj41 left, muixirt left
Timbus timbus@timbox:~/Projects/rakudo/zavolaj$ ../perl6 examples/sqlite3.p6 10:16
open status 0
hoho
moritz jnthn: it seems that all the test files in zavolaj abort with "relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC: 10:17
Timbus changed the pointer to pointer into an CArray[int]
i feel bad but it works
i hate that error :< 10:18
jnthn, how about letting CPtr take a single attribute? that would be a pretty good way to build pointer chains when needed. I assume that's probably already the plan though 10:24
10:34 bacek left
moritz jnthn: I have two small commits to zavolaj that fix the test compilation with gcc. Could you please give me a commit bit? 10:36
jnthn: there's another problem; on linux the library loader doesn't seem to look into the current working directory, and thus fails to load the test .so files 10:40
when I run LD_LIBRARY_PATH=. prove -e perl6 then all tests pass (with my fixes)
10:42 domidumont left 10:47 bacek joined 10:49 panterax left 10:50 panterax joined
jnthn sorry, had meeting 10:50
moritz not in a hurry
jnthn moritz: You now have a commit bit 10:51
dalek volaj: ecf0ae4 | moritz++ | t/05-arrays.c:
get rid of a GCC warning
volaj: 7ec2386 | moritz++ | t/CompileTestLib.pm:
[t] fix compilation of shared libraries with GCC
moritz is not afraid to use it
jnthn \o/
moritz++ 10:52
moritz I just hope I didn't break compilation on windows :-)
jnthn Timbus: Is your use case that you need to be able to chase pointers?
Timbus: Something with CPointer repr can hold a pointer
10:56 raiph left
jnthn guesses he's missing something 10:56
Timbus: Anyway, if you make changes to get sqlite working, I'd be happy to look over them and find a way to neaten things 10:57
moritz www.perlmonks.org/?node_id=948107 10:58
Timbus jnthn, sqlite takes a ptrptr 11:01
and sets the inner ptr
jnthn Timbus: ah, ok
Timbus i know of many libraries that do
jnthn *nod*
Yeah, that's something Zavolaj should support in a better way.
Timbus it's not really that I need the value or anything, but yeah
it needs to allocate the space
... and i probably do need the value too (haven't thought that far ahead) 11:02
11:04 Chillance joined
mathw I'd be surprised if you didn't need it later 11:04
jnthn lunch & 11:05
Timbus i don't normally capitalize my 'i' so the effect was lost (what i meant was, i myself, won't need the value. i just gotta pass it back to the library wanting the handle) 11:06
i do need to pull it out of the returned ptrptr, yes 11:07
mathw Well you need it in the sense that you need it to use the library... 11:09
Or, the library needs it in order to work
Or something
It's Monday...
masak moritz: that PerlMonks post makes a *great* comparison. self-accelerating change. 11:10
masak made a comment 11:13
11:31 domidumont joined 11:41 DarthGandalf left 11:52 fridim joined
flussence nice post, raiph++ 11:55
I notice parallels between perl6 and web development all the time... we even have a Mozilla/Chrome/IE situation. No prizes for guessing which is which :) 12:00
12:09 bkolera left 12:14 nornagest joined 12:16 bluescreen10 joined
masak .oO( Yapsi is a web browser implemented entirely in JavaScript ) 12:17
12:18 DarthGandalf joined
arnsholt Running in another browser =) 12:18
jnthn Like Mozilla, Rakudo even has excessive memory usage :P 12:20
flussence yeah, but at least I can still compile rakudo in 1GB. Firefox has gone way off the deep end there :( 12:25
masak arnsholt: or itself, ultimately.
arnsholt Yeah, and ultimately in itself. IIRC there are a couple of Common Lisp compilers that require a CL compiler to build 12:26
masak this is the first time I've gotten a clear picture of what made chromatic give up on Rakudo Star: www.perlmonks.org/?node_id=940679 12:27
colomon [Coke]++ sorear++
arnsholt masak: Nice find. I'm kinda curious what kind of project it is/was 12:31
12:33 bluescreen10 left
masak something to do with Onyx Press, I hazard. 12:34
well, that's basically a given unless chromatic owns several firms. :) 12:35
jnthn The whole reason for *not* releasing a Rakudo Star based on nom so far was because we didn't want to cause a bunch of breakage to existing stuff, or at least keep it down to a manageable level. :/ 12:38
masak well, as some other node in that thread diagnoses, chromatic suffered "early adopter burnout". 12:39
colomon sure... but if he was counting on regular progress on R*....
that is, R* being stable but getting better. 12:40
moritz well, thing is, he wanted to use listen to user feedback, and act accordingly to it
and all the users said "make it faster"
so we do
but that doesn't find mr. chromatic's approval
jnthn Well, quite.
masak there's no question about the nom refactor being the right thing to do in the long run. 12:41
colomon right
masak I'm not enough of a core hacker to know whether it could've been made smaller/more isolated from other simultaneous refactors.
(list semantics, parsing)
maybe it could. maybe not. 12:42
jnthn Well, the list changes and QRegex didn't need to be part of it.
masak right.
jnthn They weren't in my original plan, pmichaud just felt it was the time for him to do them. Which was great while he actually had tuits. And became not so great very shortly after he stopped having them.
moritz but it would have been more work to first restore the old semantics and then rework them
jnthn (Not casting any blame here, it's just the unfortunate way things came out.)
12:43 nornagest left
jnthn moritz: Yes, that could also have been true in various cases. 12:43
In the end, it all needed doing.
It's basically a throughput vs latency situation.
Doing it in one go had better throughput, but higher latency.
12:43 nornagest joined
jnthn If we'd done it in smaller chunks, we'd have put out more incremental changes, but getting to the current point would have taken longer, and probably resulted in worse code quality. 12:44
dalek ast: 3a0067e | (Solomon Foster)++ | S06-signature/sub-ref.t:
Fudge for niecza.
colomon if we'd had the resources, the "right thing" to do would probably have been to keep a couple programmers working on the ng branch and doing quasi-regular R* releases from it until nom was ready. 12:46
but that's a big "if"
12:46 lutok joined
dalek ecza: 0247a8a | (Solomon Foster)++ | t/spectest.data:
Turn on S06-signature/sub-ref.t.
12:46
masak thinking about it, I'm *very* relieved Rakudo managed to get "escape velocity" enough to survive the (temporary, at least) loss of a core dev. 12:47
that's not a give. cf Pugs.
given*
12:47 bluescreen10 joined 12:48 fridim left
jnthn colomon: I'd *love* Rakudo to have had the resources to make that feasible. 12:48
moritz nom: say 367 / 594
p6eval nom 326de8: OUTPUT«0.617845117845118␤»
colomon yeah, and I'd love it if TPF would pay all of us fulltime, too. ;)
moritz so about 60% of the tests that rakudo runs are fudged 12:49
jnthn moritz: Test *files*? 12:50
moritz jnthn: yes
jnthn moritz: Is there any easy way for me to see which tests we don't run at all?
er, test files we don't run at all :)
moritz nom: say 318 /594 # better estimate 12:51
p6eval nom 326de8: OUTPUT«0.535353535353535␤»
moritz jnthn: I can make such a list if you want
jnthn moritz: Would be interesting to see.
I discovered pseudo.t somewhere in S02 the other day which has 140 or so tests if I implement a bunch of the pseudo packages. :) 12:52
dalek kudo/nom: 30b27ed | moritz++ | t/spectest.data:
fix spelling of test file name
masak jnthn: you'd better; I hear Niecza is close to running as many tests as Rakudo! :P 12:53
jnthn masak: :
:P
masak hurry before it's too late 12:54
jnthn isn't sure whether to find that motivating of demotivating. :)
*or
colomon motivating! 12:55
moritz jnthn: I'm generating that list now, it was an easy modification to tools/update_passing_test_data.pl 12:57
jnthn moritz: yay :)
moritz jnthn: moritz.faui2k3.org/tmp/tests.txt 12:58
those with [SPA] can probably directly added to t/spectest.data
moritz works on it
a plan of 0 usually means that the file failed to compile 12:59
jnthn int eresting; 13:00
13:00 jferrero left
dalek kudo/nom: acee932 | moritz++ | t/spectest.data:
run 3 more test files
13:02
moritz I think I fudged some of those files and then forgot to add them to t/spectest.data. distractions--
oh, and autounfudge also finds a few things to remove 13:05
jnthn :)
moritz: Do those three you added to spectest.data really all pass, or do they need fudging? 13:06
moritz jnthn: they pass as-is (fudged)
jnthn nice :)
moritz: [SPA] ( 5/6 ) t/spec/S05-metasyntax/interpolating-closure.t 13:07
also
moritz I've fixed the spelling of that file in 30b27ed 13:08
so that's already accounted for
jnthn ah, ok
[SPA] ( 1/1 ) t/spec/S24-testing/0-compile.t
also
...1 test ;)
[SP ] ( 26/76 ) t/spec/S32-num/stringify.t
That sounds like a good candidate for fudging. 13:09
moritz I'm looking at that one
it's... weird
13:09 pmurias joined
jnthn Also [SPA] ( 1/1 ) t/spec/S29-context/exit-in-if.t 13:09
moritz we seem to be failing about 40 (!) stringifiation tests in there because we produce '1 + 2i' instead of '1+2i' in Complex.Str
and I wonder where that's specced 13:10
dalek ecza: bfb4205 | (Paweł Murias)++ | / (3 files):
Sending string with nulls in the middle from p5 land works.
jnthn moritz: I think TimToady++ did a spec commit on that like, really recently. 13:11
moritz that commit didn't spec Complex.Str though 13:12
13:12 jferrero joined
dalek ast: 077c384 | (Paweł Murias)++ | S01-perl-5-integration/strings.t:
Test passing string with unicode and nulls to/and from perl5.
13:13
moritz nom: say Complex.new(1, Inf).Str
p6eval nom 326de8: OUTPUT«1 + Infi␤»
jnthn moritz: it does
383 +Returns a string representation of the form "C<1+2i>", without
384 +internal spaces. (C<Str> coercion also returns this.)
pmurias one more passing test file for niecza ;)
moritz oh
moritz blind
pmurias moritz: blind? 13:14
moritz pmurias: I've read through the diff and still missed the thing I was actually looking for 13:15
pmurias is slow today
jnthn isn't doing so bad, but you'd hope so by the 5th cup of black coffee :) 13:16
mathw on the bright side, you can now fix it :D
arnsholt My hands usually start shaking from too much caffeine around the fifth cup ^_^ 13:18
masak everybody knows you empty the cup, and then you throw it against the wall. shouting "we need to do something to energize the community!" 13:20
felher colomon: I just looked into your Math::Prime module. That lazy-list with the next-prime function ist quite cool :)
jnthn Well, at this place I'm more likely to shout, "write f'ing commit messages!!1!!!" :) 13:21
But maybe I should try throwing mugs...nothing else I've tried has worked yet. :)
13:23 takadonet joined
masak jnthn: commit messages only start to make sense after atomic commits start to make sense. 13:27
jnthn masak: Well, yeah, that's the underlying issue. 13:28
(I tend to talk about the two together.)
masak and atomic commits... aren't obvious. they have to be discovered. 13:29
in particular, they're not the natural state of being if your VCS happens to suck.
jnthn TFS. :'( 13:30
dalek ast: 3bf5bff | (Paweł Murias)++ | S01-perl-5-integration/subs.t:
Add missing plan.
ecza: 96a7a50 | (Paweł Murias)++ | t/ (3 files):
Add t/run_spectests_p5 which runs the spec tests for p5 integration.
13:32
masak jnthn: ah.
pmurias moritz: all spec test should have an explicit plan? 13:34
moritz pmurias: most
mathw TFS?
moritz ie those that can be easily (-ish) be verified by a human 13:35
jnthn mathw: Team Foundation System. The crappy Microsoft one that's just a tiny bit less crappy than SourceSafe, but still mostly awful. 13:36
mathw ah that
masak s/System/Server/
mathw I've never had the displeasure
We use git at my place \p/
\o/ 13:37
git and thoroughly modern C#
jnthn masak: heh, you don't work with it and you know better than me :P
mathw it's not quite as good as Perl 6, Haskell or Lisp
but it's pretty groovy
jnthn likes C#
jnthn loves Git :)
mathw Git is cool
arnsholt likes C# as well
mathw although we've got some weird problems with it
like my TortoiseGit has stopped being able to rebase properly
and my GitExtensions in VS2010 has decided that including the committer name is too much trouble (it worked fine before) 13:38
but in general I like it, and although my colleague hasn't quite grasped all of it yet I like how we can throw branches around with wild abandon and it just copes :D 13:39
and C# having closures is the most awesome thing, especially when you start playing with the Reactive Framework 13:40
We'd both like to use F# but in some ways it's actually quite primitive and the tool support is certainly very clunky
flussence blah, VCSes. I'm still stuck on svn at $dayjob... but I use git for all new projects without telling anyone :) 13:44
moritz "guerilla git" 13:45
wouldn't that make a great book title? :-) 13:46
flussence it'd probably be a short book :)
.oO( "1. Use git! 2. Don't let anyone catch you." )
13:47
13:47 zjmarlow left
dalek ast: 645f735 | moritz++ | / (4 files):
5 rakudo unfudges found by autounfudge.pl
13:49
kudo/nom: e7c5034 | moritz++ | t/spectest.data:
run exit-in-if.t
moritz flussence: it could talk about git-svn, git-cvs, git-hg and whatever, how to adapt to their branching models etc.
masak flussence: I do the same. I can fruitfully use git to organize my own commits, and then interact in whatever way necessary with other people's VCS, or lack of it. 13:50
13:51 nornagest left
flussence I tried git-svn once... the prehistoric svn server here *really* didn't like it for some reason. I ended up having to fix corrupted XML strings in a repo dump by hand. :( 13:51
mathw I tried it, it went strange 13:52
colomon yeah, I didn't lose anything, but it got kind of wonky over time 13:53
moritz nom: my num $x = 1.2e0; say "foo $x $bar"
p6eval nom acee93: OUTPUT«===SORRY!===␤Variable $bar is not predeclared at line 1, near "\""␤»
moritz nom: my num $x = 1.2e0; say "foo $x bar"
p6eval nom acee93: OUTPUT«foo 1.2 bar␤»
moritz t/spec/S12-attributes/defaults.t has a line has $.self_in_code = { self.echo }; 13:58
is that allowed?
(I'd say "no", but I'm not 100% sure)
colomon we had a bunch of discussions touching on that yesterday 13:59
my impression is "no one knows" 14:01
in general, that test file is weird and I'm not sure completely thought out 14:02
like, is there really a difference between what's going on in line 28 and line 29? Isn't 28 required to be a thunk? 14:04
in which case the line 43 test is wrong
and also, making it an eval instead of just a normal class is unnecessary
14:05 estrabd joined
dalek ast: c831c95 | moritz++ | S (2 files):
fudge kv.t for rakudo
14:05
masak disfondly remembers A12's weird ideas about how blocks and attribute initialization would work together 14:07
I'm glad we evolved those ideas :) 14:08
moritz colomon: the eval is even wrong, because then the compiler complains that Foo is only stubbed 14:09
colomon: in my last roast commit I sneakily included a small patch that removed the eval
colomon: erm, yes. After a closer review I'd just like to delete that test file 14:11
14:12 nornagest joined
moritz nobody seems to have touched that file except for general-purpose cleanup 14:13
dalek ast: 25075dc | moritz++ | S12-attributes/defaults.t:
remove outdated test file
colomon eh, I'd have been in favor of rewriting it to current standard. but it might indeed be easier to start from scratch. 14:14
moritz feel free to revert+rewrite 14:16
but IMHO those "test how many times this closure has been executed" tests are fragile and not very benefitial 14:17
it's the kind of test you write if you don't really understand the feature at hand
14:19 kaleem left
colomon hmmm. It seems like a reasonable sort of test to me; my complaint was just that it got all the details wrong. 14:29
very wrong 14:30
14:43 sayu joined
tadzik 'afternoon 14:43
dalek ast: 9e48a8d | moritz++ | S32-num/stringify.t:
fudge S32-num/stringify.t for rakudo
ast: 5d4cfd4 | (Solomon Foster)++ | integration/error-reporting.t:
Refudge for niecza.
masak tadzik: \o 14:44
dalek kudo/nom: b75ebed | moritz++ | src/core/Complex.pm:
update Complex.Str to match current spec
14:45
kudo/nom: 2c1d2f9 | moritz++ | t/spectest.data:
run S32-num/strintify.t
felher tadzik: o/ 14:46
colomon moritz: I've reverted your change and started rewriting the tests locally. :) 14:50
moritz: but I'm going to go skiing before I finish, I think. ;)
moritz colomon: have fun! 14:51
14:55 eviltwin_b is now known as geekosaur
colomon oh! if the default value is explicitly a closure, then you're assigning the closure to the attribute, right? 14:58
colomon had not fully appreciated how incredibly wrong that test file was 14:59
afk # off to City Forest 15:01
15:02 birdwindupbird left 15:03 PacoAir joined, xinming_ joined
[Coke] niecza: say ("ACHOO")x10; 15:03
p6eval niecza v13-279-g16b6b2e: OUTPUT«===SORRY!===␤␤Whitespace is required between alphanumeric tokens at /tmp/iMGUgMfcAD line 1:␤------> say ("ACHOO")x⏏10;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ …
[Coke] aw.
15:06 xinming left
PerlJam Does latest NQP not build against lated Parrot? 15:07
tadzik I doubt it
masak niecza: say "ACHOO"x 10 15:09
p6eval niecza v13-279-g16b6b2e: OUTPUT«ACHOOACHOOACHOOACHOOACHOOACHOOACHOOACHOOACHOOACHOO␤»
masak niecza: say "ACHOO"x\10
p6eval niecza v13-279-g16b6b2e: OUTPUT«Unhandled exception: Cannot use value like Capture as a number␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 211 (Any.Numeric @ 5) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.settin…
masak niecza: say "ACHOO"x\ 10
p6eval niecza v13-279-g16b6b2e: OUTPUT«ACHOOACHOOACHOOACHOOACHOOACHOOACHOOACHOOACHOOACHOO␤»
PerlJam ah ... :instanceof was removed from P 15:10
er PIR
jnthn er... 15:16
And replaced with...? 15:17
PerlJam dunno. I just read the parrot log
tadzik whiteknight's to be asked, I guess
PerlJam Though, this looks relevant: github.com/parrot/parrot/issues/560
15:18 kaare__ joined 15:25 kaleem joined
jnthn NQP's multi-dispatch uses it. 15:27
jnthn didn't know about the ticket :( 15:28
Anyway, looks like next NQP release will just have to be against the previous month's Parrot. It's non-trivial to change NQP to avoid using :instanceof. 15:29
15:31 Trashlord left
moritz huh, is the broken parrot already released? 15:33
or is it too close to the release already?
PerlJam the parrot release is tomorrow isn't it? 15:34
moritz aye
jnthn moritz: Well, we could ask them to revert the removal too 15:44
eek, I thought the release was next week. Calendar reading fail. :/ 15:45
PerlJam jnthn: what exactly is :instanceof used for? It looks like a compile-time note that says the subroutine is a DispatcherSub rather than the normal Sub and then there's code that relies on knowing what sort of sub its dealing with. Is there no other compile-time (or, earlier-than-run-time) way to attach this information? 15:47
jnthn PerlJam: Not so far as I know.
PerlJam: I mean, it's not jsut attaching info, but it's creating it as a different PMC type 15:48
Turning it into the subtype would be messy.
I can find a way, it's just...not a great use of time given how many real issues exist. 15:49
15:49 wtw left
PerlJam so, to replace it now, would mean that you'd have to "manually" create DispatcherSubs and make sure they are created early enough to be useful? 15:49
jnthn PerlJam: It'd mean in-place type changing the existing Sub PMCs, I think. 15:50
[Coke] I think we can just start with "hey, we were using that, do you mind?"
PerlJam [Coke]: indeed.
jnthn [Coke]: Yes, worth a try.
PerlJam Maybe whiteknight has a quick solution too </hopeful> 15:51
jnthn In the long run, I don't really want to be using :instanceof.
[Coke] opened the dialog. 15:52
jnthn [Coke]: Thanks.
masak [Coke]++
[Coke] ah, so did benabik++, apparently. 15:53
jnthn I would rather not have to deal with its removal just yet, though.
[Coke] doesn't want to run the compiler spec stats again after all those nom commits!
jnthn ;) 15:54
[Coke] looks for some LHF first. ;) 15:55
jnthn [Coke]: Why isn't Rakudo allowed to be ahead some days? :) 15:56
15:56 molaf left
felher Could someone please explain to me the difference between the following statements? 15:58
nom: sub x() { say "x"; } x();
p6eval nom 2c1d2f: ( no output )
felher nom: sub y() { say "x"; } y(); 15:59
p6eval nom 2c1d2f: OUTPUT«===SORRY!===␤Confused at line 1, near "sub y() { "␤»
felher Ah...
because 'x' is also the string-repetition operator?
moritz felher: both should be mis-parses
oh right, yes
need a ; after }
felher moritz: thnx :) 16:00
I tested it for about 10 minutes and the second in poste it here it i realize that 'x' is the string-repetition operator ... 16:01
16:02 bluescreen10 left 16:03 am0c left
jnthn std: sub x() { say "x"; } x() 16:04
p6eval std dc62e1d: OUTPUT«ok 00:01 111m␤»
jnthn Even STD sees it as the string repetition operator :)
moritz std: sub y() { say "x"; } y() 16:05
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/OhIFilLcmU line 1:␤------> sub y() { say "x"; }⏏ y()␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Pa…
jnthn Teaches you to call your sub something better than x :P
felher indeed :)
jnthn ok, home time & 16:06
16:07 mj41 joined
masak decommutes 16:29
16:33 kaleem left 16:38 Chillance left 16:39 molaf joined 16:42 kaleem joined
jnthn home 16:42
colomon perl6: class Foo { has $.a = { say "NicGaviskey"; }; }; my $f = Foo.new; $f.a() 16:52
p6eval pugs b927740, rakudo 2c1d2f, niecza v13-279-g16b6b2e: ( no output )
colomon perl6: class Foo { has $.a = { say "NicGaviskey"; }; }; my $f = Foo.new; $f.a()()
p6eval pugs b927740, rakudo 2c1d2f, niecza v13-279-g16b6b2e: OUTPUT«NicGaviskey␤»
colomon jnthn: reckon that's correct behavior?
16:53 thou joined
jnthn colomon: Looks fine to me. 16:54
The parens on $f.a() are invoking the method a
colomon right
16:55 Trashlord joined
TimToady but see S02:2426 16:56
colomon nooooo!
TimToady perl6: class Foo { has $.a = { say "NicGaviskey"; }; }; my $f = Foo.new; $f.a.()
p6eval pugs b927740, rakudo 2c1d2f, niecza v13-279-g16b6b2e: OUTPUT«NicGaviskey␤»
colomon that's also correct? 16:57
TimToady but see S02:2426
colomon I'm looking but not seeing
TimToady $.foo.() # means $.foo().() 16:58
colomon I gathered as much, I'm just not seeing justification for that in S02:2426. Maybe the stupid software took me to the wrong line number? 17:00
TimToady should just be the paragraph before that example 17:02
done a git pull lately?
or is the ir clog link not working? 17:03
colomon did you mean S12:2426?
I do see a reference there in S12
TimToady no S02, the section Ampersand and invocation 17:05
mikemol Kinda reading a lot of backlog. If you assume all numbers have a string representation, why does that imply inclusion of a string pointer with the number? Couldn't you generate that on-demand, possibly storing the representation in a cache as an optimization for subsequent calls?
colomon TimToady: ah, if I jump to that title I see it. 17:06
mikemol I mean, if being lazy is a virtue, be lazy, dangit!
TimToady colomon: so obviously the line link is screwed up somehow
colomon TimToady: yeah 17:07
TimToady mikemol: but we don't want to kludge up the representation all numbers just to handle val() allomorphism
this is one tail that should not wag the dog
so I think MI is a better solution
dalek ast: c411376 | jnthn++ | S12-class/literal.t:
Fix a test that thought a type object should be boolean true.
17:09
TimToady and maybe it's not so bad if we get an ambiguous dispatch out of an IntStr; that's why + and ~ are single character coercers, after all... 17:10
and we can always get smarter down the road; failing the ambiguous dispatch is the conservative thing to do for 6.0 17:11
sorear: ^^ you can put it back on your todo list :) 17:12
mikemol I just got a boatload of tuit drains finally covered; the OMGWTF busy season is finally over. Need to do a little wedding planning, possibly prep for a Penguicon presentation, a tweak to RC's syntax highlighting to allow highlighting to be switched off...but then I should be able to look at p6 specs again. 17:13
17:13 xinming_ left
colomon Penguicon! 17:14
mikemol I just presented on IPv6 at MDLUG, and they want me to submit to present on IPv6 at Penguicon. So, yeah. :)
colomon cool 17:15
I presented on p6 last year.
but haven't gotten beyond thinking about ConFusion this year. ;)
dalek kudo/nom: 86bb3ae | jnthn++ | src/ (3 files):
Make sure we don't generate a throwaway GLOBAL in an eval - just use the one currently in force.
17:16
kudo/nom: 6f9a909 | jnthn++ | t/spectest.data:
Run S12-class/literal.t.
mikemol Only realy question in my mind is if I'll have enough time to divide my talk into each of IPv6 and your {server|home network|enterprise network|software}...Each case has different takes on capabilities and considerations.
ast: 26d151e | (Solomon Foster)++ | S12-attributes/defaults.t:
Revert "remove outdated test file", to provide a starting framework for developing a sensible modern version of these tests.

This reverts commit 25075dceff423a637e93e97642a9efe6b5653317.
17:23
ast: 15bfd0d | (Solomon Foster)++ | S12-attributes/defaults.t:
Rewrite test to conform to current standard. moritz++, other p6ers, please code review.
ecza: 68084c6 | (Solomon Foster)++ | lib/CORE.setting:
Borrow Rakudo's implementation of categorize.
17:24
ecza: a59163d | (Solomon Foster)++ | t/spectest.data:
Turn on S32-list/categorize.t.
ecza: 83e8bea | (Solomon Foster)++ | t/spectest.data:
Turn on S12-attributes/defaults.t.
[Coke] neoformix.com/spot/#/perl6 - new visualization tool for twitter. (perl6 is kind of a light topic for it, try just "perl") 17:27
[Coke] restarts the niecza spectest run. ;)
[Coke] sees that his gist was tweeted. huh. 17:29
[Coke] would have gussied it up.
colomon tweeted by whom? 17:30
[Coke] twitter.com/#!/audreyt/status/1588...0580610049
she appears to be patient zero.
colomon danke 17:31
[Coke]: to be fair, S12-attributes/defaults.t probably works on Rakudo now, too, they just haven't had a chance to add it to spectest.data. Give them a bonus 32 or so. 17:33
17:35 GlitchMr42 joined, daxim left
[Coke] will check them for LHF. 17:37
... but later. ;)
17:38 GlitchMr left 17:40 zjmarlow joined
masak zjmarlow: hi! 17:41
17:42 GlitchMr42 left
zjmarlow Hello. 17:50
17:51 packetknife joined 17:57 Chillance joined
dalek ast: 66892d4 | jnthn++ | integration/advent2009-day22.t:
Remove bogus type constraint, which could never have worked (ng wasn't good at checking attribute type constraints though).
17:58
18:00 ksi joined 18:03 dakkar left
dalek ast: ff3141d | jnthn++ | S02-types/capture.t:
nom re-fudging
18:10
kudo/nom: 98c9ddf | jnthn++ | src/core/Parameter.pm:
Another couple of tweaks to make Signature.perl a little less wrong.
kudo/nom: d032415 | jnthn++ | src/core/Parcel.pm:
Improve Parcel.Capture.
kudo/nom: 5bc4fdc | jnthn++ | t/spectest.data:
Turn on two more integration tests.
[Coke] b: say 19182-19131 18:11
p6eval b 1b7dd1: OUTPUT«51␤»
[Coke] rakudo has pulled ahead again. ;)
I am not doing another "official" run until tomorrow though. ;) 18:12
18:19 fridim_ joined 18:22 fsergot joined 18:31 zjmarlow left 18:47 spine joined 18:54 sayu left 19:01 mj41 left, molaf left 19:02 nornagest left, kaleem left 19:03 takadonet left 19:06 GlitchMr joined, revdiablo joined, revdiablo left, revdiablo joined
felher Any comments on: gist.github.com/1622404 ? Otherwise i put it on rosetta-code (rosettacode.org/wiki/Miller-Rabin_p...lity_test) in a few hours. 19:08
moritz felher: !%% is a bit weird for % 19:12
felher moritz: oh, yeah. It first was only %% at a different position. Than i copied it up and made it to !%% instead of %. good point :) 19:14
moritz felher: you don't need any parens around the condition of the 'while'-loop
felher moritz: another good point :) 19:15
moritz my $x = $a ** $d mod $n; # in the underlying math library that we use for bigint we have a special function for that... but it's not exposed to p6 space :/
felher moritz: yeah. I also looked for a math-module but there doesn't seem to be one that handles that case, yet. :) 19:16
felher looks into math::bigint... maybe.... :) 19:17
colomon p6's math::bigint module is quite obsolete now. :) 19:19
felher Nope, no modpow in there :)
dalek ecs: dc8b0a4 | larry++ | S02-bits.pod:
Revise val() semantics to use MI

And we'll conservatively leave ambiguities ambiguous for now.
19:20
ecs: c4a5930 | larry++ | S02-bits.pod:
Provide rationale for one-pass parsing
TimToady re modpow, see rosettacode.org/wiki/Modular_expone...ion#Perl_6 19:21
19:22 kmwallio joined 19:23 packetknife left 19:24 packetknife joined
TimToady felher: ^^ 19:25
I only just added that a few days ago
felher TimToady: Oh, thnx. Yeah, i'll use that :)
TimToady++
masak oh, so *that's* the hard lesson of source filters! 19:26
TimToady people seldom generalize that lesson sufficiently 19:27
masak I thought it was something like "don't treat language as strings without structure" :)
TimToady == treat as a different language
jnthn moritz: ($a ** $d mod $n) if we expose the bigint op as an nqp op then we can probably get the optimizer to do the re-writing of it. 19:28
moritz jnthn: I'll take care of exposing it as nqp op 19:29
TimToady it's not clear whether that should be done unless you know you're in Int
jnthn TimToady: Oh, I was planning on re-writing at the opcode level 19:30
TimToady: That implies that we already inlined ** and mod.
TimToady what if they're floaters? 19:31
jnthn TimToady: What? :)
TimToady: As in, floating point?
TimToady or Rats 19:32
jnthn TimToady: Inlining implies a compile time multiple dispatch.
TimToady: That implies static knowledge that we have an Int.
TimToady: And that no overriding candidates that'd bust things have been introduced.
TimToady
.oO(gee, how come when I add an Int declaration at line 42, line 8927 doesn't run out of memory?)
19:33
jnthn TimToady: I'm only proposing the transform take place on the (low level) opcodes that operate on bigints.
TimToady which makes it very mysterious
the user now has to predict the behavior of the optmizer 19:34
jnthn Only in so far as gradual typing is mysterious. :)
TimToady though I suppose one could view it as a strange form of strength reduction
jnthn TimToady: Maybe I missed something - I thought what moritz was suggesting was replacing two operations with a single, more efficient one.
TimToady is it always more efficient? 19:35
moritz fsvo "always" :-)
jnthn :_)
moritz I know that it'll be always more runtime efficient with a single op in rakudo 19:36
jnthn Even if the operation isn't greatly so, not creating an intermediate result only to throw it away again will be.
Ints are GC-able.
(And escape analysis etc is a little way off. :))
19:37 birdwindupbird joined
TimToady but maybe it's a bit wrongish to only apply to Int; three Rats or Nums that happen to be integers could also benefit 19:37
moritz jnthn: btw did you see my comments on the zavolaj tests under linux?
TimToady so maybe you should *always* turn it into a modexp of some sort, and let it decide 19:38
moritz TimToady: doing that optimization for three floats that happen to be int could change the result
TimToady as in make it more correct? :P
moritz because they can overflow in the ** part
aye :-)
fsvo "correct" :-)
TimToady certainly FatRats should always produce an exact result 19:43
well, at least with integer powers 19:44
FatRat ** Int % FatRat should be exact
19:46 Vlavv` joined
TimToady btw, I think rosettacode.org/wiki/Modular_expone...ion#Perl_6 really shines in helping the reader understand the algorithm 19:49
19:49 Vlavv_ left
TimToady assuming they know how 'repeat' and assignops work... 19:49
19:51 Trashlord left
moritz aye; reads much nicer than the libtommath code :-) 19:51
dalek p: 97760d4 | moritz++ | / (3 files):
nqp::expmod_I
19:52
19:53 pnu left, pnu joined, itz_ left 19:56 jferrero left 19:57 kmwallio left, revdiablo left, geekosaur left, hundskatt left, localhost left, cooper left, overrosy_ left, sivoais left, drbean left, groky left, BinGOs left, moritz left, ruoso joined, moritz joined, sivoais joined, cj joined, overrosy joined, cooper joined, revdiablo joined, revdiablo left, revdiablo joined, cosimo joined, kmwallio joined, geekosaur joined, prammer joined, hundskatt joined, drbean joined 19:58 groky joined, localhost joined 20:00 itz joined 20:07 BinGOs joined 20:09 fsergot left
felher aye 20:13
20:15 GlitchMr42 joined 20:17 jferrero joined 20:18 GlitchMr left
sorear good * #perl6 20:20
felher o/ sorear
masak sorear! \o/ 20:21
20:24 birdwindupbird left
masak perl6: say "foo" ~~ / f (o) $0 / 20:28
p6eval niecza v13-285-g83e8bea: OUTPUT«#<match from(0) to(3) text(foo) pos([#<match from(1) to(2) text(o) pos([].list) named({}.hash)>].list) named({}.hash)>␤»
..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
..rakudo 5bc4fd: OUTPUT«=> <foo>␤ 0 => <o>␤␤»
masak in Perl 5, having backreferences be spelled $1 rather than \1 would require a special case, because the "natural" thing for Perl 5 to do would be to interpolate the *last* $1 during regex compilation. 20:30
20:31 fsergot joined
masak the \1 backreferences come from sed, right? 20:32
jnthn buubot_backup: eval print "foo" =~ /f(o)$0/
buubot_backup jnthn: 1
jnthn er :) 20:33
buubot_backup: eval print "foo" =~ /f(o)$1/
buubot_backup jnthn: o1
masak it works? great. :)
jnthn buubot_backup: eval print "foo" =~ /f(o)\1/
buubot_backup jnthn: o1
masak (no print needed)
jnthn oh! 20:34
moritz buubot_backup: eval 'foo' =~ /f(o)\1/; $& 20:35
buubot_backup moritz: foo 20:36
moritz buubot_backup: eval 'foo' =~ /f(o)$1/; $&
buubot_backup moritz: fo
moritz buubot_backup: use warnings; eval 'foo' =~ /f(o)$1/; $&
buubot_backup moritz: Couldn't match input.
moritz buubot_backup: eval use warnings; 'foo' =~ /f(o)$1/; $&
buubot_backup moritz: Use of uninitialized value $1 in regexp compilation at (eval 20) line 1. fo
sorear eval 2
buubot_backup sorear: 2
masak ah; moritz++ 20:37
so they don't work.
moritz eval use warnings; $_= 'fo'; s/(o)/\1$1/; $_ 20:38
buubot_backup moritz: \1 better written as $1 at (eval 20) line 1. foo
masak right, so "use \1 here, use $1 there" :) 20:41
or, as A05 has it, "Tell me again, when do I say \1, and when do I say $1? Why are they different?" 20:42
20:50 alester joined 21:01 rjbs- joined 21:02 fridim_ left
flussence is currently crawling through two screens of gdb asm dumps and scary 128-bit code... trying to get my browser to not crash on the nyan cat YT video 21:02
21:03 pat_js joined
flussence I can't really complain about rakudo's lack of error message line numbers after this :) 21:04
21:05 zby_home joined
masak can :) 21:06
rsimoes1 Has Scheme's numeric tower ever been looked at for Perl 6? 21:08
abstracting numeric type relationships away from the system's representation of them is a pretty neat idea 21:09
21:09 GlitchMr42 left
rsimoes1 www.r6rs.org/final/html/r6rs/r6rs-Z-H-6.html 21:10
21:10 kaare__ left 21:13 Trashlord joined
tadzik something broke panda 21:13
tadzik golfing 21:14
jnthn oh crap, I removed the bamboo!
21:14 zjmarlow joined, spine left
jnthn tadzik: What's the failure mode? 21:15
tadzik rakudo: gist.github.com/1623088
p6eval rakudo 5bc4fd: OUTPUT«Type check failed in assignment to '$v'; expected 'Mu' but got 'Command'␤ in method REIFY at src/gen/CORE.setting:5142␤ in method reify at src/gen/CORE.setting:4335␤ in method reify at src/gen/CORE.setting:4335␤ in method gimme at src/gen/CORE.setting:4699␤ in…
tadzik jnthn: as above
jnthn WTF?!
tadzik you have a kickass machine, you bisect it :P 21:16
21:17 pat_js left
tadzik peeks at CORE.setting 21:17
jnthn tadzik: Needn't, I already know where it is
tadzik cool
21:21 LoRe_ is now known as LoRe
PerlJam surely that would have been caught by a failed test? 21:21
jnthn PerlJam: You'da thunk so 21:24
masak rsimoes1: Perl 6 has more of a "numeric comb" -- everything's Numeric, and then there are subtypes under that.
jnthn tadzik: Any chance of a test?
masak rsimoes1: I don't think anyone ever considered a tower. seems a bit too abstract for Perl 6, perhaps.
rsimoes1: people sometimes have the expectation that an Int will be a Num or a Rat. 21:25
tadzik jnthn: surely 21:26
rsimoes1 in the tower, an Int isa Number and does Rat, does Real, does Complex
dalek kudo/nom: e700b91 | jnthn++ | src/core/ (2 files):
Fix regression in usage message generation introduced by workaround for usage message generation when working around changes to Parameter.
21:26 pat_js joined
tadzik wait, wat 21:27
jnthn It's, er, what happened. :)
rsimoes1 I guess the tower is mapped to the numeric set relations 21:28
sorear rsimoes1: niecza's overload resolution mechanism was conciously modeled on the r(5)rs numeric now
rsimoes1 oh, groovy
sorear s/now/tower/ 21:29
I still haven't read r6rs
"I feel old"
rsimoes1 the tower was preserved in r6rs
so that's a relief =]
masak rsimoes1: right, people sometimes expect the Perl 6 numeric type system to map to numeric set relations. it doesn't.
rsimoes1 complex is non-real, right? 21:31
sorear right
rsimoes1 eh, easy enough to remember 21:32
dalek ecs: 962cd09 | sorear++ | S03-operators.pod:
[S03] fix tiny typo
21:35
21:37 packetknife left, packetknife joined 21:41 Trashlord left 21:53 cognominal left 21:58 molaf joined 22:09 kmwallio left
dalek ast: ab726ff | tadzik++ | S06-other/main-usage.t:
Add a test for a freshly discovered regression
22:16
jnthn tadzik: Thanks. :) 22:24
22:28 donaldh joined
donaldh Hi jnthn 22:36
jnthn o/ donaldh 22:37
donaldh I'm just reading today's irc log about Zavolaj
jnthn :)
donaldh I _had_ sqlite working with zavolaj v1.
jnthn donaldh: OK. In theory, it should not be a difficult port. If it is, I'd like to understand why so I can fix things. 22:38
donaldh Yep, I'm just reading v2 to understand it.
jnthn (e.g. is native('...') is still the same, OpaquePointer is still there, etc.) 22:39
Arrays changed somewhat.
donaldh If you look at branch out_params on github, I used 'is rw' to mark out params. 22:40
sub sqlite3_open_v2( Str $filename, OpaquePointer $ppDB is rw, Int $flags, Str $zVfs )
22:40 alester left
donaldh It was a bit hacky because I was learning and seemed to be hitting issues with parrot NCI at the time. 22:41
jnthn Oh... :) 22:42
Yeah, I only got the stuff in Zavolaj 1 master in place.
You can hack it by doing: 22:43
22:43 am0c joined
donaldh If I'd 'finished' what I did on out_params I'd have asked you to merge it :) 22:43
jnthn my $ppDB := CArray[Int].new; $ppDB[0] = 0; 22:44
And then passing that
Need to do out params properly really though.
Should be easier to do it in a good way now.
donaldh I think we'll need a new type map for 'is rw' parameters. 22:45
And maybe some magic to create an instance of the correct type when the pointer is null.
Is that possible from a type extracted from a signature? 22:46
s/from/on/
jnthn All the stuff I've done so far uses type objects to handle C NULLs.
(So yes.)
sorear o/ donaldh 22:48
22:48 donri left
donaldh o/ 22:48
22:53 panterax left, panterax joined
dalek ecza: 0ae0fa0 | (Paweł Murias)++ | / (2 files):
Enable specifing list context to p5 subs (we still support only one return value).
22:54
pmurias sorear: how can we support my $foo=123;eval('print $foo',:lang<perl5>)? 22:56
sorear That's a bit beyond my competence. Better to ask #p5p 23:09
jnthn niecza: role R { }; my $x = 0; $x does R; say $x.WHAT 23:11
p6eval niecza v13-285-g83e8bea: OUTPUT«Int+R()␤»
jnthn niecza: role R { }; my $x = 0; $x does R; say 0.WHAT
p6eval niecza v13-285-g83e8bea: OUTPUT«Int+R()␤»
jnthn Oops. :)
(Rakudo has same issue.)
dalek ast: 2327d69 | jnthn++ | S14-roles/mixin.t:
Unfudge a test for Rakudo. Along the way, make it not attempt to mix in to constants (which should fail, but currently doesn't in Rakudo nor Niecza).
23:19
kudo/nom: 44d5f15 | jnthn++ | src/ (2 files):
Implement 0 but Answer(42) style of mixing in (for does also).
sorear urp, I thought I fixed that alreay 23:20
jnthn sorear: How are you planning to fix it? 23:24
That is, how to we decide what we can/can't mix in to?
Rakudo has had a "fix me" comment there for months...
sorear jnthn: I mean I thought I fixed the test :) 23:28
jnthn sorear: oh :) 23:29
sorear my best idea for the real issue has been an 'Immutable' tag role
incidentally, I need this for constant folding too
jnthn My word, these trait tests are bitrotten
Yeah, the constant folder I started hacking on the other day mostly went off "do we have a known compile time value for this thingy", which is too loose. 23:35
dalek ast: 60cabaf | jnthn++ | S14-traits/routines.t:
Correct routine trait test (which didn't even parse!) and todo one test for Rakudo.
23:39
ast: ebfbce1 | jnthn++ | S14-traits/attributes.t:
Fix a concatenation that was presumably meant to be a smartmatch operator.
kudo/nom: fb11366 | jnthn++ | src/core/Attribute.pm:
Add missing accessor to Attribute.
kudo/nom: 77e31ae | jnthn++ | t/spectest.data:
Turn on a couple of traits tests.
23:41 Trashlord joined 23:46 pmurias left 23:48 tokuhirom joined 23:56 ksi left 23:57 PacoAir left