»ö« 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:00 Patterner left 00:03 spine left 00:05 Psyche^ joined, Psyche^ is now known as Patterner 00:07 replore joined 00:08 molaf__ joined 00:11 molaf_ left
dalek ecza: 4f3692f | sorear++ | lib/Kernel.cs:
Fix roles that compose other roles
00:18
ecza: 5c21950 | sorear++ | src/niecza:
Use .can instead of old try hack
ecza: c6b4acc | sorear++ | lib/ (3 files):
Convert Real, Numeric, Integral, Callable to roles; add Positional, Associative
00:22 snearch left 00:23 thou left
dalek ecza: c8eeefc | sorear++ | / (3 files):
@foo requires Positional, %foo requires Associative (fixes #50)
00:24
sorear 10 open issues 00:26
nom: say 5.Any::Bool 00:33
p6eval nom 1c74c7: OUTPUT«Bool::True␤»
sorear nom: say 0.Any::Bool
p6eval nom 1c74c7: OUTPUT«Bool::True␤»
sorear Should this be allowed? 00:34
The CLR forbids (when bytecode verification is enabled) superclass calls except from the methods that override them, as a security measure 00:35
I'm thinking that P6 should maybe require "trusts" in some way
00:37 tokuhirom joined
TimToady why should a subclass not be able to call a public method? 00:48
and private methods are already require 'trusts' from subclasses 00:49
(and nextsame is already limited to overriding methods) 00:50
btw, the prime factors from earlier now fails with: Attempted to re-enter abnormally exitted or running coroutine
[Coke] I'm seeing the -order.t tests not running END{} blocks again. 00:51
TimToady hmm, s/exitted/exited/
geekosaur as long as it's not excited
TimToady sorear: I mean, the error message has a misspelling, in addition to being an error we shouldn't get 00:52
[Coke] TimToady: I'll fix the mispelling, anyway. 00:53
dalek ast: b257971 | coke++ | S (5 files):
niecza fudge
00:54
ecza: b68fd9b | coke++ | / (2 files):
Add Str.indent(), run S32-str/indent.t

Original version from rakudo++'s ng branch.
00:55
ecza: 5ae70b5 | coke++ | lib/Kernel.cs:
fix typo
[Coke] there you go.
TimToady thanks--I feel silly nitpicking when sorear++ is slaying large dragons 00:57
sorear TimToady: the sequence operator looks ahead one more value than is strictly necessary, so you need 2, 3, 5 ... 00:58
01:00 thou_ joined
TimToady almost makes one wish that 2,3,5...* automatically generated primes 01:01
but if we were going to build it in @primes would still be shorter :)
sorear TimToady: I'm talking about cases of $obj.Superclass::method(), where $obj is an _unrelated_ object
rakudo: say now 01:02
p6eval rakudo 1c74c7: OUTPUT«Instant:1325722942.28046␤»
sorear rakudo: say now.perl
TimToady why would that be a problem?
p6eval rakudo 1c74c7: OUTPUT«Instant.new(x => 778199369038/587)␤»
sorear rakudo: say :foo.Any::perl
p6eval rakudo 1c74c7: OUTPUT«Pair.new(key => "foo", value => Bool::True)␤»
sorear encapsulation breakage 01:03
TimToady that seems like a bad kind of encapsulation that violates the substitution principle 01:05
01:16 tokuhirom left 01:17 muixirt_ joined 01:19 shinobicl___ joined 01:20 muixirt left, muixirt_ is now known as muixirt 01:23 wolfman2000 joined 01:29 lestrrat left 01:30 lestrrat joined
dalek ecza: fa69aee | sorear++ | src/niecza:
Re-enable type checking for role invocants
01:35
ecza: 123d639 | sorear++ | lib/CORE.setting:
Rearrange series op to be less eager, fixes TimToady's primer
colomon woah, go away to dinner and storytime and miracles happen in niecza! 01:39
TimToady though I might leave in the 5 just because 2,3,5 is good documentation :) 01:47
sorear I don't think this counts as miracles... it's generally been easier than I expected 01:49
rakudo: role A { has $.x; method foo() { $.x } }; class B does A { }; say B.new(x => 5).x 02:00
p6eval rakudo 1c74c7: OUTPUT«5␤»
sorear rakudo: role A { has $.x; method foo() { $.x } }; class B does A { }; say B.new(x => 5).A::x
p6eval rakudo 1c74c7: OUTPUT«Cannot look up attributes in a type object␤ in method x at src/gen/CORE.setting:1339␤ in <anon> at src/gen/Metamodel.pm:1140␤ in method dispatch:<::> at src/gen/CORE.setting:760␤ in block <anon> at /tmp/YiNS5544Y7:1␤ in <anon> at /tmp/YiNS5544Y7:1␤»
sorear bug?
02:02 mtk left
colomon I'm running spectest now, and it's taking quite a bit longer than normal and I'm getting zillions of warnings scrolling by... 02:04
[Coke] I got a much lower pass rate when I tried to run the numbers just now. 02:08
sorear failing test? 02:10
[Coke]: can you name a regressed test?
02:12 lutok joined
[Coke] investigating. 02:12
(it's from the test_summary tool, so it's not the same output) 02:13
S06-signature/named-parameters.niecza aborted 67 test(s) 02:15
colomon spectest run is taking WAY too long. like at least two orders of magnitude worse than the last run I made. 02:16
Timbus rakudo: class A {has $.thing = "default"; submethod BUILD {say "workin' hard"};}; A.new(thing => 'notdefault').thing.say 02:17
p6eval rakudo 1c74c7: OUTPUT«workin' hard␤default␤»
[Coke] feather.perl6.nl/~coke/failures.txt
(also, I was at least one commit behind.) 02:18
Timbus rakudo: class A {has $.thing = "default"; submethod BUILD {callsame};}; A.new(thing => 'notdefault').thing.say
p6eval rakudo 1c74c7: OUTPUT«default␤»
Timbus .. realllly
colomon sorear: my dire reports may have resulted from one particular test getting into an infinite loop 02:20
02:22 shinobicl___ left
Timbus okay after reading the syn, i can't tell if this is desired behavior or not. 02:28
rakudo: class A {has $.thing;submethod BUILD {};}; A.new(thing => 'notdefault').thing.say 02:29
p6eval rakudo 1c74c7: OUTPUT«Any()␤»
Timbus well, i sure don't desire it 02:31
but thats me
sorear colomon: do you know which one?
colomon sorear: as soon as I figure it out I'll let you know. 02:32
02:32 Guest85555 left
colomon seemed like it was late in the integration tests, or early in whatever comes next 02:32
but it spews out so many messages it's hard to work with.
sorear what messages? 02:33
(I mean, if it's a backtrace it should have a file name)
colomon all I see... oh, bingo 02:34
integration 02:35
advent2010-day04.t
sorear++
[Coke] I'm still seeing failures with the latest niecza. 02:36
dalek ast: 85e13f8 | sorear++ | S06-signature/named-parameters.t:
[S06-signature/named-parameters] Refudge for niecza (accidental passes)
02:37
sorear those tests are ... quite dubious
colomon one disturbing thing about going through roast is seeing how many tests are dubious. 02:39
02:39 replore left
[Coke] (bisecting) 02:39
02:39 jakky joined
sorear [Coke]: failures outside named-parameters/ 02:40
02:40 abercrombie left
sorear ? 02:40
[Coke] there were a few, yes. I'm just seeing when that one started failing. 02:41
colomon yeah, it's definitely integration/advent2010-day04.t
02:42 abercrombie joined
[Coke] see the .txt link above for all the failures I was seeing. 02:42
c8eeefc0cf9e6a01c3c292edcb077d24247bc61d is when that test started failing. 02:43
colomon huh. now it looks like S03-metaops/reverse.t is looping forever 02:47
02:47 lutok left 02:50 hundskatt left 02:51 Chillance joined, wooden left 02:57 raiph joined
colomon I did a make realclean and I'm still getting the infinite loop in integration/advent2010-day04.t. Is anyone else seeing this? 03:03
03:08 mdxi left 03:09 mdxi joined
colomon niecza: say (0, 2 ... *)[^10] 03:16
p6eval niecza v13-108-g123d639: OUTPUT«0 2 Any() Any() Any() Any() Any() Any() Any() Any()␤»
03:21 benabik left
colomon that's a less that satisfactory answer, I reckon. 03:23
03:25 thou_ left 03:29 benabik joined 03:30 benabik left 03:31 benabik joined
colomon don't have the brain power left to explore this tonight. good *, p6ers 03:36
03:37 Psyche^ joined 03:41 Patterner left, Psyche^ is now known as Patterner
ruoso sorear, colomon: does niecza have exceptions working already? 03:52
colomon yes 03:53
03:53 orafu left
colomon niecza: say (0, 2 ... * > 100)[^10] 03:53
03:53 orafu joined
p6eval niecza v13-108-g123d639: OUTPUT«Use of uninitialized value in numeric context␤ at /home/p6eval/niecza/lib/CORE.setting line 893 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 202 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/JqowGZor7a line 0 (ANON @… 03:53
sorear [Coke]: I'm expecting c8eeefc to break stuff... it tightens up a check that's long been too loose 03:55
I see I broke series. :|
niecza: .say for 0, 2 ... * > 100 03:57
p6eval niecza v13-108-g123d639: OUTPUT«0␤2␤Use of uninitialized value in numeric context␤ at /home/p6eval/niecza/lib/CORE.setting line 893 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 202 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/dH3RhLl3DH line 0 (AN…
04:00 sivoais joined 04:18 xinming left
dalek ecza: 84f6f00 | sorear++ | lib/CORE.setting:
Fix series breakage in integration/advent2010-day04.t
04:19
04:20 xinming joined
ruoso sorear: github.com/ruoso/niecza/commit/3d4...54e4479363 04:20
I am trying to get the objectpipe thing going.. 04:21
04:21 replore joined
ruoso but I can't make the thread return after it ends 04:21
sorear 'when Str' should probably be default { }, since someday niecza will get exception objects 04:26
04:27 xinming left
dalek ecza: e593b09 | (Daniel Ruoso)++ | / (2 files):
initial sketch of the full ObjectPipe framework
04:27
ruoso sorear: but the point is that it is getting into the CATCH
sorear ruoso: no DESTROY in niecza yet - and even if there was, mono doesn't make guarantees of immediate destruction 04:28
ruoso but the process blocks, probably waiting for the thread to finish
04:28 satyavvd joined
ruoso sorear: it doesn't need to be immediate 04:28
invokign the DESTROY manually is doing what it's supposed to...
as a work-around
sorear DESTROY could be called hours later, if the program goes into a state where it doesn't allocate much
since DESTROY will only be called when the GC runs 04:29
ruoso that's ok, by the model we're working with
sorear (when it's implemented - which it isn't)
ruoso that's like unix pipes... there's no guarantee that the other program will be stopped immediately when the other side of the pipe closes 04:30
sorear ruoso: enter/pulse/exit is very very bad
you need to do all the state modification inside the lock
you probably shouldn't read or modify $!anything unless $!lock is held 04:32
04:32 unobe left
ruoso changing that 04:32
04:33 unobe joined 04:38 unobe left
ruoso sorear: ok... I got it... if I don't explicitly join the thread in the end, it just hangs in undefined behavior 04:42
dalek ecza: b2b426b | (Daniel Ruoso)++ | examples/threads-objectpipe.pl:
joining the thread explicitly seems to be mandatory
04:45
ecza: a988fa0 | (Daniel Ruoso)++ | lib/Threads.pm6:
Fixes in the implementation of the ObjectPipe

not really a need for $!eod. return EMPTY when no more writers. Use plain "wait" instead of "try_wait" (since we now undrestand why things were weird. Have all methods with the proper lock guards.
ruoso examples/threads-objectpipe.pl have an example on how the pipe works by blocking and eventually stopping the producer side depending on how the consumer acts... which is the basis for "my @a <== 1..inf" 04:47
dalek ecza: 7896533 | (Daniel Ruoso)++ | examples/threads-objectpipe.pl:
make the example more explicit

The semantics of batch-processing imply that we may actually not use all the data that we produce. But we dont wait for each value to be used to produce another one The output of the example shows that the thread will produce a set of objects before the context switches again.
04:53
ruoso night & 04:54
TimToady o/
ruoso TimToady: hey 04:55
TimToady: I hope the direcetion I am pointing is consistent with your view on parallelism :)
04:56 kaleem joined
TimToady to the extent that I understand what you're doing, it seems fine 04:56
doubtless we'll discover all the pitfalls that every other general concurrency model discovers :) 04:58
but I really like to see us doing something rather than nothing
ruoso and in any case, implicit threading protects us from ourselves in the sense that we can change underlying models easier, since the user is not actually using the threading primitives 04:59
TimToady nodnod
we'll need to control access to structures from outside the thread somehow though
ruoso if the low-level is thread-safe... what kind of synchronization we really need? 05:00
I mean, besides the flow of the data 05:01
TimToady for example if an array is visible lexically outside of two different thread
threads
ruoso do we really need to proactively protect the user in that cases? 05:02
TimToady that can be argued both ways, of course 05:03
ruoso I had the impression that things were pointing towards the "if you modify the data you just returned, you better synchronize yourself" approach
but really night & 05:05
TimToady night
05:08 huf left 05:14 thou joined 05:16 thou left 05:30 raiph left 05:35 aindilis left 05:36 aindilis joined
japhb TimToady, in S02:3288, why does :100[3,'.',14,16] require quotes around the radix point? 05:36
sorear it would be a syntax error if it didn't 05:37
the inside of the [] is just a Perl 6 expression
japhb sorear, yes, but *why*? All other radix notations require special parsing ... or are you saying that any Perl 6 expression that results in a List with Int/int and at most one string containing exactly a single . would work? 05:39
sorear japhb: I beleive so 05:40
japhb: what STD has to say about it is that it is parsed by <?before '['> <circumfix>, i.e. an Array is created
japhb Hmmm. I don't think Str.Numeric() (and thus val()) should support that generality.
05:41 kaleem left
japhb It seems important to me that val() be "safe" and not risk entering the general language 05:41
PerlJam idly wonders what happens when that list contains multiple '.'
or '_' even 05:42
sorear japhb: I don't think that Str.Numeric should support any form that uses the general language
japhb sorear, good, then we're on the same page there
TimToady is fine to avoid security holes
japhb PerlJam, _ within the decimal values should Just Work, but it feels silly to make '_' work
PerlJam japhb: aye 05:43
japhb Hmmm, so then I guess Str.Numeric() accepting '.' instead of just . for radix points in :r[] just makes it *appear* to be parsed as a normal Array in the general language. Fewer special cases to remember. OK, I can buy that. 05:45
TimToady Str.Numeric has nothing to do with that notation 05:47
sorear I beleive Str.Numeric should not accept :100[...] at all
japhb TimToady, sorear and I had been assuming that val() internally works by trying a series of coercions, and accepting the first one that does not result in Failure. And Str.Numeric() was one of those attempts. Thus my continued coding on same. 05:48
sorear, why not?
rakudo/str-numeric has long accepted the basic :100[...], but just didn't have support for radix point and exponent. 05:49
TimToady if it's parsing ... as a string, it's incorrect 05:50
japhb blinks
TimToady S03:3290 indicates it's a run-time list of integers
S02:3290 rather 05:51
05:51 jakky is now known as allahu
japhb Er, maybe my numbering's off. All that 3290 tells me is that I have to be sure to range-check the elements in that list, and that the members of the list should be parsed as radix-10 standard ints. 05:52
TimToady these days we might possibly allow :100<3 . 14 16> as a string form
japhb Hmmm, interesting.
TimToady constant-folding indicates evaluation 05:53
and the fact that constant folding can fail points to a run-time value
sorear TimToady: japhb: I think japhb is talking about ':60[12,23,34]'.Numeric 05:54
japhb Wait, spec says elsewhere that numeric constants must not have spaces internally, so that in a larger qw-type string they are easily visible as single units
sorear, yes, exactly
TimToady that's gonna be illegal input to .Numeric
as I say, we might allow :60<11 23 34> instead 05:55
japhb Er why?
TimToady because the list would have to be evaluated
to be consistent with how it works in normal code
I'd rather use the spaces in <...> if we need to force stringness
japhb No it wouldn't. There's no reason that just because it *looks* like a list of ints means it has to be a List (or Array or whatever). As far as my code had handled it so far, it was comma separated digit groups 05:56
I'm just saying that Str.Numeric() can choose not to support the full generality of eval "". 05:57
While still supporting much of the common cases.
TimToady well, why wouldn't you want :60<12 23 34> instead to make that perfectly clear
japhb Because that contains internal spaces, breaking the "can be embedded in a larger << >> string"
TimToady still doesn't like it, but I see your point 05:58
japhb is worried that he is being horribly blind at this point
TimToady course we can always teach << >> about that form of quoting too... 05:59
japhb LOL
"When in doubt, make the parser even smarter!"
05:59 huf joined
TimToady in fact, it's already specced 06:00
06:00 kaleem joined
TimToady S02:3567 06:00
japhb reading that section again ... 06:01
TimToady so :60<12 23 34> should parse as a single Pair inside of «»
japhb Woah. So then we'd need to have val() turn that into some kind of three-headed beast that was a Str, a Pair, and an Int? 06:04
japhb often underestimates the magic of double angle quoting
TimToady no, it'd turn into 12*360 + 23*60 + 34 06:05
sorear I think single-angle quoting has the same magic
TimToady: It wouldn't become an allomorphic object?
TimToady well, I doubt people will use the Str allomorphism on pairs 06:06
sorear it seems to me that the Str allomorphism is necessary for reasonable round-trippiness in MAIN 06:07
japhb quite.
TimToady it would be useful for reporting faulty arguments, yes
sorear ./perl6_echo_clone ':60<12 23 34>' # Why does this print an integer?
TimToady okay, a Str and an Int, but not a Pair 06:08
06:08 edgar51774 joined
japhb TimToady, not just for that ... it has to be possible to write a MAIN that just wants Str arguments and doesn't want some of them to randomly morph into something else because of chance alignment of characters. 06:08
TimToady we just steal pair notation for a way to talk about numbers there
japhb Ah, I was taking your comment of :60<12 23 34> parsing as a Pair inside of French quotes and thinking we'd have to support triple allomorphism. 06:09
TimToady no, just double
same as if you'd said 1234 in there 06:10
sorear perl6: say pi.Rat.perl
p6eval pugs b927740: OUTPUT«*** No such method in class Rat: "&Rat"␤ at /tmp/0bulOqZeNc line 1, column 5 - line 2, column 1␤»
..rakudo 1c74c7, niecza v13-113-g7896533: OUTPUT«355/113␤»
sorear perl6: say e.Rat.perl
p6eval rakudo 1c74c7, niecza v13-113-g7896533: OUTPUT«2721/1001␤»
..pugs b927740: OUTPUT«*** No such subroutine: "&e"␤ at /tmp/XCWy4cxOxe line 1, column 5 - line 2, column 1␤»
japhb TimToady, so if you put :60<12 23 34> in French quotes you get Int/Str, but if you put :foo<12 23 34> in French quotes you get Pair/Str? 06:11
TimToady Pair/Array, but yes
japhb Ah, sorry, yes. 06:12
Wait, what?
sorear japhb: :60<...> isn't valid Pair syntax anyway; key has to start with <alpha>
japhb sorear, nodnod. I was just confirming my sanity
TimToady which is why we could steal it for numbers
japhb Always good to do a sanity check before entering another room. :-) 06:13
TimToady and save the game before facing the new monsters
japhb You know, it almost feels like "things that val() recognizes as not-just-a-Str" should be a grammar of its own, if only for documentation for people wondering what is and what is not handled -- and so that security specialists can understand it in isolation. 06:17
s/should be/should have/
TimToady it would be nice if that coincided with what the constant folder could fold
06:18 dukeleto joined
TimToady to the extent we can do that without risk of BEGIN stuff sneaking through 06:18
dukeleto o/
TimToady \o
sorear I disagree
japhb I would think val()'s powers should be a subset of the constant folder's powers. 06:19
sorear val() needs to be much more tightly constrained than the constant folder
japhb Basically that if val() can recognize it, you should be guaranteed that the constant folder will as well, but not the other way around
sorear, right
sorear It doesn't matter if different implementations have constant folders with different limitations
But val needs consistant semantics
japhb nodnod
06:20 huf left
japhb (perhaps "guaranteed that the constant folder will as well" is too strong. I should say rather "you can reasonably expect that if an implementation has a well-developed constant folder, it is at least as powerful as val()" 06:21
dalek ecza: 319d51c | sorear++ | / (5 files):
Add self.Foo::bar syntax

This is closely modelled after the Rakudo/nom implementation, and copies the buggy role behavior from same. Waiting for jnthn++ to find an elegant fix.
TimToady thinks it does matter if different implementations have different constant folders
japhb TimToady, do you disagree with the (second iteration of) my statement re: val() is a subset of the constant folder, but the latter is unconstrained to be arbitrarily more powerful than that? 06:22
.oO( The answer to your program is 42. So I compiled it down to just that. Have a nice day! )
06:23
TimToady if different implementations have different ideas of what is pure, we're in deep yogurt
the argument to limit val() must be based on some other criterion than that the constant folders will vary 06:24
if the argument is that you don't want to provide an automatic calculator on the command line for every argument, well, you'll need to justify that :) 06:25
japhb I think we're speaking in opposite directions. I'm assuming that an implementor that can create val() correctly can create a constant folder of similar power. But we cannot assume that all implementations can figure out the purity of more complex stuff than that.
I guess this is sortof like the "Just because you can use continuations to implement these features doesn't mean we expect every implementation to support full continuations always" 06:26
I'm OK with val() being immensely powerful, iff A) it remains secure, and B) the behavior does not arbitrarily suprise people. 06:27
(Mind you, it would be really nice if it can be implemented with modicum of efficiency. :-) 06:28
TimToady well, it's just kind of a strawman, anyway; it's almost certainly a bad idea :)
or at least, difficult to know what to do if you get halfway through something that looks like an expression and you get an error 06:29
val() is underspecced already for an argument like ':8<nyaa nyaa nyaa'
japhb (Perhaps I shouldn't admit at this point that I very nearly implemented a calculator in Str.Numeric() as an Easter egg ...) 06:30
TimToady do we just silently give up and return the Str? that's probably the right thing to do, on the assumption of accidental numberhood
sorear What's the numeric value of nyaa nyaa nyaa anyway? 06:31
japhb TimToady, yeah. I expect Str.Numeric() to see that and fail(), but val() to see that and silently return Str.
TimToady the alterenative is to carp
sorear for the MAIN use case val() should not carp ever 06:32
and it REALLY shouldn't confess
or croak
japhb sorear, yup
TimToady I mean carp in the English sense...
but I agree it probably shouldn't
benabik The val() of ':8<nyaa nyaa nyaa' is a fish? ;-) 06:33
sorear sorry, last two lines were meant as humor ;)
japhb I think of val() as silently doing the best it can to be magical, and if not able to find a match, just returning the original argument.
sorear benabik: probably a cat, given the noise ...
==japhb
benabik sorear: I thought cats went nyan. :D 06:34
japhb And stooges go 'nyuk'
TimToady :8< looks like the front of a mouse
japhb A neighbor's car has the license plate '3nyuk'
sorear
.oO( Stooges are Korean? )
...I just mentally transposed 3nyuk to nyuk3 and tried to parse it as Pinyin 06:35
japhb LOL
TimToady are there any Chinese dialects with a trailing /k/ phoneme? 06:36
sorear looks like I'll have to mess with generic types to get much further with roles 06:38
japhb OK, circling back to the beginning: Do we agree that :100[12,'.',34] and :100< 12 . 34 > are valid but :100[12,.,34] is not?
sorear std: :100[12,.,34] 06:39
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Unsupported use of . to concatenate strings; in Perl 6 please use ~ at /tmp/6aTdzwvTuh line 1:␤------> :100[12,.,⏏34]␤Parse failed␤FAILED 00:01 122m␤»
sorear std: :100< 12 . 34 >
p6eval std dc62e1d: OUTPUT«ok 00:01 118m␤»
sorear niecza: say :100< 12 . 34 >
p6eval niecza v13-113-g7896533: OUTPUT«102.0304␤»
TimToady it should probably not give the p5 message there...
sorear (probably not the intended result) 06:40
TimToady er, no :)
japhb eh, no. ;-)
jinx
OK, I'll implement that then. 06:41
06:41 xinming joined
japhb Also: I had been making Str.Numeric() not allow any internal spaces (it forgives leading and trailing spaces, however) -- should I relax that and allow internal spaces wherever they make sense? In other words, should '5 / 8' Just Work? 06:42
(I swear, by the end of this I will have the most scrupulously precise implementation of the tiniest piece of Perl 6 ... I fear the time sink of applying this OCD to the rest of the language.) 06:44
TimToady it makes some sense in some contexts but not much sense in others 06:45
japhb *should '5 / 8'.Numeric() Just Work?
TimToady I can see a string like that coming from the command line, but inside <5 / 8> it's really a list
sorear japhb: have you looked at niecza's Str.Numeric yet? 06:46
TimToady and it certainly won't work inside «»
where 5/8 must be a single word
japhb sorear, No I hadn't ... I didn't realize you had finished it
TimToady so I think we can live without the space
japhb Right, but you can say « "5 / 8" » 06:47
sorear japhb: I put less OCD into mine
japhb
.oO( Now with less OCD! )
TimToady as currently specced, only leading and trailing space is allowed
japhb OK, that's my current implementation. 06:48
So then the only exception will be :100< 12 34 > 06:49
sorear nom: role Foo[::T] { class Bar is T { } }
p6eval nom 1c74c7: OUTPUT«===SORRY!===␤Cannot type check against type variable T␤»
japhb Time to take a break & 06:51
TimToady of course, if we don't allow inner spaces, then it makes it hard to justify printing out complex numbers with inner spaces 06:52
perl6: say 1+2i
p6eval pugs b927740, rakudo 1c74c7, niecza v13-113-g7896533: OUTPUT«1 + 2i␤»
TimToady perl6: say (1/2).perl 06:54
p6eval pugs b927740, rakudo 1c74c7, niecza v13-113-g7896533: OUTPUT«1/2␤»
TimToady inconsistency there...
zzz & 06:57
06:59 wtw joined 07:01 edgar51774 left
sorear perl6: say (e+pi).Rat.perl 07:03
p6eval rakudo 1c74c7: OUTPUT«19613/3347␤»
..pugs b927740: OUTPUT«*** No such subroutine: "&e"␤ at /tmp/yThW8a0JHx line 1, column 6-10␤»
..niecza v13-113-g7896533: OUTPUT«13173/2248␤»
07:37 mkramer joined 07:45 Mowah joined, hundskatt joined
dalek ast: fe36f26 | sorear++ | S14-roles/lexical.t:
[S14-roles/lexical] Track Stringy/gist changes
07:46
ecza: aac37c0 | sorear++ | src/niecza:
Support accessing private methods/attributes in roles
ecza: 50e7f15 | sorear++ | t/spectest.data:
First batch of role tests!
07:52 araujo left 07:55 Trashlord left 07:56 Trashlord joined 08:09 carlin left 08:14 baest joined 08:19 spine joined 08:22 agentzh joined
dalek ecza: cd7e924 | sorear++ | lib/Kernel.cs:
Implement diamond role composition

