pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:11 Ontolog left
pugs_svn r22373 | cjfields++ | [t/spec] fix closure test (variables not reset) 00:30
01:29 meppuru joined 01:44 meppl left 01:45 funktio_ joined 01:49 ptman joined 01:51 xinming joined 01:54 meppuru is now known as meppl 01:55 xinming_ left 01:56 Lichtkind joined
Lichtkind how can i write a signature that except only in values greater that 0 ? 01:57
01:57 TreyHarris joined
Lichtkind i ask because i dont see anything in synopses 01:58
but im shure there where something like that
any hint? 02:11
02:16 BinGOs_ joined 02:26 alester joined, xinming_ joined 02:33 wknight8111 left 02:37 meppl left 02:42 xinming left 02:46 agentzh joined 02:53 Alias_ joined 03:02 elmex_ joined
pugs_svn r22374 | putter++ | [elfish/on_sbcl] More work on Array, Hash, and oo. Parser.pm runs. 03:14
r22374 | putter++ | [STD_red] Postcircumfix methods now parse.
r22374 | putter++ | [elf] More backend neutrality.
03:17 elmex left, elmex_ is now known as elmex 03:22 Ontolog joined
rakudo_svn r31428 | pmichaud++ | [rakudo]: Update dec_number to avoid split/join removal of underscores. 04:19
04:23 xinming_ left 04:27 xinming joined 04:29 justatheory left 04:37 xinming_ joined 04:39 sail0r joined 04:40 sail0r left
azawawi hi 04:45
04:45 xinming left
azawawi how do i check p6 POD for warnings (like podchecker)? 04:48
@tell moritz how do i check p6 POD for warnings (like podchecker)? 04:59
lambdabot Consider it noted.
05:05 alester left 05:09 xinming_ left, xinming joined
rakudo_svn r31429 | pmichaud++ | [rakudo]: Allow underscore in exponents. 05:14
pugs_svn r22375 | pmichaud++ | Remove a #?rakudo skip on underscores in exponents.
r22376 | azawawi++ | [pugs] PROBLEMS->PROBLEMS.pod 05:18
r22377 | azawawi++ | Make some text bold 05:22
rakudo_svn r31430 | pmichaud++ | [rakudo]: Allow unspace before dotty ops. 05:33
pugs_svn r22378 | pmichaud++ | S03-operators/binding-hashes.t: unskip skipped tests for unspace
05:34 khisanth_ joined 05:35 khisanth_ is now known as Khisanth 05:48 Psyche^ joined 05:49 Ehtyar joined 05:56 BinGOs_ left 06:00 Patterner left, Psyche^ is now known as Patterner, sri_work joined
rakudo_svn r31431 | pmichaud++ | [rakudo]: STD.pm convergence -- dotty postcircumfix and methodops 06:03
06:03 BinGOs joined 06:13 ashizawa joined
pugs_svn r22379 | pmichaud++ | Unskip some tests where rakudo didn't like dots. 06:15
06:15 REPLeffect joined 06:21 Bzek joined 06:25 Bzek left 06:26 cognominal joined 06:27 Bzek joined
rakudo_svn r31432 | pmichaud++ | [rakudo]: Leave .= to be parsed as infix for now. 06:28
pugs_svn r22380 | azawawi++ | fixed PROBLEMS.pod, moved t/syntax/varnames.t into S02-names_and_variables and added a smartlink 06:29
06:29 sri_work_ joined
pugs_svn r22381 | pmichaud++ | S05-substitution/subst.t: Two more passing tests 06:29
azawawi can anyone cpan install Perl6::Perldoc on feather1? 06:41
pugs_svn r22382 | pmichaud++ | Correct test in S29-str/pos.t, unskip it for rakudo. 06:42
06:46 sri_work left 06:54 pjcj left 06:57 iblechbot joined 07:03 zamolxes joined
pugs_svn r22383 | moritz++ | [t/spec] some unfudges found by autunfudge.pl 07:39
azawawi moritz: ? 07:41
pugs_svn r22384 | azawawi++ | rakudo skip 'Null PMC access in type()' on varnames.t 07:45
moritz_ azawawi: yes, just a sec 07:46
azawawi moritz_: ok 07:47
moritz_ [X] Done 07:49
azawawi i have some questions regarding rakudo spectest and skips...
moritz_ go right ahead 07:50
azawawi what is our policy for test skips?
moritz_ tests that either lead to abortion or that are unspecced are skipped 07:51
azawawi so "Null PMC...", stack traces should be skipped right?
moritz_ right
azawawi cool so much fun to do then ;-)
moritz_ (but fudging only makes sense for test files where some tests pass) 07:52
azawawi right
so far they are either parse errors or Null PMC stacktraces 07:54
07:54 baest joined
moritz_ what test are you working on? 07:54
azawawi S02-*
one more question about P6 POD format? is there something like podchecker for it? 07:55
moritz_ don't think so
azawawi i needed in the morning to cpan install Perl::PerlDoc for smartlinks.pl, but i dont have sudo access 07:56
moritz_ uhm, on which feather does the smartlink cronjob run? 07:57
azawawi dunno actually
im developing on feather 1 07:58
moritz_ because I know there is a cronjob for it already
Juerd It ought to run on 1 08:11
1 is the "normal" feather that everyone uses
2 is not in use yet
3 is for evalbots
08:14 ptman left
pugs_svn r22385 | azawawi++ | Skipped all tests since autovivication.t fails in rakudo 08:58
moritz_ azawawi: when you make changes to the test suite, please put [t] or [t/spec] in the commit message 09:00
azawawi moritz: will do... thx
09:04 masak joined 09:08 kanru joined 09:24 wknight8111 joined
pugs_svn r22386 | azawawi++ | [t/spec] Skipped failing tests in capture.t for rakudo 09:28
09:31 pmurias joined 09:53 Alias_ left 10:02 Lichtkind_ joined, Bzek_ joined
azawawi rakudo: my $ref = [ 42 ] 10:03
p6eval rakudo 31432: RESULT[[42]]
azawawi kp6: my $ref = [ 42 ]
p6eval kp6 22386: RESULT[[ 42 ]]
10:06 barbeqq1 joined
barbeqq1 I heard tommorow you will release Perl6 ! 10:06
could that be true ? 10:07
azawawi rakudo: my $ref= { val => 42 }; $ref = [ 42 ]; 10:11
p6eval rakudo 31432: OUTPUT[Odd number of elements found where hash expectedā¤current instr.: 'parrot;List;hash' pc 2877 (src/gen_builtins.pir:1999)ā¤]
azawawi kp6: my $ref= { val => 42 }; $ref = [ 42 ];
p6eval kp6 22386: RESULT[[ 42 ]] 10:12
azawawi @tell moritz_ is this a bug in rakudo 'my $ref= { val => 42 }; $ref = [ 42 ];' ? 10:14
lambdabot Consider it noted.
10:19 Bzek left 10:20 Lichtkind left
pugs_svn r22387 | azawawi++ | [t/spec] skipped 2 tests in catch_type_cast_mismatch.t for rakudo 10:21
10:21 pmurias left
Ontolog I don't really understand this $<something> syntax very well 10:24
we have $/ but $<something> is the same as $/<something>?
we have $/ but $<something> is the same as $/{something}?
how is it that we can ditch the forwardslash? 10:25
10:27 zamolxes left
masak Ontolog: it's just a special case 10:28
besides, %h<foo> is the same as %h{'foo'}, with quotes 10:29
in general <foo bar baz> desugars to ['foo', 'bar', 'baz']
Ontolog i understand that 10:30
i just didn't understand why we are leaving out the /
masak it's just a special case.
Ontolog i see
masak @() is also special cased to return all matches 10:32
lambdabot Maybe you meant: . ? @ bf ft id pl rc v wn
masak and $() is special cased to mean $($/)
ditto %(), it seems 10:33
same for Match objects further down in the tree, e.g. @<foo> 10:34
actually, things make more sense in light of that last piece of syntax
10:40 dmq joined 10:47 Patterner left, Ontolog left
pugs_svn r22388 | azawawi++ | [t/spec] Fudged compact.t for "Scope not found" 10:49
moritz_ rakudo: my $ref= { val => 42 }; $ref = [ 42 ]; say $ref.perl 10:51
lambdabot moritz_: You have 1 new message. '/msg lambdabot @messages' to read it.
p6eval rakudo 31433: OUTPUT[Odd number of elements found where hash expectedā¤current instr.: 'parrot;List;hash' pc 2877 (src/gen_builtins.pir:1999)ā¤]
moritz_ rakudo: my $ref= { val => 42 }; say $ref.perl 10:53
p6eval rakudo 31433: OUTPUT[{"val" => 42}ā¤]
moritz_ azawawi: certainly a bug, feel free to report to [email@hidden.address]
azawawi moritz_: thx 10:54
barbeqq1 maybe it's time you release perl6 for real use ? 11:01
moritz_: but those are bugs on pretty basic features...when do yo think perl6 will be done ?
moritz_ barbeqq1: it's done when it's done. If you help, it's done faster ;) 11:02
barbeqq1: funnily enough nobody who was hackin on November (a Perl 6 wiki engine) found that bug 11:03
because it happens surprisingly seldom in real world code
barbeqq1 moritz_: if those kinds of bugs(which are pretty basic language functions) are revealed after so much time this perl6 thing is going on ... that gives me an ideea of how much people are actively coding in perl6 and how much people are developing it ... could you comment on that a bit please ? 11:04
moritz_ barbeqq1: so much time - I don't quite understand. Rakudo isn't all that old 11:05
barbeqq1: it only started to become somewhat usable half a year ago... 11:06
barbeqq1 moritz_: yes but could you comment on number of active users of perl6 ? and also on number of people developing it ?
11:07 wknight8111 left
moritz_ barbeqq1: developerr... perhaps 6 to 10 on rakudo, 1/2 on pugs, 2 on smop, 3/2 on elf, an undefined number on the specs 11:07
barbeqq1 has someone written a draft for Perl6 language specification(like c++ has for example...or any other ISO standardized serious language) or are features added in an ad-hoc pot-smoking fashion ?
moritz_ barbeqq1: but that "6 to 10" includes causual contributers
there are specs at spec.pugscode.org/, and much of the specs is also present in form of a test suite 11:08
avar barbeqq1: the current spec isn't a std spec document, it's more ad-hoc
barbeqq1 moritz_: and are the specs stable ? or does someone come from time to time and say "OH I HAVE AN IDEAA !!!" :) ?
moritz_ (of which rakudo only runs 1/5 currently, and passes perhaps 1/6)
barbeqq1: not frozen, but fairly stable 11:09
barbeqq1 so only 6-10 people are working on perl6 ?
moritz_ barbeqq1: there haven't been deep language changes in the last time, so it's mostly stable
barbeqq1: I didn't say that. read again.
rakudo neither is the only implementation, nor is it the only Perl 6 effort 11:10
pugs_svn r22389 | azawawi++ | [t/spec] Fudged enum.t for rakudo 11:11
barbeqq1 can't the specs be frozen so developers can catch up with implementation ? it's rather ridiculous that the specs change often and the developers need to back up,make changes ,clean up etc...
moritz_ barbeqq1: that's by far one of the least pressing issues for developers
barbeqq1: as I said, most language changes are fairly small 11:12
barbeqq1: the problem is that Perl 6 is a very complex and very new kind of language
anyway, gotta go now
barbeqq1 moritz_: more complex than haskell for example ?
moritz_ have the appropriate amount of fun
barbeqq1: yes
barbeqq1 OMG 11:13
pugs_svn r22390 | azawawi++ | [t/spec] Fudged infinity.t for rakudo 11:24
11:24 rindolf joined 11:26 wknight8111 joined 11:28 zamolxes joined
masak barbeqq1: not that that says much. even Haskell is more complex than Haskell :P 11:31
barbeqq1 :)) 11:34
11:36 barbeqq1 left 11:58 Ontolog joined 12:07 pmurias joined 12:11 ashizawa left
pmurias moritz_: haskell 98 isn't a very big language 12:26
masak pmurias: the equations for specifying the Mandelbrot set aren't very big either 12:28
but you can hardly deny it's complex :P
12:33 Psyche^ joined, Psyche^ is now known as Patterner
pmurias masak: did you actually write anything in haskell? 12:35
masak pmurias: aye 12:38
not saying it's impossible, or even very difficult, just... different 12:39
and the inherent complexity is very pleasant
very algebra-like
pmurias most of the imperative techniques have very similar equivalent in haskell 12:40
having the mountain bike repair& 12:41
* repaired
pugs_svn r22391 | azawawi++ | [t/spec] Fudged multi_dimensional_array.t for rakudo 12:46
rakudo_svn r31436 | pmichaud++ | [rakudo]: spectest-progress.csv update: 180 files, 3897 passing tests 12:50
masak pmurias: re imperative techniques: sure, just as even distantly related spoken languages solve things in very similar ways
Lichtkind_ how to declare subsets in signatures? 13:13
avar I don't think a signature is the right way to declare a subtype 13:14
13:14 Lichtkind_ is now known as lichtkind
lichtkind so you have to declare it before with containes ? 13:14
sorry but i found no example in synopses just mentioning subsets 13:15
avar: you dont know any reference? 13:17
avar I don't know the syntax but wouldn't this be something like: 13:18
subset Kittens of Mammals where { self.squeak ~~ /meow }
sub (Kittens $a_kitn) { ... }
lichtkind avar: right right i think i check larrys slides again i think there were something like that 13:20
13:22 BinGOs left 13:24 BinGOs joined
pugs_svn r22392 | azawawi++ | [t/spec] Paritally fudged mixed_multi_dimensional.t for rakudo 13:25
masak azawawi++ # test suite love 13:27
azawawi masak: thx 13:28
masak: how do know how to fudge a { faulty_code(), is_a(...) } ? 13:30
masak: im sleepy now ;-)
masak azawawi: no, I don't think I do. moritz_++ might.
:)
azawawi moritz_: do know how to fudge a { faulty_code(), is_a(...) } ? 13:31
moritz_ azawawi: a #?rakudo skip line will skip the whole block
azawawi moritz_: something like mixed_multi_dimensional.t line 112 13:32
moritz_ if it dies, skip the whole block of code 13:34
azawawi moritz_: thx, i'll try it now...
pmurias avar: you can use anonymous subtypes 13:38
13:38 fridim_ joined
pmurias sub (Mammals where {self.squeak ~~ /meow/} $a) { ... } 13:38
lichtkind pmurias: you where this french guy which we eat at the indian restaurant in kopenhagen? 13:42
pmurias no 13:44
lichtkind ah yes it was cognominal
moritz_ pmurias doesn't even have a french name ;) 13:45
lichtkind pmurias: but you where in kopenhagen?
cognominal I was not the only one...
pmurias yes, i gave the "Perl6 is just a SMOP talk" 13:46
cognominal: aren't you supposed to be eaten? 13:47
cognominal at the indian, I was at the left of Karen Pauley if my memory serves me well. 13:48
13:48 zamolxes left
cognominal I think BooK and maddingue were at another table. 13:49
is there photos somewhere?
Maddingue I was in front of Karen
pmurias lichtkind: did we talk at the yapc::eu
?
lichtkind pmurias: yes i had the feeling thatswhy i ask 13:52
pmurias: sorry was in garden to get telephone 13:53
moritz_ in Germany telephones grow in the garden
lichtkind moritz_: sometimes and sometimes the get in the garden when someone takes it there :) 13:54
13:57 avar joined
pugs_svn r22393 | moritz++ | [t/spec] varnames.t: use eval_lives_ok and eval_dies_ok 13:59
14:01 TJCRI joined
pugs_svn r22394 | moritz++ | [t/spec] fudged S03-operators/bit.t for rakudo 14:03
azawawi moritz_: fudge does not comment '{ faulty_code(); is_a(...); }' if it has any leading whitespace. Is that the correct behavior? 14:04
moritz_ azawawi: usually it works (ie it comments it out)... 14:05
but somtimes it has some nasty cornerns, and it doesn't do nested blocks 14:06
ie if you're already inside a block, skipping another block won't work
azawawi moritz_: it comments everything but the fauly_code()
moritz_ that's unfortunate ;) 14:07
azawawi moritz: so fudge works as expected if inner braces are not indented
rakudo_svn r31437 | moritz++ | [rakudo] add three more files to spectest_regression
r31437 | moritz++ | (azawawi++ for fudging two of them)
azawawi moritz_: thx 14:08
lichtkind allright code and block are perl 6 data types 14:09
pugs_svn r22395 | moritz++ | [t/spec] fudged keys_values.t for rakudo
r22396 | azawawi++ | [t/spec] Fudged mixed_multi_dimensional.t for rakudo 14:22
14:25 jhorwitz joined, eternaleye left
pmichaud is there a mailing list for svn updates to svn.pugscode.org ? 14:30
pugs_svn r22397 | azawawi++ | [t/spec] Fudged int-uint.t for rakudo 14:33
lichtkind go patrick go :)
14:38 mofino joined
moritz_ pmichaud: no :( 14:41
pmichaud: what I do is backlog in IRC, and click on the changeset links
pmichaud hard to filter that 14:42
moritz_ search for pugs_svn
but not optimal, yes
pugs_svn r22398 | moritz++ | [t/spec] fudgex mixed_multi_dimensional.t a bit more 14:45
moritz_ azawawi: if you look at that commit... there's an evil hack with #?rakudo emit # 14:46
azawawi: that can be used to disable some lines
azawawi moritz_: cool
moritz_ but it's an even uglier hack than the normal fudging, and should be used only seldomly 14:47
S29-num/rounders.t is a *very* evil example ;) 14:48
azawawi lazy_lists.t is evil also
14:50 pjcj joined
moritz_ that probably predates fudge 14:50
14:55 kanru left
pugs_svn r22399 | moritz++ | [t] closure.t uses different quoting delimiter, to eliminate the dependency on 14:55
r22399 | moritz++ | parsing with nested brackets.
14:56 kanru joined
rakudo_svn r31438 | moritz++ | [rakudo] one more test for rakudo 15:05
15:10 hercynium joined 15:24 fengtou joined
pugs_svn r22400 | azawawi++ | [t/spec] Fudged lazy_lists.t for rakudo 15:26
15:26 masak left 15:32 fengtou left 15:46 kanru left 15:47 kanru joined 16:01 wknight8111 left
pugs_svn r22401 | azawawi++ | [t/spec] Fully fudged lazy_lists.t for rakudo 16:09
16:09 justatheory joined 16:19 abra joined 16:25 Exodist joined 16:31 ruoso joined
ruoso pmurias, hi 16:34
I've been thinking...
is it really possible to do $foo<abc> := 123?
isn't binding something that happens in the lexical scope?
perl6: my %a; %a<abc> := 123; say %a<abc>; 16:35
p6eval elf 22401: OUTPUT[syntax error at (eval 117) line 4, near "} :"ā¤ at ./elf_f line 3861ā¤]
..pugs, rakudo 31438: OUTPUT[123ā¤]
ruoso I mean... I know '$abc := $foo<abc>' is possible... 16:36
TimToady pugs: my %a; %a<abc> := 123; %a<abc> = 456; 16:37
p6eval pugs: OUTPUT[*** Can't modify constant item: VInt 123ā¤ at /tmp/1h6VtHGRxs line 1, column 24-37ā¤]
TimToady pugs: my %a; %a<abc> = 123; %a<abc> = 456; 16:38
p6eval pugs: RESULT[\456]
16:38 `nipra joined 16:39 xuser joined
TimToady note also that symbol table manipulations are essentially %STAB<@var> := Array, more or less 16:41
ruoso TimToady, that might fail, depending on the object that implements %a, right? 16:48
pugs: my @a = (1,2,3); @a[0] := 2; say @a
pugs: my @a := (1,2,3); @a[0] := 2; say @a
p6eval pugs: OUTPUT[223ā¤]
pugs: OUTPUT[*** Can't modify constant item: VUndefā¤ at /tmp/L1IhYYpcAu line 1, column 19-29ā¤]
ruoso S03:1374 seems to imply that it relates to "names"
I'm not sure what '%a<abc> := 123' means to the Hash API 16:49
TimToady, yes... but there are other implications about that... 16:50
variables are things that can be syntatically identified
for '%a<abc> := 123' it will depend on what's implemented by %a.postcircumfix:<{ }> 16:51
for variables, I had planned to do a double-boxing...
which would mean that you would have %STAB<@var>.STORE(Array) as binding and %STAB<@var>.FETCH.STORE as assignement
but that doesn't work for things that are not variables 16:52
unless this double-boxing is replicated to *everything*
which looks weird
TimToady the outer box is nothing more than a pointer, really 16:53
if an array is a C-ish array of pointers to containers 16:54
then := is just replacing one of those poitners
16:54 xiaoyafeng joined
TimToady *pointers 16:54
ruoso sure... but it would require doing that for every return value of every method call
TimToady don't follow
ruoso there's nothing really special about %a<abc> 16:55
in runtime-sense
it's just a method call 'postcircumfix:<{}>' on the value stored in the variable '%a"
pugs_svn r22402 | moritz++ | [t/spec] fudged mixed_multi_dimensional.t for rakudo
TimToady no, it has to know its context 16:56
postcircumfix:<{ }> can't just pretent it's in rvalue context
*pretend
it's sort of a double-lvalue context 16:57
on the left of a :=
moritz_ ah that's what meant with the "various container contexts" in S02/Contexts/
TimToady maybe call it bvalue context 16:58
it's kind the same context that exists and delete want 16:59
*kinda
xiaoyafeng Hi, everyone. I have confused about *lazy*
moritz_ TimToady: I thought there was no 'exists %h<item>' form anymore?
TimToady still thinking about it... 17:00
xiaoyafeng my $x = 1..10; @a = =@$x; say @a; # 1?????
why?
moritz_ xiaoyafeng: it seems that prefix:<=> basically translates to shift
TimToady perl6: my $x = 1..10; @a = =@$x; say @a; 17:01
moritz_ why would you want to use an iterator on a list in list context anyway?
p6eval pugs: OUTPUT[*** ā¤ Unexpected " ="ā¤ expecting "::"ā¤ Variable "@a" requires predeclaration or explicit package nameā¤ at /tmp/zxBmw8oDip line 1, column 18ā¤]
..rakudo 31439: OUTPUT[Statement not terminated properly at line 1, near "= =@$x; sa"ā¤ā¤current instr.: 'parrot;PGE::Util;die' pc 119 (runtime/parrot/library/PGE/Util.pir:82)ā¤]
..elf 22402: OUTPUT[Scalar found where operator expected at (eval 121) line 4, near "$a_$x"ā¤ (Missing operator before $x?)ā¤Global symbol "$a_a" requires explicit package name at (eval 121) line 4.ā¤Global symbol "$a_" requires explicit package name at (eval 121) line 4.ā¤syntax error at (eval
xiaoyafeng for =@$x {.say} # 1..10
p6eval ..121) lin...
moritz_ xiaoyafeng: just for @list { ... }
TimToady perl6: my $x = 1..10; my @a = =@$x; say @a; 17:02
p6eval elf 22402: OUTPUT[Scalar found where operator expected at (eval 121) line 4, near "$a_$x"ā¤ (Missing operator before $x?)ā¤Global symbol "$a_" requires explicit package name at (eval 121) line 4.ā¤syntax error at (eval 121) line 4, near "$a_$x"ā¤ at ./elf_f line 3861ā¤]
..rakudo 31439: OUTPUT[Statement not terminated properly at line 1, near "= =@$x; sa"ā¤ā¤current instr.: 'parrot;PGE::Util;die' pc 119 (runtime/parrot/library/PGE/Util.pir:82)ā¤]
..pugs: OUTPUT[*** Unsafe function '=' called under safe modeā¤ at /tmp/XCVrTB7dAw line 1, column 24-28ā¤]
moritz_ ouch
pugs thinks prefix:<=> is unsafe
[particle] my @x = 1..10; say @$x; 17:03
err
rakudo: my @x = 1..10; say @$x;
p6eval rakudo 31439: OUTPUT[Statement not terminated properly at line 1, near "@$x;"ā¤ā¤current instr.: 'parrot;PGE::Util;die' pc 119 (runtime/parrot/library/PGE/Util.pir:82)ā¤]
[particle] as i suspected.
rakudo: my @x = 1..10; say $x; 17:04
p6eval rakudo 31439: OUTPUT[Scope not found for PAST::Var '$x'ā¤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)ā¤]
TimToady moritz_: exists and delete are very convenient from the user perspective, but their bvalue nature requires some macroish behavior, which means you can't easily overload those words as normal subs 17:05
moritz_ TimToady: right, we discusses that once 17:06
at which point you pondered t allow multi-subs with macro-ish behaviour when a certain trait is present
ruoso right... in smop that's made in terms of 'late context propagation'... that's not the issue... 17:07
putting it more clearly... which API a hash needs to implement to support %a<abc> := 123?
TimToady, btw, 'method postcircumfix:<{}> is rw' right?
postcircumfix:<{}> returns the container... so how is it going to replace itself inside the hash?
rakudo_svn r31440 | moritz++ | [rakudo] one more test for spectest_regression
pmurias TimToady: have you thought over whether packages are put in a global namespace by default? 17:11
ruoso TimToady, seeing ':=' as a macro doesn't seem too bad... 17:12
but it's a very smart macro... 17:13
it takes the capture of the last call in the rside and use as the key of a pair to a BIND call on the object in which the call would otherwise be made 17:14
so in order to support binding, the object would need to implement something like 'method BIND ($identifier, *%pairs)' 17:15
TimToady pmurias: top-level packages *must* be put into some kind of a global namespace or they are useless, since the whole point of packages is to contain a public interface of some kind 17:22
however, I think only longnames actually go into *
and shortnames are lexically scoped aliases to some longname
pmurias TimToady: the use could supply a package to be used as the topmost one in the file 17:24
that's how i plan to implement it, the use then choose if to put the package in to the * or not 17:25
ruoso thinking about bvalue context... maybe binding should be represented in terms of a different call 17:26
a BIND call, which would be an alternative to a STORE call
but that would require the object to be a bit smarter..
meaning...
postcircumfix:<{ }> would return a lazy-lookup object *even if there's already a container stored in the hash*
(or at least when in b-value context)
this special object would delegate FETCH and STORE calls directly to the effective container that is stored in the array
but it would also support BIND calls, in which case it would access a private method in the hash to replace the actual container...
that works out for regular lvalue methods, that would simply fail saying they don't know how to BIND
and also would work out for special lvalue methods... bvalue methods... that would return a double-box...
17:26 Bzek_ left
ruoso TimToady, pmurias, moritz_, does it looks sane? 17:27
pmurias, I think there could be a "load" operator, in addition to "require" and "use" which would simply create the local alias to a private copy of that package... 17:28
17:29 rindolf left
ruoso *crickets* 17:45
TimToady as long as we're careful not to compromise optimization of rvalues 17:46
ruoso my theory is that 'lazy context propagation' leaves all the possible room for optimization... 17:47
TimToady the lvalue/bvalue distinction is also part of what's going on with autovivification
ruoso because as 'forward context propagation' is implemented, gradually less layers are needed...
TimToady all I know is that backpointers and closures can get expensive 17:48
ruoso as I said in previously... I expect very few objects to actually implement that kind of context-awareness 17:49
and this objects can be implemented in a more low-level way... 17:50
avoiding that much closures...
most objects will take advantage of the context-awareness of the builtin types... 17:51
pmurias ruoso: re load an :option to use would be enough, i can then just put a use use :noglobal on top of my code 17:53
ruoso that looks like a very elegant solution... I'd use :private instead, tho 17:54
pmurias :private seems better
ruoso use Foo :private;
TimToady if another module loads the same thing, it has to have some kind of global pointer to the current one if it's going to avoid duplication 17:55
ruoso TimToady, the point is actually doing the duplication...
TimToady, to protect against monkey-patching...
TimToady if someone wants to monkey patch they'll still find a way :) 17:56
pmurias but they will have to find it
ruoso ;) 17:57
[particle] (security via obscurity)-- 17:58
TimToady I wonder how soon till someone puts the module on CPAN to do it...
anyway, in the long run, it has to be enforced culturally
if we make it really easy to export and import lexicals, most of the package vars go away anyway 17:59
OO and lexical encapsulation are already giving you most of what you want, so I doubt I'll ever make package encapsulation the default 18:01
pmurias i don't really what to forbid monkey patching i just want it to happen in a localised manner with global monkey-patching being an explicit choice 18:02
18:07 cosimo left
ruoso but it still has a use... 18:08
which is... in an environment full of monkey-patching, it provides a *clean* view of the module
if monkey-patching culturally is done one way, this would say "i want a private version of this module"
this is usefull even for localized monkey-patching, actually
"I want to monkey-patch this module, but only in this scope"...
pmurias, btw... we need to change both hash and array to support bvalue context... 18:09
as with 'late context propagation', this basically means that the lookups are always lazy, even if there's already a container there..
FETCH and STORE are delegated directly to the actual container... but BIND replaces the actual container...
indeed... supporting 'localized monkey-patching' is an interesting feature...
more than trying to protect against it
pugs_svn r22403 | azawawi++ | [t/spec] Fudged lists.t for rakudo
ruoso pmurias, btw... supporting bvalue is the step that solves the autovivifcation as specced also... :) 18:12
TimToady but is the monkeypatch clone shallow or deep? 18:14
.oO(my use Foo)
18:15
pmurias we need an entire Monkey::Patch module as there seems to be endless possibilities 18:16
TimToady
.oO(has use Foo)
I guess that'd mean that every object keeps its own monkeypatch 18:17
memory is getting cheaper, they say...
.oO(state use Foo) # keep monkey patches in persistent database...
18:19
but maybe there should be a different declarator for that lifetime 18:20
pmurias can live with use putting stuff * in global if he has the cool "declarator use" form 18:22
wouldn't the deep monkeypatching be "local use Foo"? 18:23
"temp use Foo" sorry 18:24
ruoso: re bvalue context - 'forward context propagation' seems to be getting even more tempting ;) 18:26
TimToady temp is not a declarator 18:27
ruoso (has use Foo)++
TimToady it's just a bvalue macro like exists 18:28
ruoso pmurias, I know I know... but hold your breath just a little longer... ;) 18:29
TimToady ::!Foo::bar()
[particle] is that ! as in !important in css? 18:30
TimToady though I think we already claim that Foo can be virtual, so Foo::bar() might work
well, maybe not for 6.0.0 18:31
pmurias bizarre features attract implementors more than dull ones so it might be implemnted sooner than expected ;) 18:33
* implemented 18:34
pmichaud especially jonathan++ :-) 18:39
18:42 xiaoyafeng left
pugs_svn r22404 | pmichaud++ | Dotty parsing probably wants non-capturing <.unspacey> instead of 18:42
r22404 | pmichaud++ | zero-width <?unspacey>.
pmichaud given that there's something that allows pugs_svn to be able to post updates to #perl6, how hard would it be to have a similar thing send email updates to a mailing list? 18:45
is it simply a lack of tuits, or something deeper?
ruoso later & 18:46
18:47 zamolxes joined
[particle] probably lack of tuits 18:49
there may be a setting at trac.pugscode.org to handle it 18:50
lambdabot Title: Pugs - Trac
[particle] but i guess you'd want a new mailing list, not posted to an existing
pmichaud ideally it would be a separate mailing list, yes, but I can certainly set one of those up if nobody else has one available.
[particle] there is dev.pugscode.org/timeline, but it's not a ml 18:52
lambdabot Title: Timeline - Pugs - Trac
[particle] you can get a feed to that page, however 18:53
pmichaud TimToady: we have both infix:<.=> and dotty:sym<.*> that can parse ".=" -- is there a difference between them, or should there be only one? (Rakudo is currenty using infix:<.=>)
email is useful because it makes it easier to respond to individual patches on a mailing list -- much like what we've done with parrot-porters
and perl6-language 18:54
18:54 riffraff joined
riffraff hi 18:57
[particle] svn.haxx.se/users/archive-2007-05/0402.shtml points to a commit-email.pl script for svn 19:02
lambdabot Title: Subversion Users: Re: Post-commit issues using commit-email.pl
[particle] somebody with basic svn admin knowledge and feather access can enable it
'course you need an ml set up first 19:03
pugs_svn r22405 | azawawi++ | [t/spec] Fudged unicode.t for rakudo
19:09 alester joined 19:18 abra left 19:34 justatheory left 19:41 pmurias left
TimToady pmichaud: I guess the only difference now is that the spaceless version suppresses p5 concat warnings if you say $obj.="method" and such 19:58
don't know what that's worth...
$job & 19:59
19:59 hercynium left
pugs_svn r22406 | moritz++ | [t] moved two tests to xx-uncategorized and deleted the now empty dirs 20:13
r22407 | moritz++ | [t] cleaned up multi_named_vs_pos.p 20:20
r22407 | moritz++ | * removed try { } blocks that prenteded that try is a named unary. It's not.
r22407 | moritz++ | * removed seemingly random :todo<unspecced> markers
r22408 | moritz++ | [t/spec] moved multi_named_vs_pos.t to spec/ 20:30
20:30 Limbic_Region joined
moritz_ rakudo: my $a = { a => 42 }; say 1; $a = [ 0 ]; say 2 20:35
p6eval rakudo 31446: OUTPUT[1ā¤Odd number of elements found where hash expectedā¤current instr.: 'parrot;List;hash' pc 2877 (src/gen_builtins.pir:1999)ā¤]
moritz_ rakudo: my $a = { a => 42 }; say 1; $a = 2; say 2; $a = [ 0 ]; say 2 20:37
p6eval rakudo 31446: OUTPUT[1ā¤Odd number of elements found where hash expectedā¤current instr.: 'parrot;List;hash' pc 2877 (src/gen_builtins.pir:1999)ā¤]
moritz_ rakudo: my $a = { a => 42 }; say 1; $a = 2; 20:38
p6eval rakudo 31446: OUTPUT[1ā¤Odd number of elements found where hash expectedā¤current instr.: 'parrot;List;hash' pc 2877 (src/gen_builtins.pir:1999)ā¤]
moritz_ rakudo: my $a = [0]; say 1; $a = 2;
p6eval rakudo 31446: OUTPUT[1ā¤]
moritz_ rakudo: my $a = [0]; say 1; $a = 2; say $a.WHAT
p6eval rakudo 31446: OUTPUT[1ā¤Arrayā¤]
pmichaud assignment is a bit broken in rakudo, still. 20:40
I thinks that $a = [ 0 ] is a Hash assignment because $a is a Hash
moritz_ yes, it should be a scalar holding a hash
pmichaud this gets fixed when I get the new containers implementation in place (the draft I discussed with jonathan++ last week)
moritz_ I'll file a ticket, just in case
and there's a test file for it also 20:41
pmichaud tests++
20:44 jferrero joined 20:46 rindolf joined
pugs_svn r22409 | moritz++ | [t/spec] fudged catch_type_cast_mismatch.t for rakudo, and added a few tests 20:50
moritz_ pmichaud: will add those tests to spectest_regression in the next commit - nice thing is that try { ... } catches those errors, so it's a TODO test rather then skip 20:51
20:51 hercynium joined
moritz_ so once it's fixed, you'll immediately get two passing TODO tests ;) 20:52
20:52 jhorwitz left
moritz_ (parallel testing)++ 20:53
rakudo_svn r31448 | moritz++ | [rakudo] add tests for RT #59382 to spectest_regression 20:55
pugs_svn r22410 | moritz++ | [t/spec] fudged S29-scalar/defined.t for rakudo 20:57
moritz_ the new version of tools/update_passing_test_data.pl is very helpful 20:58
I attribute it a few hundred passing tests spectests
rakudo_svn r31449 | moritz++ | [rakudo] add tests for definedness to spectest_regression 21:03
21:03 Limbic_Region left 21:07 TJCRI left 21:13 riffraff left 21:14 hercynium left 21:22 meppl joined
moritz_ std: role foo { has $.bar = 42 is rw } 21:22
p6eval std 22410: OUTPUT[Unknown routines:ā¤ rw called at 1 ā¤parsedā¤]
pmichaud S02-builtin_data_types/num.t:124 has
my $a = "0d01.01";
is(+$a, 1.01, "0d01.01 numifies to 1.01"); 21:23
I don't think that the "0d" etc. prefixes are allowed to have decimals.
std: 0d01
p6eval std 22410: OUTPUT[parsedā¤]
pmichaud std 0d01.01
std: 0d01.01
p6eval std 22410: OUTPUT[parse failureā¤]
moritz_ I haven't grokked all these number formats 21:27
pmichaud shall I remove the test? 21:28
moritz_ pmichaud: but if you're confident that it's right, feel free to change the tests to eval_dies_ok
pmichaud I'm confident that STD.pm currently doesn't allow it. :-)
and that it is mentioned as being illegal as a constant 21:29
but in this case it shouldn't die -- it would numify to 1 instead of 1.01
moritz_ or that
then correct it
pmichaud okay, that seems reasonable-ish
I kinda worry with eval_dies_ok that we may be attempting to evaluate every possible thing that could go wrong (which seems a bit infinite :-) 21:30
moritz_ pmichaud: only the things of which somebody someday thought it was right
pmichaud okay, works for me.
moritz_ pmichaud: and it's a common beginner's error to only test successes 21:31
pmichaud so, basically keeping the negative patterns in the test files. I like that. :-)
moritz_ (especially when crafting regexes ;-)
pugs_svn r22411 | pmichaud++ | [t/spec]: Correct and unskip a numification test. 21:32
[particle] ++
ruoso STD has a dump_match of some sort, doesn't it? 21:35
how do I use it?
[particle] trystd iirc
moritz_ ruoso: perl5.10.0 STD5_dump_match $file
ruoso hmmm... it seems I need a STD.pmc 21:36
moritz_ ruoso: 'make' builds it
ruoso just hopes that doesn't take hours to build :) 21:37
moritz_ ruoso: once you've got re::engine::TRE installed it's a piece of cake ;)
ruoso it actually was quite fast... 21:38
moritz_ ruoso: oh, and some of these scripts assume taht you have a perl in /usr/local/bin/perl
ruoso yeah... I had to make a link by hand
pmichaud is anyone (moritz?) reviewing the spectest commits? If I started making lots of changes based on my understanding of the spec, would anyone notice if I did something that didn't seem right? ;-)
moritz_ pmichaud: I usually monitor them, aye 21:39
pmichaud example: I'm pretty sure that Junction.pick no longer does what it originally was thought to do
moritz_ aye
pugs_svn r22412 | moritz++ | [t] merge and_precedence.t into precedence.t
pmichaud it's not really worth preserving the tests, so I'm planning to just get rid of them
ruoso considering embedding SMOP in p5 to hack a SMOP backend for STD
moritz_ it probably autothreads on .values 21:40
21:40 justatheory joined
moritz_ +1 21:40
pmichaud well, latest discussion I heard was that all methods (including .values) autothread on junctions
ruoso . o O ( at least I hope that hacking in STD is easier than hacking in pugs )
moritz_ pmichaud: including .values? then how are you supposed to get a list of values? 21:41
pmichaud I don't think that was ever decided completely.
but yes, .values needs to autothread, in case we have a junction of aggregates on which we want to get the .values :-)
ruoso all methods, except the ones that have "Junctions" in their signature? 21:42
moritz_ ruoso: Object doesn't autothread either
pmichaud ruoso: I'm talking about autothreading over the invocant
$junction.foo
PerlJam autothreading seems very similar to laziness; there should be a way to explicitly thread or not (IMHO)
ruoso well... .values is a method of Junction, isn't it?
so "Junction" is in the signature
pmichaud ruoso: that wasn't where the discussion I had with TimToady ended up over the summer 21:43
moritz_ ruoso: that's the question - if values() is a method in class Junciton
21:44 ryanc joined
moritz_ *Junction 21:44
pmichaud how about things like... 21:46
ok(!(?(0&0) != ?(0&&0)), 'boolean context');
that doesn't seem to be a useful test... what exactly are we testing?
21:47 wknight8111 joined 21:48 rindolf left
moritz_
.oO( ... )
21:48
pmichaud these are in S03-junctions/misc.t, btw
moritz_ fun with junction testing, part 4 of at least nĀ²
don't think it's useful - it's correct, though 21:49
but I don't object to removing it
pmichaud okay, that gives me enough guidance, I think. 21:50
ruoso my initial sketch ideas on junctions autothreading is that the junction spawns the threads at the moment you try to use it in item context... I'm still not sure on how to join the threads back 21:52
(although calling a method always imply context on the invocant...) hmmm
maybe the autothreading process define a special CALLER that does the join... so it would initialize different interpreters (in smop every thread is a interpreter) set a clone of the current continuation in each one, but set the caller of the clones to be a special object... the "main" interpreter would then be blocked, waiting for the join, and building the result set...
moritz_ ruoso: note that they don't have to actually start a new thread (they may, though) 21:54
ruoso: and afaict not every item context collapses them, only boolean context
ruoso er... my $a = any(1,2,3); my $b = any(2,3,4); my $c = $a + $b; 21:55
how is $c evaluated?
moritz_ ruoso: by first autothreading on one arg, then on the other 21:56
ruoso exactly... because $a and $b were used in item context... 21:57
moritz_ (1|2|3) + (2|3|4) = any((1|2|3)+2, (1|2|3)+3, (1|2|3)+4)
ruoso: I don't see the connection to item context
pmichaud actually, it's any(1 + (2|3|4), 2+(2|3|4), 3+(2|3|4))
ruoso the bind to the signature of infix:<+>
pmichaud (slightly different)
moritz_ ok, on the first arg first
pmichaud leftmost all/none, followed by leftmost any/one 21:58
ruoso the bind puts it in item context...
and then the autothreading is triggered...
moritz_ that evaluates to any( 3|4|5, 4|5|6, 5|6|7)) == any(3..7)
ruoso: junctions also autothreads on subs that provide list context, like print() 21:59
ruoso but when you say print($c) it is item context, because of the sigil 22:00
moritz_ but $x = 1|2|3; print $x; behaves the same as print 1|2|3, no?
ruoso it will autothread in the middle of the binding process 22:01
and it will bind differently in each thread
pugs_svn r22413 | moritz++ | [t/spec] undork test that failed if infix:<and> is actually short circuiting
moritz_ but from user POV there's no difference, right?
pugs_svn r22414 | lwall++ | [STD] allow self-parse again 22:08
r22415 | moritz++ | [t] merge blocks/implicit_parameters.t into spec/ 22:12
r22416 | moritz++ | [t/spec] re-fudged implicit-parameter.t for rakudo 22:15
moritz_ could somebody please take a look at the last test in t/spec/S04-declarations/implicit-parameter.t ?
it seems wrong to me, but I'm not sure
pmichaud $x = 1|2|3; print $x; becomes any(print(1), print(2), print(3))
moritz_ aye
TimToady list contexts don't autothread 22:16
pmichaud oh, at one time I thought they did. 22:17
moritz_ is confused
@tell azawawi please don't fudge tests where the thing that's tested is not yet implemented - it doesn't help anybody 22:20
lambdabot Consider it noted.
22:20 ruoso left
pmichaud whee, 36 more passing tests (next commit) 22:20
(running spectest_regression now)
moritz_: looking at implicit-parameter.t now 22:21
TimToady see S09:1036 on junctions in slurpy context
it looks pretty okay to me
what do you mislike about it? 22:22
moritz_ you mean the test?
pmichaud the test looks okay to me also. 22:23
yes, it should die -- $^foo not allowed in sub
moritz_ isn't the self-declared positional arg allowed in the inner sub?
pmichaud in a block, yes, not in subs
moritz_ ah, right
pmichaud sub { ^$foo } # error
er, $^foo
moritz_ ok 22:24
pmichaud sub { $^foo } # error
{ $^foo } # ok
moritz_ but then it should be an eval_dies_ok, because detectable at compile time?
TimToady semantic analysis time, so probably 22:25
s1n moritz_: when you have a minute, i've got a quick question for ya
moritz_ s1n: go ahead
s1n in reference to that get_number patch i submitted, i was going to add those tests to radix.t 22:26
pugs_svn r22417 | moritz++ | [t/spec] s/dies_ok/eval_dies_ok/ on a test that will fail at compile time
TimToady though I suppose we have to be careful about all the places where we've given latitude to the compiler to complain about things that it can deduced will be wrong at runtime
latitude to complain is also latitude to not complain
s1n is that the only place you want the tests? i can also add tests for other general number conversions somewhere else... maybe numerical_context.t?
TimToady but eval_dies_ok is probably okay either way 22:27
s1n moritz_: rt#59222
moritz_ s1n: there's also S03-operators/context-forcers.t which contain other str-to-num conversions
pmichaud s1n: have you adjusted the patch to avoid isxdigit ?
moritz_ s1n: maybe that's the better place 22:28
s1n moritz_: okay that works for me as well
rakudo_svn r31450 | pmichaud++ | [rakudo]: Fix prefix:- and prefix:+ to better handle out-of-range Ints.
s1n pmichaud: yes, see the ticket, i replaced them, was going to add tests to verify it works as it should
pmichaud s1n++ 22:29
pugs_svn r22418 | moritz++ | [t/spec] unfudge previously corrected test
r22419 | pmichaud++ | [t/spec]: Unskip 32 arithmetic tests that now pass in Rakudo.
s1n geez, you guys are committing machines
pmichaud afk -- family time 22:30
s1n moritz_: also, is there any area of the tests you'd like some help with?
i know you've really been cranking out work, so i was wondering if there was anything you had on your backburner
moritz_ s1n: just a sec... 22:31
s1n: basically all the tests in oo/ need review, and need to be moved to spec/ if they are still correct
22:31 bennymack joined 22:32 alester left, Limbic_Region joined
moritz_ s1n: apart from that, there are plenty tasks in t/TASKS 22:32
s1n is this something i can do sporadically? my available time is spotty due to my schedule
okay, i can check tasks
oh, actually, there was one thing i did want to talk to you about 22:33
moritz_ the SINGLE TESTS section in TASKS contains smaller tasks
s1n the undef references that are everywhere, have you looked into this yet?
moritz_ s1n: yes, and my current position is that it's not worth to tackle them until we have a mechanism to disable warnings 22:34
s1n: many of them are valid but harmless, but it would be too much work to work around them
s1n have you looked into this mechanism?
moritz_ no
s1n yes, but they're on todo's mostly, so i was wondering if anyone had a plan on how to disable warnings
moritz_ I'll have to discuss that with pmichaud 22:35
anyway, have to go to bed know
ciao
s1n night
23:18 iblechbot left 23:32 Ontolog left 23:37 Kitchy joined
Kitchy @seen TimToady 23:39
lambdabot TimToady is in #perl6. I last heard TimToady speak 1h 12m 3s ago.
23:40 Exodist left
Kitchy @seen Caelum 23:42
lambdabot Caelum is in #math, #perl6 and #haskell. I don't know when Caelum last spoke.
Kitchy @seen audreyt 23:44
lambdabot audreyt is in #xmonad, #perl6, #haskell and #ghc. I don't know when audreyt last spoke.
23:47 Pulpie joined, Pulpie left
lichtkind is yada forced upon anonymour routines? 23:51
Kitchy Any idea when Merlyn's Perl 6 book is coming out? Is it even finishable yet?
lichtkind nothing heard since month yout that
23:54 justatheory left 23:59 jferrero left