»ö« 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:02 araujo left 00:03 araujo joined
masak 'night, #perl6 00:04
00:04 masak left 00:09 lichtkind left 00:27 dorlamm left 00:30 bluescreen10 left
dalek kudo/nom: 31fa9ff | jonathan++ | src/ (2 files):
Only auto-generate an accessor method if the user didn't already provide one.
00:31
kudo/nom: bf8a6af | jonathan++ | src/core/Parcel.pm:
Allow | to work on a Parcel.
kudo/nom: 61aa803 | jonathan++ | src/core/Junction.pm:
First cut implementationg of an auto-threader. Not wired up yet, and plenty of room to optimize this.
kudo/nom: fe39b76 | jonathan++ | src/ (5 files):
Wire up the auto-threader for single and multi-dispatch. Not heavily tested, but seems to work out with various tests (multi, single, multiple junctions, correct return value, pos and named args, etc).
kudo/nom: 265331a | jonathan++ | t/spectest.data:
Two more passing test files.
00:40
kudo/nom: 5f2a810 | jonathan++ | NOMMAP.markdown:
Update nommap.
jnthn grr...I think my body clock thinks that a 30 hour day is normal now...
sleep & 00:41
00:44 colomon joined
[Coke] jnthn: no, stay up and let it roll over. 00:51
00:53 tokuhirom left 01:02 daemon left 01:04 noganex left 01:06 noganex joined
lue $ ./perl6 -e 'say "hai".comb; say "hai".comb.perl' 01:06
h a i
("h", "a", "i").list
afk for nom time &
01:18 [Coke] left 01:20 [Coke] joined, envi left 01:22 daniel-s joined
[Coke] nom: [\+] 1..1000; 01:32
p6eval nom: OUTPUT«Nominal type check failed for parameter '$infinite'; expected Any but got Mu instead␤current instr.: 'GATHER' pc 354855 (src/gen/CORE.setting.pir:91676) (src/gen/CORE.setting:1942)␤»
01:52 beekor left 02:01 whiteknight left, whiteknight joined 02:07 f00li5h left 02:09 thou left 02:43 thou joined
dalek ecs: 0a5a59c | larry++ | S06-routines.pod:
$! and $/ are created only by routines/compunits

Blocks don't have their own $! or $/ unless you explicitly declare one.
02:48
02:52 f00li5h joined 02:53 whiteknight left 03:02 flatwhatson joined, flatwhatson left 03:03 aindilis left 03:15 pjcj left 03:18 perlhack joined
sorear perl6: say Regex ~~ Routine 03:18
perlhack :-)4000 words and will be what you fluent dialogue
p6eval rakudo 72d158, niecza v7-18-g240a9af: OUTPUT«Bool::True␤»
..pugs: OUTPUT«␤»
sorear o/ perlhack
perlhack hi sorear 03:19
i am try my best learnning english.
soh_cah_toa perlhack: what's your native language? 03:20
sorear almost
mandarin
perlhack soh_cah_toa:Chinese
sorear ey was here before I left
soh_cah_toa ouch, mandarin -> english will be hard
sorear perlhack: did you get a chance to meet jnthn at BJPW? 03:21
perlhack No .At that time no money car
sorear, 03:22
sorear soh_cah_toa: it's been interesting to study
soh_cah_toa i've always wondered what it must be like for non-english speaking programmers to write code that uses the english language since they all do 03:23
perlhack i think we will be in english and communication technology. 03:24
:-)
sorear soh_cah_toa: you should ask around, quite a lot of #perl6 is *not* native English speakers 03:25
soh_cah_toa really? that's very interesting
perlhack around usa round uk 03:26
03:27 Su-Shee left 03:29 Su-Shee joined 03:38 envi joined 04:05 pjcj joined 04:07 perlhack left 04:22 Bzek joined, satyavvd joined 04:27 _jaldhar left, soh_cah_toa left
dalek ecs: aca4e5d | larry++ | S04-control.pod:
detangling $! from inflight semantics of @!
04:35
TimToady it's still a mess, but must zzz & 04:37
04:49 ZaphrodZenovka left 04:50 ZaphrodZenovka joined
sorear TimToady++ # agreed 04:51
though sink context still makes me uneasy
04:55 kaare_ joined 05:05 koban joined, koban left 05:12 _jaldhar joined 05:17 agentzh joined 05:19 silug_ left, silug_ joined 05:22 cognominal_ joined
sorear Why is "0" false? 05:24
05:26 _jaldhar left 05:27 cognominal left, araujo left 05:30 _jaldhar joined, _jaldhar left 05:31 _jaldhar joined, _jaldhar left 05:32 _jaldhar joined, molaf_ left 05:33 birdwindupbird joined
daniel-s is there another company that offers a translation API 05:39
similar to google translate
sorear "is company", I don't know 05:41
there are a *ton* of academic translator projects 05:42
and there used to be many commercially-backed ones
there might still be
daniel-s well, I don't care who runs it 05:46
05:47 Tedd1^ left, molaf_ joined
daniel-s I want to be able to add translation to something I'm writing 05:47
I just want to be able to give it some text and say, please translate this from x to y
05:47 wtw joined 05:53 stephanepayrard_ joined 05:56 alim joined, cognominal_ left 06:22 Tedd1 joined
thou \o/ november "running" on rakudo-master: postimage.org/image/1si2l8tlw/5ad5ec6f/ 06:31
06:51 thou left 06:57 Mowah joined 07:02 alim left 07:06 drbean left
dalek ecza: 8dc8c8f | sorear++ | / (14 files):
Reimplement $_ $! $/ according to more-current spec