This is actually slightly wrong, as it allows different instantiations of a parametrized role to not conflict. Also, attribute diamonding is still considered an error.
08:37
ecza: 918bb3d | sorear++ | lib/ (3 files):
Allow punning in "is" target
ecza: 4446002 | sorear++ | / (3 files):
Compute role_typecheck_list a bit earlier; add S14-roles/composition.t
kshannon Damn! The loop { 1 + 1 } rakudo memleak has nothing to do with the perl loop at all. A tight loop with Q:PIR just boxing ints also leaks like crazy... 08:38
Except as far as I can tell, it's not leaking PMC's 08:39
08:40 xinming left
kshannon I think there's something screwy with the libtommath library (or how rakudo is using it) 08:40
08:41 xinming joined, cognominal left 08:43 cognominal joined
dalek ecza: dd7ae96 | sorear++ | / (3 files):
Allow stubs in roles to be satisfied by inheritance
08:46
08:49 mj41 joined
dalek ecza: e0c6040 | sorear++ | t/spectest.data:
Two more working test files
08:50
sorear -> sleep
08:55 huf joined 08:58 mikemol left 09:00 lestrrat left, lestrrat joined 09:06 daxim joined 09:10 mikemol joined 09:19 hundskatt left 09:32 araujo joined, araujo left, araujo joined
masak "morning", #perl6 09:35
09:36 yass5 left, yass5 joined
moritz std: "morning", #perl6 09:39
p6eval std dc62e1d: OUTPUT«ok 00:01 121m␤»
09:41 mkramer left 09:42 mkramer joined
masak ;) 09:42
muixirt moritz: hopefully you didn't take my tweet as real criticism :-) 09:44
09:44 replore left
muixirt kshannon: which Q:PIR code? 09:46
moritz muixirt: no, I recognized it as sarcasm; hope you did the same with my reply :-) 09:47
kshannon muixirt: Q:PIR { $I100 = 2 \n loop: \n $P100 = perl6_box_int $I100 \n goto loop \n } 09:59
It gobbles memory until it dies. 10:00
moritz so that means that the deallocation of the mp_int is likely broken 10:03
muixirt kshannon: thanks - and yes it eats up memory really fast :-) 10:04
10:05 xinming left
kshannon The code for mp_int de-allocation looks fine, but I'm trying to trace it now with a debugger 10:07
10:10 hundskatt joined
masak <sorear> I don't think this counts as miracles... it's generally been easier than I expected 10:11
...which is why sorear++ is the closest thing we have to au++ these days :) 10:12
sorear: now you just need to start IRC-ing from the shower, and stuff :P
moritz kshannon: then maybe it's the deallocation of embedded reprs or something 10:14
masak interesting discussion about number parsing and constant folding this morning. 10:16
wow, and roles in Niecza! 10:22
flussence niecza: say "\to/".indent(8);
p6eval niecza v13-121-ge0c6040: OUTPUT« o/␤»
moritz nom: say 'a'.indent(3) 10:26
p6eval nom 1c74c7: OUTPUT«Method 'indent' not found for invocant of class 'Str'␤ in block <anon> at /tmp/a2F5i4KbJ5:1␤ in <anon> at /tmp/a2F5i4KbJ5:1␤»
tadzik oh hello 10:34
masak tadzik! \o/
tadzik \o/ 10:35
moritz \o tadzik. Please remember to submit a talk to GPW2012
tadzik oh, should I?
moritz of course. You plan to addend the workshop, don't you? 10:36
tadzik yeah, but I didn't plan to be a speaker :)
moritz why not? nothing interesting to tell? :-)
tadzik I could tell about our module ecosystem
moritz would love to hear that
conferences.yapceurope.org/gpw2012/newtalk
tadzik okay, call me convinced 10:37
masak of course you should be a speaker. :)
tadzik hah, that'd be in english, so one talk I'll understand :P
masak ;) 10:44
10:45 overrosy left 10:47 overrosy joined
tadzik gist.github.com/1564699 10:49
what do you think?
masak nice. tadzik++ 10:50
is it "on Christmas" or "after Christmas"? 10:51
tadzik masak: hopefully it's "before Christmas" :)
maybe before'd be better here
masak I increasingly think that this whole "Christmas" thing (in relation to Perl 6, that is) basically constitutes the only kind of lies-to-children that can get through using the narrow bandwidth to outsiders. 10:52
tadzik by. by Cristmas
masak "Christmas is already here, it's just unevenly distributed" -- masak 10:53
tadzik: yes, "by" is fine.
tadzik ok, submitted
moritz tadzik++
tadzik conferences.yapceurope.org/gpw2012/talk/3965
moritz++ and masak++ for pushing me to it ;) 10:54
10:54 zipf joined
masak "I'm not inclined to do any tobogganing, but will if pushed." :D 10:54
tadzik: getting a 404 on that link, so maybe it's just visible to you so far. 10:55
tadzik ah, true
moritz can see it, being on the program committee
masak tadzik: did you add a 蝶 tag? :) 10:56
tadzik I guess it means "Panda" :P
masak no, it's the tag usually added to Perl 6 talks. it means "butterfly".
tadzik phenny: "蝶"?
phenny tadzik: "Butterfly" (zh-CN to en, translate.google.com)
tadzik oh
masak .u 蝶 10:57
phenny U+8776 CJK UNIFIED IDEOGRAPH-8776 (蝶)
tadzik add'd
masak \o/
masak glad'd
11:09 mkramer1 joined 11:12 mkramer left, zipf left 11:28 am0c joined 11:42 Mowah left 11:44 Mowah joined 11:50 Mowah left 11:51 Mowah joined 11:56 satyavvd_ joined 11:57 mkramer1 left, Mowah left 11:59 Mowah joined
masak short but interesting; procedural vs declarative: www.tombatron.com/permalink/ag10b21...RlbBjXnwMM 12:05
and its reddit thread: www.reddit.com/r/programming/commen...able_code/
12:05 dbr__ joined 12:07 icwiener joined
masak "I'm really glad Linq is introducing a whole slew of C# developers to the beauty of functional programming. If you tell people to go learn Haskell or F# they start kicking and screaming, but if you sneak it in as Linq it's nothing but love. :)" -- this is what I've been observing as well :) 12:07
and I think something similar could be done with other fields, such as grammars.
12:08 cooper left 12:10 dbr__ left 12:15 donri joined 12:16 satyavvd_ left 12:17 Trashlord left, satyavvd left
daxim "[…] We managed to drag a lot of them about halfway to Lisp." 12:20
flussence I spent an hour trying to learn Lisp the other day to fix someone else's problem. Seems like I'm no good at languages without semicolons 12:30
12:30 Mowah left 12:32 Mowah joined 12:33 mkramer joined
daxim find a local functional programming user group, it's great fun 12:39
[Coke] niecza: say 16747 / 18417 # assuming no change on rakudo's side. 12:41
p6eval niecza v13-121-ge0c6040: OUTPUT«0.90932290818265737␤»
[Coke] almost 91%.
12:42 icwiener left, icwiener joined 12:43 Mowah left 12:44 kaleem left 12:45 Mowah joined
moritz not much changed in rakudo. 12:45
12:51 Mowah left 12:52 Mowah joined
dalek ecza: eee10fb | (Solomon Foster)++ | lib/CORE.setting:
The subs keys and values make sense for many scalar types and arrays too, so don't force them to use hashes.
12:56
colomon [Coke]: I suspect you might find amazing things today if you ran autounfudge on niecza. ;) 12:57
13:09 bluescreen10 joined
moritz somehow autounfudge says that lots of niecza tests fail 13:10
kshannon rakudo P6opaque gc_free wasn't running gc_cleanup of nested slots... 13:13
compiling now. I think this should fix the leak.
moritz oops.
masak Google Go has an interesting alternative to subtyping, which it calls "embedding". in made-up Perl 6 syntax it would look something like this: 'class ReaderWriter { has Reader; has Writer }' -- and all the methods on Reader and Writer are automatically provided as delegating methods on a ReaderWriter object. 13:16
moritz what about conflicts? 13:21
[Coke] colomon: kicked off an unfudge run.
masak moritz: outlawed, checked at compose time. 13:23
moritz: interfaces can also be embedded into other interfaces. the same rule holds there; only disjunct methods are allowed. 13:24
13:30 risou_awy is now known as risou
[Coke] niecza: Bool.pick.say 13:32
p6eval niecza v13-122-geee10fb: OUTPUT«Bool()␤»
colomon niecza: say 1, 2, 3 .... 10, 20, 30 ... 100
p6eval niecza v13-122-geee10fb: OUTPUT«===SORRY!===␤␤Bogus term at /tmp/ay031PV5mj line 1:␤------> say 1, 2, 3 ...⏏. 10, 20, 30 ... 100␤␤Parse failed␤␤»
[Coke] colomon: so far, only one skip->todo.
moritz masak: that's basically what role ReaderWriter does Reader does Writer { } does then 13:39
masak niecza: say 1, 2, 3 ... 10, 20, 30 ... 100
p6eval niecza v13-122-geee10fb: OUTPUT«1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100␤»
masak moritz: no; it actually is delegation. the ReaderWriter struct actually contains (pointers to) Reader and Writer structs, and methods calls on the former translate into delegated method calls where the invocant is the latter. 13:40
but if we're talking about end results; yeah, about the same. 13:41
moritz masak: but does that really matter? it gives ReaderWriter the methods of Reader and Writer, and ... (too slow)
ok
13:42 Mowah left
kshannon And no more memory leak: ./perl6 -e 'loop { 1 + 1 }' 13:42
\o/
flussence kshannon++ 13:43
kshannon OK, just run the spectests and then hopefully push...
13:43 Mowah joined
flussence (wonder if that'll have any effect on the big core setting compilation) 13:43
masak kshannon++ 13:44
flussence: probably not; we don't do much of 'loop { 1 + 1 }' while compiling CORE :P
flussence yeah, but there's got to be some numbers in there somewhere :) 13:45
moritz flussence: yes, but most numbers in there are parrot numbers, not Int
13:45 sunnavy joined
moritz hm, oh wait, that's wrong 13:45
dalek p: 11d4870 | kshannon++ | src/6model/reprs/P6opaque.c:
Fix nasty memory leak in P6opaque

We have a list of gc_cleanup_slots. We should be using them :)
13:54
p: 05a89ef | kshannon++ | src/6model/reprs/P6opaque.c:
Expand tabs while I'm here
kshannon Well, that was a fun way to spend a Thursday.
muixirt is looking forward to a blog post describing how kshannon hunted down the bug 13:55
[Coke] kshannon++ !
moritz kshannon: btw if you want a rakudo commit bit, you need to sign a CLA: www.perlfoundation.org/contributor_..._agreement (and get +1s from rakudo core developers, but that won't be a problem) 13:56
afk
PerlJam nqp didn't require a CLA? 13:57
[Coke] colomon: not many autounfudges, but a few. 14:00
muixirt am I simply wrong or is debugging rakudo more difficult than ordinary programs written in c/c++ because of multiple separate components/languages like parrot, nqp, perl6 and heavily macroized C?
masak muixirt: I generally don't suffer from the multiple levels when debugging a Perl 6 program. 14:01
geekosaur more difficult than *simple* programs in C/C++. start using various libraries/frameworks and you end up with the same problem
...often worse because C/C++ tends to be kinda weak with the type hints, whose usual diagnostic is a core dump 14:02
masak decommutes
PerlJam muixirt: I'd say you're right, but only if you know something about one of those technologies and virtually nothing about one or more of the others.
14:02 mtk joined
geekosaur (worse, a core dump with smashed memory that can't be deciphered...) 14:02
[Coke] colomon: argh. seem to have missed your most recent commit in my unfudge. 14:03
kshannon muixirt: most of my rakudo debugging happens at the perl6 and nqp levels, and I find it not too much harder than debugging perl5 stuff. 14:10
The biggest problem I had debugging that memory leak was the damn 6model. 14:11
[Coke] kshannon: I'm so glad you didn't say "parrot". ;)
muixirt kshannon: I admire your capabilities though :-) 14:13
kshannon When you're in GDB and you've just got a pointer to a SixModelObject PMC, it's really difficult to work out what it actually is (without risking an exception being thrown)
I think "perseverence" might be a better adjective :) 14:14
I came close to giving up quite a few times today. 14:15
14:15 script_ joined
kshannon Now I'm off to see if some of those memory hogs from autounfudge were actually because of this memory leak... 14:16
muixirt I admire perseverance, momentarily I read the Baumeister/Tierney book on willpower which is somewhat related to that (if I ever it till the end) 14:17
14:25 script_ left
moritz kshannon: you just missed a chance for a good pun in the nqp commit message. Something like "free the Ints!" or so :-) 14:25
kshannon lol 14:28
muixirt moritz: it's not only Int objects, right? 14:33
moritz muixirt: correct. That's why we can have multi-line commit messages
muixirt moritz: ? 14:35
14:35 alim joined
moritz muixirt: to put the pun on the first line, and the technical explanation on the next 14:37
muixirt my fault, I thought the leaking was only an issue with (big)Ints, but kshannon fix suggests it's more general 14:38
14:47 overrosy left 14:49 overrosy joined
flussence /usr/bin/time's output doesn't make sense to me :/ 14:53
"3313664maxresident" from compiling rakudo, but that's clearly wrong 14:54
14:58 mishin joined
kshannon muixirt: Well the fix IS more general, but the only place in the current code which was affected was class Int - which add a P6bigint private attribute ($!value) 14:59
dalek ast: 0faae07 | kshannon++ | S05-modifier/pos.t:
Sort of revert 3d83f032

