»ö« 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:11 cognominal left 00:12 cognominal joined 00:23 drbean joined 00:29 shinobicl joined 00:34 shinobicl left
sorear TimToady: suppose f() returns a value with a nontrivial .sink; what does &infix:<=>(my $x, f()) return? 00:38
00:39 dayangkun_ joined 00:40 jaldhar left, jaldhar joined 00:42 dayangkun left
sorear TimToady: ah, I see what's going on; constant @x = 1, (2,3) creates a nonflat List 00:45
00:48 lue left 00:49 kcwu joined
TimToady infix:<=> would need to be declared sub infix:<=> is rw ($lvalue is rw, $rvalue) { ...; $lvalue } or some such 00:53
pmichaud yes, I always assumed infix:<=> returns its lhs. 00:54
...and we don't call .sink on the result of infix:<=>. 00:55
TimToady perl6: (((my $x) = 2) = 3) = 42; say $x
p6eval pugs, rakudo 72d158, niecza v7-22-gce1bbd0: OUTPUT«42␤»
TimToady glad everyone agrees :)
pmichaud nom: (((my $x) = 2) = 3) = 42; say $x; # checking 00:56
p6eval nom: OUTPUT«42␤»
pmichaud whew
TimToady nom: (state $)++
p6eval nom: OUTPUT«Contextual $*GOAL not found␤current instr.: 'nqp;Perl6;Grammar;_block2042' pc 91346 (src/gen/perl6-grammar.pir:24845) (src/Perl6/Grammar.pm:670)␤»
TimToady :P
perl6: sink (my $x) = 1 00:59
p6eval rakudo 72d158: ( no output )
..niecza v7-22-gce1bbd0: OUTPUT«===SORRY!===␤␤Action method statement_prefix:sink not yet implemented at /tmp/TxnkMW1267 line 1 (EOF):␤------> sink (my $x) = 1⏏<EOL>␤␤Unhandled exception: Unable to resolve method statement_level in class Str␤ at /home…
..pugs: OUTPUT«*** No such subroutine: "&sink"␤ at /tmp/xYP1ycvY4i line 1, column 1 - line 2, column 1␤»
TimToady perl6: ((my $x) = 1).sink 01:00
p6eval pugs: OUTPUT«*** No such method in class Array: "&sink"␤ at /tmp/XIm8zkVEMF line 1, column 1 - line 2, column 1␤»
..niecza v7-22-gce1bbd0: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/FHKTWMt2XM line 1:␤------> ((my ⏏$x) = 1).sink␤␤Unhandled exception: Unable to resolve method sink in class Int␤ at /tmp/FHKTWMt2XM line 1 (MAIN mainline @ 1) ␤ at /home/p6ev…
..rakudo 72d158: OUTPUT«Method 'sink' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/KSVeJYySlp␤»
01:00 dayangkun_ left
TimToady I guess I don't understand the .sink remark either 01:01
01:01 jaldhar left, noganex left 01:02 jaldhar joined 01:04 ab5tract joined 01:05 noganex joined 01:09 jaldhar left 01:10 jaldhar joined 01:17 dayangkun joined 01:23 whiteknight left
daniel-s rakudo: ((my $x) = 1).sink.say 01:31
p6eval rakudo 72d158: OUTPUT«Method 'sink' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/IXV2yb9hc6␤»
daniel-s rakudo: say sink((my $x) = 1)
p6eval rakudo 72d158: OUTPUT«Could not find sub &sink␤ in main program body at line 22:/tmp/sAuZ1G0iNh␤»
TimToady rakudo doesn't really do sink yet
01:37 cognominal left 01:42 benabik_ joined, benabik left, benabik_ is now known as benabik
daniel-s rakudo: my $x = 4; $\ x++\ .say; $#`{{dsfjksdhgkjshgksg}}x++.say; $\#`{{dsfjksdhgkjshgksg}}x++.say; 01:43
p6eval rakudo 72d158: OUTPUT«===SORRY!===␤Unsupported use of $\ variable; in Perl 6 please use the filehandle's :ors attribute at line 22, near " x++\\ "␤»
daniel-s rakudo: my $x = 4; $x++\ .say; $x#`{{dsfjksdhgkjshgksg}}++.say; $x\#`{{dsfjksdhgkjshgksg}}++.say; 01:44
p6eval rakudo 72d158: OUTPUT«4␤Any()␤5␤»
daniel-s rakudo: my $x = 4; $x++\ .say; ++.say; $x\#`{{dsfjksdhgkjshgksg}}++.say; 01:45
p6eval rakudo 72d158: OUTPUT«4␤Any()␤Cannot modify readonly value␤ in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in main program body at line 22:/tmp/ctRAV4qPpO␤»
daniel-s rakudo: my $x = 4; $x++\ .say; $x++.say; $x\#`{{dsfjksdhgkjshgksg}}++.say;
p6eval rakudo 72d158: OUTPUT«4␤5␤6␤»
daniel-s $x#`{{dsfjksdhgkjshgksg}}++.say is not allowed 01:46
01:49 ab5tract left
daniel-s rakudo: my $x = 4; $x++\ .say; $x ++.say; $x\#`{{dsfjksdhgkjshgksg}}++.say; 01:50
p6eval rakudo 72d158: OUTPUT«4␤Any()␤5␤»
daniel-s :) 01:51
[Coke] nom: say.say.say
p6eval nom: OUTPUT«␤Bool::True␤Bool::True␤»
benabik t/p6regex/01-regex.t is hanging after 331 tests on Darwin/x86 (Parrot master, NQP master) 01:59
pmichaud that's a known bug 02:15
02:16 _jaldhar joined
benabik Running it with -v also reveals several failures... 02:16
02:16 jaldhar left
pmichaud also known bugs 02:16
benabik ... Boo.
pmichaud the tests weren't all completely converted correctly when nqp was split from nqp-rx 02:17
benabik So the only way I can tell if nqp is working properly by trying rakudo?
pmichaud if all of the non-regex tests pass, you're probably okay.
but it would be a really good idea to test it against nom also :)
02:35 dayangkun_ joined 02:36 dayangkun left
[Coke] Files=239, Tests=6647 02:37
we can probably hit 7K without regex. 02:38
pmichaud I'm looking at a wednesday target for regex
02:38 _jaldhar left, _jaldhar joined
dalek kudo/nom: f84edb1 | Coke++ | t/spectest.data:
add a failure reason.
02:40
benabik I installed nqp and now get `"load_bytecode" couldn't find file "ModuleLoader.pbc"` 02:43
TimToady needs to fix the range spec so that '42' ~~ 0..100 works right 02:51
pmichaud nom: say '42' cmp 100; # I think this is why it fails now 02:52
p6eval nom: OUTPUT«1␤»
pmichaud since '42' after 100, it thinks it's outside of the range. :-)
TimToady it probably needs to ref Bridge types for one or both .. args 02:53
dalek kudo/nom: e4f9e45 | Coke++ | t/spectest.data:
minor test failure reasons updates.
pmichaud the whole Bridge thing feels a little wobbly to me at the moment 02:54
TimToady or we just carefully dispatch on Numeric or Stringy
pmichaud it's kind of the right idea, but not quite the right factoring.
TimToady anyway S03:3466 is rongy 02:57
pmichaud anyway, we already have a rule that says that the left argument being numeric implies numeric on the right argument... perhaps it should also extend to range comparisons.
TimToady no, that's backwards for when 02:58
pmichaud what's the case you're thinking of?
TimToady the type of the right should dominate
'42' ~~ 1..100
pmichaud I mean the left argument of the range 02:59
not the smart match
TimToady ah, yes, but then there's Inf..-2
pmichaud that wouldn't imply a numeric match also? (which always fails, since Inf > -2?)
TimToady er, *..-2 03:00
daniel-s rakudo: '42' ~~ 1..100;
p6eval rakudo 72d158: ( no output )
daniel-s rakudo: say '42' ~~ 1..100;
p6eval rakudo 72d158: OUTPUT«Bool::False␤»
TimToady I've run into that one several times now on RC
pmichaud I guess what I'm saying is that Range really acts something like Range of .... 03:01
i.e., the Range is perhaps parameterized somehow
based on the arguments used to construct it
and that implies things for how it smartmatches
TimToady somethin like that
pmichaud if the left argument is numeric, it's cast into the wider type of the two 03:02
if the left argument is Whatever, it takes on the type of the rhs (assuming -Inf makes sense for that)
otherwise the types have to match, and normal cmp semantics hold 03:03
TimToady wider type isn't good enough 03:04
has to be Real minimally
03:07 colomon left
lichtkind gnight 03:16
03:17 lichtkind left 03:24 Su-Shee left
sorear TimToady: if $x = f() returns the value of f(), then how does $x.sink not get called? 03:27
03:28 Su-Shee joined
sorear TimToady: do you have a small concrete example of the "state lvalue problem"? 03:29
o/ Su-Shee
TimToady niecza doesn't have a state lvalvue problem 03:31
it only has a (state $) problem
sorear ah.
03:32 molaf joined
sorear (it also has a top-level state problem) 03:32
TimToady and I still have no clue what you mean by .sink
sorear (and I think it has some issues with @vars)
class Foo { method sink { say 5 } }; my $x = Foo.new; Nil;
presumably this won't call say
why not? how?
pmichaud I've always assumed it's syntactic here, or a property on the operator. 03:33
i.e., in a statementlist we see that the operand is &infix:<=> so we don't put it in sink context.
s/operand/operator/
TimToady sink is not a method, meseemeth
it's just an eager list op that discards its values 03:34
no type really has to know what sink means 03:36
sorear Your latest $! commit suggests that do { Failure.new; 2 } throws an exception. Is this related to sink?
pmichaud TimToady: I think part of the question (part of mine, at any rate) is how does sink get suppressed on an assignment statement? 03:37
TimToady only if the failure is marked unhandled, and perhaps only fail() marks 'em that way
why does it have to be?
sorear TimToady: suppose f() returns an unhandled failure. What causes do { f(); Nil } to throw an exception? 03:38
pmichaud my $x = @list.map(); 1; # $x is no longer lazy
TimToady what happens if you eat the lvalue?
okay, you're saying if you assign an unhandled failure, it shouldn't throw 03:39
at least I understand the question now :)
pmichaud and my question is if we assign a lazy list, how do we keep sink context from eagerly evaluating it? 03:40
TimToady only if it's marked infinite
pmichaud map is always eager on finite lists?
TimToady the sink can probably treat the lvalue differently than an rvalue 03:41
that's just a feeling tho
or we could just specifically exempt known side-effecty things from needing a sink
pmichaud syntactically, as in the case of assignment? 03:42
TimToady mebbe
03:44 cognominal joined
TimToady if we had a real refcount language, we could just throw any unhandled exception when its refcount == 0 03:45
pmichaud afk for a short bit 03:46
sorear I think TimToady has said in the past that sink context is "a bit in the callframe" 03:47
TimToady has said a great many odd things in the past 03:48
sorear std: foo(); { our sub foo() { } } 03:49
p6eval std 37a0cdd: OUTPUT«ok 00:01 120m␤»
sorear is this legal Perl6?
TimToady no, according to S06:471 03:52
sorear fixes a test
OUR::foo() would be legal right?
TimToady yes 03:53
it can also be legal if there's a CANDO that directs our attention to the current package 03:54
but CANDO is itself lexically scoped 03:55
04:04 satyavvd joined 04:10 molaf left 04:13 dayangkun_ left 04:14 flatwhatson joined 04:15 flatwhatson left 04:25 dayangkun_ joined 04:50 xinming left 04:56 donri left
dalek ecza: ec8f968 | sorear++ | src/ (2 files):
Implement declaration of anonymous variables
04:58
ecza: ea9ecaa | sorear++ | t/spectest.data:
We now pass my.t
ast: 8cc349a | sorear++ | S0 (3 files):
some fudging of S02-literals/quoting, S04-declarations/{my, state}; fixes
05:02
05:11 kaare_ joined 05:17 fhelmberger left 05:20 mberends left 05:22 fhelmberger joined
dalek ecs: 6fe30d6 | larry++ | S03-operators.pod:
'42' ~~ 1..100 coerces string to Real, etc.
05:23
05:23 xinming joined 05:30 birdwindupbird joined 05:34 dayangkun_ left 05:35 am0c left 05:46 beek joined 05:47 dayangkun_ joined
moritz good morning 05:47
05:48 soh_cah_toa left, Jackneill joined
beek harrroo. 05:48
05:49 am0c joined
sorear Hello beek! Welcome to #perl6. 05:53
beek Hey thanks yo. I'm mostly still 5ish, but am starting to transition. 05:54
dalek ecza: 8545ad6 | sorear++ | src/niecza:
Fix \(state $) misparse
ecza: 08c4185 | sorear++ | / (2 files):
Fix state at top level
ast: 9055b81 | sorear++ | S04-declarations/state.t:
S04-declatations/state: test two niecza regressions, fix \(state $) test
05:59 wamba joined 06:00 Jackneill left 06:08 wtw joined
sorear TimToady: ping 06:08
TimToady: is it sensible to make state ($x, $y) = 1,2 auto-START? 06:09
06:10 c9s left
TimToady yes, but not (state $x) = 1 06:22
06:23 wamba left
dalek ecza: 22671b9 | sorear++ | src/niecza:
Support for non-my list declarators
06:25
TimToady but in general var declarators parse a parcel as a single unit and then eat the = as pseudo-assignment 06:26
doubt it extends to constant though
sorear I am fairly certain that 'is $seensize, 11, "list assignment' in S04-declarations/state.t should be 10, not 11. 06:27
Anyone care to check this before I commit?
06:28 mj41 joined 06:35 f00li5h left
TimToady dunno, it might be erroneous to assume either value, but hurts my brane 06:35
but a better case can probably be made for 10
go ahead and change it to 10, and see if anyone carps :) 06:36
sorear 'state $svar will first' smells wrong 06:39
shouldn't that be 'will start'?
TimToady fossil
sorear first is more about loops
TimToady START used to be FIRST
sorear methinks 'my $x will start' (S04:1377) makes little sense 06:40
on the second and subsequent block entries, the value won't be retained
TimToady treu 06:41
dalek ecza: 787b33d | sorear++ | src/niecza:
Implement state $x will start { 42 }
ast: 4bae023 | sorear++ | S04-declarations/state.t:
Many state unfudges for niecza, fix fib recursion count, fix will first fossil
06:42
sorear it's still fudged on :Perl5 and Sub.clone
maybe I'll try :Perl5 tomorrow
TimToady wouldn't that need to assign 42 to the current object?
sorear still unconvinced Sub.clone should exist
dunno I just made the test work :) 06:43
sorear checks S04
TimToady just returning 42 is a no-op
06:43 wamba joined
TimToady my $r will start { .set_random_seed() }; 06:43
$func = { state $x will start { $x = $i++ }; dostuff($i) };
those both refer to the declarand
sorear I see 06:44
TimToady I mean, yes, the START block returns its value, but I'm not sure that's autoassigned to the declarand 06:45
we also use that syntax for lots of things that are side-effecty, like will {.close}
will *.close these days, probably
er, will leave {.close} I mean 06:46
sorear trait_mod:will parses a <pblock>
will leave *.close won' do
TimToady hmm 06:47
dalek ecza: 23c8f9f | sorear++ | src/niecza:
will start { $_ = 2 }, not will start { 2 }
ast: 01f6069 | sorear++ | S04-declarations/state.t:
S04-declarations/state: fix will start { 42 } fossil (TimToady)
sorear I wonder how hard rx :Perl5 // will be 06:48
TimToady that depends on how much of it we choose to emulate; it would be insane to emulate it all, esp the bugs 06:49
you probably don't want to emulate the non-reentrancy, for instance : 06:50
06:50 mj41 left
sorear how much sense does [ :bytes . ] make these days? 06:50
06:51 agentzh joined
sorear perl6: say "abcde".bytes # Discuss. 06:52
p6eval pugs, rakudo 72d158: OUTPUT«5␤»
..niecza v7-27-g22671b9: OUTPUT«10␤»
TimToady I believe I'm on record that using .bytes on a Str is erroneous, at least
it should not be assuming any particular encoding 06:53
S02:551 06:54
sorear What does :bytes in a regex mean?
TimToady same as \C in p5, which is also quite bogus :) 06:55
it's something that probably should be prohibited, since it can leave you in the middle of a character
and it is also assuming things about the encoding that it can't know 06:56
sorear especially nasty since niecza uses 16-bit code units :>
TimToady nod
except when you use 32-bit units :) 06:57
sorear although it needs a better implementation of Str at some point
TimToady UTF-16 is not a fixed-width encoding either
sorear one with a substr cache of some kind
TimToady we need to get to something that doesn't need a cache, if possible 06:58
something with fixed size integer arrays, at least for chunks of strings as ropes, if not the whole string 06:59
sorear how do you propose to implement Str with constant time indexing for both 'codes' and 'graphs'?
TimToady but all the pieces of a particular rope don't have to be the same size
sorear or do you think strings should be natively one or the other and have slow "odd" operations?
TimToady I think graphs with NFG can be treated as equivalent to codes 07:00
there's just the added overhead of making up temporary codepoints for graphemes that don't have one natively in NFC
moritz still isn't convinced the chars/ords duality will work out, except if we introduce separate types for them
sorear chars/ords? 07:01
TimToady: "n\c[COMBINING DIAERESIS]".codes == 1 ?
moritz chars/codes I meant 07:02
TimToady sorear: that is also unknowable according to spec
"Similarly, C<.codes> is not well-defined unless you know which canonicalization is in effect."
sorear TimToady: that pair is invariant in all official canonicalizations 07:03
it cannot be composed, decomposed, or reordered
TimToady then it's two code
codes
but it's one graph
sorear TimToady: suppose I have a ten-million-graph NFG string, mostly ASCII but with a few occurences of n-diaeresis 07:04
TimToady: $str.codes needs to return 1 per ascii char, 2 per n-diaeresis
TimToady: how can this be done quickly? 07:05
TimToady if you have an NFG string, codes is undefined
sorear or should we just tell users "don't use codes in tight loops"?
sorear ponders a UTF-16-like encoding, but with chars reordered such that "is this a combining char?" is a single arithmatic operation 07:06
TimToady there will be code that wants to work at each abstraction level, so likely there are buf types that vary according to canonicalization too, and contain codepoints
07:08 Jackneill joined, Jackneill left, Jackneill joined
TimToady but both code strings and graph strings are really just lists of integers, and with proper abstraction we don't care about how those integers are stored 07:08
you can have ropes where they are mostly ASCII, with a few stretches that need int16 or int32 arrays instead of int8 07:09
or uint as the case may be
sorear What is the natural ordering of NFG-strings? 07:10
Order as if NFD?
TimToady well, that's a big topic, even by Unicode standards...
sorear Should NFG strings be able to represent isolated combining characters?
TimToady: I'm talking binary ordering, not collation 07:11
the extension of collation to NFG is obvious
TimToady well, anything that's consistent, and vaguely explainable, will probably do for that 07:12
sorear nod.
07:12 araujo left
sorear "\c[COMBINING TILDE]\c[COMBINING DIAERESIS]".graphs = ? 07:12
07:14 im2ee joined
TimToady as for baseless combiners, we'll have to think about that; they might most naturally be forced to exist as codepoint strings, not graph strings, as long as the appropriate cat ops are available when you need 'em 07:14
sorear walk&
TimToady alternately, we have a conventional base that we use to mean "Isn't one", but that's not Unicodey
TimToady shood zzz instead of walk & 07:15
07:23 amkrankruleuen left
jnthn morning, #perl6 07:26
07:39 mj41 joined
moritz \o jnthn 07:43
jnthn hi moritz 07:46
moritz std: $*OUT.print 4 # I know what the error is, just want to see if STD knows too :-) 07:49
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Two terms in a row (method call requires colon or parens to take arguments) at /tmp/yeV5tSBptf line 1:␤------> $*OUT.print ⏏4 # I know what the error is, just want ␤ expecting any of:␤ bracketed infix␤ infix or
..met…
jnthn Nice that it also tells you how to fix it :) 07:53
moritz niecza: $*OUT.print 4
p6eval niecza v7-29-g23c8f9f: OUTPUT«===SORRY!===␤␤Any()Confused at /tmp/aI_xXTJUd9 line 1:␤------> $*OUT.print ⏏4␤␤Parse failed␤␤»
moritz niecza is less awesome there
jnthn nom: $*OUT.print 4 # doubt this is awesome...
p6eval nom: OUTPUT«Confused at line 1, near "$*OUT.prin"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)␤»
08:14 dayangkun_ left 08:18 benabik left, benabik joined 08:21 daxim joined 08:23 kaare__ joined 08:24 cipherte1t joined, kthakore_ joined 08:25 ruoso joined, mikemol_ joined, yath_ joined, dayangkun_ joined
sorear std: $*OUT.print 4 08:27
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/pcA16GKl6H line 1:␤------> $*OUT.print ⏏4␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 120m␤»
tadzik good morning #perl6
sorear hi tadzik
08:29 kaare_ left, ciphertext left, ruoso_ left, kthakore left, mattp_ left, mikemol left, yath left
jnthn o/ tadzik 08:31
08:31 wooden left 08:37 Jackneill left
dalek kudo: aeb12bb | moritz++ | build/Makefile.in:
"git fetch" in t/spec, because it might be too old know about revision a14ba49
08:50
08:52 dakkar joined 09:14 shachaf left 09:19 f00li5h joined 09:20 ab5tract joined 09:21 araujo joined 09:29 dayangkun_ left 09:30 Mowah joined
dalek ecza: af607ad | sorear++ | src/ (3 files):
Rearrange panic a bit to improve TTIAR and related errors
09:35
sorear evalbot rebuild niecza 09:36
p6eval OK (started asyncronously)
sorear niecza: [1] 2 09:38
p6eval niecza v7-30-gaf607ad: OUTPUT«===SORRY!===␤␤Two terms in a row (preceding is not a valid reduce operator) at /tmp/WY8TuAztrI line 1:␤------> [1] ⏏2␤␤Parse failed␤␤»
sorear std: [1] 2
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/10y39r7ZK_ line 1:␤------> [1] ⏏2␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 121m␤»
sorear niecza: $*OUT.print 4
p6eval niecza v7-30-gaf607ad: OUTPUT«===SORRY!===␤␤Two terms in a row (method call requires colon or parens to take arguments) at /tmp/I34qbPp6a1 line 1:␤------> $*OUT.print ⏏4␤␤Parse failed␤␤»
sorear flags moritz 09:39
moritz sorear: you can now reply to perl6-users and write "niecza now also gives the awesome error message" 09:40
09:40 mikehh joined
sorear I can't, I don't have a copy of the message to thread it to 09:51
sorear out 09:52
09:52 wamba left 10:01 daniel-s left 10:06 wamba joined 10:08 im2ee left 10:09 im2ee joined 10:16 Jackneill joined, Jackneill left, Jackneill joined 10:17 Chillance joined 10:28 agentzh left 10:29 envi left 10:46 mattp_ joined 11:08 colomon joined 11:21 SHODAN joined 11:25 JimmyZ joined 11:26 Yume joined
JimmyZ good evening, #perl6 11:27
Yume how to install easily perl 6 on windows? 11:28
good night
daxim github.com/downloads/rakudo/star/r....04.v2.exe 11:30
11:34 Util left, tadzik left, PerlJam left 11:35 pmichaud left, hatseflats left 11:38 yath_ is now known as yath 11:40 mtk left 11:41 im2ee left 11:46 mtk joined 11:47 hatseflats joined, Yume left 11:50 satyavvd left, tadzik joined 11:52 pmichaud joined, PerlJam joined, Util joined 11:53 Yume joined
Yume how to easily install perl6 on windows? 11:53
moritz Yume: what's wrong with the answer that daxim gave you earlier? 11:54
Yume which answer? 11:56
sjn Yume: 13:30 < daxim> github.com/downloads/rakudo/star/r....04.v2.exe
moritz irclog.perlgeek.de/perl6/2011-07-12#i_4099538
sjn Yume: also, on irc it helps to be online continuously ;)
takadonet morning all 11:57
Yume thanks very much for the information, i will try it
:) 11:58
12:05 shinobicl joined 12:06 Jackneill left 12:10 shinobicl left 12:13 colomon left 12:20 MayDaniel joined
[Coke] needs a simple command, like "bots", where some bot will tell him in private who all the bots are and how to talk to them, since they don't answer to just any ole question. 12:20
moritz p6eval: help 12:21
p6eval moritz: Usage: <(nom|nqpnet|star|pugs|nqp|mildew|std|niecza|rakudo|perlesque|nqprx|yapsi|alpha|highlight|partcl)(?-xism::\s) $perl6_program>
moritz right, we're missing a bigger summary 12:22
perl6.org/community/irc has a very rough summary
[Coke] partcl: puts [list well that's one bot down.]
p6eval partcl 3977a9: OUTPUT«well that's one bot down.␤»
[Coke] I forgot partcl was in there. 12:23
12:25 smash joined
smash hello everyone 12:26
moritz \o smash
tadzik hi smash 12:27
12:31 nebuchadnezzar left
moritz wonders how hard it would be to install a magical POD variable that contains the next/previous/closest Pod block 12:32
jnthn hm
moritz: It's got weird scoping, that's the thing... 12:33
Lexical may not be find grained enough
12:33 nebuchadnezzar joined
tadzik you could emit a past that would change it after every pod block encountered :) 12:34
moritz jnthn: maybe the solution is not scoping, but rather a magical tied var that lookos up the contents based on caller position
jnthn Well...
moritz but I guess the idea itself is rather bogus
12:34 Yume left
jnthn Far far easier is just to have a $*LASTPODBLOCK 12:34
moritz it's better to have pod blocks attached to routines and packages 12:35
jnthn And whenever you see $=LASTPOD instead of a variable lookup you just emit an SC lookup of whatever is in $*LASTPODBLOCK
Yeah, most likely :)
tadzik just wait one more week :>
[Coke] is surprised to see sorear++ sucked into parrot. woot. 12:37
SC?
12:37 MayDaniel left
moritz serialization context 12:37
tadzik: I was never good at waiting. If I were, I'd be waiting for Perl 6 instead of contributing :-) 12:38
tadzik :)
12:44 bluescreen10 joined 12:47 daniel-s joined 12:48 daniel-s left 12:50 PerlJam left 12:52 PerlJam joined 12:59 molaf joined 13:01 Jackneill joined 13:02 _jaldhar left 13:03 Yume joined, _jaldhar joined, Holy_Cow joined 13:04 _jaldhar left 13:05 _jaldhar joined 13:09 Holy_Cow left 13:13 envi joined 13:20 Mowah left 13:33 drbean left
moritz nqp: say(pir::defined(0)) 13:55
p6eval nqp: OUTPUT«1␤»
moritz nqp: say(pir::defined(pir::null__P))
p6eval nqp: OUTPUT«0␤»
13:59 _jaldhar left 14:05 Alias joined 14:10 tadam joined 14:12 tadam left 14:15 _jaldhar joined, [Coke] left 14:16 [Coke] joined 14:20 wtw left
jnthn woo, $dayjob work done early 14:25
jnthn decommutes
14:27 [Coke] left 14:29 [Coke] joined 14:30 pochi joined 14:38 PacoLinux left 14:41 PacoLinux joined 14:49 im2ee joined 14:54 masak joined
masak hi, #perl6 14:54
tadzik masak: \o/
masak \o/ 14:56
smash masak: hello 14:57
masak hi, smash. 15:00
moritz++ # taking care of Parrot Raiser on p6u 15:01
moritz masak: FYI, I've submitted the midterm evaluations for tadzik++'s gsoc project 15:02
masak moritz: woot.
tadzik and I submitted mine :) 15:03
moritz tadzik++ again
dukeleto oh yeah, midterms 15:06
dukeleto slaps his own wrist
jnthn back 15:28
masak jnthn! \o/
std: Foo; class Foo {} 15:30
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Illegally post-declared type:␤ 'Foo' used at line 1␤Check failed␤FAILED 00:01 118m␤»
masak now has such a long program that he often runs into the above 15:31
unfortunately with Rakudo's runtime error instead:
rakudo: Foo; class Foo {}
p6eval rakudo aeb12b: OUTPUT«Could not find sub &Foo␤ in main program body at line 22:/tmp/ZgcpikfKM9␤»
jnthn It still tells you the symbol name in error.
Just later :) 15:32
Guess Rakudo needs to learn about the MYSTERY stuff or some such to handle the std case.
masak indeed.
jnthn Patches welcome :)
masak just need to finish this game... :) 15:33
jnthn I suspect nom makes it easier...its symbol table handling is better :)
masak \o/
jnthn Not sure to what degree we'd want to steal the MYSTERY stuff from STD.
Or just do something more natural for Rakudo, but with equivalent functionality. 15:34
15:34 Alias left
TimToady pugs: constant dog = 'Benjamin'; sub Dog() { 'Samba' } macro DOG() { '"Bernie"' } say "The three dogs are named {dog}, {Dog}, and {DOG}." 15:34
p6eval pugs: OUTPUT«*** ␤ Unexpected "="␤ expecting ":" or "("␤ at /tmp/7mBwH9ExSM line 1, column 14␤»
masak TimToady: ; after } 15:35
TimToady doubt that's the issue
masak no, doesn't seem to be. 15:36
TimToady pugs: constant dog = 'Benjamin'; sub Dog() { 'Samba' } macro DOG() { '"Bernie"' }; say "The three dogs are named {dog}, {Dog}, and {DOG}."
p6eval pugs: OUTPUT«*** ␤ Unexpected "="␤ expecting ":" or "("␤ at /tmp/RcC9u4Wujh line 1, column 14␤»
TimToady we only have "variable" constants back then
*had
masak .oO( constants aren't )
TimToady pugs: constant $dog = 'Benjamin'; sub Dog() { 'Samba' } macro DOG() { '"Bernie"' }; say "The three dogs are named {$dog}, {Dog}, and {DOG}."
p6eval pugs: OUTPUT«pugs: Missing required parameters: $_␤»
TimToady er... 15:37
jnthn o.O
TimToady pugs: constant $dog = 'Benjamin'; sub Dog() { 'Samba' }; macro DOG() { '"Bernie"' }; say "The three dogs are named {$dog}, {Dog}, and {DOG}."
p6eval pugs: OUTPUT«pugs: Missing required parameters: $_␤»
TimToady beats me
pmichaud possible incoming commit flood 15:41
dalek Heuristic branch merge: pushed 44 commits to nqp/qregex by pmichaud 15:42
pmichaud ah, good.
jnthn puts the ark away again 15:43
TimToady wong ark 15:44
*r 15:45
masak or wrong flood.
TimToady
.oO(wrong ar key)
moritz pmichaud: is that a regex engine reimplementation? or step by step improvements? 15:46
pmichaud it's a reimplementation. In NQP.
moritz \o/
jnthn :)
pmichaud also has a ton of performance enhancements.
takadonet pmichaud: how far have you gotten so far on it? 15:47
[Coke] pmichaud++
pmichaud I think I'm about 60% of the way to where I want to be.
Only 60% more to go :)
TimToady rosettacode.org/wiki/Case-sensitivi...ers#Perl_6 15:48
[Coke] partcl: puts [lrepeat 4 pmichaud[string repeat + 2]]
p6eval partcl 3977a9: OUTPUT«pmichaud++ pmichaud++ pmichaud++ pmichaud++␤»
[Coke] no really, tcl's lovely. 15:49
pmichaud the new implementation drastically reduces the number of method calls and gc-able objects used during a match
it also moves the target into a fixed-length encoding, so that utf8 no longer slows things down horribly.
...and by the end the day I expect to have a nfa-based longest token matcher in place. 15:51
moritz \o/
pmichaud (I've already prototyped a nfa implementation in NQP... just need to adapt it to the regex code)
jnthn So much nice stuff. :) 15:52
pmichaud++
pmichaud and the new core Regex::Cursor type is a role, so it can be composed into native HLL types (e.g., Rakudo gets its own Cursor and Match objects instead of having to derive directly from the engine's)
15:52 domidumont left
moritz recommends git log -p --reverse $first_interesting_commit..origin/qregex 15:54
please don't expect me to understand the codegen
pmichaud I don't... and I now know how to improve the codegen when we redesign PAST for other vm backends 15:55
right now PAST/POST have somewhat of the wrong factoring for the regex engine (and other stuff, I suspect)
TimToady is that a parallel nfa? 15:56
pmichaud TimToady: yes.
TimToady sugoi
[Coke] pmichaud: You scare me about as much as I scare people at work, I think.
masak the layers of scariness. :) 15:57
pmichaud I also expect to be able to use the nfa to avoid some subrule calls altogether
JimmyZ it's bad that dalek doesn't report NQP branch
moritz is scared by pmichaud++, but less so knowing that he spent a lot of time pondering and planning it before 15:58
15:58 mberends joined
pmichaud I haven't done any pushes to the branch, other than to create the branch itself. Commits might start showing up here. 15:58
moritz JimmyZ: it does, it just didn't want to flood the channel with 44 commits
pmichaud We'll know shortly.
JimmyZ oh
tadzik which one if nfa, the 'try all of them and choose longest' one? 15:59
JimmyZ dalek doesn't like flood
TimToady tadzik: parallel nfa means try the first char on all of them, then the second char of all of them, until they all give up but one
masak & 16:00
pmichaud the nfa follows all possibilities in parallel, recording the length at at which each path stops. It then orders the alternatives based on length (with other criteria in the case of ties)
TimToady and a dfa can be viewed as merely one way to implement a parallel nfa :)
pmichaud I might go to a dfa eventually... doing smaller steps for now. 16:01
mainly I want to get something working that we can use in nom.
moritz the advantage of DFAs is that they can be fast
pmichaud well, even as an nfa we should see very large speed improvements
TimToady the disadvantage is that you can get a state explosion unless you're lazy
moritz the disadvantage of DFAs is that they might have an exponentially larger size than the coressponding NFA
pmichaud even without the nfa we should see very large speed improvements, if only because we've reduced the number of gcables by several million :) 16:02
TimToady basically, DFA is just a potential optimizaiton of an NFA, in practice
pmichaud (and reduced the number of method calls as well)
TimToady stress on the word "potential"
jnthn And like any optimization, it can be selectively applied. 16:03
TimToady and *tion
pmichaud anyway, talking about the new engine is preventing me from coding it, so you all will have to watch the commit log for more news :)
TimToady doesn't know when niecza chooses it
mmph
jnthn guesses there's some heuristics on when to go NFA or DFA
16:04 benabik_ joined, benabik left, benabik_ is now known as benabik, molaf left
pmichaud btw, I received word today that I have travel funding for yapc::eu :) 16:04
jnthn Tonight, and tomorrow, are my last days of nom hacking before vacation.
tadzik TimToady: interesting
moritz really, somebody please ban pmichaud++ from IRC so he gets back to coding :-)
jnthn If anybody has things I should really focus on before I go, now's a good time to say.
pmichaud (jnthn and I are planning to do nom regex integration tomorrow, fwiw) 16:05
tadzik pmichaud: is the branch functional atm?
moritz \o/ good news (re travel fund)
pmichaud tadzik: it's functional only if you know how to make it function :)
jnthn So far I know I need to sort out doing NQP roles from Rakudo classes, and worry about enums.
pmichaud tadzik: if you do "make nqpq", you get a special version of nqp that builds its regexes using the new engine
here's a sampl:
gist.github.com/1078177 16:06
I haven't "closed the loop" yet such that nqp builds itself using the new engine. the engine needs a few more features first.
tadzik I see
16:07 f00li5h left
tadzik very interesting, pmichaud++ :) 16:08
JimmyZ what is DFA or nfa ?
pmichaud oh, but you can do "make qregex-test" to have it run the test suite. It already passes more regex tests than nqp did.
TimToady JimmyZ: deterministic/non-deterministic finite automaton 16:09
moritz JimmyZ: Deterministic/Non-deterministic Finite Automaton
pmichaud gist.github.com/1078299 # another example
TimToady wins :P
moritz JimmyZ: machine models for accepting/rejecting languages
[Coke] pmichaud: than nqp-rx? 16:10
moritz TimToady: you cheated, you didn't capitalize :-)
TimToady but moritz++ wins on style
[Coke] ETOOMANYPs.
TimToady :PPP
[Coke] exactp.
pmichaud [Coke]: than nqp. some of the tests broken in the migration of nqp from nqp-rx 16:11
moritz pmichaud: does it construct a token TOP which is an automatic alternation of the rules?
ah no, you call method def
pmichaud moritz: not yet. But we can add that.
moritz never mind
(it's not a desired feature, I just missed a line)
pmichaud oh, you were asking about how it invoked. Yeah, $cursor.def() 16:12
nqp only passes ~330 regex tests and then hangs. Even when it didn't hang, it only did around 300 tests or so. the new engine passes over 450 tests
JimmyZ Finite Automaton, I love it 16:13
moritz on that occasion I notice that I never encountered infinite automata so far 16:14
moritz fondly remembers his "formal languages and automaton theory" lecture
tadzik pmichaud: already? 16:15
nice
moritz -> decommute
pmichaud 499 according to the test I just ran.
16:17 mkramer joined, mkramer left
[Coke] pmichaud: how many did nqp-rx do? 16:19
sorear good * #perl6
pmichaud ~720 iirc
mberends o/
pmichaud 747. 16:20
16:23 [particle] left, [particle] joined
tadzik mberends: o/ 16:23
sorear: o/
16:23 JimmyZ left 16:24 daxim left
TimToady wanders off to become clothed and in his right mind...well, clothed anyway... 16:24
[Coke] wanders off to find something to soothe his mental eye.
16:27 simcop2387 left 16:29 zby_home_ joined 16:31 simcop2387 joined 16:37 lucs joined 16:42 Aridai joined 16:46 thou joined 16:54 birdwindupbird left 16:55 Yume left 16:57 donri joined 16:58 cdarroch joined, cdarroch left, cdarroch joined 16:59 mj41 left 17:03 colomon joined 17:09 mkramer joined, mkramer left 17:14 dakkar left 17:17 Aridai left
[Coke] wonders if perlmonks is always this slow. :( 17:18
flussence [Coke]: blank page for me, probably overloaded.
oh, there it goes 17:19
[Coke] seen util?
aloha util was last seen in #perl6 5 hours 27 mins ago joining the channel.
Util [Coke]: Here 17:20
[Coke] phenny, ask Util Did you build a nice installer for Rakudo * for OS X?
phenny [Coke]: I'll pass that on when Util is around.
Util Hang on...
phenny Util: 17:20Z <[Coke]> ask Util Did you build a nice installer for Rakudo * for OS X?
benabik Util: Don't you hate it when people talk about you like you're not there? 17:21
Util :)
PerlJam [Coke]: re perlmonks ... yes.
[Coke] PerlJam: why do we put up with that? 17:22
Util [Coke]: Yes, although I stalled for no good reason before final release.
Last test version: s3.datasaw.com/Rakudo_Star_2011-01_...ment_3.dmg
PerlJam [Coke]: dunno. I've largely stopped using perlmonks though. same with facebook. Perhaps that's just my ADD though :)
Util Re: PerlMonks. This page was in my address bar buffer, and it just loaded without cache in about 1 second. perlmonks.org/index.pl?node_id=913714 17:23
[Coke]: My auto-packaging scripts: github.com/rakudo/star/tree/master...darwin_dmg 17:27
benabik Had an install issue with NQP. I guess people don't use DESTDIR very often.
Sent a pull request. :-D 17:28
[Coke] gah. perlmonks rant: I've started to reply to a comment. when was that comment originally posted?
moritz there are many reasons perlmonks is slow
the most important one: it's old, crufty and non-hackable code 17:29
PerlJam yjsy
moritz the code itself is stored in the DB, so you can't just check out the sources
PerlJam that's one reason?
moritz another alleged reason is that the hoster doesn't manage to set up the DB server in a performant way 17:30
dalek p: ad0564e | benabik++ | tools/build/Makefile.in:
[install] Create all directories before use

