»ö« 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! | tinyurl.com/p6contest
Set by moritz_ on 28 December 2010.
00:24 [Coke] left 00:29 masonkramer left, masonkramer_ joined 00:30 dukeleto left, dukeleto joined 00:33 lukas___ left
sorear niecza: class Foo { has $.x; sub bar { :$.x } }; my $y = Foo.new; $y.x = 5; say $y.bar.dump 00:43
p6eval niecza v1-35-gc9d17a7: OUTPUT«===SORRY!===␤Not an ARRAY reference at /home/p6eval/niecza/src/Niecza/Actions.pm line 1548.␤Check failed␤»
00:46 rgrau left 00:48 [Coke] joined 01:07 [Coke] left 01:13 MayDaniel left 01:24 [Coke] joined 01:30 yarp left 01:33 yarrack_logging joined 01:34 [Coke] left
dalek ecza: e147750 | sorear++ | v6n/RxOp.pm6:
[v6] Translate RxOp
01:46
01:47 icwiener left 02:24 am0c left 02:45 takadonet left 02:48 florz left 02:49 roen_ joined 02:50 bacek joined 02:57 shi left 02:59 florz joined 03:08 mtve joined, bacek_ joined 03:11 bacek left 03:13 alester joined 03:17 gbacon left, yarp joined 03:33 starcoder joined 03:38 _twitch joined
sorear STD's requirement to predeclare classes is getting very irritating 03:40
esp. since the declarations have to be in the same file... 03:41
jasonmay can you dynamically predeclare a class? 03:47
like if you have $class
sorear if you have $class you can just use it 03:51
I can't see how to use Foo::Bar without there being a predeclaration already 03:52
$Foo::Bar can be postdeclared, but Foo::Bar can't ...? 03:53
until TimToady comes back with a better idea, I'll be using our $Foo = class Foo { ... }
then I can access it as $GLOBAL::Foo anywhere
(yes, I know I could say eval("Foo::Bar") 03:54
)
also ::("Foo::Bar")
oh hmm, ::Foo::Bar works. 03:55
03:56 starcoder left 03:59 starcoder joined
shortcircuit If I understand the premise behind Rakudo's architecture, as little as possible is written in PIR, then as little as possible is written in NQP, and the rest is written in Perl 6. 04:04
I'll admit I've been pondering dastardly things like seeing how difficult it would be to write the parts written in PIR in C++ and in JavaScript. 04:05
04:06 kanishka joined
sorear shortcircuit: join my evil :> 04:14
04:48 roen joined 04:51 roen_ left 04:56 roen_ joined 04:59 roen left 05:00 skangas left 05:01 yarp left 05:15 bacek__ joined 05:18 bacek_ left 05:21 yarrack_logging left 05:25 alester left 05:33 yarp joined 05:37 bacek_ joined 05:41 bacek__ left 05:49 yarrack_logging joined, bacek__ joined 05:53 bacek_ left 05:55 am0c joined 06:01 roen_ is now known as roen, bacek__ left
dalek ecza: 8004fc4 | sorear++ | lib/CLRBackend.cs:
Fix require
06:07
ecza: 37ba8bc | sorear++ | v6/STD.pm6:
[v6] New heredoc model for immutable-cursor compatibility
ecza: e571278 | sorear++ | / (3 files):
[v6] Misc fixes to get STD building again
06:12 am0c_ joined 06:13 cognominal left 06:16 am0c left 06:17 am0c_ is now known as am0c
dalek ecza: dc7e939 | sorear++ | v6n/Op.pm6:
[v6] First 1/3 of Op translated
06:25
06:27 kaare joined 06:28 kaare is now known as Guest6982, lukas_ joined 06:29 Guest6982 is now known as kaare_ 06:40 yarp left 06:41 am0c left, cognominal joined 06:43 am0c joined 06:54 zby_home_ joined 07:01 risou joined 07:02 risou left, wtw joined, bacek joined 07:03 risou joined 07:09 am0c left
moritz_ niecza: say 1..3 07:17
p6eval niecza v1-35-gc9d17a7: OUTPUT«␤Unhandled Exception: System.Exception: Unable to find lexical &infix:<..> in mainline␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at
..Niecza.CLRBackend.NamProcessor.RawAccessLex (Syste…
dalek ecza: 9dc85db | sorear++ | v6 (25 files):
[v6] Merge v6 and v6n
07:20
ecza: 3b08fb0 | sorear++ | v6/ (2 files):
[v6] Second 1/3 of Op translated
07:20 Gahrian joined
moritz_ fwiw, niecza passes man-or-boy test 07:22
niecza: sub f(&x) { &x() }; f -> { say 3 } 07:24
p6eval niecza v1-35-gc9d17a7: OUTPUT«3␤»
moritz_ niecza: sub f(&x) { g(&x) }; sub g(&x) { x() }; f -> { say 3 } 07:25
p6eval niecza v1-35-gc9d17a7: OUTPUT«3␤»
moritz_ the man-or-boy.t warns about &x1..&x3 not being used, although it is in fact being used (passed on to other subs) 07:27
sorear yes
i noticed that earlier with STD's &termstate and &infixstate 07:28
I think it's a STD bug but haven't gotten to investigate
I wonder how much stuff will break if I have a class with a method named "list" that isn't related to Any.list 07:35
several classes from niecza have such methods
07:38 Tene is now known as TeneIsTi`ocpi 07:39 TeneIsTi`ocpi is now known as Tene
dalek ecza: 4e74fd6 | sorear++ | v6/Op.pm6:
[v6] More Op translation
07:41
07:41 yarrack_logging left 07:43 yves_ joined
diakopter dares to wonder how fast niecza does man-or-boy up to the 25th iteration 07:49
well, at least how it compares to rakudo/parrot
tadzik is niecza becoming self-hosting? 07:50
diakopter also curious how fast nqp-clr does it
tadzik: seems it groweth towards that 07:52
07:53 jhuni joined 07:54 jhuni left 07:59 lukas_ left
tadzik that's super-awesome 08:04
TimToady diakopter: I would not use a sub declaration to declare a type 08:07
phenny TimToady: 02 Jan 21:55Z <diakopter> ask TimToady in the following primitive-typed edition of man-or-boy perl6.pastebin.com/raw.php?i=AXhUA23d I postulated a shorthand to write type annotations for "generic" Callables (that are strongly-typed)... could you please [in-]validate that such a construct could work?
TimToady: 02 Jan 21:57Z <diakopter> ask TimToady but ignore the '&' "sigil" before 'B' - I'm removing that curiosity from this perlesque dialect
TimToady std: &:(Int $foo --> Str)
p6eval std 625303c: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/kcw6W79HTX line 1:␤------> <BOL>⏏&:(Int $foo --> Str)␤Preceding context expects a term, but found infix & instead at /tmp/kcw6W79HTX line 1:␤------> <BOL>⏏&:(Int
..$foo …
08:08 molaf joined
TimToady std: sub foo ( &:(Int $foo --> Str) ) {} 08:08
p6eval std 625303c: OUTPUT«ok 00:01 120m␤»
TimToady there's a generic & type with a sig
std: subset MyRout of &:(Int $foo --> Str); 08:09
p6eval std 625303c: OUTPUT«===SORRY!===␤Confused at /tmp/0rXm9EeTqI line 1:␤------> subset MyRout of ⏏&:(Int $foo --> Str);␤ expecting typename␤Parse failed␤FAILED 00:01 119m␤»
TimToady hmm
diakopter I just would really like *some* shorthand way of aliasing long type signatures 08:10
TimToady well, inside-out sub declarations is the way of C, and hence evil
diakopter what's an inside-out sub declaration
TimToady subset MyRout of Callable[:sig(:(Int $foo --> Str))]; 08:11
std: subset MyRout of Callable[:sig(:(Int $foo --> Str))];
p6eval std 625303c: OUTPUT«ok 00:01 121m␤»
diakopter std: subset MyRout of Callable[:sig(:(Int --> Str))]; 08:12
p6eval std 625303c: OUTPUT«ok 00:01 121m␤»
diakopter ok. last I knew, the :sig() wasn't necessary (I hadn't heard of needing that at all)
TimToady an inside-out declaration is where you put the name of the thing you're declaring in place of the name that would ordinarily be used as an rvalue
diakopter I mean, the portion inside the :sig() was necessary
TimToady well, if the sig is the first argument and is positional, then you can pass it positionally 08:13
diakopter confused 08:14
I don't need to pass around sigs
I need a decent way to alias them for compile time
TimToady Callable[:(Int $foo -> Str)] is okay if $sig is the first arg to Callable
subset is compile time
diakopter I don't know how a sig could be an arg to a Callable 08:15
TimToady constant MyRout = &:(...); would probably also work
diakopter std: constant RoutMe = &:(-->int) 08:16
p6eval std 625303c: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/3ewtYDvYAl line 1:␤------> constant RoutMe = ⏏&:(-->int)␤Bogus term at /tmp/3ewtYDvYAl line 1:␤------> constant RoutMe = &⏏:(-->int)␤ expecting any of:␤
..infix n…
08:16 bacek_ joined
TimToady or could be made to work, I mean... 08:17
diakopter do the primitive types have type objects? 08:18
TimToady or we could maybe use &[...], @[...], %[...] as shorthand for the roles in question
08:18 pmurias joined
TimToady std: @[...] 08:18
p6eval std 625303c: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/jJffuREZdP line 1:␤------> <BOL>⏏@[...]␤Bogus statement at /tmp/jJffuREZdP line 1:␤------> @⏏[...]␤ expecting twigil␤Parse failed␤FAILED 00:01 120m␤»
TimToady especially since it's currently illegal
diakopter hee 08:19
08:20 bacek left
diakopter "liberalizing the Perl 6 grammar for deca.." 08:20
..des [to come]
TimToady std: :::(Int @) 08:21
p6eval std 625303c: OUTPUT«ok 00:01 122m␤»
TimToady or there's that
diakopter everyone wants the triple colon
niecza: say :::(Int @) 08:22
p6eval niecza v1-35-gc9d17a7: OUTPUT«===SORRY!===␤Attribute (name) does not pass the type constraint because: Validation failed for 'Str' with value undef at /home/p6eval/niecza/src/Niecza/Actions.pm line 1607␤ Niecza::Actions::term__S_name('Niecza::Actions',
..'Niecza::Grammar::P6=HASH(0x69466e0)') ca…
diakopter niecza: say :::(Int)
08:22 Demonen left
p6eval niecza v1-35-gc9d17a7: OUTPUT«===SORRY!===␤Attribute (name) does not pass the type constraint because: Validation failed for 'Str' with value undef at /home/p6eval/niecza/src/Niecza/Actions.pm line 1607␤ Niecza::Actions::term__S_name('Niecza::Actions', 08:22
..'Niecza::Grammar::P6=HASH(0x65b9608)') ca…
TimToady :: is anonymous 08:23
niecza: say ::.WHAT
p6eval niecza v1-35-gc9d17a7: OUTPUT«===SORRY!===␤Attribute (name) does not pass the type constraint because: Validation failed for 'Str' with value undef at /home/p6eval/niecza/src/Niecza/Actions.pm line 1607␤ Niecza::Actions::term__S_name('Niecza::Actions',
..'Niecza::Grammar::P6=HASH(0x7548170)') ca…
TimToady perl6: say :: 08:24
p6eval rakudo fc2db1: OUTPUT«===SORRY!===␤ResizablePMCArray: Can't pop from an empty array!␤»
..pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting "(", twigil or word character␤ at /tmp/G8sEaSFRzY line 1, column 7␤»
..niecza v1-35-gc9d17a7: OUTPUT«===SORRY!===␤Attribute (name) does not pass the type constraint because: Validation failed for 'Str' with value undef at /home/p6eval/niecza/src/Niecza/Actions.pm line 1607␤ Niecza::Actions::term__S_name('Niecza::Actions',
..'Niecza::Grammar::P6=HASH(0x58b9980)') ca…
diakopter eek
TimToady massive damage :)
std: say :: 08:25
p6eval std 625303c: OUTPUT«ok 00:01 118m␤»
diakopter hits a stick against the empty array, and pop flows forth
TimToady you were supposed to say to it 08:26
diakopter yeah
like yoda hitting r2d2 with a stick instead of speaking to him 08:27
oh, I guess he did speak to him first.
rakudo: say ::rock 08:28
p6eval rakudo fc2db1: ( no output )
TimToady rakudo: say ::rock.WHAT
diakopter rakudo: say ::rock ~ "\n"
p6eval rakudo fc2db1: OUTPUT«Failure()␤»
rakudo fc2db1: OUTPUT«Can not find sub ::rock␤ in 'infix:<~>' at line 1␤ in main program body at line 22:/tmp/MJ64TnCvXc␤»
TimToady rakudo: say ::rock.WHAT; class rock { } 08:29
p6eval rakudo fc2db1: OUTPUT«rock()␤»
08:30 bacek_ left
pmurias sorear: what stops the output from the aot phase from getting to the screen? 08:31
diakopter TimToady: I hit the empty array because 40 years earlier, hitting worked.
pmurias sorear: ah i noticed it's stopped before it gets there
08:36 cjk101010 joined 08:44 justatheory left 08:47 felipe joined
diakopter TimToady: which syntax should be co-opted, then? 08:52
TimToady well, Callable should work today 08:55
so &[] is the most like that
but &:() is going to be shorter if you always have to write &[:()] 08:56
08:58 stepnem joined
TimToady I can argue it both ways, which probably means there's something we're not seeing yet 08:58
or it could just be that it's 1am
so I'd just go with Callable[:()] for now 09:01
zzz & 09:02
diakopter but, that doesn't help me shorten/alias anything 09:05
iiuc what you're saying
09:07 HarryS is now known as K-Lined 09:08 K-Lined is now known as HarryS, redicaps joined 09:18 yarp joined 09:19 sukria left 09:30 roen left 09:42 mberends left 09:52 noganex_ is now known as noganex 10:06 snearch joined 10:07 bacek joined 10:21 kanishka left 10:23 bacek_ joined 10:27 bacek left 10:30 satyavvd joined 10:41 masak joined
masak oh hai from a train! \o/ 10:42
phenny masak: 02 Jan 19:03Z <sorear> tell masak What do you mean that substr cannot use non-p6 primitives? How else is it supposed to inspect an opaque Str?
masak sorear: I'm saying it's obviously thorny/problematic, and that S32 doesn't begin to acknowledge that. 10:43
10:49 gbacon joined
pmurias masak: why is implementing substr using p6 primitives a problem? 10:49
moritz_ pmurias: which primitive would you use to access characters of a string? 10:50
besides substr, that is
masak pmurias: maybe it isn't. maybe it's just a question of making a Proxy object with a nice STORE method. 10:51
pmurias: I'm saying it's way underspecified.
10:51 kanishka joined
pmurias masak: are string mutable? 10:51
masak first approximation: no.
moritz_ Perl 6 level strings are immutable 10:52
pmurias so .substr can't return an lvalue
substr() can
s/can/could
moritz_ doesn't see the distinction
I guess a method can get a reference to the container of the invocant with the same signature tweaks as a sub 10:53
masak neither
pmurias moritz_: a sub can take a container 10:54
moritz_ pmurias: I know. Do you say a method can't?
pmurias it seems wrong for methods to take the container
moritz_ doesn't see the wrongness 10:55
10:56 cjk101010 left
pmurias the method is called on the object, but it then discovers how the call was done and does something to the container 10:57
it feels wrong like in "$foo.bar.baz" the baz method accesing $foo 10:58
moritz_ well, it doesn't
unless .bar returns the invocant container 10:59
which usually isn't the case
just like in foo(bar($baz)), &foo could get a handle to the $baz container, but usually doesn't
pmurias re method getting the container i doesn't seem right that a method called on the same object using different containers should do something different 11:00
moritz_ in both cases the dispatcher determines which routine to call, and then activates the binder 11:01
11:01 daxim joined
moritz_ pmurias: and is that different for subs? 11:01
pmurias the sub would take the container with a string as the argument 11:02
a method on a string taking a container with a string seems wrong
s/taking/taking as the invocant/
moritz_ ah, I'm starting to see your point
you could argue that the backslash in method substr(\$self:, ...) { } really places the method into Container[Str] or so 11:04
masak I'd really like user-definable FETCH and STORE methods. it would open up a lot of possibilities. 11:07
pmurias masak: what do you mean by user-definable FETCH and STORE? 11:08
masak: you have Proxy 11:09
masak: or do you want to have that implemented in rakudo? 11:11
moritz_ assuming I want to have a variable that behaves just as a normal scalar, but that says LOL whenever I assign a new value - how would that look like? 11:12
I'd hope it's something like class MyScalar is Scalar { method STORE($what) { say "LOL"; nextsame } }; my $x is MyScalar; $x = 3 11:13
pmurias moritz_: that seems sensible 11:14
my $x := Myscalar.new() should work too 11:15
11:15 tzhs joined
masak pmurias: I want to have that implemented in Rakudo. or Niecza :) 11:15
moritz_ or both! 11:16
11:16 bacek_ left
masak moritz_: S06/Lvalue subroutines has an example with actual syntax. 11:17
pmurias masak,mortiz_: it's avalible in Perl 5 (tie) 11:18
masak sure, sure.
moritz_ pmurias: tie is cheating. tie()ing doesn't survive returning through subroutines, for example
ie you can't write a function that returns a tied variable 11:19
pmurias are you sure
?
moritz_ at least I couldn't find a way
subs always return lists
pmurias you tried sub foo : lvalue {} 11:20
moritz_ nope
pmurias i implemented Proxy in p5 once
moritz_ ah, I remember why I didn't 11:21
I wanted to return an array
and lvalue subs are always in scalar context
11:23 kraai_ left
pmurias moritz_: tie'd variable survive being returned from an : lvalue sub 11:24
moritz_ pmurias: interesting 11:25
I think it was really the attempt to pass around tied array containers that didn't work 11:26
11:26 kraai_ joined 11:28 risou left
pmurias moritz_: did you pass an reference to tied arrays? 11:29
return @foo gets @foo flattened
11:42 cjk101010 joined 11:54 satyavvd left 11:55 barney joined 12:10 barney left 12:19 noganex_ joined 12:23 noganex left, bluescreen joined, bluescreen is now known as Guest57809 12:25 Chillance left
masak what is a Proxy object, really? feels like an object pretending to be a container. 12:27
12:28 risou joined
arnsholt axisofeval.blogspot.com/2011/01/why...ll-is.html <- Anyone read this yet? 12:29
Especially the "adjustably-safe" part sounded kinda familiar
12:29 masonkramer_ left, masonkramer joined
masak /win 3 12:31
hmm. 12:32
moritz_ arnsholt: that's what we call "gradual typing" 12:34
12:34 mj41_ joined
arnsholt moritz_: Exactly! =) 12:34
12:37 Guest57809 left, cjk101010 left, shachaf left, c1sung left, fhelmberger left, lamstyle left, shortcircuit left, pmichaud left, zb left, sECuRE left, cotto_work left, Bucciarati left, mj41_ is now known as mj41
masak seems he's talking about more than just gradual typing, though -- he mentions 'invariants', which makes me think of some kind of non-type annotations. 12:38
then again, maybe not. 12:41
12:41 cogno joined
masak lopnor++ # blog software 12:41
moritz_ masak: our subset types are turing complete
lopnor masak: thank you! 12:42
12:45 Bucciarati joined
masak moritz_: right, but when I think of "invariants", I think about properties on blocks, not variables. 12:47
moritz_ I'm sure you can find some clever way to map the two, if you're a twisted FP programmer :-) 12:51
12:53 Guest57809 joined, cjk101010 joined, shachaf joined, c1sung joined, fhelmberger joined, lamstyle joined, shortcircuit joined, pmichaud joined, hatseflats joined, arnsholt joined, zb joined, sECuRE joined, cotto_work joined 12:54 mtk joined
arnsholt masak: The C backend idea from the Yapsi vision statement sounds interesting, BTW 12:57
12:57 muixirt joined 12:59 noganex_ is now known as noganex
pmurias ashleydev: where is the Yapsi vision statement? 13:02
masak arnsholt: yes, I think so. could bring a bit of speed into the picture. the big disadvantage as I see it is that it'll be more to maintain and keep in sync. 13:03
dalek ecza: 124d795 | pmurias++ | / (8 files):
refactored niecza passes test.pl
arnsholt pmurias: github.com/masak/yapsi/blob/master/doc/ROADMAP
Yeah, the parallel thing is potentially an issue 13:04
moritz_ that's the problem with all multiple backends in a compilers
and the reason why currently no compiler except lorito has more than one non-bitrotten backend 13:05
and lorito only manages it by pretty much freezing the feature set
pmurias where does lorito live?
moritz_ s/lorito/perlito/ 13:06
sorry, too much #parrot
masak moritz_: I'd still expect the C runtime to use the SIC backend, though.
13:08 gbacon left
arnsholt Yeah. The C backend would essentially use a binary packed SIC 13:08
So with a bit of luck it should be possible to generate a fair chunk of C headers 13:09
muixirt moritz_: (from #parrot) but even version 2010.10 something like 'perl6 build/rakudo/t/spec/S03-sequence/basic.t' spits out: Could not find sub &done 13:14
moritz_ muixirt: that's because done_testing was renamed to done 13:16
muixirt: but I suspect that the problem with 'main' is a parrot (or nqp-rx) level problem 13:17
muixirt rakudo: eval((1 ... 5).perl).join(",") 13:18
p6eval rakudo fc2db1: ( no output )
moritz_ rakudo: say eval((1 ... 5).perl).join(",")
p6eval rakudo fc2db1: OUTPUT«1,2,3,4,5␤»
muixirt moritz_: a test that fails currently 13:19
(from a test)
13:19 cogno left
muixirt ===SORRY!=== 13:20
Unable to open filehandle from path 'eval((1 ... 5).perl).join(",")'
moritz_ wtf?
which test is that from?
perl6 '...' without -e ?
muixirt build/rakudo/t/spec/S03-sequence/basic.t 13:21
I'm a idiot
of course moritz_ is right 13:22
masak arnsholt: I've read about some ways to make instruction fetching fast, and I'd like to try them out.
moritz_ ok 88 - Can take .perl of sequence
No main sub found in 'Any::join' at line 1 in 'Any::join' at line 1462:CORE.setting in main program body at line 151:t/spec/S03-sequence/basic.t
muixirt it produces the 'No main sub found' error msg
arnsholt masak: Cool 13:23
Anyways, I need to read up a bit on SIC first, I think
moritz_ it seems that parrot had a serious API change or break
ah, DEPRECATED.pod talks about this 13:24
masak arnsholt: right now with SIC, the source code is the specification. 13:29
13:32 cogno joined, pmurias left
arnsholt masak: Yeah, I noticed. Which is partly why I haven't grokked much of it yet =) 13:35
masak :)
let me know if I can help.
some people have been expressing surprise by the use of the syntax 'reg[$n]' (no sigil) 13:36
arnsholt I'll keep that in mind
masak it's a call to &reg, but maybe folks are used to having it be 'reg()[$n]' 13:37
13:38 nightwatcher joined, risou left 13:47 sol1tude joined
masak sol1tude: hi! I read today that you're the number one habit of creative people. :) 13:48
sol1tude hello masak :) 13:49
13:51 cogno left 14:05 am0c joined 14:10 felliott left 14:11 tzhs left 14:12 molaf left 14:13 kjeldahl left 14:15 wamba joined
moritz_ journal.stuffwithstuff.com/2010/12/...operators/ 14:16
nightwatcher hello, can regexes that work under perl5.8.8 work under perl6 since perl6 provides a superset of Perl 5 features with respect to regexes (As I was told..) 14:17
14:17 cogno joined
moritz_ nightwatcher: mostly, yes 14:17
nightwatcher mostly?
moritz_ mostly 14:18
I don't think it'll be bug-for-bug compatible wrt embedded closures
14:19 risou joined
moritz_ also perl 5 uses some weird heuristics to distinguish array subscripts and char classes 14:19
rakudo had the rx:P5 modifier implemented at some point, but regressed on it while switching to another grammar engine 14:20
masak nightwatcher: also, we're not talking a syntactic superset here... 14:21
moritz_ unless you say { use v5; # perl 5 code here }
but I think that's going to be kinda hard to implement
and only of limited usefulness 14:22
nightwatcher mortiz_: regarding grammer.. one more question, what exactly can I do with perl6 rules? can I redefine how a regex is parsed? I am kinda new to v6..
moritz_ nightwatcher: first of all you can give regexes names, group them in classes/grammar, and properly reuse them 14:23
then you can use them parse almost anything. Like a programming language
masak moritz_: nice article. parts of it are similar to Perl 6. I think the choice of identifiers in Perl 6 is a long-term big win, though.
moritz_ masak: I think the existence of proper precedence levels is also a big win :-) 14:24
14:25 sftp left
nightwatcher mortiz_: will we have varialbe length lookbehind in production ready v6? 14:25
masak moritz_: oh, definitely. 14:26
moritz_ nightwatcher: yes
masak afk &
14:26 masak left, wagnerf joined
nightwatcher mortiz_: is it available now? can I test it here? 14:27
moritz_ nightwatcher: I don't know
14:27 kraai_ left
moritz_ I know that rakudo and nqp-rx don't implement it 14:27
maybe the old rakudo, and maybe niecza
niecza: say 'abc' ~~ /<?before a .*> c/ 14:28
p6eval niecza v1-35-gc9d17a7: OUTPUT«␤»
moritz_ niecza: say 'abc' ~~ /c/
p6eval niecza v1-35-gc9d17a7: OUTPUT«␤»
moritz_ hm :(
nightwatcher :S 14:29
moritz_ alpha: say 'abc' ~~ /<?before a .*> c/
p6eval alpha : OUTPUT«␤»
moritz_ alpha: say 'abc' ~~ / c/
p6eval alpha : OUTPUT«c␤»
moritz_ alpha: say 'abc' ~~ /<?before b> c/
p6eval alpha : OUTPUT«␤»
moritz_ stupid
alpha: say 'abc' ~~ /<?after b> c/
14:29 yarp left
p6eval alpha : OUTPUT«c␤» 14:29
moritz_ alpha: say 'abc' ~~ /<?after a.* > c/
p6eval alpha : OUTPUT«c␤»
nightwatcher :D
moritz_ alpha: say 'Abc' ~~ /<?after a.* > c/
p6eval alpha : OUTPUT«␤» 14:30
moritz_ nightwatcher: you see, worked in an old version of rakudo
nightwatcher mmm.. will it be added in coming rakudo new versions? 14:31
moritz_ niecza: say ('abc' ~~ /c/).WHAT
p6eval niecza v1-35-gc9d17a7: OUTPUT«␤»
moritz_ niecza: say ('abc' ~~ /c/).typename
p6eval niecza v1-35-gc9d17a7: OUTPUT«Match␤»
moritz_ niecza: say ('abc' ~~ /c/).Bool
p6eval niecza v1-35-gc9d17a7: OUTPUT«Bool::True␤» 14:32
14:32 MayDaniel_ joined
moritz_ niecza: say ('abc' ~~ /<?after a.*> c/).Bool 14:32
colomon moritz_: fascinating how that blogger goes through contortions to end up with something less powerful than Perl 6. :)
p6eval niecza v1-35-gc9d17a7: OUTPUT«===SORRY!===␤Can't locate object method "tocclist" via package "RxOp::Quantifier" at /home/p6eval/niecza/src/RxOp.pm line 301.␤Can't call method "isa" on an undefined value at /home/p6eval/niecza/src/Niecza/Actions.pm line 786.␤Can't call method
.."oplift" on an und…
moritz_ submits two niecza bugs
nightwatcher mortiz_: this feature will save me a lot of coding (so I can watch more TV! B-)) 14:33
moritz_ nightwatcher: that's great. BTW if you press the tab key after typing the first three characters of my nick, your chances of misspelling it are lower :-)
nightwatcher moritz_: hihihi... oh sorry.. nothing personal! :) 14:35
moritz_ :-) no offense taken
I just see that many people don't know about nick tab completion, and often I find out by them misspelling nicks often :-)
dalek odel: b40fd73 | jonathan++ | common/NQP/NQPSetting.pm:
[common] Setting should be in UTF8, not latin-1.
14:36
odel: 3cdb62c | jonathan++ | dotnet/compiler/compile.pir:
[dotnet] Be explicit about reading in UTF-8.
odel: aa353ae | jonathan++ | dotnet/runtime/ (2 files):
[dotnet] Add some very basic method cache support to the runtime; a slot for it in the s-table and an op to install it.
odel: 51b9891 | jonathan++ | common/NQP/NQPSetting.pm:
[common] Get NQPClassHOW to publish a method cache. Also fix a thinko - should build caches last, after attribute composition.
nightwatcher moritz_: on perl5.8.8 my perl report generator takes 3.5 seconds.. I will run it on perl6 tonight and see the difference.. 14:37
tadzik :)
Trust me, you will be suprised
nightwatcher tadzik: much faster? ;)
moritz_ probably takes 5min or so, +- a factor of 10
tadzik oh, I have no heart to tell you the truth :)
nightwatcher moritz_: oh god that might hang my production servers :D 14:38
moritz_: will be much fun!
tadzik but well, on niecza maybe
14:38 MayDaniel_ left
tadzik if it turnes out to be underperformant for your needs, try it on niecza 14:38
nightwatcher I will remove the rakudo packages I guess.. I will install niecza instead.. I thought rakudo is the most ready for production realease... 14:39
moritz_ rakudo is the most feature complete
14:39 kaare_ left
moritz_ but not the fastest 14:39
niecza: say ('abc' ~~ /c/).Str 14:40
p6eval niecza v1-35-gc9d17a7: OUTPUT«c␤»
moritz_ niecza: say ('abc' ~~ /c/).from
p6eval niecza v1-35-gc9d17a7: OUTPUT«2␤»
moritz_ niecza: say ('abc' ~~ /c/)
p6eval niecza v1-35-gc9d17a7: OUTPUT«␤»
nightwatcher mmm.. (time to make a choice.. speed or features...) speed! :D
14:41 Tedd1 joined
tadzik maybe you don't need the speed, and maybe you don't need the features 14:41
nightwatcher tadzik: and maybe I need both? 14:42
14:42 am0c left
nightwatcher too bad niecza is not prepackaged for fedora.. I enjoyed yum! 14:44
moritz_ was it... yummy? 14:45
nightwatcher moritz_: very yummy!!!
14:45 kanishka left 14:47 cogno left, roen joined 14:49 redicaps left 14:53 nightwatcher left 14:56 molaf joined 15:02 hcchien left
sorear good * #perl6 15:14
15:15 alester joined
moritz_ good morning sorear 15:16
15:16 araujo left
sorear TimToady: What does bare :: mean as a term? 15:16
15:17 jaldhar left, araujo joined
moritz_ std: :: * :: 15:17
p6eval std 625303c: OUTPUT«ok 00:01 120m␤»
moritz_ std: $ 15:18
p6eval std 625303c: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/wCjQTX5PZO line 1:␤------> <BOL>⏏$␤Bogus statement at /tmp/wCjQTX5PZO line 1:␤------> $⏏<EOL>␤ expecting twigil␤Parse failed␤FAILED 00:01 120m␤»
15:21 hcchien joined 15:28 muixirt left 15:29 hcchien left 15:30 plobsing left 15:32 snearch left 15:34 Guest57809 left 15:35 wtw left 15:37 risou left
sorear moritz_: does $.foo imply item context? 15:40
moritz_ sorear: yes 15:42
(though rakudo doesn't implement that part)
15:43 cogno joined 15:45 sol1tude left
sorear moritz_: what about $.method(1,2,3) ? 15:45
moritz_ same 15:49
if you don't want to extort context, use self.method(1, 2, 3)
sorear I see 15:53
Given has @.foo; is self.foo equivalent to @.foo ?
15:54 envi left
moritz_ I think so 15:54
jnthn Only if .list is identify on the thing in there. 15:56
sorear JNTHN IS BACK!
jnthn Which it usually is for Positional things.
o/ sorear :)
sorear: Only sort of back this week. Really really back next week. 15:57
16:01 hcchien joined 16:05 Patterner left 16:06 cogno left, amkrankruleuen joined 16:07 Psyche^ joined, Psyche^ is now known as Patterner 16:08 ROlds left 16:09 doddo joined 16:10 cogno joined 16:11 cogno left, cogno joined 16:13 felliott joined 16:16 cjk101010 left 16:19 wamba left 16:22 gbacon joined
colomon rakudo: sub f(Int $a) { $a * $a }; say &f.signature.params.constraints.perl 16:23
p6eval rakudo fc2db1: OUTPUT«Method 'constraints' not found for invocant of class 'Parcel'␤ in main program body at line 22:/tmp/qs0Oc1C600␤»
16:23 kaare_ joined
colomon rakudo: sub f(Int $a) { $a * $a }; say &f.signature.params[0].constraints.perl 16:23
p6eval rakudo fc2db1: OUTPUT«Bool::True␤» 16:24
colomon ?
moritz_ there is no constraint
so rakudo stores True
colomon Int doesn't count?
moritz_ so that $anything ~~ $constraint returns True
that's the type
not the constraint
rakudo: sub f(Int $a) { $a * $a }; say &f.signature.params[0].type.perl 16:25
p6eval rakudo fc2db1: OUTPUT«Int␤»
colomon rakudo: subset Positive of Int where * > 0; sub f(Positive $a) { $a * $a }; say &f.signature.params[0].constraints.perl
p6eval rakudo fc2db1: OUTPUT«(Int)␤»
colomon rakudo: sub f(Int $a where * > 0) { $a * $a }; say &f.signature.params[0].constraints.perl
p6eval rakudo fc2db1: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
jnthn fwiw, what moritz_++ said is consistent with how I understand it/implemented it too :)
colomon rakudo: sub f(Int $a where { $a > 0 }) { $a * $a }; say &f.signature.params[0].constraints.perl 16:26
p6eval rakudo fc2db1: OUTPUT«({ ... })␤»
16:26 cogno left
moritz_ rakudo doesn't .perlify closures very well :/ 16:26
colomon jnthn: you expect me to listen to you just because you implemented it? ;)
jnthn :P
colomon btw, I'm doing this looking at one of the IO::Prompter examples. It's crazy stuff. And it also slightly doesn't work. 16:27
jnthn It turns out that in a program that just makes calls to single-dispatch subs that do pretty much nothing, we spend almost half of the runtime doing the type checks.
colomon prompt -> Num $amount, Coefficient $rate, Int $term, Str $desc where /\S/ {
16:27 molaf left
jnthn Good job that's getting a bunch cheaper in 6model... :) 16:27
colomon \o/
jnthn Though tempting to try a hack now... :) 16:28
moritz_ jnthn: if it does mostly nothing in the subs, no wonder it spends much time in the sub overhead
colomon go jnthn++ go!
jnthn moritz_: Yeah, but the overhead is...crazy.
moritz_: It means type checks hugely dominate signature binding runtime.
jnthn has been poking around a bit. :) 16:29
16:29 rhebus joined
colomon rakudo: my $a = (Num); say $a.WHAT; 16:45
p6eval rakudo fc2db1: OUTPUT«Num()␤»
colomon rakudo: my $a = (Num).list; say $a.WHAT;
p6eval rakudo fc2db1: OUTPUT«List()␤»
colomon rakudo: my $a = (Num).list; say $a.perl 16:46
p6eval rakudo fc2db1: OUTPUT«(Num)␤»
colomon rakudo: my $a = (Num).list; say $a.perl; say 5.Num ~~ $a;
p6eval rakudo fc2db1: OUTPUT«(Num)␤Bool::False␤»
colomon rakudo: my $a = (Num).list; say $a.perl; say 5.Num ~~ all $a;
p6eval rakudo fc2db1: OUTPUT«(Num)␤Bool::False␤»
colomon and that's why Damian's code isn't working. 16:47
hmmm.
need to start with a good test, I think. :)
jnthn Whee. A simple cache makes a fairly notable difference to my benchmark. 16:50
tadzik nice :) 16:56
16:56 cibs joined, cibs__ joined, cibs left, cibs__ left 16:57 Maksim2011 joined, cibs joined 17:00 muixirt joined
jnthn does a before and after spectest run to make sure he hasn't busted anything :) 17:01
muixirt jnthn: 2 spectest runs, now that's an incentive to make rakudo faster ;-) 17:03
17:03 Maksim2011 left 17:04 Maksim2011 joined
jnthn I'm curious if the second one (with the patch) will be faster... :P 17:05
Hmm...I get a bunch of "Missing test file: " warnings at the start of the spectests.
17:05 roen left 17:06 Maksim2011 left 17:07 masak joined
masak \o/ 17:07
jnthn o/ masak
masak I'm now officially a Southerner.
tadzik happy masak makes people happy :)
jnthn hands masak a trithong 17:08
masak iouuuu
jnthn :D
A southerner with internets too :)
masak jnthn: that why your nick is all consonants, because you hand away your vowels in triplets? :P
jnthn noaa 17:09
masak yes, Windows 7 and I made a temporary truce to get the tubes flowing.
now we're back to mutual respectful distaste.
jnthn :) 17:10
It's better than Vista. :)
17:10 Maksim2011 joined
masak from what I hear, that's not saying much.. 17:11
jnthn :P
moritz_ colomon: you'll need s/Num/Real/ 17:12
colomon: 5 hasn't be a Num for ages
muixirt masak: so you're in charge of making those rakudo* msi binaries?!
17:12 Maksim joined
masak weeps 17:12
jnthn lol
wtf, I'm getting a very noisy test run even with a fresh checkout. 17:13
Trashlord weep weeep
masak I'm a bit emotional today, it seems. this morning I bid farewell to the Mac of $work.prev -- a long and sincere friendship. 17:15
moritz_ jnthn: parrot master has changed to only run :main subs, not the first sub in a file
which breaks rakudo quite severely
jnthn Typical. 17:16
muixirt moritz_: but that's not hard to fix, is it?
masak so why did we bump PARROT_VERSION?
moritz_ we didn't
jnthn masak: I have locally got master built, not the suggested PARROT_REVISION.
moritz_ muixirt: if you think so, go right ahead :-)
tadzik oh btw, I fixed RT #80982 loally
jnthn As it fixes a Win32 build issue...
tadzik * locally
jnthn *sigh* 17:17
17:17 Maksim2011_ joined 17:19 Maksim2011 left, Maksim left, Maksim2011_ left, noganex left
muixirt moritz_: It's only adding ':main' to the 1st sub if no other sub is main, or is there more to it? 17:20
moritz_ muixirt: that might work
muixirt: but I don't even know which compilation stage needs fixing 17:21
muixirt might?
jnthn Actions maybe.
moritz_ maybe POST -> PIR
17:21 Maksim joined
jnthn There's already a .pirflags thingy 17:21
.pirflags(':main') set on the appropriate PAST::Block would do it. If you can work out what the appropriate block is. and if this doesn't have other side-effects. 17:22
muixirt only 77 files to look at :-)
plus those generated 17:23
moritz_ well, I don't quite understand rakudo's startup
which doesn't make things easier
and I do suspect that some of the fixes need to go to nqp-rx
jnthn That may be the case.
Hm
17:23 justatheory joined
jnthn wonders why that got changed. 17:24
dukeleto jnthn: welcome back
jnthn dukeleto: o/
17:24 kanishka joined
dukeleto if y'all need help with getting rakudo to work after the encapsulate-main merge, let me know 17:25
jnthn It'd help if Parrot did stuff that helped HLL devs rather than made them chase after endless changes with little benefit. :| 17:26
17:27 noganex joined
dukeleto jnthn: i feel your pain, but this branch is necessary to fix our packfiles 17:27
jnthn: it was bad design and being fixed, which means changing some stuff. But certain algorithms in packfiles will become O(1) instead of O(N) and I think that will make Rakudo people happy 17:28
jnthn That'll be preferable. :)
dukeleto jnthn: i think there is a branch or patch to nqp-rx somewhere that makes it grok stuff after the encapsulate-main merge 17:29
jnthn: or at least 80% of the time. I heard about it, but didn't see the bits.
jnthn: we should have a wiki deprecation page for the encapsulate-main merge, and if we don't, someone is in trouble
masak dukeleto: I'll magnanimously pretend the Parrot people didn't steal that idea from SIC. :P 17:31
dukeleto masak: EDIDNTPARSE 17:32
moritz_ dukeleto: no branch in the repo itself
masak dukeleto: probably just as well... :)
17:32 Miguelanxo joined
Miguelanxo Hi there! 17:32
masak Miguelanxo: hi!
moritz_ dukeleto: and the "Network" view on github doesn'T show one either
Miguelanxo is there some common reason to be banned on #perl?
masak Miguelanxo: many.
moritz_ Miguelanxo: usually spamming or trolling 17:33
Miguelanxo 􏿽xBF?
well, figure me stunned
17:33 MayDaniel_ joined
moritz_ or something having the bad luck of living in the same subnet as spammer 17:33
17:33 Maksim left
Miguelanxo who is cannel ops on perl? 17:33
moritz_ many
is there a concrete case you want to talk about? 17:34
dukeleto moritz_: plobsing is the person to ask about encapsulate-main, it was mostly his baby
Miguelanxo well, I for sure want to be unbanned
moritz_ Miguelanxo: you're in the channel, how can you be banned?
Miguelanxo noo
I'm on perl6
not on perl
moritz_ sorry
I parsed that wrongly
The main reason for banning is, iirc, using it as a help channel wehn it's not intended to be one 17:35
17:35 cdarroch joined, cdarroch left, cdarroch joined
Miguelanxo wel,, that makes a lot more sense 17:36
17:37 rhebus left
Miguelanxo "Freenode #Perl is Freenode's primary Perl help channel" 17:38
now I don't understand a bit
moritz_ what did the topic of the channel say? 17:40
17:41 fhelmberger_ joined 17:42 MayDaniel_ left 17:44 fhelmberger left
colomon moritz_: err, obviously 5 isn't a Num, which is why I was saying 5.Num. Damian's code may be slightly broken on this front, I'm not sure... 17:45
moritz_ probably just outdated
colomon hmmm, though my test is parsing "10", "20.2", and "40e20" all as Nums. 17:46
moritz_ probaly prefix:<+> errornously returning Nums
17:48 Maksim joined
moritz_ fun fact: simple nqp-rx programs run without error; declaring a class is enough to trigger the error. 17:48
tadzik wklej.org/id/449504/
17:48 Maksim left
colomon rakudo: sub f(Str $i where where /\D/) { say $i }; say f("ten"); 17:49
p6eval rakudo fc2db1: OUTPUT«Could not find sub &where␤ in <anon> at line 22:/tmp/6FuZV_dsFI␤ in 'Block::ACCEPTS' at line 6067:CORE.setting␤ in 'f' at line 1:/tmp/6FuZV_dsFI␤ in 'f' at line 1:/tmp/6FuZV_dsFI␤ in main program body at line 22:/tmp/6FuZV_dsFI␤»
17:49 takadonet joined
takadonet yo yo 17:49
moritz_ double where
tadzik o/
colomon moritz_: yes, trying to figure out why double where made it through my test without a syntax error.
constraints on types are not making it through the block version of prompt correctly. 17:50
17:51 rgrau joined
masak takadonet: \o 17:52
jnthn Pushed the cache thing. I *think* it's OK. Revert it if not and I'm not about to discuss. Here's benchmark.pl before and after - not very scientific but... nopaste.snit.ch/27543
moritz_ looks great :-) 17:53
colomon rakudo: sub f(Str $i where /\D/) { say $i }; say &f.signature.params[0].constraints.perl
p6eval rakudo fc2db1: OUTPUT«({ ... })␤»
colomon jnthn++
rakudo: sub f(Str $i where /\D/) { say $i }; say &f.signature.params[0].constraints.WHAT 17:54
p6eval rakudo fc2db1: OUTPUT«List()␤»
takadonet wow
colomon jnthn: is constraints supposed to be a list of constraints?
jnthn colomon: erm. :)
jnthn checks quickly
moritz_ or a junction?
tadzik jnthn: rakudo or nqprx? 17:55
jnthn colomon: bind.h has an array ther
*there
Not a junction.
17:55 Maksim joined
jnthn colomon: And yes, it returns that in the introspection too. 17:56
So, list.
colomon Damian is testing it like $retval !~~ $constraints
jnthn tadzik: Those numbers were from Rakudo.
colomon and it's not working.
jnthn colomon: oh.
tadzik jnthn: wow
colomon I don't think List has the right semantics to do that, does it?
moritz_ should be ~~ all @($constraints) or so
jnthn colomon: No
What moritz_++ said.
I think in an older version of the spec it woulda worked. 17:57
Though much older, iirc.
colomon Ah, I tried !~~ all $constraints but it didn't work.
moritz_ a *very* old version
tadzik jnthn: mind showing the patch?
jnthn tadzik: It's pushed - see github.
colomon It's worth noting that he didn't have a test for this case in his current stuff. :)
jnthn colomon: :)
Wow, I got first Rakudo patch of 2011. 17:58
takadonet !!!!!
colomon is "all @(Mu)" sane?
takadonet i love subset!
moritz_ colomon: yes
jnthn colomon: Ah, yeah...you could try $constraints.all
moritz_ or you could also provide True
jnthn OK, I gotta leave for the day. Got guest to entertain this evening. :)
o/ 17:59
colomon jnthn++
\o/
this works: $retval !~~ all @(%build_opt<constraints>//Mu)
or at least, it passes my tests. 18:00
dalek kudo: fc3035a | jnthn++ | unknown:
This implements a very simple saturating cache for nominal types of parameters. Halved the runtime of a simple benchmark that focused on sub calls with typed parameters.
takadonet hmm 18:03
18:05 Maksim is now known as blaboara
TimToady why not use .all there? 18:05
then you probably don't need the @() 18:06
well, the @ anyway, might still need ()
colomon (%build_opt<constraints>//Mu).all ?
colomon is still somewhat junctophobic
TimToady rakudo: say ().all 18:07
p6eval rakudo fc2db1: OUTPUT«all()␤»
colomon hmmm, my fix there broke all my other test files. 18:08
18:08 shi joined
TimToady ().all should be true too, so you might find a way to ditch the Mu test 18:08
colomon and that line is the culprit
18:08 blaboara is now known as maksim 18:09 maksim is now known as release, release is now known as maksim
TimToady is constraints not always there? seems like it should be, but be an empty list if there are no constraints 18:09
rakudo: say "true" if ().all 18:10
p6eval rakudo fc2db1: OUTPUT«true␤»
TimToady so you shouldn't really need the Mu test
18:10 impious joined, hercynium joined
colomon trying %build_opt<constraints>.all now 18:10
18:10 maksim left
TimToady if constaints isn't always there, then you'd at least need //() 18:11
colomon and it passes both the tricky test file and one of the basic ones now.
18:11 WonTu joined, WonTu left
TimToady but I'd argue constraints should always be there, just empty sometimes 18:11
18:11 maksim joined
colomon all tests pass now. 18:12
TimToady \o/
probably faster this way too, without extra flattening
hercynium flattening is fattening 18:13
colomon TimToady: Do you remember the prompt -> Num $amount, Coefficient $rate, Int $term, Str $desc where /\S/ { blah } demo? It's working again now in current Rakudo. :)
18:13 maksim is now known as maksim_
TimToady hmm 18:14
18:16 maksim_ left
colomon gist.github.com/763743 18:17
The genius is all Damian's, but I fixed a couple of minor issues that were stopping it from working with current Rakudo. :)
18:18 maksim_ joined
colomon though I'm having trouble pushing my latest to github for some reason. :\ 18:19
18:19 maksim_ left
colomon ah, there it goes. 18:19
18:20 maksim_ joined 18:21 mtk left
muixirt t/spec/S14-roles/parameter-subtyping.rakudo seems to hang, any commants? 18:22
18:22 maksim_ left
TimToady I was getting some hangs in spectest the other day, so it might not be related to jnthn++'s cache fix 18:23
but the title is suspicious
18:23 mtk joined
muixirt the revision just before jnthn cache thingy 18:26
takadonet maybe I will wait on git pull and make... 18:28
18:30 wamba joined
colomon huh, still having github issues. 18:30
18:34 wamba left, wamba joined
dukeleto colomon: me too 18:36
colomon: still intermittent issues pulling and pushing 18:37
TimToady colomon: my problem with Damian's approach is that introspection has become a design smell to me 18:39
colomon TimToady: I might well be convinced of that in time too. But if nothing else, this example is a very neat demo for the moment. :) 18:40
afk # nap 18:41
18:42 masak left 18:49 dsp_ left 18:55 colbseton joined 19:03 Patterner left 19:04 colbseton left, takadonet left, colbseton joined 19:05 Psyche^ joined, Psyche^ is now known as Patterner 19:09 Miguelanxo_ joined 19:12 dsp_ joined, Miguelanxo__ joined 19:13 Miguelanxo left 19:15 Miguelanxo joined 19:16 Miguelanxo_ left, Miguelanxo_ joined 19:17 Miguelanxo__ left 19:18 Miguelanxo__ joined 19:19 Miguelanxo left 19:21 Miguelanxo joined, kanishka left, colbseton left, Miguelanxo_ left, shi left
moritz_ www.perlmonks.org/?node_id=880228 with a golfed Perl 6 FP solution 19:22
19:23 Miguelanxo_ joined, Miguelanxo__ left, kjeldahl joined 19:25 MayDaniel joined 19:26 Miguelanxo__ joined 19:27 Miguelanxo left 19:28 Miguelanxo joined 19:29 Miguelanxo_ left 19:30 Miguelanxo_ joined 19:32 Miguelanxo__ left 19:33 Miguelanxo__ joined, Miguelanxo left, fhelmberger_ left 19:34 daxim left 19:35 Miguelanxo joined, Miguelanxo_ left 19:36 Miguelanxo_ joined 19:37 masak joined, Miguelanxo__ left 19:38 Miguelanxo__ joined
colomon back 19:38
19:39 Miguelanxo left
masak hm, introspection a design smell. I instinctively agreed, but then I got to thinking why I agree. why is it that introspection *is* a design smell, really? 19:40
colomon rakudo: sub compress(*@a) { flat @a Zxx 1, (@a Zne @a[1..*-1]) }; say compress(<a a a a b c c a a d e e e e>).perl;
p6eval rakudo fc2db1: OUTPUT«("a", "b", "c", "a", "d", "e")␤»
colomon moritz_++
tadzik colomon is masak!
masak I wouldn't be surprised if a proper answer showed that some introspection is harmless.
19:40 Su-Shee joined
Su-Shee good evening. 19:41
masak Su-Shee! \o/
tadzik colomon goes nap, masak leaves irc. colomon gets back, masak starts posting
colomon is not masak.
tadzik hi Su-Shee
masak is not colomon
colomon Su-Shee!
Su-Shee apples are not pears?
masak bits are not qubits.
19:41 Miguelanxo_ left
colomon He's red. I'm blue. 19:41
Su-Shee I'm not your father.
masak I'm not a potato. 19:42
Su-Shee and yet tomatoes are fruit.
masak I once heard a mother in the grocery store correcting her daughter who had picked out tomatoes "instead" of fruit. 19:43
19:43 Miguelanxo__ left
masak had I been Sheldon Cooper, I would have intervened and corrected the mother. 19:43
but I'm not Sheldon Cooper.
Eevee there's surely a lesson here about duck typing
colomon masak: I think I can kind of feel where the design smell idea comes from. Elegant code shouldn't depend on that sort of thing.
masak Eevee: or subtypes.
moritz_ in German, the definition of "fruit" is usually used in the context of how stuff is used, not in a strict biological sense 19:44
Su-Shee masak: your operator precedence question.. I thought that much about it that I realized that I had _never_ once have to look it up and rarely make a mistake with them. does it mean they're simple or does it mean they follow some logic intuitively done right?
Eevee I fear tomato is involved in some hairy diamond inheritance
masak colomon: that's just restating the prejudice.
tadzik moritz_: that's wise
masak colomon: *why*?
tadzik knowlegde is knowing that tomato is a fruit. Wisdom is not putting the tomato in a fruit salad
masak Su-Shee: yes, I think so.
Su-Shee: Java has one decidedly wrong: instanceof 19:45
Su-Shee: I never bothered to find out where it should be, though. that might be fun.
moritz_ masak: re introspection, the common line of reasoning is "it's better to have code work universally instead of context dependent. Introspection is context dependent, hence inferior" 19:46
Su-Shee masak: I somehow just accepted in blind faith the rule "when in doubt, () like in math" and never thought about it. ;)
masak Eevee: nature does not believe in the simple category model one gets from class inheritance :)
Su-Shee tadzik: genius is making a sweetened jam/marmelade out of tomatoes or put carrots in cake. ;)
masak moritz_: hm. my guess until now was "we got a nice built-in type system, dispatch logic and all. don't reinvent it." do you find that reason similar to yours? 19:47
tadzik :)
moritz_ masak: I don't see how yours goes against introspection
masak Su-Shee: I don't like unnecessary parentheses obviously put there due to such doubt. I find them as annoying as over-obvious comments about the workings of a program. 19:48
# increase $i by one
Su-Shee masak: I rarely need them, but that was about the only rule I've consciously read and had in mind about operators. somehow, a list which _exists_ was always good enough. 19:49
19:49 Trashlord left
masak moritz_: ok, new attempt at grokking your reason. is it related to the thing with the Durations, where some math ops were randomly outlawed? 19:50
moritz_ masak: no
let me find a discussion...
masak Su-Shee: there seems to be a loose consensus heuristic of "parenthesize most combinations of ops except those from basic algebra" among programmers 19:51
at least among those who gave it any thought.
there is the usual question looming, how much to program for the less-than-100%-informed reader. 19:52
19:52 Trashlord joined
Su-Shee masak: somehow, they must have done it well because it was no problem at all for people like me (who stopped caring about math and logic and the like in 3rd grade ;) 19:52
masak Su-Shee: when you see $a + $b * $c, how do you group it? 19:53
moritz_ masak: www.perlmonks.org/?node_id=695773
Su-Shee masak: by children's math rule in german which translates to "point before stroke" aka * before + so I multiply and then add. 19:54
masak Su-Shee: then you care enough :) 19:55
when you learn Smalltalk, you have to unlearn that part. 19:56
Su-Shee I was just going to mention that...
(I've recently started Smalltalk..)
19:59 plobsing joined, meraxes joined
masak moritz_: interesting discussion. 20:01
20:01 mtk left
masak I come away from it more confused than I entered it, though :) 20:01
I see introspection as a feature usually reserved for the language internals, but graciously provided to the programmer. 20:02
moritz_ masak: remeber the "log all method calls on $obj that come from $Role" example in DBI? 20:03
20:03 muixirt left
moritz_ DBDI, in fact 20:03
masak yes.
moritz_ IMHO that's a very good application of "user" level introspection
masak also, jnthn++'s mocking module.
moritz_ it's debugging, but still... 20:04
TimToady introspection is another last-resort escape hatch
masak yes, but why?
why isn't it just another feature, like iteration?
tadzik twitter.com/xquery/statuses/21283518768218112
all the cpan packages?
TimToady because one is tempted continually to write less generic code than desirable 20:05
moritz_ tadzik: I don't think so
masak tadzik: I saw that one too. he seems very happy about something that isn't there yet.
TimToady a small example is $x.WHAT eq 'Int()'
masak ewww!
TimToady but that shows the problem, because .WHAT is introspection
tadzik masak: exactly 20:06
moritz_ so pharsed differently, there's nothing wrong with not-restricting, properly used introspection?
masak tadzik: nevertheless, I replied to him and asked him to contact #perl6 if he had any questions.
TimToady you can say the same about BEGIN and eval
colomon masak: I admit I'm not coming up with good reasons why something like the "special" version prompt shouldn't introspect.
masak BEGIN may be a last resort, but it evaluates as early as possible. :P 20:07
masak hones is really bad puns
TimToady because it's a single point solution, when a general solution will cover MAIN and <1 2.3 4+2i>
and maybe prompt
masak TimToady: but you could say that about a lot of cool things. "it's not general enough, we should do this thing once and for all..." 20:08
20:08 MayDaniel left
moritz_ or generally turning strings into the literals they represent 20:08
TimToady yes, we need some kind of "untext" primitive that is useful all over
masak moritz_: a bit like a JSON parser without the injection attacks :)
TimToady I've been scratching my head all morning for a good name for it, so I can spec the other things in terms of it 20:09
masak &pure-eval
20:09 mtk joined
sorear hello masak 20:09
moritz_ literal
TimToady it can be viewed as a form of eval, yes
masak sorear! \o/
TimToady one thing about taking the evalish view is that it tends to make you want to translate enums as well 20:11
moritz_ you mean "True" -> True ?
TimToady that's an example, yes
20:12 PerlJam joined
sorear parse 20:12
TimToady too generic
likewise lex
PerlJam happy new year every one!
20:12 orafu left
TimToady lex with a default lexer could be a way to look at it though 20:12
20:12 orafu joined
TimToady on the other hand "numify" is too specific 20:13
dwim is too general
guess is too general
tadzik hello PerlJam, same to you :)
TimToady another problem you run into is words that are too overloaded already, like "id"
or "type"
20:13 lilly_90 joined
TimToady "typify" is kinda long 20:14
lex is probably the closest miss, so far
diakopter pharsed indeed
TimToady weighed and found wanting 20:15
PerlJam what are we talking about exactly? What needs a (new?) name?
TimToady I love making jokes that only diakopter will get :)
perljam: a generalizition of what <1 2.3 4i> is already specced to so 20:16
dalek rixel: 869cd2b | diakopter++ | / (16 files):
classes, slightly-wrong syntax attributes, methods, recursive &
TimToady *to do
moritz_ PerlJam: a function that turns a string into the literal it reprsents
TimToady or a list of strings
PerlJam hmm
20:16 Psyche^ joined
lilly_90 helo, I downloaded the "using perl" pdf and faced a problem executing first program on my fedora14.. can someone help please? 20:16
alester Which "using perl" pdf is this? 20:17
diakopter won't dare to step a toe into any kind of [re-]naming, since apparently I'm bad at it.
moritz_ lilly_90: if you tell us what the prlbem is, yes
lilly_90 when I execute tennis.pl I get this: Method 'split' not found for invocant of class ''
PerlJam TimToady: I take it "ident" is just as bad as "id"?
masak I'd like to propose that this &lex thing be able to parse things under different slangs, perhaps defaulting to the current one. 20:18
lilly_90 moritz_: I think I saw your name on authors..
alester lilly_90: This channel is for Perl 6, but I think you're looking for help on Perl 5. If so, then take a look at #perl-help.
20:18 Patterner left, Psyche^ is now known as Patterner
sorear alester: that's a rakudo error 20:18
20:18 bacek_ joined
moritz_ alester: no no, lilly_90 means "Using Perl 6" 20:18
diakopter lilly_90: you're in the right place :)
alester look at that. Huh.
moritz_ lilly_90: what data file did you provide? did you make sure to have no leading whitespace in it?
alester lilly_90: Ignore me. :-) 20:19
TimToady masak: so what you're saying really is that the current slang needs a way of isolating the pure bits; we started down that road once before with <number>...
lilly_90 moritz_: I used file named scores like the example in book exactly..
diakopter on another note, it seems google hasn't indexed *the text in* that PDF; it might be nice if it had
moritz_ lilly_90: are there trailing or leading spaces in the data file? 20:20
alester lilly_90:Can you show us the source code, please? Go to pastebin.com/ and paste the code into that box, and click Submit. Then give us the URL that it gives you.
that way we can see your source code.
moritz_ lilly_90: copying from PDf and then pasting to a text file is known to be fragile
20:20 zby_home_ left
lilly_90 I did not copy and paste.. I written it manually.. 20:21
masak TimToady: haven't thought of it like that... yes, maybe.
PerlJam alester: Don't be so helpful after telling someone to ignore you ;)
alester :-P
lilly_90 I just re-ran it.. got these three messages: 20:22
diakopter lilly_90: even a line break after the last line might cause the error
20:22 zby_home_ joined
lilly_90 Method 'split' not found for invocant of class '' 20:22
in <anon> at line 13:tennis2.pl
in main program body at line 1
the datafile has no leading or trailing white spaces.. 20:23
alester lilly_90: Please do the pastebin.com thing that I said above.
20:23 wamba left
TimToady please show us your copy of tennis2.pl as alester++ suggested 20:23
moritz_ lilly_90: then please show your code. The latest example has only a blank line on line 13
alester (If you dont' have me on ignore. :-))
moritz_ s/example/pdf/
20:23 impious left
moritz_ should upload a new .pdf 20:24
lilly_90 alester: Just a moment 20:25
sorear when I was trying to estimate "how much will self-hosting slow down Niecza builds" earlier, there was one factor I was not counting on
1285 3876 32913 src/Op.pm
774 2731 22495 v6/Op.pm6
lilly_90 alester: here you go: pastebin.com/jWe35jYY 20:26
PerlJam lilly_90: can you paste you data file too?
lilly_90 PerlJam: sure.. moment
20:27 shi joined, Patterner left 20:29 Psyche^ joined, Psyche^ is now known as Patterner
PerlJam lilly_90: while I'm waiting I would guess that you have a blank line in your data file somewhere. 20:30
lilly_90 PerlJam: here you go: pastebin.com/2yfhBcuu
PerlJam: where?
PerlJam dunno. I was guessing. :) 20:31
TimToady there seems to be a missing }
on the for loop at line 10
diakopter no..
PerlJam just crazy indentation 20:32
diakopter just funy indenting
TimToady okay, I see it
diakopter lilly_90: what kind(s) of line endings does the datafile have? \r\n ? \n ? \r ? \f ?? 20:33
PerlJam lilly_90: what version of rakudo are you using?
moritz_ lilly_90: when I run your code with your data, I get a quite different output
lilly_90 moritz_: by the way now I get this : pastebin.com/y0iEjjvd
PerlJam Hmm.
moritz_ lilly_90: that's what I get too
lilly_90: and that is explained by typos in your data file 20:34
Dava vs. Dave
diakopter oh, yeah
moritz_ and Charlie vs. Charli
lilly_90 moritz_: ohhh!!!
moritz_: :D
PerlJam lilly_90: so what changed between the time you had the errors and when it worked? 20:35
lilly_90 PerlJam: I rewritten it again.. I guess you mean there was a hidden space somewhere? ;) 20:36
Thanks to all! you are great! :) bye! ^_^ 20:37
PerlJam Though this error is LTA: Method 'split' not found for invocant of class '' 20:38
I wonder if the name of the var is available at that point to give a better error?
(I would assume so, but I dunno for sure) 20:39
masak PerlJam: that usually happens when .WHAT is called on a type object. 20:40
rakudo: say Str.WHAT.perl 20:41
p6eval rakudo fc3035: OUTPUT«Str␤»
masak hm.
rakudo: say Str.WHAT
p6eval rakudo fc3035: OUTPUT«Str()␤»
masak apparently that's not how the bug is triggered... :)
PerlJam rakudo: my $not-str; $not-str.split(' ');
p6eval rakudo fc3035: OUTPUT«Method 'split' not found for invocant of class ''␤ in main program body at line 22:/tmp/lhz4p5x1yI␤»
TimToady rakudo: say $*IN.get.split(' ')
p6eval rakudo fc3035: OUTPUT«LandderBerge,LandamStrome,␤» 20:42
TimToady though split(' ') is probably not doing what a P5 programmer would expect
20:42 lilly_90 left
PerlJam TimToady: maybe depends on how long they've been a perl 5 programmer :) 20:42
TimToady you can't trick me, I already hedged it with "probably" :P 20:43
PerlJam I forgot you can see around corners.
TimToady yeah, well, the big problem is still what I know that ain't so 20:44
PerlJam That would be a hard one to warn against though. Would you have: use warnings 'Perl5'; or something? Because a Perl 6 programmer would expect $string.split(' ') to do what it actually does. 20:49
TimToady we could force them to disambiguate that one to .split(/' '/) 20:51
it's not like the situation where you really want to split on space comes up all that much, so I wouldn't consider it an arduous workaround to suppress the warning 20:52
especially if the warning says as much 20:53
...please use .comb or .split(/' '/) instead
er, .words rather 20:54
PerlJam right now I think I'd find that annoying. But then again ... I can't think of when I've actually wanted to split on just a single space either. 20:55
(in any language)
masak space-separated record? 20:57
21:00 Util left
PerlJam usually that comes across as "spaces-separated" or "arbitrary whitespace separated" 21:00
21:00 pmichaud left
flussence you're underestimating the evilness of people who generate "CSV" :) 21:01
masak I agree it's probably not very common at all. 21:02
21:02 tadzik left
diakopter feather away 21:03
Su-Shee flussence: you wouldn't really apply split in that case but use either a module or in perl6's case probably the superfancy CSV grammar.. :)
21:06 zby_home_ left
dalek ecza: 437db86 | sorear++ | v6/ (2 files):
[v6] Finish translation of Op
21:06
21:08 bacek__ joined
flussence sorear: wow. I see what you mean with the wc stats, that's a lot of boilerplate 21:09
21:12 bacek_ left 21:15 pmurias joined
masak TimToady: a possible problem with having a pure subset of every slang is that it might be too much to ask of someone extending Perl 6 to specify such a pure subset. 21:17
21:17 Psyche^ joined
pmurias sorear: hi 21:17
sorear: what's your estimation of the slowdown?
21:18 Patterner left, Psyche^ is now known as Patterner 21:21 bacek_ joined
moritz_ fwiw I uploaded new snapshots of the book 21:21
PerlJam moritz++
sorear pmurias: insufficient data 21:23
21:24 bacek__ left
pmurias so what's left for the bootstrap? the grammar and the actions? 21:25
sorear no, the grammar was first.
21:26 MayDaniel joined, rindolf joined
rindolf Hi all. 21:26
sorear actions, NAMBackend, driver, optimization passes, begin
hello rindolf
rindolf sorear: what's up? 21:27
sorear niecza: my $match = "foo" ~~ /^./; say ~$match
p6eval niecza v1-35-gc9d17a7: OUTPUT«f␤»
sorear # moritz_
moritz_ niecza: my $match = "foo" ~~ /^./; say $match
p6eval niecza v1-35-gc9d17a7: OUTPUT«f␤»
moritz_ niecza: say "foo" ~~ /^./ 21:28
p6eval niecza v1-35-gc9d17a7: OUTPUT«␤»
sorear moritz_: say has a slurpy argument
21:28 Patterner left
diakopter sigh. enabling perlesque not to require predeclaration of classes & method signatures (by prepending another pass) is requiring some non-trivial refactors. 21:29
oh well. it'll be worth it in the end.
(enables recursive & cross-referring methods and cross-referring classes, all resolved at compile-time) 21:30
moritz_ sorear: I consider $/ a scalar
so just like say [1, 2, 3] doesn't flatten the scalar [...], I don't think say() should flatten $/
pmurias sorear: it doesn't make much sense to refactor stuff before migrating everything to Perl 6?
21:31 Psyche^ joined, Psyche^ is now known as Patterner
moritz_ niecza: say 'foo' ~~ /(.).(.)/ 21:31
p6eval niecza v1-35-gc9d17a7: OUTPUT«fo␤»
moritz_ niecza: say 'abc' ~~ /(.).(.)/
p6eval niecza v1-35-gc9d17a7: OUTPUT«ac␤»
diakopter niecza: say 'abc' ~~ /(.).($)/
p6eval niecza v1-35-gc9d17a7: OUTPUT«b␤»
moritz_ niecza: 'abc' ~~ /(.).(.)/; say $/ 21:32
p6eval niecza v1-35-gc9d17a7: OUTPUT«abc␤»
diakopter rakudo: say 'abc' ~~ /(.).($|.).?/ 21:33
p6eval rakudo fc3035: OUTPUT«abc␤»
diakopter niecza: say 'abc' ~~ /(.).($|.).?/
p6eval niecza v1-35-gc9d17a7: OUTPUT«ac␤»
masak sorear: so, how's the translation work going? 21:34
21:34 Trashlord left 21:36 Patterner left
sorear niecza: "foo" ~~ /^./; say $/ 21:36
p6eval niecza v1-35-gc9d17a7: OUTPUT«f␤»
sorear moritz_: $/ is a scalar
moritz_ and a match doesn't return $/ ? 21:37
sorear points at STD.pm6 line 5791 21:38
21:38 simon__ joined, Psyche^ joined, Psyche^ is now known as Patterner
sorear if the match returned $/, then $/ would be assigned to $sigil and $twigil and $first would get undef 21:39
so instead niecza returns a value which acts like $/ in item context and @() in list context 21:40
moritz_ is not entirely convinced
STD also used @a[-1] until I changed it *-1 21:41
Tene perlcabal.org/syn/ is down?
dalek ecza: 10dda8e | pmurias++ | / (3 files):
added the clisp backend
21:42
colomon \o/
sorear pmurias: I plan to migrate the driver after you finish refactoring 21:43
masak: unexpectedly well. 21:44
BinGOs Tene: www.downornot.com/perlcabal.org
masak sorear: glad to hear it.
std: my @seasons[4:map(*%4)]; say @seasons[-1]
p6eval std 625303c: OUTPUT«===SORRY!===␤Unsupported use of [-1] subscript to access from end of array; in Perl 6 please use [*-1] at /tmp/3OdGXgTJ4E line 1:␤------> y @seasons[4:map(*%4)]; say @seasons[-1]⏏<EOL>␤Parse failed␤FAILED 00:01 122m␤»
masak TimToady: ^^
TimToady diakopter: two-pass parsing will never be in Perl 6
21:49 Psyche^ joined, masak left 21:50 Patterner left, Psyche^ is now known as Patterner
dalek ecza: af8c692 | pmurias++ | niecza:
-B is the default
21:50
ecza: 08bc46f | pmurias++ | niecza:
fix argument handling
diakopter diakopter: right, but this is on the backend 21:52
erm
TimToady: right, but this is on the backend
assuming "perlesque" will be the language to which sprixel "desugars" (used very generally) Perl 6
dalek ecza: ecab5bd | pmurias++ | niecza:
fix hashbang line in niecza
21:53
21:53 hugme joined, ChanServ sets mode: +v hugme
diakopter TimToady: I keep having to remind lots of people that perlesque is never intended to be a Perl 6 implementation; it's just an intermediate language in the sprixel implementation 21:54
TimToady I don't think emitters should necessarily be that lazy, and two-pass parsing is fragile and inextensible
21:54 Juerd joined
TimToady I think it's asking for trouble down the line 21:54
diakopter it's fine for this tiny/extremely-restricted subset. it's not two-pass parsing anyway; it's two-pass tree traversing 21:55
pmurias diakopter: perlesque looks like a language
diakopter pmurias: it's a language
pmurias diakopter: so it's natural people don't treat it like an intermediate thing
TimToady well, multiple tree traversals is less evil, but I'm assuming you're not using "is it a class" to parse differently like Perl 6 is 21:56
21:56 tadzik joined
TimToady if classiness doesn't change your grammar, then I'll shut up 21:57
it's retroactive grammar changes that are evil
diakopter well, after biobreak cogitation, I realized it doesn't require *any* refactors :) Advice appreciated; no, the grammar is unambiguous 21:58
pmurias: the same argument could be made for NQP
TimToady one can, of course, get into similar troubles with multi-pass trees where the types don't track the semantic changes 21:59
pmurias i thought rakudo was compiling directly to PAST?
sorear: prove -e './niecza' test.pl passes
diakopter in perlesque symbols never change type except covariantly and back 22:00
(same as CLR)
TimToady I mean if you do a tree transform and represent it with the same type, it can get into similar cyclic problems 22:01
22:01 bacek_ left
TimToady you can view tree transformations from either an FP view or an imperative view, in other words 22:02
diakopter nothing transforms trees yet; it just traverses them.
TimToady sounds imperative :)
diakopter here are some details: 22:03
one way to build classes on the CLR is to use the built-in System.Reflection.Emit class, which uses TypeBuilder objects to represent in-progress-types. 22:04
the runsharp library (which I brazenly imported into perlesque/sprixel) wraps SRE with TypeGen objects that abstract the TypeBuilder objects even further
22:05 shi left
diakopter er, System.Reflection.Emit namespace 22:05
anyway, one pass through the tree can create all the TypeGens and FrameGens (another abstraction perlesque adds to TypeGens, to represent not-yet-ready-to-compile-to-CIL subroutine instances (continuations)) 22:07
22:07 _twitch left, simon__ left
diakopter they leave in droves (bacek_, slavik1, shi, _twitch, simon__ :( 22:07
then the next pass can fill in the CodeGens (another class in runsharp that represents the bodies of CLR methods before they are emitted to CIL) with the appropriate code. 22:09
any optimization passes would occur in the second pass, recursively (with depth limits) if necessary, but that type/method-signature building pass wouldn't need changed for those. 22:12
22:12 aindilis joined
diakopter goes back to it 22:12
22:14 bacek_ joined
diakopter pmurias: I see your point about compiling directly to PAST. 22:14
sprixel's strategy will be (interrupted by finishing nqpclr's regex port from pmichaud's nqp-rx):
22:15 Juerd left, shi joined 22:17 tadzik left
diakopter 1. use a particular viv emitter (or niecza emitter if it's caught up to viv by then) to emit a strongly/primitive-typed (as much as possible) perlesque edition of STD/Cursor. 2. write an emitter for that CLR STD/Cursor that desugars Perl 6 to perlesque, optimizing for primitive types (non-annotated scalars are Any/Cool/etc or whatever). 3. run that perlesque 22:18
22:18 hugme left
diakopter feather seems flaky today 22:18
22:19 dju_ joined, Kovensky joined 22:20 cxreg joined, bacek_ left
diakopter I suppose step 1 subsumes step 2 if it's niecza. wow, /me shuts up now 22:20
22:21 rbuels joined
Tene argh, I just spent like 20 minutes working on a reddit comment that should have been like 2 minutes. >< 22:23
22:23 dju left, Helios joined
diakopter oh, and, the emitted perlesque would appear very "interpreter"-like 22:24
sorear pmurias: cool 22:29
TimToady pardon me if I appear distracted; still recovering from the disk crash; am at the "cpanm Moose" stage...
sorear pmurias: how long until it can build the setting? 22:30
22:30 tadzik joined 22:31 Juerd joined 22:34 jjore_ joined
ggoebel good to see jonathan++ back at 6model 22:35
22:35 rjbs- joined, pumphaus1 joined
diakopter TimToady: disk crash was catastrophic? 22:35
like, lack of backup and such?
pmurias sorear: dunno a few small fixes propably
22:35 kst`` joined 22:36 c9s_ joined, rjbs- left, rjbs- joined, Helios left, stepnem left, jmmills left, c9s left, estrabd left, kst` left, shabble left 22:37 rjbs- is now known as rjbs, hercynium left 22:38 sol1tude joined, [particle] joined
pmurias sorear: the common lisp backend will take a lot longer to build the setting 22:40
sorear naturally
there's quite a lot of logic in the C# parts :/
pmurias not sure if it's worth to spend time on that right now 22:41
22:41 stepnem joined, takesako joined 22:42 Helios joined, jmmills joined, estrabd joined, shabble joined, ruoso joined, patch joined
colomon Hmmm, I definitely get new failures in S14-roles/parameterized-type.t using the latest Rakudo. Will try to roll back jnthn++'s patch now. 22:42
22:43 moritz_ joined
pmurias sorear: where should i put the stuff to create a Niecza::Compiler for a given backend/options? 22:45
sorear pmurias: should I plan to start v6/niecza with the old driver or the new one?
pmurias: Niecza::Compiler should have a new_simple method that handles the finer points of setup 22:46
then that can be used in the niecza script and in Niecza.proj
22:47 bacek joined
pmurias i would rather have that seperate from Niecza::Compiler 22:47
sorear Niecza::Simple then maybe 22:48
colomon yeah, jnthn's patch is definitely what is breaking S14-roles/parameterized-type.t. 22:49
pmurias sorear: i think it would be better to port over the new driver
as that avoids changing it later and it's split into smaller pieces 22:50
sorear ok. 22:53
22:57 bacek_ joined, kst`` is now known as kst 23:00 bacek left
pmurias sorear: how can i compile the new niecza? 23:01
23:01 Fuad joined
Fuad hi 23:03
sorear pmurias: it's missing several components, so it can't be compiled as a whole
pmurias: if you just want to compile one module, it's cd v6; ../niecza_eval -c Op
23:03 bacek_ left
sorear (I like -v too but it's not needed) 23:03
dalek kudo: de98d15 | colomon++ | src/binder/bind. (2 files):
Revert "This implements a very simple saturating cache for nominal types of parameters. Halved the runtime of a simple benchmark that focused on sub calls with typed parameters." Keen patch, but introduced bugs I don't know how to fix. See S14-roles/parameterized-type.t for example.

This reverts commit fc3035abb487aa86e35f01632e7ddcfe5ceb38f5.
sorear Fuad: hi! 23:04
Fuad How are you, sorear ?
dalek ecza: cc6cc43 | pmurias++ | / (2 files):
separate compiler creation into Niecza::Simple
23:05
sorear Fuad: I never know how to answer that 23:06
23:06 kaare_ left
sorear pmurias: to compile the setting manually with the old driver, I use ./niecza_eval -v -L NULL -c --setting SAFE 23:06
23:14 Fuad left, MayDaniel left
pmurias it should be a matter of adding the options to niecza (i'll do that after tommorow) 23:14
g'night 23:15
sorear sleep well
pmurias thanks
23:15 pmurias left 23:23 simon__ joined, simon__ left 23:32 ruoso left 23:33 rindolf left
sorear niecza: "foo"\ .say 23:35
p6eval niecza v1-35-gc9d17a7: OUTPUT«foo␤»
23:35 ruoso joined 23:36 frooh joined 23:41 MayDaniel joined, alester left 23:42 cdarroch left 23:48 MayDaniel left 23:52 bacek joined