The reason the $/ = Any lines were there was to reinitialize the match object.
The correct way to that according to current Spec is assign Nil, but not everyone supports that yet.
Use a lexical instead.
15:07
15:08 jerome_ joined 15:09 kaare_ joined
[Coke] niecza: Bool.pick(20).say 15:21
p6eval niecza v13-122-geee10fb: OUTPUT«Bool()␤»
[Coke] niecza: Bool.roll(20).say
p6eval niecza v13-122-geee10fb: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 894 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 175 (Mu.Str @ 10) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.settin… 15:22
[Coke] niecza: Bool.pick.say
p6eval niecza v13-122-geee10fb: OUTPUT«Bool()␤»
colomon I think we need special overloaded versions of Bool.pick and Bool.roll
LHF 15:23
[Coke] wonders why he's the only one seeing failures in t/spec/S04-phasers/ascending-order.t
colomon niecza: my Positional $a; 15:24
p6eval niecza v13-122-geee10fb: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/BnFfYzywLA line 1:␤------> my Positional ⏏$a;␤␤»
colomon niecza: my Positional $a; say $a ~~ Positional
p6eval niecza v13-122-geee10fb: OUTPUT«Bool::True␤»
15:24 agentzh left 15:27 tokuhirom joined
dalek ast: 3da8417 | coke++ | S (11 files):
niecza (auto)unfudge

