»ö« 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' harddefault» | ||
[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«02Use 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 failedFAILED 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 ... 100Parse 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«1234» | ||
cognominal | nom: say $_.perl for (1, (2, 3, 4)) | 16:11 | |
p6eval | nom 1c74c7: OUTPUT«1234» | ||
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 1Unhandled 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«4242» | |||
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 contextuse 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 therealive» | ||
..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 contextuse 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 contextuse 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
|