This mostly matters if someone is using DESTDIR
17:31
p: 9764cc7 | benabik++ | tools/build/Makefile.in:
[Makefile] Remove NQP_LANG_DIR variable

It doesn't seem to be used anywhere.
p: 845d921 | moritz++ | tools/build/Makefile.in:
Merge pull request #17 from Benabik/master

make install fixes
moritz benabik++
benabik: fwiw the reason nobody noticed before is that people usually use the same DESTDIR as parrot, so that path usually exists already 17:32
tadzik nice catch
benabik moritz: I use DESTDIR to install things via stow. So it gets installed with PREFIX=/usr/local and DESTDIR=`pwd`/install, and then I `mv install/usr/local/* /usr/local/stow/nqp` 17:33
mikemol_ Who whosts PerlMonks? 17:34
*hosts
moritz mikemol_: pair.com
[Coke] manages, with a fight, to post a reply on pm.
mikemol_ Isn't perlmonks Slashcode? Or do I have my history all fuzzy? 17:35
17:35 _jaldhar left
moritz mikemol_: no, it's the "everything engine" 17:35
mikemol_ Ah 17:36
Util mikemol_: Perlmonks is run on the Everything2 Engine
moritz mikemol_: it was use.perl.org that used slashcode
mikemol_ muses that a replacement engine for perlmonks.com might be a good PR move for Perl6.
17:36 Yume joined
moritz but it would need to be fast :-) 17:36
mikemol_ looks at Niecza and nqp 17:37
PerlJam E2 needs a refactor at the very least.
17:37 mj41 joined
[Coke] finds www.perlmonks.org/?node_id=769974, explaining why things are slow and going to get better, from 2 years ago. 17:37
PerlJam It's still 10ish year old technology
mikemol_ And, no, not really it wouldn't; caching and smart usage of a properly-configured db backend would hide the majority of slowness.
moritz PerlJam: E2 has evolved a lot, but perlmonks didn't follow (or so people say in the chatterbox) 17:38
www.perlmonks.org/?node_id=846326 btw
PerlJam oh. I thought E2 development was essentially dead
moritz maybe it first evolved a lot, and then died, but at least perlmonks is still far behind the current E2 state, whatever that is 17:39
Util [Coke]: Thanks so much for seeing and responding to that Perlmonks post!
[Coke] Util: it was my... duty. 17:41
Util Heh
PerlJam Read Randal's response to this thread and note the date: www.perlmonks.org/?node_id=29801 17:42
:-)
[Coke] crap. I now need to figure out how to do webdev in perl5 so
17:42 ab5tract left
PerlJam tilly's response is quite prophetic too 17:43
[Coke] (whoops) so I can hack on webdev in perl6.
jnthn 75 mins to #phasers? 17:46
17:48 wolfman2000 joined
tadzik oh oh 17:49
but yes, I think so
18:00 impious joined 18:11 mberends left 18:14 kytibe left 18:18 mikemol_ is now known as mikemol 18:19 kytibe joined
dalek p/qregex: b5a80bf | pmichaud++ | src/QRegex/P6Regex/Actions.nqp:
Add named and numbered aliases to subrules.
18:24
p/qregex: ec4c7a3 | pmichaud++ | src/QAST/Compiler.nqp:
Refactor regex_peek; make it easier to recover backtracking frame information.
p/qregex: 22b4fa8 | pmichaud++ | src/Q (2 files):
Add subcaptures.
kudo/nom: a9511b9 | jonathan++ | src/Perl6/SymbolTable.pm:
Flesh out BEGIN-time/CHECK-time handling a bit. While there's a larger refactor to come, this means that at least declarative things in the lexical scope of code run at BEGIN time are visible and/or callable. Main limitation is non-declaratives are not available (so no assigning to variables in outer scopes yet). Still way better than master. :-)
18:25
18:28 bluescreen10 left 18:29 Mowah joined 18:37 spq1 joined 18:44 bluescreen10 joined 18:45 impious left
jlaire karma mscv 18:45
aloha mscv has karma of 0.
jlaire karma pugs
aloha pugs has karma of 0.
jlaire karma msvc 18:46
aloha msvc has karma of 0.
18:55 Kivutarrr joined
sorear jlaire: pugs predates aloha 18:58
Util pugs++
sorear: Will you add this to lib/CORE.setting , please? 19:00
method end() { +self - 1 }
I was going to fork and pull-request, but since I cannot get Niecza to recompile, I cannot verify that it is a good patch :)
sorear how old is the checkout? tried git clean -dfx?
jlaire sorear: was just wondering, 'mcvs++' was mentioned earlier and pugs used to have 1
msvc* 19:01
[Coke] jnthn: for windows git, what line ending setting do you use? 19:05
[Coke] ponders "checkout as is, commit unix-style". 19:06
(or anyone, really) 19:09
[Coke] just goes for the recommended setting (checkout win, commit unix) 19:10
jnthn [Coke]: I forget...I just did the default.
[Coke] good. :)
jnthn [Coke]: That sounds correct.
pmichaud #phasers in -10
Util wishes jnthn restorative vacation time 19:11
jnthn Util: Thanks. It'll be a muchly needed mental, as well as physical, change of scenery. :)
19:13 mberends joined
benabik Is nom expected to pass it's tests? I get things like "tests out of sequence" for t/00-parrot/01-literals.t 19:15
tadzik make test is a bit broken, still
benabik Ow. Alright. Is there any reasonable way to see if nom is working correctly? :-/ 19:16
Util sorear: less than 1 week old. Will try `git clean -dfx`
jnthn benabik: make spectest is generally far more informative. 19:17
19:17 cdarroch left, smash left
benabik Thanks, jnthn++ 19:18
tadzik benabik: you can try 'make podtest' on podparser branch if you are adventurous :)
(that one should pass)
benabik tadzik: I'm already being a bit adventurous. This is on top of my parrot branch where I've been mucking around with PAST. 19:20
tadzik even better :)
[Coke] benabik: 4 known test failures in make test. 19:27
"make spectest" shouldn't have any failures.
(it may have some "hey, this file returned 1 because it was fudged and that makes it look bad even though it worked) errors, though.
benabik spectest seems to be working well, so I'm guessing I haven't completely FUBARed PAST. 19:28
19:34 shachaf joined 19:42 birdwindupbird joined
flussence discovered perl5 Readonly::XS today, and wondered why it's not a builtin already since they make it sound like a one-liner... 19:45
pmichaud Raiders of the Lost Rakudo
Dr. Rakudo or: How I Learned to Stop Worrying and Love the Spec 19:46
19:49 Trashlord left 19:50 Trashlord joined
tadzik Nom Club 19:50
. o O ( It's not about Nom, it's about the way society works! ) 19:51
thou Rakudo, Men In Tights
seen masak 19:52
aloha masak was last seen in #perl6 3 hours 52 mins ago saying "&".
tadzik thou: is there a connection? :P
thou hehe; not intentionally
tadzik behold, the ugliness redefined!
/ :ratchet ([<!before [\h+ || ^^] '|' [\h+ || $$]> .]*) ** [ [\h+ || ^^] '|' [\h+ || $$] ] / 19:53
AKA: silly things people do when they have no split()
benabik Rakudo, nom in Tights? 19:55
19:57 buubot_backup left
Util sorear: gist.github.com/1078826 19:57
benabik Shoot. Spectest failures. :-( 20:00
I'm going to retest with parrot master (instead of my branch), but if it keeps failing, expect me to bother people some as I try to figure out why. 20:01
moritz gist.github.com/1078839 current nom spectest failures 20:03
tadzik moritz: bingo with the empty cells test 20:04
2 bugs and counting :)
dalek ast: 6b3e7cb | moritz++ | S04-declarations/my.t:
unfudge passing test for rakudo in my.t
20:05
moritz tadzik: heh :-) 20:06
benabik moritz: My spectest failures gist.github.com/1078850
tadzik I'm afraid there's even one in the Magical Algorithm
moritz so it seems that there are some segfaults and other non-determisms hunting us :( 20:07
tadzik moritz: would you expect the cells in your table to be formatted as the paragraphs, so leading and trailing whitespace removed, \s+ => ' ' and so?
[Coke] moritz: why are we running crony if it's failing?
moritz tadzik: yes 20:08
tadzik oki-doki
I mean, yay, more slowdowns! :P
[Coke] Charlie's Rakudos
tadzik * Larry's 20:09
moritz [Coke]: probably my fault 20:10
sorear Util: could you try to get more information for me? MONO_LOG_LEVEL=debug MONO_LOG_MASK=asm mono --trace=none run/Niecza.exe might help
moritz though... I added it back about two weeks ago
and I never noticed any failures in it before
so, looks like a regression
20:11 pacho74 joined
jnthn crony.t is a regression as of the last patch I put in 20:11
It exposed something that's been more deeply wrong for a while. 20:12
Util sorear: will do 20:13
20:16 buubot_backup joined
flussence argh, I can't build master with --gen-parrot because it's using a version that doesn't have --without-pcre 20:19
[Coke] wonders how old that parrot is. 20:20
20:20 soh_cah_toa joined
PerlJam flussence: even with --gen-parrot=master ? 20:20
flussence ooh, I'll try that
tadzik flussence: you'll probably need --gen-parrot-opts or something of this sort 20:21
dalek ast: 6dc8424 | moritz++ | S06-advanced_subroutine_features/return.t:
fudge return.t for rakudo
kudo/nom: fad32e6 | moritz++ | t/spectest.data:
three more passing test files
20:22
flussence grr. "Option gen-parrot does not take an argument"
guess I'll just build them separately... 20:23
20:23 birdwindupbird left
tadzik no 20:23
there is a way to pass args to parrot's Configure.pl
moritz flussence: are you on master? 20:24
[Coke] argh. I have git bash. I have visual studio command prompt. ... building rakudo... needs git.
flussence yes
nom works fine, though
moritz flussence: just bump the PARROT_REVISION, we need that for testing anyway
and configure with --parrot-option=--without-pcre 20:25
dalek kudo/podparser: c33a153 | tadzik++ | / (2 files):
Tune table tests, add some new and fix bugs detected by them
20:28
tadzik whew 20:29
20:29 Jackneill left
[Coke] "schweranigans" (I vote: "schwernanigans") 20:30
jnthn evalbot rebuild nom 20:31
p6eval OK (started asyncronously)
sorear Util: any luck?
Util sorear: I was just about to say! gist.github.com/1078907 20:32
jnthn nom: say "done?" 20:34
p6eval nom: OUTPUT«Rebuild in progress␤»
dalek kudo/nom: 38b4f24 | jonathan++ | src/Perl6/Metamodel/RoleToClassApplier.pm:
Make sure we can compose NQP methods into a Perl 6 class (doesn't make NQP roles work yet from nom, but a necesary step).
kudo/nom: fd4005c | jonathan++ | src/Perl6/SymbolTable.pm:
Little fix to BEGIN-time symbol handling.
jnthn nom: say "done?" 20:36
p6eval nom: OUTPUT«Rebuild in progress␤»
jnthn gee, takes a while.
pmichaud nom: say "Rebuild in progress"
p6eval nom: OUTPUT«Rebuild in progress␤»
pmichaud \o/ :)
tadzik like the std joke :)
std: say "ok {125.rand.Int}ms"
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
tadzik gah, fail
jnthn :P 20:37
PerlJam rakudo: $_ = 42; { say $_; }
p6eval rakudo aeb12b: OUTPUT«42␤»
jnthn nom: $_ = 42; { say $_; }
p6eval nom: OUTPUT«42␤»
jnthn nom: role Foo { method foo { True } }; multi trait_mod:<is>(Routine $r, :$foo!) { $r does Foo }; sub x is foo { }; say &x.foo
PerlJam jnthn++ (I assume you fixed it ;)
p6eval nom: OUTPUT«Bool::True␤»
20:38 mtk left
jnthn sorear: ^ is what I was meaning about trait that mixes in role, fwiw 20:38
nom: role Foo { method foo { True } }; multi trait_mod:<is>(Routine $r, :$foo!) { $r does Foo }; sub x is foo { }; BEGIN { say &x.foo } # traits are done at BEGIN time...
p6eval nom: OUTPUT«Bool::True␤»
sorear Util: huh. I still don't have enough to go on. mono --trace=all, or NIECZA_TRACE=all mono might help, but either of those will likely give 10k+ lines 20:40
Util Should I be doing it on `run/Niecza.exe` or `run/Niecza.exe -C CORE` ?
sorear They'll give exactly the same result, since it's failing before command line parsing. 20:41
dalek ast: 4349e24 | moritz++ | S03-operators/assign.t:
fudge assign.t for rakudo
20:42
p/qregex: 05d1982 | pmichaud++ | src/QRegex/Cursor.nqp:
Add Cursor.ws .
20:43
p/qregex: 060dc92 | pmichaud++ | src/QRegex/P6Regex/Actions.nqp:
Enable :sigspace modifier.
tadzik what's the singular of "Synopses"? 20:47
benabik Synopsis
tadzik oh, right. THanks :)
sorear Util: A tarball of your run/ directory would also be useful. 20:50
20:52 REPLeffect left 20:53 REPLeffect joined
Util NIECZA_TRACE=all produces 2k lines. --trace=all produces 1M lines, 128MB. 20:53
dalek kudo/nom: 2d5a72b | moritz++ | t/spectest.data:
run assign.t
20:54
20:54 Yume left 20:56 odrm left 20:58 Mowah left
dalek ast: 3bcc2c8 | moritz++ | S03-operators/assign.t:
two small unfudges for assign.t
20:59
21:02 SHODAN left
Util sorear: curl -O 'perlcabal.org/~util/{run.tar.gz,mon....txt.bz2}' 21:03
5MB compressed
sorear thanks. 21:08
21:08 bluescreen10 left 21:09 zby_home_ left
jnthn nom: role Foo { method mi() { say "yay mixed in!" } }; class A { }; my $m = A.new; $m does Foo; $m.mi; 21:14
p6eval nom: OUTPUT«Could not instantiate role 'Foo':␤Contextual $*GLOBALish not found␤current instr.: 'nqp;Perl6;Metamodel;ParametricRoleHOW;specialize' pc 34655 (src/gen/perl6-metamodel.pir:10171) (src/gen/Metamodel.pm:942)␤»
21:16 kaare__ left
sorear whee, monodis dumps core on Util's JSYNC.dll 21:19
21:20 HarryS left
Util nom: my $n = 5; my @m = $n.^methods; 21:20
p6eval nom: ( no output )
Util nom: sub foo { say $^n.perl }; my $f = &foo; my @m = $f.^methods;
p6eval nom: OUTPUT«Segmentation fault␤»
Util Known issue? 21:21
jnthn nom: sub foo { }; my $f = &foo; my @m = $f.^methods;
p6eval nom: OUTPUT«Segmentation fault␤»
thou can anyone explain to me what this rakudo-master error means: """Cannot add tokens of category 'trait_auxiliary' with a sub""", when compiling github.com/masak/web/blob/master/l...ispatch.pm
jnthn nom: sub foo { }; my @m = &foo.^methods; 21:22
p6eval nom: OUTPUT«Segmentation fault␤»
tadzik nom: my $f = sub {}; my @m = $f.^methods
jnthn nom: sub foo { }; say &foo.^methods;
p6eval nom: OUTPUT«Segmentation fault␤»
nom: OUTPUT«Method 'gist' not found for invocant of class 'Sub'␤current instr.: 'gist' pc 461533 (src/gen/CORE.setting.pir:125371) (src/gen/CORE.setting:2034)␤»
jnthn oh. :/
Known but very nasty.
The circularity saw strikes again. 21:23
Util That's OK, I will just ask the question I was trying to answer myself:
jnthn suspects nqp going on not wrapping its subs methods in 6model objects are numbered.
*the days nqp going on...
Util when I do this: my $f = &foo; $f.($some,$args); 21:24
what is the name of the actual method call that implements the function call? INVOKE? DO_ME?
jnthn postcircumfix:<( )>
thou: trait_auxilliary doesn't exist any more 21:25
thou: try it as trait_mod
thou jnthn: will try, thanks!
jnthn: well, it compiles with trait_mod:<is>, so that seems like progress! 21:26
sorear jnthn: fwiw, I think from a Niecza perspective it makes more sense to have sub trait_mod:<is>(StaticSub $sub, :whatever)... you can't have a Routine without a corresponding OUTER, and I try to minimize pointless creation of protopads
jnthn What's StaticSub?
sorear class Code { has StaticSub $!info; has CallFrame $!outer; } # simplification 21:27
Util rakudo: sub foo { }; my $f = &foo; .name.say for $f.^methods.grep({.name ~~ /postcircumfix/}); 21:28
p6eval rakudo aeb12b: OUTPUT«postcircumfix:<[ ]>␤postcircumfix:<{ }>␤»
Util jnthn: Thanks! I assume that Rakudo just takes a shortcut right now, and that that is why postcircumfix:<( )> does not show up in the ^methods. 21:29
jnthn Util: We don't go that way for most invocations
Util: Only for user defined ones
The majority take a shortcut :) 21:30
Util :)
jnthn sorear: You really want the actual code object there, I think.
sorear: Otherwise it can't be mixed in to.
Exposing Niecza's StaticSub would seem to be like exposing Parrot subs, which I'm going to lengths not to do. 21:31
sorear jnthn: mixing into the protosub would be pointless
for 1..10 { sub foo is trait { } } 21:32
10 or 11 Code objects are created for &foo
only one of them could be passed to trait_mod:<is>
jnthn for 1..10 { sub foo is rw { } } # I really hope those subs are all rw :)
21:32 im2ee left
sorear yeah, that works by setting a flag on the StaticSub 21:33
jnthn sorear: I suspect the subsequent ones really need to be cloned from the "proto" one
Thus why "proto".
sorear *blech*
jnthn (as in, prototype, a la prototype object)
21:34 pacho74 left, kcwu left
dalek kudo/nom: 399c991 | jonathan++ | src/Perl6/ (2 files):
Fix the crony.t regression, as well as other roles and lexicals related issues.
21:37
sorear Why should anyone ever make a Code with more than two attributes?
jnthn nom's Code has a bunch more than that. 21:41
Well, not *loads*, but more than two.
I suspect some of those should really be in Routine though... 21:42
tadzik good news: rakudo/podparser is no slower on spectest than rakudo/nom
21:42 [particle] left
tadzik bad news: zsh: segmentation fault ./perl6 t/spec/S03-operators/assign.rakudo 21:43
jnthn tadzik++
tadzik: Only on podparser?
tadzik: bt?
tadzik jnthn: yeah, reproducible
jnthn: I'm on it
21:43 [particle] joined
tadzik well, I did only one 'make spectest' pass on nom, and it didn't occur 21:43
oh, interesting valgrind catch 21:45
"source and destination overlap in memcpy"
jnthn ew
tadzik that's forbidden/undefined behaviour in C I believe
jnthn right.
tadzik ==13485== by 0x4F73F33: do_shift (in /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0)
==13485== by 0x4F74571: Parrot_ResizablePMCArray_shift_pmc (in /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0)
jnthn Does it say where?
oh my...
21:46 Patterner left
tadzik okay, I gave up on valgrinding that 21:47
running through gdb 21:48
jnthn github.com/parrot/parrot/commit/9c...carray.pmc was the last patch that touched those
21:48 Psyche^ joined, Psyche^ is now known as Patterner
tadzik oh, that looks like your cake jnthn :) 21:48
jnthn But it looks like it uses mem_sys_memmove
tadzik wklej.org/id/561125/
flussence pugs: sprintf('%d is %1$x in hex', 63);
tadzik I'll try to minimize the case
p6eval pugs: OUTPUT«*** Insufficient arguments to sprintf␤ at Prelude.pm line 668, column 13-53␤»
flussence (what, even pugs doesn't do \d$ ?) 21:49
jnthn tadzik: Hmm, that is a curious one.
flussence (I'm gonna push a test for that unless anyone objects in the next 5 seconds or so :) 21:50
dalek ast: 5f09039 | (Anthony Parsons)++ | S32-str/sprintf.t:
Add a test for printf positional arg specifiers
21:51
21:51 Kivutarrr left
jnthn tadzik: If a debug build would yeild the segfault and a line number, that'd be useful to know 21:52
tadzik I thought I have a debug build. Hrm 21:53
wklej.org/id/561129/ -- the minimal test case which produces the segfault
commenting even one 'is()', any of them, stops it from segfaulting 21:54
sorear Util: mono --version ?
pmichaud there was a patch submitted to rakudo (master) outlining some missing GC_WRITE_BARRIER stuff... does that need to be added to nom, ooc? 21:55
jnthn tadzik: Sadly, not here...
Util sorear: Mono JIT compiler version 2.6.7 (Debian 2.6.7-5ubuntu3) Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com TLS: __thread GC: Included Boehm (with typed GC and Parallel Mark) SIGSEGV: altstack Notifications: epoll Architecture: x86 Disabled: none
jnthn (doesn't segfault under debugger or out of it...)
pmichaud: I think the things it write barriered are gone in nom 21:56
pmichaud: Though it's worth applying for master.
pmichaud jnthn: okay, just checking. I'm planning to apply it for master, yes.
tadzik hrm, do I need to pass something specific to parrot to get the debugging build? I didn't do any --debugging=0 fwiw, only --optimize 21:59
dalek ast: 632918e | (Anthony Parsons)++ | S32-str/sprintf.t:
Oops, didn't realise skip comments were special. flussence--
22:01
flussence (that'll teach me for not paying attention...)
22:01 spq1 left
sorear flussence: is that you? 22:01
flussence yeah
sorear anyone handy with a parrot commitbit?
22:01 rdesfo joined
tadzik sorear: what's up? 22:02
sorear tadzik: Anthony Parsons / flussense needs to be added to CREDITS 22:04
22:05 alfieANDfred joined 22:06 alfieANDfred left
tadzik sorear: wklej.org/id/561133/ is that sufficient? 22:07
sorear tadzik: needs U:flussence 22:09
not D:
tadzik oh, true
ok, commiting
sorear hold on
tadzik too late :( 22:10
anything important?
sorear no
nevermind
22:10 donri left
sorear I misread something 22:10
22:10 rdesfo left
sorear Util: still here? 22:14
Util: as a workaround you should be able to do: mono boot/run/Niecza.exe -C JSYNC; make
Util Still here
trying...
sorear Util: there seems to be an issue with stale cached names when two modules are compiled at once 22:15
22:18 jdhore1 joined 22:19 jdhore left
Util sorear: that did the trick; much thanks! Is that the right thing to do any time I get that error during `make`? 22:22
sorear Util: the error was very nonindicative
but it's worth trying
Util Great
22:23 pacho74 joined
sorear I wonder why I've never seen that error; the mono bug/misfeature doesn't seem to have been removed 22:23
Util sorear: I can now say that my 1-line patch for .end works. Would you prefer a pull request? :) 22:24
sorear Util: nah, I just want to know where you put it? 22:27
:)
Util Right after `method elems` in lib/CORE.setting 22:28
sorear Util: there are three of those 22:29
Util sorear: Indeed, you are right! The third; in class List 22:30
sorear I think it would make more sense to have end in Any defined in terms of .elems 22:31
interesting, it looks like mono version *does* make a difference 22:32
sorear wrote a smallest possible test and tried it on both 22:33
22:34 Chillance left 22:37 whiteknight joined 22:40 wamba left, wamba joined
sorear mono bug #611836 22:40
22:43 HarryS joined
sorear Util: I wonder if it's worthwhile to add a workaround for a bug that was fixed 2010-06-03. 22:44
I mean 06-30
22:47 masak left 22:50 dual left 22:54 mj41 left
jnthn sleep & 23:10
23:13 whiteknight left
Util sorear: That is when the bug was fixed, but it has never been fixed in a 2.6.x series, which is the latest LTS until 3.0 23:23
It is fixed in 2.8.x, but since it is not LTS, it is not in Debian/Ubuntu.
So, if it is an easy workaround, then +1
23:28 drbean joined 23:29 orafu left, OuLouFu joined, OuLouFu is now known as orafu 23:37 _jaldhar joined
sorear Util: I'll fix it. Worth releasing 7.01, or wait for 8? 23:39
23:49 fhelmberger left 23:58 fhelmberger joined