add noauto markers to some dubious test skips we don't want to todo-ify
15:27
15:30 kaleem joined
[Coke] colomon: can you verify that ascending-order.t is passing for you? (all 8 tests) ? 15:32
colomon yes, it works fine
[Coke] just double checking that it's 8 passing, and not 6. ;) 15:33
15:33 overrosy left
colomon there is one weird thing ... there's a #FUDGED! line by itself before the last two test pass messages 15:33
no sign that the neighboring tests are fudged 15:34
[Coke] that's because the last 2 tests are run from inside an END block.
for you, anyway. for me, they are not run.
[Coke] ponders a mono upgrade.
15:36 jerome_ left 15:42 overrosy joined
[Coke] niecza: gist.github.com/1565776 15:44
p6eval niecza v13-122-geee10fb: OUTPUT«ok 1 - eek␤»
[Coke] locally that prints nothing.
if I comment out the exit(1), works fine.
15:45 jerome_ joined 15:47 baest left 15:48 skids joined 15:50 jerome_ left
dalek ast: 557c154 | (Solomon Foster)++ | S0 (3 files):
Unfudge / refudge for niecza, now that it has Positional and Associative.
15:55
[Coke] colomon: those were not caught by unfudge. hurm. 15:56
colomon hurm indeed
skids perl6: say kv 'AA' ~~ / <letter=.alpha>+ || <number=.digit>+ /; 15:58
p6eval niecza v13-122-geee10fb: OUTPUT«letter #<match from(0) to(1) text(A) pos([].list) named({}.hash)> #<match from(1) to(2) text(A) pos([].list) named({}.hash)> number ␤» 15:59
..rakudo 1c74c7: OUTPUT«letter A A number ␤»
..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…
15:59 alim left
skids In rakudo's output, should "number" exist as an empty array, or just be nonpresent? 16:00
16:02 jerome_ joined 16:03 xinming joined
kshannon empty array 16:08
like niecza also does
16:08 tokuhirom left
skids Is there a syntax to suppress that? 16:09
cognominal nom: say (1, (2, 3, 4)).list.perl 16:10
p6eval nom 1c74c7: OUTPUT«(1, (2, 3, 4)).list␤»
PerlJam skids: only output the keys with associated values?
skids (Also I don't understand why, given || should short-circuit)
cognominal nom: say $_.perl for (1, (2, 3, 4)).list
p6eval nom 1c74c7: OUTPUT«1␤2␤3␤4␤»
cognominal nom: say $_.perl for (1, (2, 3, 4)) 16:11
p6eval nom 1c74c7: OUTPUT«1␤2␤3␤4␤»
16:11 wtw left
cognominal is "for" supposed to flatten a parcel? 16:12
daxim science.slashdot.org/comments.pl?si...d=38596938
skids PerlJam: I'm more thinking of representational efficiency, not how to post-process.
PerlJam oh
16:13 Mowah left
cognominal …or for is parcelly wrong, so partially right? 16:14
geekosaur I thought most stuff autoflattened parcels
cognominal so how to iterate on the? 16:15
16:15 Mowah joined
cognominal *them 16:15
masak daxim: unlike with Perl 6, where the script is sent to the secret cabal for review and inspection ;)
cognominal … and eventually masaked? (ie: submitted as a bug) 16:16
masak: any idea about parcels and iteration? 16:17
PerlJam Did you just verb masak?
masak .oO( anything can be masak'd! )
cognominal: yes, I think parcels are pretty flat already. 16:18
it's not so much the for loop as parcels not being very array-y in the first place.
cognominal masak: S02:4616 proposes a .tree operator. To implement it means some sort of non flattening iterator 16:21
masak looks 16:23
hm, that doesn't tell me much. 16:25
here's what I know about for loops:
[Coke] niecza: say 16768 / 18418 16:26
masak if you use a variable with a '@' (or a '%'), it will flatten into elements (or pairs)
p6eval niecza v13-122-geee10fb: OUTPUT«0.91041372570311652␤»
masak if you use something like .list at the end, it will also flatten.
[Coke] niecza: say 18418*.92-16768 16:27
p6eval niecza v13-122-geee10fb: OUTPUT«176.56␤»
masak if you do neither, and just say something like 'for $list-in-a-scalar { ... }', it won't flatten.
cognominal nom: say (eager (1, (2, 3, 4))).perl 16:29
p6eval nom 1c74c7: OUTPUT«(1, 2, 3, 4).list␤»
cognominal the code of "for" use eager. This begs the question: is eager supposed to flatten things. 16:31
niecza: say (eager (1, (2, 3, 4))).perl
p6eval niecza v13-122-geee10fb: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'eager' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1143 (P6.comp_unit @ 32) ␤ at /ho…
16:32 s1n joined
[Coke] colomon: any progress on .fmt? 16:33
colomon [Coke]: I backed off all my changes in the faces of the onslaught of major updates last night. I'll take another stab at it as soon as I've sorted my current $work bug. 16:34
16:34 kaleem left 16:35 Trashlord joined
[Coke] \o/ 16:35
only 177 bugs (less, even!) to get to the next percentage point. ;)
cognominal SO2: This operator [eager] is agnostic towards flattening or slicing. 16:36
PerlJam colomon: re eager: ... blah you beat me to it
S02:4676 (for the irclogs) 16:37
cognominal method eager() { nqp::p6list(nqp::list(self), List, Bool::True).eager } # so Bool::True should be Mu
PerlJam er, ... s/colomon/sognominal/ too
[Coke] whatever happened to grok? 16:38
(be nice if we had a grokbot in here.)
masak [Coke]: the program is alive and well on CPAN.
literal++
16:39 cognominal left, cognominal joined
[Coke] this is merely an observation: wow, grok has a lot of deps. 16:40
PerlJam That's code reuse for you! 16:41
[Coke] is hinrik about? 16:43
literal hi 16:45
I could whip up a bot
16:45 sayu joined, am0c left
masak \o/ 16:48
cognominal replacing Bool::True by Mu introduces other problems. say (eager 1).perl gives ((1,),).list 16:51
[Coke] reports a grokbug
literal: looks like you'll need to run "grok -U" whenever a spec change occurs. 16:52
but then: rt.cpan.org/Public/Bug/Display.html?id=73768
16:55 cognominal_ joined
[Coke] hurls www.omniglot.com/, delaying perl6 for another month. 16:55
16:56 sayu left 16:58 cognominal left, sayu joined
literal [Coke]: noted 16:58
masak omniglot is nice. 16:59
perl6: class A { has $!a; method set { $!a = 42 }; method get { $!a } }; my $a = A.new; $a.set; my $b = $a.clone; say $a.get; say $b.get 17:07
p6eval niecza v13-122-geee10fb: OUTPUT«Unhandled exception: Unable to resolve method clone in class A␤ at /tmp/akXMJjyxbW line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2748 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2749 (module-CORE @ 58) ␤ at /home/p… 17:08
..pugs b927740, rakudo 1c74c7: OUTPUT«42␤42␤»
masak makes sense, I guess.
17:09 mls joined 17:13 MayDaniel joined
masak another reason I don't like the current .gist factoring: 17:16
saying "just implement the Str method" to someone sounds great.
saying "just implement the gist method" doesn't quite have the same mnemonic ring to it.
17:16 icwiener left
[Coke] perhaps .gist should default to .Str 17:17
masak maybe. 17:18
masak .oO( my god, it's full of delegations! )
17:19 kaare_ left
masak nom: class C { method Str { "OH HAI" } }; say C.new 17:19
p6eval nom 1c74c7: OUTPUT«C.new()␤»
masak nom: class C { method Str { "OH HAI" } }; say ~C.new
p6eval nom 1c74c7: OUTPUT«OH HAI␤»
masak hm :) 17:20
jnthn evening, #perl6
jnthn is back home, and that means back in front of his comfy dev machine. :)
masak jnthn! \o/ 17:21
colomon \o/ 17:22
17:22 icwiener joined
jnthn pulls latest Rakudo 17:25
PerlJam jnthn: kshannon++ fixed that loop memory leak! 17:27
jnthn yay!!!
jnthn sees he has patches to review :D
colomon niecza: say sprintf("%f", 5.6) 17:31
p6eval niecza v13-122-geee10fb: OUTPUT«??␤»
colomon niecza: say sprintf("%f", 5.6.Num)
p6eval niecza v13-122-geee10fb: OUTPUT«??␤»
colomon perl6: say sprintf("%f", 5.6.Num)
p6eval rakudo 1c74c7: OUTPUT«5.600000␤»
..niecza v13-122-geee10fb: OUTPUT«??␤»
..pugs b927740: OUTPUT«*** No such method in class Rat: "&Num"␤ at /tmp/Kq_9pwJNP8 line 1, column 19-26␤»
17:32 Trashlord left
[Coke] colomon: OH NOES, jnthn is back. 17:33
masak mwhahaha! 17:34
jnthn: look, you're in dire need here. something completely horrible was about to happen.
team Niecza are certainly asserting themselves. 17:35
[Coke] ponders sorear and colomon dressed up in Team Rocket garb.
jnthn [Coke]: Well, I can go back to resting... :)
[Coke] ;)
PerlJam If we can get a big Perl 6 release for 12/21/2012 we can have a story about how the Mayans predicted Perl 6 17:36
masak oh wow oh wow
17:37 mishin left
masak "it's happening: the Perl 6 Christmas is finally here" *curtain* 17:37
dalek kudo/nom: 80ec2c1 | moritz++ | tools/build/NQP_REVISION:
free the Ints!