Every Routine now contains all three of these, every non-Routine only has $_.
07:17
07:20 am0c left 07:23 pjcj left
sorear tomorrow I'll look into making $_ etc generation lazier 07:33
*out*
07:37 cognominal joined 07:40 stephanepayrard_ left 07:44 wamba joined 07:45 pjcj joined
dalek p: 442e0b3 | pmichaud++ | / (5 files):
Update nqp:: event and debug logging support.
07:48
p: 59bc2bb | pmichaud++ | src/stage0/ (6 files):
Update bootstrap.
jnthn Morning, #perl6 07:49
pmichaud jnthn: o/ 07:59
jnthn ooh, more event logging stuff :) 08:02
tadzik good morning #perl6
pmichaud Yes. I got tired of hacking together debug code so decided to formalize it a bit better. 08:03
jnthn pmichaud: What does it write to the log? Timestap, flags and message?
pmichaud message
but you can parameterize the message somewhat.
don't have timestamp in there yet... will likely add that.
nqp::deb(flags, 'message %sub% %caller%') # sends 'message' to the log along with the current sub and its caller 08:04
jnthn pmichaud: OK, because with timestamp and sub entry/exit we have a basic profiler :)
pmichaud can't easily do a reliable sub exit. 08:05
we can do a sub entry, no problem.
jnthn ah, true
pmichaud that's why I didn't really worry about timestamp just yet
because sub exit is a real challenge
jnthn ok
same challenge as temp/LEAVE etc
pmichaud we can still get a basic profiler to tell us how many times a sub is invoked, and who is doing the invoking
and with lexical return, we can capture sub exits except when skipped due to an exception. 08:06
and I might put in a field that lets us identify contexts (to match up entry/exit)... if I can figure out a way to do that. 08:07
anyway, nqp::deb() is fairly efficient, if the flags indicate nothing is to be logged, it skips over the evaluation of the second argument entirely.
jnthn *nod* 08:08
pmichaud so, it's only the cost of a jump if nothing is to be logged.
jnthn oh, you added a pasttype for it too!
pmichaud it had to be a pasttype to get the macro-ish capabilities 08:09
08:09 im2ee joined
pmichaud if I have nqp::deb(flags, $xyz.fmt('some format %s thingy')) 08:09
I don't want to pay the cost of the .fmt if we're not going to log it anyway :)
and yes, it's a pasttype, which means it can go into PAST trees to automatically insert stuff. like subroutine entry/exit. :) 08:11
jnthn nice
pmichaud PAST::Op.new(:pasttype<nqpdebug>, 0x10, 'entry %sub% %caller%')
so, in tracking down the outer bug, I have a couple of observations. 08:13
first, I wonder if it's related to the bug that causes nqp's repl to also fail on the second and subsequent commands
jnthn No, that's related to an issue I already fixed in nom 08:14
pmichaud and second, it looks like the line
$output[0].set_outer_ctx($outer_ctx);
in HLL::Compiler.eval is never called.
oh, wait, yes it is. 08:15
but whatever is setting the outer is doing so *before* that line is called.
jnthn (Issue is unpopulated %*HOW on the second line.)
pmichaud I'm going to add in some more debugging and track it down just a bit more. 08:16
jnthn oh..
08:17 im2ee_ joined
jnthn hm 08:17
There is one place SymbolTable.pm emits a set_outer_ctx call
*but* it should only do that when we call load_setting 08:18
Which we don't for second line of eval
pmichaud we look it up in Perl6/Grammar.pm, too. 08:19
08:20 alim joined, im2ee left
jnthn afk for 10 08:21
08:25 mj41 joined
jnthn back 08:41
08:41 mj41 left
pmichaud oh oh oh oh 08:45
duh
I think I know where the problem is.
jnthn figured it'd be a "duh" problem once found...
pmichaud $save_ctx := $interactive_ctx;
$interactive_ctx is created based on HLL::Compiler in INIT. 08:46
so it has the nqp setting as its outer
jnthn oh!
This...explains a lot.
pmichaud++
jnthn now feels silly for not seeing this 08:47
daniel-s if I have a named rule, and it has matched several times into $<name>
I can access each match with $<name>[0] 08:48
tadzik jnthn: is there something like ^get_attribute in 6model? I mean the attribute value
daniel-s but for $<name> -> $name {say $name;}
08:48 araujo joined, araujo left, araujo joined
daniel-s doesn't print the $name on each line 08:48
it prints them all together
pmichaud daniel-s: for $<name>.list -> $name { ... }
jnthn tadzik: no
pmichaud otherwise $<name> is treated as a scalar. 08:49
(and only iterates once)
daniel-s ok, thank pmichaud++
*thanks
pmichaud I think for @($<name>) also works.
jnthn tadzik: What're you trying to do?
pmichaud jnthn: so I think the answer is that instead of setting up an outer_ctx, we really want to be setting up an outer_lex 08:50
tadzik jnthn: .perl, and I wonder if pir::getattribute is still desirable in nom
jnthn tadzik: .perl for...what?
tadzik: Mu.perl?
tadzik yes
jnthn tadzik: There's an nqp::getattr
tadzik ok, thansk 08:51
jnthn But beware of the natives
daniel-s [16:49:39] <pmichaud> I think for @($<name>) also works. <--- yes, it does
jnthn They get nqp::getattr_i and so forth
jnthn suspects we'll end up putting back Attribute.get_value/Attribute.bind_value eventually 08:52
tadzik Method 'substr' not found for invocant of class 'String' -- that's the circularity issue, yep?
jnthn yup
I guess obtaining Attribute objects is kinda annoying - you already have to go through the intropsection interface to do it. So guess it's not so bad to have those... 08:53
pmichaud jnthn: okay, so now that we know what's happening... I know of a (perhaps not too clean) way to fix it 08:59
09:00 dual left
pmichaud although it's a lot cleaner than what we have now. 09:02
jnthn Look for a frame named interactive_ctx in lexpad_full and don't walk any further out? ;) 09:03
pmichaud instead of creating a fake context and lexpad at the beginning of HLL::Compiler, we could just use the first context that gets returned from the interactive repl
(and munge its lexpad on each repl iteration) 09:04
jnthn ah, maybe that'd work
pmichaud it's a little messy -- e.g., if there are any active closures
we probably don't want to mess with the context's lexpad if it has any closures outstanding -- especially if we start doing slot lookups 09:05
oh, even simpler. destroy the outer_ctx pointer on the fake context we create
09:05 morphi joined
pmichaud that way it won't have an outer for us to chase. 09:05
I wonder if Parrot lets me do that. 09:06
morphi perl6: say 3; 09:07
pmichaud looks like "no".
p6eval pugs, rakudo 72d158, niecza v7-19-g8dc8c8f: OUTPUT«3␤»
jnthn You can't set_outer_ctx to null? 09:08
oh
pmichaud what happens if I just do $context := pir::new__Ps('CallContext'), I wonder?
jnthn it'd be set_outer
pmichaud and set_outer/set_outer_ctx are defined on Sub, not on CallContext 09:09
jnthn nqp: my $a = 42; sub foo() { say $a }; &foo.set_outer(pir::null__P()); foo()
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " 42; sub f"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23666 (src/stage2/gen/NQPHLL.pir:6380) (src/stage2/gen/NQPHLL.pm:328)␤»
jnthn nqp: my $a := 42; sub foo() { say $a }; &foo.set_outer(pir::null__P()); foo()
p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3851 (src/Regex/Cursor.pir:239)␤»
jnthn nqp: my $a := 42; sub foo() { say($a) }; &foo.set_outer(pir::null__P()); foo() 09:10
p6eval nqp: OUTPUT«Symbol '&foo' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (compilers/pct/src/PCT/HLLCompiler.pir:107)␤»
pmichaud I don't think it's &foo in nqp.
jnthn nqp: my $a := 42; sub foo() { say($a) }; foo.set_outer(pir::null__P()); foo()
p6eval nqp: OUTPUT«␤»
pmichaud I kind of like the new CallContext idea, fwiw.
the only thing the fake context gets used for is its lexpad.
(I think. :)
Let me try that real quick and see what happens. 09:11
jnthn pmichaud: If we set_outer the thingy we use as the cumulative lexpad before it ever gets invoked, then none of the resulting contexts will have an outer.
Hmm...maybe what you're thinking of works too BUT where will it get its lexpad from?
pmichaud right now the thingy is an INIT block :)
09:11 Tedd1 left
pmichaud we give a fake lexpad same way we do now 09:11
(although that might be a PMC null error.)
I think I like your idea better. 09:12
I'll try it first.
09:14 Chillance joined
daniel-s how do you append to a list 09:14
ie. turn <a b> into <a b c>
tadzik .push 09:15
daniel-s nom: <a b>.push(<c>).say 09:16
p6eval nom: OUTPUT«Method 'push' not found for invocant of class 'Parcel'␤current instr.: '_block1002' pc 96 ((file unknown):10472868) (/tmp/1kJW3Xu2NV:1)␤» 09:17
TiMBuS lolnom
daniel-s nom: <a b>.push("c").say
p6eval nom: OUTPUT«Method 'push' not found for invocant of class 'Parcel'␤current instr.: '_block1002' pc 96 ((file unknown):11066788) (/tmp/8Ei4VJIGEd:1)␤»
daniel-s perl6: <a b>.push("c").say
jnthn A Parcel is immutable
p6eval rakudo 72d158: OUTPUT«abc␤»
..pugs: OUTPUT«*** Can't modify constant item: VUndef␤ at /tmp/HETyJ_hTAB line 1, column 1 - line 2, column 1␤»
..niecza v7-19-g8dc8c8f: OUTPUT«Unhandled exception: Unable to resolve method push in class Parcel␤ at /tmp/lxxHjyNOed line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1891 (CORE C887_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1892 (CORE module-CO…
daniel-s perl6: say <a b>.push("c")
p6eval pugs: OUTPUT«*** Can't modify constant item: VUndef␤ at /tmp/5CLwwpAFoA line 1, column 5 - line 2, column 1␤»
..rakudo 72d158: OUTPUT«abc␤»
..niecza v7-19-g8dc8c8f: OUTPUT«Unhandled exception: Unable to resolve method push in class Parcel␤ at /tmp/QLs79ktZQ_ line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1891 (CORE C887_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1892 (CORE module-CO…
jnthn perl6: say (<a b>, 'c').perl # create a new Parcel
daniel-s works in rakudo
p6eval pugs: OUTPUT«("a", "b", "c")␤» 09:18
..rakudo 72d158, niecza v7-19-g8dc8c8f: OUTPUT«(("a", "b"), "c")␤»
jnthn nom: say (<a b>, 'c').perl # create a new Parcel
p6eval nom: OUTPUT«(("a", "b"), "c")␤»
jnthn Or use an array
TiMBuS nom: <a b>.list.push('c').cay
p6eval nom: OUTPUT«Method 'cay' not found for invocant of class 'Array'␤current instr.: '_block1002' pc 120 ((file unknown):144) (/tmp/Amz780A4ou:1)␤»
TiMBuS .. say
jnthn daniel-s: I wonder if it coerces it to something else first then pushes.
$parcel.push feels odd to me though 09:19
pmichaud $parcel.push should fail.
daniel-s is the <a b>.push("c") way of doing it wrong? or just not implemented in all the implementations
09:19 morphi left
pmichaud nom: <a b>.push('c').say 09:19
p6eval nom: OUTPUT«Method 'push' not found for invocant of class 'Parcel'␤current instr.: '_block1002' pc 96 ((file unknown):38628772) (/tmp/XhqrpJmTyD:1)␤»
pmichaud nom: <a b>.list.push('c').say
p6eval nom: OUTPUT«␤»
TiMBuS well thats not right is it 09:20
pmichaud List.push isn't returning self.
(which is a bug, deserving a spectest.)
tadzik nom: class A { has $.a }; my $a = A.new(a => 7); nqp::getattr($a, A, '$!a') 09:21
p6eval nom: OUTPUT«Can not get non-existant attribute '$!a' on class 'A'␤current instr.: '_block1002' pc 104 ((file unknown):46109011) (/tmp/y5Gje_Jxlf:1)␤»
tadzik hrm
jnthn tadzik: Correct
tadzik why so?
jnthn tadzik: You need to explicitly decontainerize if you're going to use getattr
tadzik oh
jnthn (the $a, that is)
pmichaud nom: class A { has $.a }; my $a := A.new(a => 7); nqp::getattr($a, A, '$!a') 09:22
tadzik nom: class A { has $.a }; my $a = A.new(a => 7); nqp::getattr(pir::perl6_decontainerize__PP($a), A, '$!a')
p6eval nom: ( no output )
pmichaud nom: class A { has $.a }; my $a := A.new(a => 7); nqp::getattr($a, A, '$!a').say
p6eval nom: OUTPUT«7␤»
tadzik nom: class A { has $.a }; my $a = A.new(a => 7); nqp::getattr(pir::perl6_decontainerize__PP($a), A, '$!a').say
p6eval nom: OUTPUT«7␤»
tadzik :)
jnthn or bind like pmichaud++ showed
If you have the opportunity
But I guess you often don't
pmichaud it's the assignment that tends to containerize. if you avoid the assignment it's often not an issue :) 09:23
tadzik I need to do it with 'self' :)
pmichaud nom: class A { has $.a }; nqp::getattr(A.new(a => 7), A, '$!a').say
p6eval nom: OUTPUT«7␤»
jnthn tadzik: self may be containerized 09:24
tadzik and may not?
pmichaud I think self tends to be decontainerized -- at least it has been in all of my uses.
jnthn ah
pmichaud if you want the container I think you have to do method foo(\$self:) 09:25
jnthn tadzik: yeah but it's never a problem to call perl6_decontainerize on a container
er, on a non-container
it's just a noop then
tadzik gist.github.com/1071441 -- Segmentation fun 09:27
same effect without the decont. Any obvious mistakes I'm missing?
jnthn tadzik: Not taking care of native types 09:28
tadzik: I suspect we should implement Attribute.get_value though and handle that in there 09:29
tadzik oh, that one is native
jnthn oh
you have no natively typed attrs there though 09:30
pmichaud nqp::chars is a native int
can't pass that to substr
jnthn oh 09:31
pmichaud either use nqp::substr (and box the result), or box the result of nqp::chars, or use $_.name.chars
jnthn or just use 2 arg substr? :)
pmichaud or omit the parameter entirely, since substr($_.name, 2) will g..... right
jnthn tadzik: This won't work on inherited attributes though. 09:32
$type
oh wait
$type is the name?!
You need a type object there
The type object of the class the attribute belongs to
pmichaud self.WHAT
but yes, only works for first-level class.
jnthn Right, but that's still going to be wrong for inherited.
pmichaud correct.
daniel-s nom: my %a; %a<a>.push("b").say 09:33
p6eval nom: OUTPUT«Method 'push' not found for invocant of class 'Any'␤current instr.: '_block1002' pc 99 ((file unknown):48479263) (/tmp/xVqNMmDbph:1)␤»
pmichaud we don't have autoviv arrays yet.
(in nom)
jnthn tadzik: Safest way is to loop over .^mro and call .^attributes(:local) on each of them
tadzik mhm
daniel-s nom: my %a; say %a<a>
p6eval nom: OUTPUT«Any()␤»
daniel-s nom: my %a; say %a<a>, "b"
p6eval nom: OUTPUT«Any()b␤»
daniel-s :( 09:34
nom: my %a; [say %a<a>], "b"
tadzik btw: gist.github.com/1071450 cheaty .WHY, but I couldn't resist :)
p6eval nom: OUTPUT«Any()␤»
09:34 ab5tract joined
daniel-s nom: my %a; [say %a<a>].push("b") 09:34
p6eval nom: OUTPUT«Any()␤»
daniel-s nom: my %a; [%a<a>].push("b")
p6eval nom: ( no output )
jnthn tadzik: big cheat :P
tadzik still smaller than before ;)
daniel-s rakudo: my %a; [%a<a>].push("b")
p6eval rakudo 72d158: ( no output )
jnthn tadzik: I suspect .WHY may be macro-y 09:35
tadzik no no no no
jnthn Like .WHAT and so forth
tadzik oh, this way
I thought I'll have to wait for macros ;) 09:36
jnthn tadzik: Well, question is where the doc lives
No no :)
tadzik jnthn: I guess the Pod will be an attibute of the Method object
jnthn tadzik: Well, but you can document a bunch of things?
Subs...methods...classes...attributes?
tadzik yes
signatures too, I think 09:37
jnthn Parameters at lesat.
tadzik yep
jnthn We'll have a little fun here I suspect 09:38
Parameter.WHY # probably the doc for the Parameter class
$param.WHY # probably the doc for a parameter itself
tadzik so just method WHY(:U:) and :D:, or however you write that :) 09:39
jnthn Yeah
I guess the :U wants to go and delegate to the meta-object
.^POD or some such
pmichaud lololol 09:40
jnthn: this blank context stuff is really.... funny
jnthn lol? :)
pmichaud if I set_outer to null, I can no longer see or set any outer lexicals.
09:41 jedai left
jnthn What are you setting it on? 09:41
pmichaud so, I can put the context into a lexical within the sub itself... and that lexical gets clobbered as soon as I overwrite the hash :-)
(I've got it worked out... it's just funny how the values slip away)
jnthn lol
:)
09:43 jedai joined
pmichaud gist.github.com/1071472 # first attempt, failed (guess why!) 09:46
gist.github.com/1071474 # second attempt, failed (guess why!)
09:47 JodaZ left 09:48 JodaZ joined
jnthn first one because you killed the outer before calling it :P 09:48
pmichaud ding!
jnthn ok, the second one is less obvious :) 09:49
pmichaud hint: blank_context() returns PMCNULL in the second one.
jnthn oh! you threw away its own lexicals! 09:50
pmichaud ding!
jnthn lol :) 09:51
The sub! It eats itself!
moritz it accidentally itself. 09:54
dalek ast: ac4734b | moritz++ | S03-smartmatch/any-type.t:
fudge any-type.t for rakudo
09:55
jnthn It's whole self.
jnthn wonders if we'll win any tests back that just incidentally used junctions 09:56
*its
moritz we do
jnthn \o/
moritz roll.t says my current run of update_passin_test_thingy.pl
09:57 wamba left
jnthn moritz: There's on todo'd test in I think S03-junctions/boolean-context.t that was todo'd for Rakudo master. The clean implementation of auto-threading failed it too. I'm wondering if the test is dubious. 09:57
09:57 dayangkun joined
dalek kudo/nom: aaffbef | moritz++ | t/spectest.data:
two more passing test files
09:57
moritz nom: say so(3) 09:58
p6eval nom: OUTPUT«Bool::True␤»
moritz nom: say so(True & False)
p6eval nom: OUTPUT«Bool::False␤»
moritz nom: say so(True & False) == False
p6eval nom: OUTPUT«Bool::False␤»
pmichaud nom: say (so True & False) == False 09:59
p6eval nom: OUTPUT«Bool::True␤»
moritz nom: say False == False
p6eval nom: OUTPUT«Bool::True␤»
pmichaud so(True & False) should be a parse error.
std: say so(True & False);
p6eval std 37a0cdd: OUTPUT«ok 00:01 120m␤»
pmichaud or, maybe not.
I would think so would be &so
sorry
I would think so(...) would be &so
jnthn me too 10:00
pmichaud pmichaud@kiwi:~/nom$ ./perl6
> say 1
1
> say 1
1
\o/
now to clean up the debugging and other junk I threw in :)
moritz std seems to imply that 'so' should be available both as prefix and listop
anyway, the test failure seems to be related to so vs so(), not autothreading 10:03
pmichaud double-check the definition of so in the setting. 10:04
I might've defined it as Mu
10:04 wamba joined
moritz and that's correct 10:05
pmichaud okay :)
jnthn pmichaud: yay!
pmichaud++ # working out the repl issue
pmichaud I can only find the one instance of <so> in std.pm6
moritz it's just not available as a sub 10:06
std: not()
p6eval std 37a0cdd: OUTPUT«ok 00:01 118m␤»
moritz std: rand()
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Unsupported use of rand(); in Perl 6 please use rand at /tmp/EMLTRMYuUq line 1:␤------> rand⏏()␤Parse failed␤FAILED 00:01 117m␤»
jnthn moritz: # S32-list/pick.t # needs junctions
moritz std: time()
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'time' used at line 1␤Check failed␤FAILED 00:01 118m␤»
moritz std: time
p6eval std 37a0cdd: OUTPUT«ok 00:01 118m␤»
jnthn moritz: Wonder if that one nearly passes now :)
pmichaud jnthn: it might. I was within a few tests when I blocked on autothreading, I think. 10:07
token prefix:abs 10:08
{ <sym> » <?before \s*> <O(|%named_unary)> }
moritz $ ./perl6 t/spec/S32-list/pick.t
Could not find sub !YOU_ARE_HERE
pmichaud moritz: comment out the enum at the bottom
(or skip it or whatever)
...what does the <?before \s*> do, I wonder?
moritz optimize to <?> I hope 10:09
pmichaud lol
jnthn moritz: what?!
dalek ast: 4573a92 | moritz++ | S32-list/pick.t:
fudge pick.t for rakudo
moritz jnthn: \s* always matches
pmichaud that's from std.pm6, btw.
jnthn moritz: No, I meant !YOU_ARE_HERE error
moritz there are always at least zero whitespaces
jnthn: related to the old enum action methods, I think 10:10
pmichaud !YOU_ARE_HERE error == enum declaration
jnthn moritz: oh!
OK
pmichaud
.oO( make test.... git commit.... git push... bump NQP_REVISION .... make spectest... git commit.... git push)
dalek kudo/nom: c514e45 | moritz++ | t/spectest.data:
we pass a fudge pick.t
10:11
daniel-s rakudo: my %a; say "there is no %a<b>" if %a<b> ~~ "Any()";
p6eval rakudo 72d158: OUTPUT«there is no Any()␤»
daniel-s rakudo: my %a; say 'there is no %a<b>' if %a<b> ~~ "Any()";
p6eval rakudo 72d158: OUTPUT«there is no %a<b>␤»
pmichaud moritz: don't forgit to commit/push the modified tests :) 10:12
daniel-s is if %a<b> ~~ "Any()"; the best way to check if an element in a hash exists?
moritz 12:09 <+dalek> roast: fudge pick.t for rakudo
dalek p: 1f28be4 | pmichaud++ | src/HLL/Compiler.pm:
Fix handling of interactive_ctx so that it doesn't mistakenly grab
pmichaud daniel-s: if %a.exists('b')
jnthn dalek: no :)
er, daniel-s :)
what pmichaud said
moritz daniel-s: you never want to ~~ 'Any()' really 10:13
daniel-s: rather ~~ Any
rakudo: say Any
p6eval rakudo 72d158: OUTPUT«Any()␤»
huf that test wouldnt fail much in ordinary code, no?
moritz when you see Any() somewhere in the output, it just means that you see a type object
huf: note that by current spec, type objects stringify to '' by default 10:14
pmichaud testing for "Any()" would also find hash entries that consist of the string "Any()" :-)
huf moritz: i mean checking if something is Any
moritz so that test only "works" sometimes with an outdate spec
huf moritz: not the "Any()" thing
moritz huf: depends on what you store in your hash
huf is undef Any?
pmichaud there is no more "undef" :-) 10:15
huf ah, of course
pmichaud there are a number of undefined type objects
moritz there are many undefs, and Any is one of them :-)
nom: class A { has $.bt = BackTrace.new }; say A.bt.concise; 10:16
p6eval nom: OUTPUT«Cannot access attributes in a type object␤current instr.: '_block6785' pc 375738 (src/gen/CORE.setting.pir:101584) (src/gen/CORE.setting:642)␤»
moritz nom: class A { has $.bt = BackTrace.new }; say A.net.bt.concise;
p6eval nom: OUTPUT«Method 'net' not found for invocant of class 'A'␤current instr.: '_block1002' pc 95 ((file unknown):144) (/tmp/9fJGJ0pVXi:1)␤»
moritz nom: class A { has $.bt = BackTrace.new }; say A.new.bt.concise;
p6eval nom: OUTPUT« in method <anon> at /tmp/jz8HW3nEiu:1␤ in method BUILDALL at src/gen/CORE.setting:276␤ in method bless at src/gen/CORE.setting:266␤ in method new at src/gen/CORE.setting:251␤␤»
jnthn :) 10:17
moritz I guess it's more robust if new() sets the backtrace
then we are not dependent on the number of internal method calls
dalek kudo/nom: 3803bd5 | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION so we get the interactive context fix and our
10:20
pmichaud \o/
finding that bug was more fun than it should've been.
10:21 drbean joined
pmichaud well, I'll get some sleep now, at least a short bit before I have to get the kids up 10:21
bbl
jnthn pmichaud++
moritz sleep well pmichaud++ 10:22
jnthn sleep well, even if breifly
10:22 drbean left 10:29 daniel-s is now known as daniel-ss, Jackneill joined, Jackneill left, Jackneill joined, daniel-ss is now known as daniel-s 10:30 mj41 joined 10:32 daniel-s is now known as daniel-ss 10:33 daniel-ss is now known as daniel-s 10:36 dayangkun left 10:46 daxim joined 10:48 im2ee_ is now known as im2ee 10:52 mj41 left 11:00 awoodland joined 11:04 Transbot joined
daniel-s moritz: you're German, correct? 11:04
11:05 whiteknight joined 11:07 Transbot left
moritz daniel-s: correct 11:13
11:13 mj41 joined 11:14 Transbot joined
daniel-s !transde hello moritz, how are you today? 11:14
Transbot hallo moritz, wie geht es Ihnen heute?
daniel-s !transen bist du gut? 11:15
Transbot are you well?
moritz !transen danke, ich kann mich nicht beklagen
Transbot thank you, I can not complain
jnthn !transen Ich will ein Bier mit Currywurst! 11:16
Transbot I want a beer with sausage!
jnthn The curry! It lost the curry!
moritz it doesn't do the curyying very well, it seems :-)
!transen Weißwurst
Transbot White sausage
jnthn I assume not.
moritz !transen Bratwurst
Transbot Bratwurst
daniel-s lol
moritz daniel-s: does it use the Google Translate API? 11:17
daniel-s yea
which apparently they're going to get rid of in a few months
jnthn !transen blutwurst
Transbot pudding
daniel-s it does subscriptions too
jnthn hm :)
daniel-s so if you use !pmde username
it will PM you everything username says in german 11:18
and !pmen for german to english
moritz cool
daniel-s++
jnthn Neat bot :)
daniel-s++
daniel-s that's mostly what I did it for, because I was on a channel with alot of german people
jnthn
.oO( seems all the German words I know relate to food :) )
11:19
11:23 Transbot left 11:24 mj41 left 11:38 mj41 joined
tadzik std: my $=HRR 11:40
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
tadzik hmm
11:42 satyavvd left 11:43 mj41 left
tadzik what is the role of <?before> in token twigil:sym<:> { <sym> <?before \w> } ? 11:43
jnthn Avoiding some parse issue 11:44
Maybe with the : param sep
tadzik std doesn't have that
11:44 MayDaniel joined
tadzik ok, I'll check '=' both with and without :) 11:45
jnthn STD does have proto token twigil is endsym<begid> {*}
I dunno exactly what that does but suspect it may be related.
tadzik but I still feel dizzy about having a twigil '=' for documentation variables, where $=POD is the only one in the whole spec 11:46
jnthn ah, yes token begid { <?before \w> }
tadzik: Yeah, that does feel odd
tadzik: I still wonder if $?POD wouldn't make sense.
tadzik well, maybe we could stick the whole .WHY tree for classes in $=WHY or something, it'd make it easier to search for them 11:47
jnthn Search for them? 11:48
tadzik or would it? $=FooBar::WHY looks like a typo :)
flussence
.oO( being able to walk that tree would be nice... )
jnthn had figured we'd attach the POD to the correct declarand at parse time or so
tadzik jnthn: say you want to get a documentation for Benchmark.pm6, it's a module, and exports 4 subs
jnthn: yes, but you don't neceserilly know the names
it's just a wild guess, or I'm just desperately trying to figure out a use of $= 11:49
TimToady thing is, $? is lexically scoped, and $= is only file scoped 11:55
and the = is to remind you of the pod = 11:56
jnthn TimToady: If it's installed in UNIT, is there much of a difference?
TimToady it's more of a brane issue than a computer issue
jnthn *nod*
I've nothing against the twigil for POD, I just agree with tadzik a bit that it feels odd we only have one variable 11:57
Also, if it's the array of all POD blocks I don't know why it's $=POD and not @=POD
Then for @=POD -> $block { } would dtrt
TimToady think of $=POD as a placeholder
but S26 kinda ran with it, I guess 11:58
shower 11:59
or look at it this way, lots of things that are documented to have $=POD on the front could have that factored away if they're named lookups 12:02
really &
tadzik jnthn: S26 says nothing about whether $=POD should be an array or something else
that's merely my interpretation 12:03
12:04 JimmyZ joined
[Coke] daniel-s: what are you using for the backend translations? google? 12:06
12:06 drbean joined
jnthn tadzik: ah, k 12:06
12:07 MayDaniel left
[Coke] (I wired up a bot on an ascii-only chat server, and was sad to find out that google translat API is getting turned off this year.) 12:07
12:07 Jackneill left
JimmyZ good evening, #perl6 12:15
12:16 alim left 12:17 Instil left, alim joined 12:18 wamba left 12:24 [Coke] left 12:26 [Coke] joined
daniel-s [Coke]: yea, google translate 12:26
I don't know of anything else 12:27
If you find out though, let me know
12:27 agentzh left
[Coke] eh. I'd been using babelfish before that, but google is much better. 12:30
12:34 smash joined
smash hello everyone 12:35
tadzik hello smash
jnthn hi smash
moritz niecza: say [*] 1..6 12:41
p6eval niecza v7-19-g8dc8c8f: OUTPUT«720␤»
moritz niecza: say [*] 1.."6"
p6eval niecza v7-19-g8dc8c8f: OUTPUT«0␤»
moritz perl6: say [*] 1.."6" 12:42
p6eval pugs, rakudo 72d158: OUTPUT«720␤»
..niecza v7-19-g8dc8c8f: OUTPUT«0␤»
[Coke] nom: "smash".comb.say 12:45
p6eval nom: OUTPUT«Method 'comb' not found for invocant of class 'Str'␤current instr.: '_block1002' pc 75 ((file unknown):36162976) (/tmp/0rK26HkWS2:1)␤»
[Coke] nom: <s m a s h>.comb.say 12:46
p6eval nom: OUTPUT«Method 'comb' not found for invocant of class 'Parcel'␤current instr.: '_block1002' pc 106 ((file unknown):79) (/tmp/l9Y5zOSAah:1)␤»
[Coke] ah well.
moritz comb (with arguments) needs regexes
that's why we don't have it yet
[Coke] sadface! 12:47
12:52 [Coke] left 12:54 [Coke] joined 12:56 bluescreen10 joined 12:57 perlhack joined
perlhack :-) 12:58
12:58 xhacktly joined 13:03 daemon joined
daniel-s [Coke]: so I can just fall back to babelfish when the google API goes away? 13:05
is it just like the google one
or similar anyway?
[Coke] ISTR I had to screen scrape it. :( 13:08
moritz -> afk
dalek kudo/nom: 203aea2 | moritz++ | src/core/Str.pm:
add argumentless Str.comb to make [Coke]++ happy
[Coke] happyface! 13:09
13:09 perlhack left 13:14 im2ee left, im2ee joined 13:22 xhacktly left 13:28 drbean left 13:31 im2ee left 13:32 im2ee joined 13:37 whiteknight left 13:43 masak joined
masak <sorear> Why is "0" false? 13:43
colomon tradition! 13:44
masak because it makes a lot of sense to write 'if not $beers_left' or 'if not @buildings'.
the lack of punning of 0 to false is the only direct drawback I've found so far with Lua. 13:53
sorear: oh! or did you mean "0" the string?
you probably did.
jnthn read it as "0" the string
But the arguments kinda still hold. 13:54
It's useful.
masak I'm less eager to defent that punning now that we have types.
I can't think of a use case right now.
perhaps reading from STDIN or something.
jnthn Having types doesn't change the fact that data you read in from the outside world comes in as strings.
Well, or just anywhere :)
masak sure, but having ?"0" be False feels like a fairly feeble way to compensate for that, to be honest. 13:56
I dunno, it feels like a tiny solution to a much bigger general issue.
why isn't ?"0.0" false, for example?
13:56 MayDaniel joined
masak what about ?"0e1" ? 13:56
what makes "0" so special? 13:57
14:01 REPLeffect left
masak perl6: say ?"0.0"; say ?"0e1" 14:03
p6eval pugs: OUTPUT«1␤1␤»
..rakudo 72d158, niecza v7-19-g8dc8c8f: OUTPUT«Bool::True␤Bool::True␤»
masak so yes, why *is* "0" false? 14:04
flussence so "while($int--)" works, presumably - that wouldn't work for floats in any language. 14:05
(also people might be using the magic string++/-- things...) 14:07
masak flussence: note that we're not talking about Int and 0, but about Str and "0". 14:10
flussence rakudo: my $i = '00g'; say $i while ($i--);
p6eval rakudo 72d158: OUTPUT«00f␤00e␤00d␤00c␤00b␤00a␤»
flussence hm.
JimmyZ ?"0".Int 14:11
perl6: say ?"0.0".Int 14:12
p6eval pugs: OUTPUT«*** No such method in class Str: "&Int"␤ at /tmp/qXls9lLbJf line 1, column 5 - line 2, column 1␤»
..rakudo 72d158, niecza v7-19-g8dc8c8f: OUTPUT«Bool::False␤»
JimmyZ well, it's false
flussence rakudo: say (?"0.0").Int
p6eval rakudo 72d158: OUTPUT«1␤»
JimmyZ perl6: say ?"0e1".Int 14:13
p6eval pugs: OUTPUT«*** No such method in class Str: "&Int"␤ at /tmp/YwqQE_dBP_ line 1, column 5 - line 2, column 1␤»
..rakudo 72d158, niecza v7-19-g8dc8c8f: OUTPUT«Bool::False␤»
JimmyZ false again :)
it's a mess?
masak at least it's not terribly consistent. 14:14
flussence well it's useful to have a string representation of 0 mean false, but it's not worth typecasting every non-empty string to a Num just to see whether to return false... 14:15
and besides, I question the sanity of anyone using scientific notation for bools :) 14:16
JimmyZ perl6: say ?"1e1".Int
p6eval rakudo 72d158, niecza v7-19-g8dc8c8f: OUTPUT«Bool::True␤»
..pugs: OUTPUT«*** No such method in class Str: "&Int"␤ at /tmp/Z7sBCr8cfk line 1, column 5 - line 2, column 1␤»
JimmyZ perl6: say ?"0sfsdfsdf23".Int
p6eval niecza v7-19-g8dc8c8f: OUTPUT«Unhandled exception: System.FormatException: Unknown char: s␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) [0x… 14:17
..rakudo 72d158: OUTPUT«Bool::False␤»
..pugs: OUTPUT«*** No such method in class Str: "&Int"␤ at /tmp/Bw30yfc6i0 line 1, column 5 - line 2, column 1␤»
masak flussence: there are several string representations for the magnitude zero. why does one of them get special treatment when boolified?
14:17 leprevost joined 14:22 explorer__ joined 14:24 jferrero left
flussence I don't have a better answer than "everyone else does it" :) 14:26
[Coke] for the devil's advocate: what string values do you propose evaluate to true/false? 14:28
I would say "" is false. Anything that doesn't numify to a false value is true. Everything else is probably up for debate.
14:29 ab5tract left
[Coke] if this were ColdFusion or tcl, we could have "false" and "no" be False. ;) 14:29
14:29 tokuhir__ joined
flussence basically it's consistent with what other languages do when boolifying strings, and we've already got .chars/.Int if you prefer a different definition of true/false 14:29
(mind you, I've only checked in perl5/php...) 14:30
oh, python just *has* to be different...
[Coke] bah. I want a "make spectest" target that actual records everything. 14:31
*actually
flussence `make rakudo_test_run.tar.gz`? 14:33
(that should get a TAP::Archive file, is that good enough?)
daniel-s [Coke]: I might try tomorrow at creating a library to scrape from the google translate website 14:34
if it's straightforward html that comes back from a http post or get, it might be doable
but that would especially suck because no doubt, google would keep changing it 14:35
[Coke] flussence: going with shell wonkery for now.
14:37 daniel-s left 14:42 wtw left
[Coke] I wish to learn Chinese. 14:42
Any pointers?
aside from trading with perlhack? ;)
14:42 jack-ji joined
masak [Coke]: congratulations! a good investment, and much fun ahead. 14:46
[Coke]: what can I say? get a good textbook. preferably with audio material. I have suggestions if you want them. 14:47
[Coke]: make sure you practice at least an hour or two a day.
:)
[Coke] knows that mandarin is sort-of-kind-of on the curriculum in his kid's district, I wonder if there are any local resources. 14:48
[Coke] suspects it's not worth running spectest_full at the moment. 14:49
;(on nom)
flussence it's already up to a quarter of what master passes!
14:50 fhelmberger left 14:56 im2ee left 14:57 im2ee joined 14:58 Tedd1 joined
pmichaud good morning, #perl6 15:03
15:05 _jaldhar left
jnthn o/, pmichaud 15:06
masak good morning, pmichaud
15:12 alim left
JimmyZ good morning, pmichaud 15:13
15:14 daniel-s joined 15:17 daniel-s left 15:19 spq1 joined 15:21 colomon left 15:24 thou joined 15:26 alester left, donri joined 15:27 colomon joined, leprevost left 15:37 alester joined 15:40 alester left 15:42 daxim left, im2ee left 15:50 masak left 15:52 Jackneill joined
JimmyZ nom run ./perl6 -e "" is into interactive mode, is it a bug? 16:14
16:15 awoodland left
jnthn JimmyZ: Sounds like. 16:18
JimmyZ jnthn: I think so, master isn't interactive mode 16:19
jnthn It's feasibly a regression when translating various bits of HLL::Compiler from PIR to NQP. 16:23
16:24 dakkar joined 16:25 [Coke] left 16:26 [Coke] joined
dalek ast: 1df028a | jonathan++ | S12-class/basic.t:
Re-fudge S12-class/basic.t for nom (we win 2, lose one, but it's due to an eval bug rather than a bug in what it's testing, it seems).
16:33
ast: 5031753 | jonathan++ | S12-class/instantiate.t:
Update a test to match latest spec (though we can't actually run it in Rakudo yet - no regexes.)
16:37
JimmyZ jnthn: does $.a also declares $!a ? 16:43
16:43 dakkar left
jnthn JimmyZ: yes 16:43
dalek kudo/nom: 25767e9 | jonathan++ | src/Perl6/ (2 files):
Factor out package redeclaration logic so we'll be able to re-use it for all the various type-y declarators, and make it a bit smarter, e.g. so tadzik++ can declare a Block in Pod.
16:44
kudo/nom: f5c0a44 | jonathan++ | src/core/Mu.pm:
First cut of clone, though probably not quite deep enough yet for many objects.
kudo/nom: bb5852a | jonathan++ | src/Perl6/SymbolTable.pm:
Fix redeclaration detection for nested classes.
kudo/nom: 73518c8 | jonathan++ | t/spectest.data:
Run S12-class/basic.t.
kudo/nom: 9420d14 | jonathan++ | NOMMAP.markdown:
Update nommap.
JimmyZ jnthn: I didn't find where spec said, I just find spec says $brain also declares $!brain
16:45 aindilis joined
jnthn JimmyZ: I think it says it declares an attribute and an accessor method. 16:46
dalek kudo/nom: bf66171 | jonathan++ | src/core/Mu.pm:
Make sure $obj.Mu::new() style delegation works.
16:47
kudo/nom: ca81dd4 | jonathan++ | t/spectest.data:
We now pass S12-construction/new.t - or as much as master does, anyway.
16:49 MayDaniel left 16:50 jack-ji left
JimmyZ jnthn: I din't find where spec says $.a also declares $!a :( . I just find this one S12:649 16:50
16:52 nothingmuch joined
jnthn JimmyZ: Hmm, it could be clearer on that, I agree. 16:53
16:53 MayDaniel joined 16:55 JimmyZ left, Holy_Cow joined, Holy_Cow left
[Coke] jnthn: how many test now? huh? Huh? HUH? 16:56
*tests
tadzik jnthn++ # thanks! :) 16:58
will try that in a sec 16:59
jnthn [Coke]: I think we're well over 5K, but some way to go to 6K :) 17:01
Though at current rate "some way" may easily mean a day or two :)
[Coke] once regexes land, how long do you think until nom->master ? 17:03
17:03 birdwindupbird left 17:04 cdarroch joined, cdarroch left, cdarroch joined
[Coke] that's a bad question. let me check the NOMMAP. 17:04
jnthn :)
[Coke]: Yeah, it's hard to say. Don't know how much other stuff stuff will be done between now and regexes landing. 17:05
[Coke]: Once they do I think it'll be time to focus on the module ecosystem though.
[Coke]: And get a feel for what needs taking care of to have a bunch of modules run again.
17:06 am0c joined
jnthn afk for a while, going to visit masak++ :) 17:06
thou perl6: sub doit(Str $text is rw) { $text ~= '!'; say $text; }; my $foo = 'foo'; doit(~$foo); say $foo;
p6eval pugs: OUTPUT«*** Can't modify constant item: VStr "foo"␤ at /tmp/MZkoWiyLSx line 1, column 29-41␤»
..niecza v7-19-g8dc8c8f: OUTPUT«Unhandled exception: Binding Str $text is rw in MAIN doit, cannot bind read-only value to is rw parameter␤ at /tmp/1NV0wKPb_o line 0 (MAIN doit @ 0) ␤ at /tmp/1NV0wKPb_o line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1891 (CORE…
..rakudo 72d158: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in 'doit' at line 22:/tmp/z70jeXq8f9␤ in main program body at line 22:/tmp/z70jeXq8f9␤»
[Coke] jnthn: ~~! 17:07
17:14 MayDaniel left 17:16 metaperl_ joined, metaperl_ left 17:19 wamba joined 17:24 stepnem left 17:25 wamba left
tadzik jnthn: now how do I handle cases like Pod::Block::Named? Block package inside the Pod package? 17:26
17:26 stepnem joined
tadzik oh wait, it just works. Nvm, forgot a .new :) 17:27
17:29 REPLeffect joined 17:34 tokuhir__ left 17:35 birdwindupbird joined 17:38 [particle] left
tadzik jnthn: I get a Could not locate compile-time value for symbol Pod::Block::Named when adding a Pod::Block::Named to the SymbolTable, want to take a look? 17:43
17:50 [particle] joined 17:51 [particle] left 17:53 [particle] joined 18:01 cognominal left 18:03 cognominal joined 18:07 mkramer1 joined 18:18 wamba joined 18:28 lue left 18:30 lue joined 18:32 birdwindupbird left, wamba left 18:33 mkramer1 left 18:36 Bzek left
lue Here's my comb patch (which I worked on last night): gist.github.com/1072463 [feel free to ignore and do a much better job if I messed something up :)] 18:38
Oh! I just noticed moritz added an argumentless variant of comb. 18:42
thou \o/ november made a new page on my web site: postimage.org/image/1vx5gn8as/8d301d9a/ 18:43
18:46 Jackneill left
lue ping $nom_people (question about comb) 18:48
moritz lue: pong 18:49
lue I just noticed you wrote a comb method a couple hours ago. My patch of comb [which I worked on last night], tries to implement the $limit as well. 18:50
[Which, being an idiot, I _just now_ decided to test the $limit part, and discover it doesn't work] 18:51
moritz lue: and since named arguments are passed by *name*, it's essential that you get the name right
lue: lim vs. limit
lue Yeah. I forgot that :$ meant named argument, and when I remembered that, I didn't think of that. 18:53
...sigh. Now I know I why the limiting part "failed" for me just now; I tried using the number as a positional argument /me slaps self in head 18:55
18:56 dolmen joined
lue According to the spec [S32/Str], $limit isn't even a named argument. 18:59
19:04 quiccker left, REPLeffect left, REPLeffect joined 19:08 mkramer joined 19:09 kytibe joined 19:14 Moukeddar joined
Moukeddar Hello ;) 19:15
lue hello o/
tadzik hello Moukeddar
Moukeddar how are you all doing ?
missed you all :) 19:16
tadzik oh cool. Then new Rakudo branch is evolving rapidly
19:17 [Coke] left
Moukeddar today i saw a car named Parrot 19:19
#perl6 came immediately to my mind
19:19 [Coke] joined 19:21 wamba joined
thou \o/ got my apache config tweaked so november looks pretty postimage.org/image/2m6teqqg4/99e42fc7/ 19:21
Moukeddar the simplicity is awesome :) 19:22
good work :) 19:23
thou Moukeddar: well, didn't design the pages. just getting masak++ 's software running again after some time of bitrot
Moukeddar you know what they say
tadzik cute :)
thou: what is the webserver running it?
Moukeddar Great people steal ot copy ?
Apache he said 19:24
tadzik oh, so it's running perl6 as a cgi?
Moukeddar look at the search bar :)
it says it all
thou tadzik: apache2, just hacking things together because november borks unless it's at the root of the web url space
tadzik I see 19:25
thou that is host:port/view/Page works, but host:port/wiki/view/page fails
tadzik thou: have you thought of using Perl6's HTTP::Server::Simple?
Moukeddar i must try running it on IIS7.5
thou tadzik: yes, but i have to convert november to use psgi
tadzik sounds like fun :)
thou and i wanted to get it running as is first
tadzik sure thing
thou yeah
19:25 smash left
thou i want to convert to web.pm, and then it'll have psgi for free i believe 19:25
but to do that i have to get Web.pm out of bitrot, as i understand it 19:26
so ... one thing at a time :-)
tadzik I don't think Web.pm uses PSGI
19:26 Moukeddar left
tadzik Web.pm is passing its tests on master for some time now, methinks 19:26
thou ah, ok. i hadn't tried it yet
mebby someone was talking about getting it to run on nom ;-) 19:27
colomon on niecza, as I remember the conversation
thou if web.pm doesn't use psgi, i'm not sure what it's good for
sorear good * #perl6
o/ colomon 19:28
colomon speak of the devil....
thou bye, sorear
colomon o\
thou or hello
thou is never sure if "good *" is a greeting or farewell
colomon depends on whether you're arriving or leaving!
tadzik it's like "good" ~ any("morning", "afternoon", "evening"), as I understand it 19:29
thou yeah
ok, i guess it's more like a greeting than a farewell
rakudo: say 'goodmorning' ~~ "good" ~ any(<morning afternoon evening>) 19:31
p6eval rakudo 72d158: OUTPUT«Bool::True␤»
thou rakudo: say 'goodmorning' ~~ "good" ~ [|] <morning afternoon evening>
p6eval rakudo 72d158: OUTPUT«Bool::True␤»
thou i guess my problem was i always add <night bye> into that list.... 19:32
moritz well, you can use it tha way too :-)
jlaire rakudo: class C { has Int $.x; method Str() { $.x } }; say C.new(:a(42)).Str.WHAT
p6eval rakudo 72d158: OUTPUT«Any()␤»
jlaire rakudo: class C { has Int $.x; method Str() { $.x } }; say C.new(:a(42)).Str().WHAT 19:33
p6eval rakudo 72d158: OUTPUT«Any()␤»
thou nom: say 'goodmorning' ~~ "good" ~ [|] <morning afternoon evening>
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'infix:<~>'. Available candidates are:␤:(Any $x)␤:(Str $a, Str $b)␤:(Any $a, Any $b)␤␤current instr.: 'infix:<~>' pc 353352 (src/gen/CORE.setting.pir:90433) (src/gen/CORE.setting:1590)␤»
thou std: say 'goodmorning' ~~ "good" ~ [|] <morning afternoon evening>
p6eval std 37a0cdd: OUTPUT«ok 00:01 121m␤»
jlaire rakudo: class C { has Int $.x; method Str() { $.x } }; say C.new(:x(42)).Str().WHAT
p6eval rakudo 72d158: OUTPUT«Int()␤»
thou niecza: say 'goodmorning' ~~ "good" ~ [|] <morning afternoon evening>
p6eval niecza v7-19-g8dc8c8f: OUTPUT«Bool::False␤»
jlaire rakudo: class C { has Int $.x; method Str() { $.x } }; say (~C.new(:x(42))).WHAT
p6eval rakudo 72d158: OUTPUT«Str()␤»
thou niecza: say 'goodmorning' ~~ "good" ~ any(<morning afternoon evening>) 19:34
p6eval niecza v7-19-g8dc8c8f: OUTPUT«Bool::False␤»
sorear ~ doesn't autothread
phenny: de en "hello moritz, how are you today?"
phenny: de en "hello moritz, how are you today?"? 19:35
phenny sorear: "moritz hello, how are you today?" (de to en, translate.google.com)
sorear phenny: en de "hello moritz, how are you today?"?
phenny sorear: "hallo moritz, wie geht es Ihnen heute?" (en to de, translate.google.com)
sorear phenny: tell daniel-s We already have a translator bot, phenny: en de "hello moritz, how are you today?"?
phenny sorear: I'll pass that on when daniel-s is around.
19:35 benabik left
pmichaud nom: say 'goodmorning' ~~ 'good'~any(<morning afternoon evening>); 19:35
p6eval nom: OUTPUT«Bool::True␤»
pmichaud \o/
sorear phenny: tell masak ("0") - #p5p is seriously talking about making "" the only false string. "0" falseness is a pretty disgusting Perlism imo 19:36
phenny sorear: I'll pass that on when masak is around.
sorear phenny: tell masak oh, and it's really annoying to work around. I can't use if $name in niecza because "0" is often a valid name, but "" never is
phenny sorear: I'll pass that on when masak is around.
[Coke] wonders if our plethora of bots is /documented/ anywhere. 19:37
sorear nom: say chars [~] 1..10000
p6eval nom: OUTPUT«(timeout)»
sorear niecza: say chars [~] 1..10000
p6eval niecza v7-19-g8dc8c8f: OUTPUT«38894␤»
sorear pmichaud: the fundamental difference here is that niecza has ~ as list-associative 19:38
thou does anyone know if it's correct that a ~ (string contextualizer) turns a var into read-only? 19:39
perl6: sub doit(Str $text is rw) { $text ~= '!'; say $text; }; my $foo = 'foo'; doit(~$foo); say $foo;
p6eval niecza v7-19-g8dc8c8f: OUTPUT«Unhandled exception: Binding Str $text is rw in MAIN doit, cannot bind read-only value to is rw parameter␤ at /tmp/mlIUcIOUGm line 0 (MAIN doit @ 0) ␤ at /tmp/mlIUcIOUGm line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1891 (CORE…
..rakudo 72d158: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in 'doit' at line 22:/tmp/np8HqCSBQk␤ in main program body at line 22:/tmp/np8HqCSBQk␤»
..pugs: OUTPUT«*** Can't modify constant item: VStr "foo"␤ at /tmp/DgIG_3hFnN line 1, column 29-41␤»
sorear thou: imo, yes
thou this is something that changed in rakudo since the last time november was working; i've changed several "is rw" to "is copy" (since the modification wasn't really needed in upper scope anyways, fortunately) 19:40
i guess there is probably spec tests for this 19:41
pmichaud thou: think of it this way: 19:42
my Int $foo = 3; doit(~$foo)
the contextualizer *cannot* change $foo to a string.
it has to produce a read-only value that is the string representation of $foo
thou ok. 19:43
i knew that.
i was thinking "but it's just a contextualizer; if it's already a Str, it should be a no-op"
19:44 [Coke] left
thou but really if you're gonna depend on it already being a string in the code, then you shouldn't write the contextualizer in the first place 19:44
any meaningful use of the ~ requires it to be ro
thanks
19:46 [Coke] joined
thou \o/ got /history/Page working 19:47
19:51 lichtkind joined
lichtkind thou: are you softmoth? 19:52
thou yep
i'm polyidentical
unfortunately
lichtkind thou: thats fine just for my orientation 19:54
19:56 [Coke] left 19:58 [Coke] joined, mkramer left 20:03 nnunley joined
thou seems all the links that are exposed to the user are now working in november 20:05
(missing is the /register link, which apparently was not quite completed) 20:06
i'll try to clean up my work and commit
tadzik great! :)
thou++
20:09 soh_cah_toa joined, [Coke] left 20:11 [Coke] joined, Zapelius joined 20:15 [Coke] left 20:16 kaare_ left 20:17 [Coke] joined 20:19 cdarroch left
dalek kudo/nom: 5ea35d9 | Coke++ | t/spectest.data:
This (commented out) test file doesn't exist.
20:24
20:25 [Coke] left 20:27 [Coke] joined 20:31 envi left 20:32 [Coke] left 20:34 [Coke] joined
[Coke] can t/spec/S07-iterators/range-iterator.t be deleted? 20:35
std: our Int $foo = 0;
p6eval std 37a0cdd: OUTPUT«ok 00:01 121m␤»
sorear generally test files don't get deleted 20:38
dalek kudo/nom: bafbc15 | Coke++ | t/spectest.data:
Alphabetize & note failure cause.
20:39
20:40 [Coke] left 20:42 [Coke] joined
dalek ast: 008d2e5 | Coke++ | S02-builtin_data_types/assigning-refs.t:
untodo passing test
20:45
kudo/nom: 372e76c | Coke++ | t/spectest.data:
Unskip passing testfile
20:47 dalek left
[Coke] pmichaud: ping. 20:48
20:49 dalek joined, ChanServ sets mode: +v dalek
tadzik seen jnthn 20:49
aloha jnthn was last seen in #perl6 3 hours 43 mins ago saying "afk for a while, going to visit masak++ :)".
[Coke] would it be helpful in nom's t/spectest.data to, for those tests that are currently listed but commented out, to show the exception (without, say, going through and diagnosing the root cause of the exception?) 20:51
e.g.:
+# S02-builtin_data_types/autovivification.t # err: No applicable candidates fou S02-builtin_data_types/bool.t
er:
# S02-builtin_data_types/autovivification.t # err: No applicable candidates found to dispatch to for 'trait_mod:<is>'.
dalek vember: 96e6433 | softmoth++ | Makefile:
Tidy: clean up whitespace, sort SOURCES
20:53
vember: ac9d4b5 | softmoth++ | Makefile:
Add Digest::SHA to Makefile
21:03 cooper left
dalek vember: a241244 | softmoth++ | lib/November.pm:
Fix one "string".IO ~~ :e test
21:03
21:03 cooper joined 21:10 bluescreen10 left
sorear TimToady: ping 21:12
21:13 Mowah left
pmichaud [Coke]: pong 21:13
dalek vember: e68e5b0 | softmoth++ | data/users:
Update data/users with a valid SHA256 user/pass
21:14
pmichaud (add errors to spectest.data) yes, that's helpful. I've been doing that as I try various tests
i.e., I try the test to see if it works, if it doesn't, I record why in spectest.data
sorear phenny: tell TimToady / <fun($/)> / doesn't use <.newlex> or <.finishlex> at all, does it create a new $/ or does it use the surrounding $*CURLEX's $/ ?
phenny sorear: I'll pass that on when TimToady is around.
pmichaud since / is like a sub or method, I suspect it gets its own $/ 21:15
er, since /rx/
I think it's more sub-like than block-like.
sorear std: / :my $x; /; say $x 21:25
p6eval std 37a0cdd: OUTPUT«ok 00:01 122m␤»
21:25 bluescreen10 joined 21:28 explorer__ left 21:34 ccc joined 21:36 jferrero joined 21:39 Chillance left 21:46 Patterner left 21:48 Psyche^ joined, Psyche^ is now known as Patterner 21:49 bluescreen100 joined 21:52 bluescreen100 left, y3llow left, y3llow_ joined, pothos left, pothos_ joined 21:53 y3llow_ is now known as y3llow, pothos_ is now known as pothos 21:54 bluescreen10 left 21:57 ccc left 21:59 benabik joined 22:03 buubot_backup left 22:11 yahooooo joined
dalek ast: eec7077 | Coke++ | S02-builtin_data_types/declare.t:
Skip more tests for rakudo(nom)
22:11
kudo/nom: 458245f | Coke++ | t/spectest.data:
Add some failure comments, running one more test.
22:13
[Coke] is there any automated process at this point that can try to run SKIPped tests?
22:14 drbean joined
[Coke] (specifically fudge/skips in t/spec) 22:14
22:17 cbk left
jnthn back 22:17
[Coke] jnthn: front 22:18
jnthn [Coke]: 中 :P
22:19 cdarroch joined, cdarroch left, cdarroch joined
[Coke] bacardi? ;) 22:21
jnthn :P 22:22
tadzik: ping 22:24
22:27 buubot_backup joined 22:32 aindilis left, aindilis joined 22:35 Krunch left
dalek ast: 9bdef44 | Coke++ | S02-builtin_data_types/mixed_multi_dimensional.t:
match up with rakudo-current(nom)
22:38
kudo/nom: e5ed290 | Coke++ | t/spectest.data:
add a reason, pass a test.
22:39
ast: 4fff7b4 | Coke++ | S02-builtin_data_types/multi_dimensional_array.t:
match up with rakudo-current(nom)
22:43
kudo/nom: 1483a05 | Coke++ | t/spectest.data:
add a passing test.
22:44
kudo/nom: 2d10e5c | Coke++ | t/spectest.data:
add more failure reasons.
22:50
[Coke] should probably not do that in quite so many small commits. 22:51
jnthn It's like Coke++ wants the karma! ;)
[Coke] given I don't commit any actual functionality, it's the best I can do. :) 22:52
jnthn I'm glad you're doing it. :)
[Coke] 5585 tests. 22:56
jnthn \o/ 22:57
[Coke] Though it occurs to me that the the test harness doesn't give you an easy way to say "This may tests are TODO/SKIP/FAIL" :P 22:59
tadzik jnthn: pong
thanks to insomnia I'm here again :) 23:00
jnthn tadzik: Did you solve your issues? 23:01
tadzik jnthn: nope
jnthn (The looking up POD::Block ones...)
cooper what is the easiest equivalent to perl 5's each method for hashes?
jnthn tadzik: What did you try to do
?
tadzik cooper: .kv probably
jnthn: I'll push the current podparser and paste you a patch, ok?
cooper so like
for %hash.kv -> $a, $b {... }
jnthn tadzik: $*ST.find_symbol(['POD::Block']) by any chance?
cooper ?
jnthn cooper: yes 23:02
cooper thank you
tadzik jnthn: nah, .add_constant as usual, only now I'm trying 'Pod::Block::Named' rather than 'Pod__Block__Named'
jnthn nom: my %h = a => 1, b => 2; for %hash.kv -> $k, $v { say "$k = $v" }
p6eval nom: OUTPUT«Symbol '%hash' not predeclared in <anonymous> (/tmp/F4JaLy7NbR:1)␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (compilers/pct/src/PCT/HLLCompiler.pir:107)␤»
jnthn nom: my %h = a => 1, b => 2; for %h.kv -> $k, $v { say "$k = $v" }
p6eval nom: OUTPUT«a = 1␤b = 2␤»
jnthn tadzik: ah
tadzik: yeah, I can see what's up
tadzik cool 23:03
jnthn my $type_obj := self.find_symbol([$type]);
find_symbol expects the name to be pre-split
dalek Heuristic branch merge: pushed 30 commits to rakudo/podparser by tadzik
jnthn try
my $type_obj := self.find_symbol(pir::split('::', $type));
or some such
tadzik hmm, will try 23:04
jnthn (that line appears in add_constant)
718 in the checkout I have here
tadzik so I should poke add_constant itself?
yay, win! 23:06
jnthn: should classes in my package Pod {} be our'd? 23:08
23:12 wolfman2000 left
tadzik they work when they are, let's see if they work when they aren't :) 23:14
dalek kudo/podparser: 82b7267 | tadzik++ | src/Perl6/SymbolTable.pm:
[SymbolTable] Fix lookup of type object with "::" in their names, jnthn++
23:21
kudo/podparser: 93c4425 | tadzik++ | / (8 files):
Give Pod classes proper names, jnthn++ for making that possible
tadzik jnthn++ once again, thanks for help :) 23:22
jnthn tadzik: our is default for classes 23:25
and yes, they need to be, or you can't look them up through :: style lookup
23:27 cdarroch left
tadzik that's what I thought, both things :) 23:28
jnthn :) 23:29
23:31 tokuhir__ joined 23:32 orafu left 23:33 wamba left, orafu joined 23:37 molaf__ joined 23:40 molaf_ left 23:41 bluescreen10 joined 23:47 ab5tract joined 23:51 wamba joined
tadzik ok, I'll maybe try to sleep now & 23:52
jnthn :) 23:53
o/ tadzik
23:56 wamba left