bump to a NQP revision that garbage-collects embedded REPRs, and thus fixes a memory leak in Int (and probably other objects)
17:38
TimToady niecza: my @a = ($_ for 1..10); say @a; 17:42
p6eval niecza v13-122-geee10fb: OUTPUT«␤»
TimToady I thought that worked in niecza once upon a time...am I hallucinating?
[Coke] we could bisect it if you really wanted. 17:43
masak TimToady: it's certainly been broken before.
TimToady nom: my @a = ($_ for 1..10); say @a; 17:44
p6eval nom 1c74c7: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
TimToady I might just be remembering nom...
jnthn o/ TimToady
TimToady o/! 17:45
jnthn I used Christmas break as...a break! :)
17:45 unobe joined 17:46 Trashlord joined, MayDaniel left
sorear good * #perl6 17:46
[Coke] ho, sorear. 17:47
17:48 mux left
[Coke] niecza: gist.github.com/1565776 17:48
p6eval niecza v13-122-geee10fb: OUTPUT«ok 1 - eek␤»
[Coke] (that outputs nothing for me locally.)
masak sorear! \o/ 17:50
[Coke]: maybe your machine is so fast it finishes before END has a chance to run! :P
[Coke] *snrk*. 17:51
it's feather, so I doubt that. ;) 17:52
masak ;)
perl6: my %h; my @keys = <a b c d>; %h{@keys} = 42 xx *; say %h.perl
p6eval niecza v13-122-geee10fb: OUTPUT«{"a" => 42, "b" => 42, "c" => 42, "d" => 42}.hash␤»
..rakudo 1c74c7: OUTPUT«("a" => 42, "b" => 42, "c" => 42, "d" => 42).hash␤»
..pugs b927740: OUTPUT«{("a" => 42), ("b" => 42), ("c" => 42), ("d" => 42)}␤»
masak \o/
sorear EOBACKLOG 17:54
masak here, have some more :P 17:55
geekosaur loves how everyone's got a different syntax there
sorear jnthn: do you understand yet what's causing the nom regressions in S14-roles/conflicts.t ?
jnthn: I found the underlying bug, btw. I'm also wondering if you have a fix in the pipeline I can steal :) 17:56
jnthn sorear: Not sure off hand. 17:57
17:57 Mowah left
jnthn sorear: Though if I looked at the failure mode I could probably get to what's going on fairly quickly. 17:57
17:57 molaf__ left 17:59 Mowah joined
sorear jnthn: What's going on is that $foo.Role::method is turning into Role.find_method("method")($foo), which ... throws away $foo and substitutes a fresh pun for the invocantr 17:59
jnthn ah
OK, will take a look in a bit. 18:00
jnthn needs to ease himself back into things :)
sorear Anyways I stole this bug for niecza
jnthn You're...welcome? ;)
dalek kudo/nom: 07374c2 | jnthn++ | src/core/Grammar.pm:
Grammar.parse and Grammar.parsefile should set $/. Resolves RT#107236.
18:01
jnthn Well, lets me tag it testneeded anyway...
masak nom: my @a = 1..5; my @b = 0 xx +@a; say @b.perl 18:03
p6eval nom 80ec2c: OUTPUT«Array.new(0, 0, 0, 0, 0)␤»
masak nom: my @a = 1..5; my @b = 0 xx @a 18:04
p6eval nom 80ec2c: ( no output )
masak nom: my @a = 1..5; my @b = 0 xx @a; say @b.perl
p6eval nom 80ec2c: OUTPUT«Array.new(0, 0, 0, 0, 0)␤»
masak clearly my nom is too old :)
TimToady sorear: did list comprehensions ever work in niecza? 18:05
masak and does Niecza have a red cell in the feature matrix where list comprehensions ought to be? 18:06
TimToady there's no entry in the feature matrix for that 18:07
sorear TimToady: there's code for them, but I can't remember if it ever worked 18:08
18:09 integral left
sorear [Coke]: I can reproduce the ascending-order.t issue if I ssh to feather and use your copy of niecza 18:09
I cannot reproduce the issue if I compile locally, scp the bytecode to feather, and run it there with your mono 18:10
[Coke] odd. One thing I did earlier was git bisect something, just doing a make (not a clean) after each step. 18:11
perhaps a clean, rebuild and try agian?
trying that... 18:14
18:15 risou is now known as risou_awy
[Coke] nope. "make clean; make; t/fudge...." still doesn't show the last 2. Anything other suggestions? 18:15
(trying realclean) 18:17
18:18 thou_ joined, groky joined
literal groky: % 18:19
groky "%" Does a floating point modulo operation, i.e. 5.5 % 1 == 0.5 and 5 % 2.5 == 0.
literal groky: split
groky "split" Splits a string up into pieces based on delimiters found in the string. String delimiters must not be treated as rules but as constants. The default is no longer ' ' since that would be interpreted as a constant. P5's "split(' ')" will translate to "comb". Null trailing fields are no longer trimmed by default. The "split" function no longer has a default delimiter nor a default invocant…
sorear groky: FatRat
groky "FatRat" (immutable type) - Perl rational (unlimited precision in both parts)
sorear [Coke]: I'd like to do some more tests once the realclean/rebuild is done. 18:21
literal: is it using the tablets?
literal yes
this is the source: gist.github.com/1566480
dalek ok: 4f6e90a | hinrik++ | / (2 files):
Update spec document urls
18:22
ok: 0e0cba1 | hinrik++ | Changes:
v0.26

   - Update spec document urls
colomon niecza: my %h = 1 => 'A'; say %h.pairs[0].WHAT 18:23
18:23 mkramer left
p6eval niecza v13-122-geee10fb: OUTPUT«Pair()␤» 18:23
18:25 mkramer joined
TimToady groky: * 18:26
groky "*" (numeric op) - multiplies numbers, forces numeric context (term) - synonym for Whatever, for example, means Inf in a range operator (..); means the end of an array in a slice operator so that negative indices access array elements relative to one beyond the final element - prefix which indicates slurpy arrays in signatures (twigil) - twigil of global variables
dalek kudo/nom: 9afb9c3 | jnthn++ | src/Perl6/Actions.pm:
Handle sub foo(SomeConstant) { ... } correctly. Fixes the True/False case - well, kinda. Thing is, we smart-match the argument against SomeConstant, and of course $x ~~ True always comes out true... :S
kudo/nom: 44ccd39 | jnthn++ | src/Perl6/Metamodel/ParametricRoleGroupHOW.pm:
Fix boolification of roles; resolves issue in RT##107336.
sorear How long ago was the $+FOO / $*FOO merger? 18:27
welcome back, jnthn :D
18:27 mkramer left
masak sorear: 2009-ish, I think. 18:27
sorear: ISTR ruoso suggested it to TimToady. 18:28
[Coke] realclean, rebuild, rerun... same behavior. only 1..6 show. 18:29
masak sorear: aye, Nov 20 2009, spec commit dff23644d71abbcfa3d0880eac00b4106ad72330
jnthn sorear: :)
OK, I did some commits, now I can have dinner :)
er...which depends on shopping. bbs :) 18:30
dalek ast: e0e8870 | (Solomon Foster)++ | S02-names-vars/fmt.t:
Fudge for niecza.
flussence
.oO( this is going to be a good month )
[Coke] oh, literal IS hinrik! hio. 18:34
sorry if I completely missed that earlier!
18:35 kaleem joined
masak .oO( they're literally the same person ) 18:36
[Coke] :P
sorear [Coke]: update: the problem is that your copy of t/fudgeandrun is adding exit(1), but mine isn' 18:38
t. WTF
tadzik good evening \o/
masak sorear: hm, now I'm thinking that commit's not it and that the change happened earlier than that. 18:41
18:42 fridim_ joined
dalek ecza: a037edd | (Solomon Foster)++ | lib/CORE.setting:
Port over .fmt from Rakudo ng.
18:42
ecza: c4341fe | (Solomon Foster)++ | t/spectest.data:
Turn on S02-names-vars/fmt.t.
18:43 baest joined
colomon [Coke]: there you go 18:44
sorear [Coke]: if I manually add exit(1) to *.niecza AND run with mono 2.6, I can reproduce this on localhost \o/
I don't know what's up with your copy of fudge but I can at least work around the bug in niecza now 18:45
18:47 spine left
[Coke] my copy of fudge is in t/spec. 18:48
no changes there. weird. 18:49
18:49 hundskatt left
[Coke] but thank you for tracking it down. ;) 18:50
colomon: oooh, shiny.
18:51 baest left 18:52 integral joined, integral left, integral joined
sorear [Coke]: wait, are you seeing these errors with test_summary or with fudgeandrun? 18:56
18:56 kaare_ joined, cj joined, Patterner left
dalek ecza: 220b37b | sorear++ | lib/ (3 files):
Work around failure to run END blocks after exit(1) on Mono 2.6.x
18:57
cj /win 6
sorear hello cj
cj howdy sorear
18:57 baest joined
cj anything new happin'in' around here? 18:57
OMG! perl6 on Mono!?
sorear: did you do that?
sorear++
sorear: you're my new hero.
can you run perl5 on perl6 on mono? 18:58
sorear yeah. I've actually been on this project since Jun2010 or so
sadly, no perl5 support yet
masak we'll get there.
cj me since 2008, but I've been on leave.
sorear I hear fglock's perlito can run perl5 in Javascript
masak even if it means we'll have to re-implement Perl 5! :)
cj :) 18:59
18:59 fridim_ left
tadzik hey, there isn't any? 19:02
I think pmurias implemented some, in form of eval( :from<perl5>)
maybe it's in a branch
sorear I don't think that counts as "on mono" 19:03
tadzik I see what you mean
19:03 Mowah left 19:06 Psyche^ joined, Psyche^ is now known as Patterner 19:08 kaare_ left 19:10 kaare_ joined
[Coke] sorear: both. 19:11
that's why gist.github.com/1476841 has ~4 failures for a while. 19:12
(that's test_summary.pl output)
sorear [Coke]: latest change should improve things
it looks like fudge will keep the fudged output if it's newer than the input ... even if the arguments have changed 19:13
so t/fudgeandrun is seeing the exit(1) because test_summary doesn't use --keep-exit-code
19:14 bluescreen10 left
dalek ast: 4e00888 | coke++ | S (2 files):
niecza unfudge for fmt

  (colomon++)
19:15
19:15 bluescreen10 joined
[Coke] sorear: ARGLEBARG 19:15
good catch.
sorear++
19:21 Patterner left
colomon ARGLEBARG? 19:21
19:22 mj41 left 19:23 Psyche^ joined, Psyche^ is now known as Patterner
masak sounds like a totally transparent frustrated injective of facepalming self-blame. 19:25
invective*
[Coke] well, except for the self bit. I didn't write fudge. ;) 19:26
arglebarg will give decent enough search results. ;)(
;)
moritz arglebarg.deviantart.com/gallery/ 19:28
19:29 hundskatt joined 19:30 kaare_ left
masak in fact, "arglebarg" sounds like a word which could've occurred in h2g2, but didn't. 19:33
sorear it's fairly close to Agrajag, which did, though 19:35
colomon Agrajag!
dalek ecza: 4b5f174 | sorear++ | lib/Cursor.cs:
Fix NRE with .caps and multiple same-named captures
19:36
[Coke] masak: that's certainly what went through my mind.
(h2g2)
masak sorear: also, "gargleblaster"
dalek ast: 6d5743d | sorear++ | S05-capture/caps.t:
[S05-capture/caps] Fix isa_ok syntax
19:37
ast: b9dce46 | sorear++ | S05-capture/caps.t:
[S05-capture/caps] Niecza unfudge
sorear that file now has no fudges
19:38 muixirt left, spine joined 19:39 Chillance left
[Coke] sorear++: o/ 19:39
19:39 sayu left, Chillance joined
[Coke] hits himself in the head with a brick wrapped in a lemon. 19:39
colomon just so it's not a lemon-soaked paper napkin... 19:40
geekosaur then join ##42? 19:41
geekosaur doesnt know if there is such a channel...
19:43 Moukeddar joined 19:51 thou_ left 19:52 alim joined, kaare_ joined
sorear o/ Moukeddar 19:53
Moukeddar \o sorear 19:54
how are you doing?
sorear good 19:55
Moukeddar ^_^ 19:56
tadzik hello Moukeddar
Moukeddar hi tadzik :D 19:57
masak Moukeddar! \o/ 19:59
Moukeddar hey, i'm popular :D
where's mah limousine?
moritz you mean you lost it? 20:00
Moukeddar you sent one ?
tadzik one? Gosh, I hope you're kidding 20:01
Moukeddar i'm not kidding,the parking lot is empty O.o
tadzik I hope you mean the 4th floor of it
Moukeddar where did you park it guys ? 20:02
this isn't funny
masak last I saw it, someone had parked it behind your house... 20:03
...in the swimming pool.
tadzik ...of strawberry juice
its antenna sticked out, though. The pool is not deep enough to completely cover 7 cars 20:04
Moukeddar weird, there's no pool in this area, are you sure?
tadzik it "this area" is less than 5 kms in diameter, you probably need to look *outside* of your living room 20:05
dalek ecza: 402391b | (Solomon Foster)++ | lib/CORE.setting:
Add working infix:<minmax>.
20:06
moritz oh nice, I didn't know www.seebs.net/faqs/c-iaq.html
Moukeddar is looking
dalek ast: 74c178e | (Solomon Foster)++ | S03-operators/minmax.t:
Unfudge tests that now work in niecza.
20:07
masak moritz: heh -- I found that one a few weeks back. :) 20:08
20:09 Chillance left, Chillance joined
tadzik hm, what's this 1.7? 20:10
foo, "hello, world!\n";
20:10 zby_home_ joined
tadzik and isn't 07 octal rather than hex? 20:11
masak not in Perl 6.
std: 07 20:12
p6eval std dc62e1d: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o7 if you mean that at /tmp/96_JAMM9Z9 line 1:␤------> 07⏏<EOL>␤ok 00:01 118m␤»
moritz tadzik: 07 is both octal and hex (and decimal)
tadzik heh, right
moritz std: 09
p6eval std dc62e1d: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o9 if you mean that at /tmp/CKkQtgKDZP line 1:␤------> 09⏏<EOL>␤ok 00:01 118m␤»
tadzik I don't think that faq is really accurate
moritz tadzik: it's meant as a joke
tadzik ah, that explains quite a lot :) 20:13
I wondered whether I should laugh, or it'd turn out to be disrespectful to some Well Known Person
moritz 19.21: Does anyone have a C compiler test suite I can use? 20:14
Yes. Unfortunately, it's probably broken. It's hard to tell.
20:15 snearch joined, bluescreen10 left
moritz somehow I feel with the author :-) 20:15
masak :P 20:16
20:17 Kharec joined
masak jnthn: re #107348 -- yes, I know. I should've perhaps stated that in the ticket as the expected behavior. 20:17
nom: sub foo(True) { say "OH HAI" }; foo False
p6eval nom 44ccd3: OUTPUT«OH HAI␤»
masak shortly before I registered that ticket, there was talk of making a meta-exception for True/False in signatures. 20:18
Kharec hi there
use v6; is completely like perl6?
moritz "use v6;" tells the compiler to throw an error if it doesn't think it can handle Perl 6 20:19
like, perl 5
20:20 bigesttitty joined
moritz which means you get much better error messages if you accidentally use the wrong compiler 20:20
20:20 bigesttitty left
Kharec ok 20:23
colomon niecza: enum Ordering (Increase => -1, Same => 0, Decrease => 1); 20:24
p6eval niecza v13-127-g402391b: OUTPUT«===SORRY!===␤␤Compile time expression is insufficiently trivial CallSub at /tmp/enxafhpu6e line 1:␤------> ncrease => -1, Same => 0, Decrease => 1)⏏;␤␤Enum may not contain both Int and Str values at /tmp/enxafhpu6e lin…
moritz setting compilation still uses 1.6g in rakudo :(
20:25 cooper joined, Kharec left
spine nice, the loop {1+1} bug is gone! but "my @a := (1..*).map({"a"x 10000}); while shift @a {};" is still leaking on current nom :( 20:26
is there a good reason nom doesn't free the shifted values?
20:26 bluescreen10 joined, ksi joined
moritz nom: my @a = do { while 1 { last if rand() > 0.9; 5 } }; say @a 20:29
p6eval nom 44ccd3: OUTPUT«1␤»
moritz spine: probably just bad reasons 20:31
20:31 y3llow_ joined 20:32 pothos_ joined, wolfman2000 left 20:33 y3llow left, pothos left, y3llow_ left 20:34 y3llow joined 20:35 pothos_ left, pothos joined 20:36 y3llow left, y3llow joined
masak wow, I had forgotten what a great language Perl 6 is. 20:36
it's not just syntactic sugar; writing idiomatic Perl 6 actually makes me a happier, more beautiful person. 20:37
:P
PerlJam masak: if only there were macros ... ;)
20:38 pothos left, y3llow left, pothos joined, y3llow joined
masak PerlJam: I heard some schmuck got tasked with implementing macros, finally. 20:38
20:38 Kharec joined
Kharec perl6: my int $t = 6; 20:39
p6eval niecza v13-127-g402391b: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/WYePQ1lybE line 1:␤------> my ⏏int $t = 6;␤␤Parse failed␤␤»
..pugs b927740, rakudo 44ccd3: ( no output )
moritz which reminds me, I should get back to exceptions one of these days...
jnthn :)
jnthn needs to get back to Zavolaj, QRegex, QAST... :) 20:40
20:40 Kharec left
tadzik masak: haha, good luck to him, LOL! 20:40
PerlJam moritz: you're just following in the grand tradition of ever-open grants
japhb Which reminds me, now that jnthn's back, maybe it's time to try again for dispatching magic for Failure-outside-Any
jnthn ...and I should close off my grant. :)
moritz PerlJam: I didn't plan to :/
PerlJam no one does
jnthn japhb: Yes, I'm going to be relatively about. :)
japhb :-)
masak tadzik: LOL! 20:41
jnthn Would be nice to get some of the testneededs in Rakudo turned into resolveds too :) 20:45
moritz gets weird brane knots while trying to think of setting names 20:46
CORE is *outside* the user's program
dalek kudo/nom: 44556db | jnthn++ | src/Perl6/Actions.pm:
Fix initializers for lexical declarations that shadow attribute aliases.
moritz or formulated differently, it's surrounded by CORE
so, if you have two settings, should the middle one be SHELL oder INNER_CORE? 20:47
we should really name the default setting WORLD instead of CORE
then we could expand in both directions (universe, multiverse and continent, country) and everybody would know how they nest 20:48
PerlJam CORE is the exocore and the user's program is the endocore :)
but, +1 to WORLD (or almost anything besides CORE since it's so overloaded) 20:49
masak sorry, "World" is taken... :/ 20:50
moritz yes, but WORLD isn't :-)
and we're case sensitive
masak CORE is just the name for a very common setting.
tadzik rename SAFE to wOrLd!
masak I don't like WORLD for many reasons.
20:51 mj41 joined
geekosaur give it some strange unicode-character name? 20:51
moritz rename SAFE to LOL-YOU-REALLY-THINK-IT'S-SAFE
masak but chief among those is that different things should look different. and WORLD has nothing to do with World.
flussence MANTLE
moritz masak: also I think that World is purely compiler-internal, and the user never sees it 20:52
kshannon o/ #perl6
jnthn o/ kshannon
PerlJam CORE is more like BLANKET
(it covers you and keeps you warm) 20:53
masak :) 20:55
actually, I kinda like CORE.
moritz masak: any comments to my criticism above?
speaking of settings... why doesn't SAFE.setting needs a YOU_ARE_HERE ? 20:56
20:57 icwiener left
masak moritz: the two-settings criticism? only that I'd require two actual settings to be able to say anything conclusive. 20:57
dalek ast: 9a74f7f | coke++ | S (4 files):
niecza fudge
20:57 ksi left
dalek ecza: 0bb44b6 | coke++ | t/spectest.data:
run more tests

S09-subscript/slice.t, S12-class/inheritance.t S03-smartmatch/disorganized.t, S12-introspection/can.t, S12-methods/private.t, S14-roles/conflicts.t
20:57
moritz masak: not only that, but it's *outside* the user's program, not *inside*
tadzik jnthn: obtw, did you see the deterministic segfault? 20:58
21:00 kaleem left
dalek Heuristic branch merge: pushed 54 commits to nqp/qbootstrap by jnthn 21:00
21:00 kaleem joined
jnthn tadzik: The one ruoso++ RT'd? 21:00
masak moritz: well, it's the core *setting*, in that it forms the innermost setting.
21:00 kaleem left
tadzik jnthn: nope, the one in Bailador. Sorry, but gofing it makes the segfault go away :/ 21:00
jnthn tadzik: OK, missed it. Instructions for reproducing it? 21:01
tadzik jnthn: I can give you an ssh account with a environment with a bug
jnthn ok
21:01 kaare_ left 21:02 Moukeddar left
dalek ecza: 2363b26 | coke++ | t/spectest.data:
run S13-overloading/operators.t
21:08
moritz $ ./perl6 -e 'say i' 21:09
0 + 1i
\o/
21:09 skids left
moritz that works due to another setting in which I could write my constant i = 1i; without all the trouble that I got for that CORE 21:09
tadzik jnthn: okay, this will take a second, non-relocatable parrot strikes again :) 21:11
21:12 cognominal___ joined
[Coke] sorear++ colomon++; quite a few more tests enabled. 21:12
21:13 cognominal_ left
colomon [Coke]++ 21:13
masak nom: sub MAIN(:$foo) {} 21:14
p6eval nom 44556d: OUTPUT«use of uninitialized value of type Any in string context␤use of uninitialized value of type Any in string context␤» 21:15
masak where do these warnings come from?
masak submits rakudobug
moritz proably MAINHELPER or so
tadzik a-ha!
moritz masak: I think I've seen that one submitted already
masak moritz: URL?
moritz masak: looking...
masak: rt.perl.org/rt3/Ticket/Display.html?id=107244 21:16
21:16 kaare_ joined
masak thanks. moritz++ [Coke]++ 21:17
21:18 bluescreen10 left 21:26 snearch left 21:27 fridim_ joined
moritz perl6: while 1 { die "get me out of here"; CATCH { last } }; say "escaped!" 21:30
p6eval niecza v13-127-g402391b: OUTPUT«(timeout)» 21:31
..rakudo 44556d: OUTPUT«escaped!␤»
..pugs b927740: OUTPUT«*** get me out of here␤ at /tmp/zSIwGr7zEV line 1, column 11-35␤»
masak :) 21:32
Pugs has clearly had it.
moritz well, I'm not sure
geekosaur pugs is missing a lot of stuff 21:33
moritz I don't know how violently CATCH should try to re-throw the exception 21:34
perl6: sub f { die "OH NOEZ"; say "still there"; CATCH { return } }; f; say "alive"; # same problem, really 21:35
p6eval niecza v13-127-g402391b: OUTPUT«still there␤alive␤»
..pugs b927740: OUTPUT«*** OH NOEZ␤ at /tmp/dabX_klSHh line 1, column 63-64␤ /tmp/dabX_klSHh line 1, column 9-22␤»
..rakudo 44556d: OUTPUT«alive␤»
moritz nom: say nqp::p6box_i(pir::time) 21:36
p6eval nom 44556d: OUTPUT«use of uninitialized value of type Mu in string context␤use of uninitialized value of type Mu in string context␤===SORRY!===␤error:imcc:The opcode 'time' (time<0>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 40708237␤»…
masak why in the world does Niecza print "still there"?
moritz nom: say nqp::p6box_i(pir::time__P)
p6eval nom 44556d: OUTPUT«use of uninitialized value of type Mu in string context␤use of uninitialized value of type Mu in string context␤===SORRY!===␤error:imcc:The opcode 'time_p' (time<1>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 44432509␤»…
moritz masak: I have no idea 21:37
jnthn nom: say nqp::p6box_i(pir::time__N)
p6eval nom 44556d: OUTPUT«1325796989␤»
moritz nom: say time - time 21:38
p6eval nom 44556d: OUTPUT«0␤»
jnthn nom: say nqp::p6box_n(pir::time__N) 21:40
p6eval nom 44556d: OUTPUT«1325797162.39153␤»
21:43 donri left
sorear masak: because return is dynamically scoped (bugoid) and it causes &die to return 21:46
dalek kudo/nom: eccd5ee | jnthn++ | src/binder/container.c:
Add a missing concreteness check (hopefully fixes a bug tadzik++ reported/helped me find).
moritz nom: multi sub infix:<+>(Str where True, Str where True) { }; 'a' + 'a' 21:47
p6eval nom 44556d: OUTPUT«===SORRY!===␤Cannot do non-typename cases of type_constraint yet at line 1, near ", Str wher"␤»
moritz nom: multi sub infix:<+>(Str where { True } , Str where { True }) { }; 'a' + 'a' 21:48
p6eval nom 44556d: OUTPUT«===SORRY!===␤Cannot do non-typename cases of type_constraint yet at line 1, near ", Str wher"␤»
moritz nom: multi sub infix:<+>(Str $ where { True } , Str $ where { True }) { }; 'a' + 'a'
p6eval nom 44556d: OUTPUT«===SORRY!===␤Circularity detected in multi sub types.␤»
moritz jnthn: we were quite confused by this one :-)
jnthn hey, so am I :) 21:49
moritz I guess nobody submitted it, so I should do that... 21:51
nom: multi sub infix:<+>(Str $ where 1 , Str $ where 1) { }; 'a' + 'a'
p6eval nom 44556d: OUTPUT«===SORRY!===␤Circularity detected in multi sub types.␤»
moritz just trying to golf it a bit...
PerlJam masak moritz, masak it
moritz nom: multi sub infix:<+>(Str $ where 1 , Str $ where 1) { };
PerlJam tries out the verb again
p6eval nom 44556d: ( no output )
jnthn nom: multi sub infix:<+>(Str $, Str $) { }; 'a' + 'a' 21:52
p6eval nom 44556d: ( no output )
masak it!
jnthn nom: multi sub infix:<+>(Str $ where 1, Str $) { }; 'a' + 'a'
p6eval nom 44556d: OUTPUT«===SORRY!===␤Circularity detected in multi sub types.␤»
jnthn jfmi
moritz: Well, seems only one arg needs the where :) 21:53
masak jnthn: *that's* what I shoulda called my blog :P
jnthn ;) 21:54
moritz took some time to figure out the "m" :-)
anyway, ticketed 21:57
jnthn Thanks :)
moritz -> sleep 21:58
jnthn najt
tadzik 'branoc
PerlJam Does rakudo also detect squares, rectangles, hexagons and other shapes?
tadzik nom: say so "␤".isa('rectangle') 21:59
p6eval nom 44556d: OUTPUT«Bool::False␤»
tadzik strange, it is a rectangle on my machine :) 22:00
jnthn
.oO( Tetrahedronality detected in multi sub types )
masak tadzik: that's just due to low resolution.
22:00 vlkv joined
masak .oO( Rhombus detected in multi sub types ) 22:00
tadzik a-ha!
PerlJam If rakudo starts telling me about fractals and all the colors it sees in the sky, I may start to worry a bit
masak .oO( Strange attractor detected in multi sub types ) 22:01
tadzik we should write a module for that
22:01 mj41 left
PerlJam masak: is that like a gremlin? 22:01
tadzik a thread which conversates randomly with a user
it should be possible using niecza
PerlJam "Small imaginary imp detected ..." 22:02
tadzik: are you disparaging rakudo?!?!? ;)
22:02 Mowah joined, vlkv is now known as gv
tadzik PerlJam: I'm sad too :) 22:02
22:02 spine left
masak PerlJam: it is *exactly* like a gremlin. 22:12
22:14 pyrimidine left 22:19 kaare_ left 22:30 alim left 22:35 skids joined
masak 'night, #perl6 22:35
sorear bye 22:37
interesting but
bug
in niecza, it's actually (should be) impossible to have cycles in multi narrowness
jnthn It shoudln't be possible in Rakudo provided you're not meta-programming (in which case you can say what you want about types, so all bets are off) 22:38
sorear ah ok
22:45 proller_ joined, whiteknight joined, whiteknight is now known as Guest95402
japhb Oh, I bet I know what #107244 is. 22:48
dalek p: 2e578b5 | jnthn++ | src/ (2 files):
Accessing attributes may trigger auto-vivification of a scalar container with P6opaque; we were missing some write-barriers for these cases. Add them.
japhb I remember some time ago a jnthn++ commit that I guessed would have an effect on MAIN_HELPER. 22:49
japhb goes and digs
22:49 proller__ joined 22:51 proller_ left
japhb Yup, rakudo 1340fa68ba did it, I bet. 22:52
jnthn git show
grr
not here
japhb goes to implement a fix and then wait ages for a full recompile (I was on a different branch)
sorear jnthn: can you explain what $!is_mixin is used for? 22:53
22:54 Mowah left, Chillance left
sorear I see the use in Attribute.instantiate_generic but I haven't quite figured out what this method is doing 22:54
tadzik yay, segfaults fixed! jnthn++
jnthn Yeah, and I'll bet that fix was below some other segfaults we've been seeing. Including the POD ones. 22:55
tadzik I thought the Pod ones are gone
jnthn tadzik: Roaming, I suspect.
tadzik: As in, we maybe lost them due to luck more than anything.
tadzik I wonder if it was behind Panda 'sometimes segfaulting when copying large directories'
maybe
jnthn tadzik: It was a probabalistic thing.
22:56 am0c joined
tadzik it's been WBs since I remember :) Can we make some static analyzing to find them all? 22:56
jnthn sorear: The flag itself really just means "was this class generated to serve as the point of the mixin"
sorear jnthn: "point"?
jnthn sorear: Mixins in Rakudo = generate anonymous subclass that inherits from the thing we're mixing in to, compose role(s). 22:57
sorear Yes
jnthn Then change_type it.
sorear In Niecza, subclasses created using "but" do not remember their origins, they are just like any other class
I'm trying to understand why Rakudo tracks $!is_mixin 22:58
jnthn Yeah, that's how I had it originally....seem to remember there was something weird that cropped up...
TimToady presumably same reason Ruby does, so you don't do it again unnecessarily
jnthn oh, hm. :) 22:59
sorear jnthn: I'm trying to figure out what BOOTSTRAP.pm lines 198-199 are doing
jnthn It's about container types that get mixins.
And finding the actual container type itself so we can get our hands on its descriptor 23:00
That's...evil.
sorear: Unless you're very closely following Rakudo's container model, it's probably not relevant.
sorear I see 23:01
niecza currently lacks anything akin to a container descriptor, so yeah 23:02
jnthn Well, Rakudo kinda works on a scheme of "prototype containers" 23:03
Which are repr_clone'd as needed.
It's relatively efficient. Especially compared to what ng did.
23:05 lutok joined
sorear jnthn: Why are P6{int,num,str} REPRs? It seem to me they have nothing in common with the rest of the things that are REPRs. 23:06
jnthn sorear: Rerpresentation really should means "stuff related to memory allocation/management" 23:07
s/should/just
sorear: int, num and str all have memory needs
And in the case of str, GC needs.
23:10 fridim_ left
tadzik Tene: ping 23:11
jnthn OK, time for me to rest a bit. :)
Back tomorrow
tadzik rest well!
jnthn Thanks! :) 23:12
sorear Why is there no write barrier in P6opaque::copy_to ?
23:21 nnunley left
Tene tadzik: what's up? 23:23
tadzik Tene: I was wondering if you're about to make a repo for Ratel 23:24
23:24 sftp left
Tene tadzik: I have no intentions to do anything of the sort. :) 23:24
dalek kudo/nom: ae33c0b | (Geoffrey Broadwell)++ | src/core/Main.pm:
1340fa68ba changed Parameter.type to return the actual type, not its name -- now fix MAIN_HELPER's gen_usage() to compensate. Fixes #107244.
23:25
japhb Would someone mind doing the needful to #107244?
23:26 sftp joined
tadzik Tene: huh, I thought you did 23:27
well, I adopted it into Bailador's repo as a temporary solution
Tene tadzik: what I remember is being asked about Ratel, and saying that I didn't feel any notable sense of ownership
tadzik oh, I see
Tene If there's any reason that anyone *wants* me to own the repo, I can. 23:28
I don't otherwise care, though.
tadzik I thought it's about giving credit to you
Tene I'll feel appropriately credited if you add a CREDITS file or a note in the README or some such. :) 23:29
tadzik okay :) 23:30
huh, so I need a README for Bailador
dalek atures: 13a62a9 | larry++ | features.json:
New features features

s/Currying/Priming/ Added "Loops as list generators"
23:47
atures: b8349ac | larry++ | features.json:
make nom point to rakudo.org by default now
23:55 orafu left, orafu joined 23:57 Woodi joined 23:59 japhb left, japhb joined