»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 25 June 2010.
dalek kudo: 91a34e7 | jonathan++ | src/ (2 files):
Rip out the non-syntactic Whatever method call to block logic. Doesn't cause any

path.
00:09
00:09 sftp left 00:10 sftp joined
jnthn night all o/ 00:23
00:23 lichtkind left
ingy gnite jnthn 00:24
\o
can I define a multi method that applies to two different sigs? 00:25
hi snarkyboojum
I just saw your msg
snarkyboojum ingy: hi ho
ingy snarkyboojum: I've been refactoring quite a bit 00:26
I'll push in a sec for a code review :)
I actually have a few q's
snarkyboojum ingy: lovely - just a few things that stood out for me on a quick read
00:28 rv2733 joined
ingy snarkyboojum: pushed. the code is now very different. uses multi methods. still lots of duplication 00:34
snarkyboojum: you might want to ufo make install testml-pm6, to run the yaml-pm6 `make test` suite 00:35
snarkyboojum ingy: cool - will have a play :)
ingy snarkyboojum: for extra credit I have two tests at the bottom that are almost passing. just some extra whitespace. remove the --- SKIP lines to enable them 00:37
snarkyboojum: also let me know if you want a commit bit.
snarkyboojum ingy: cool! will do
sorear I am experiencing an urge to throw out and redesign STD's symbol table caching subsystem 00:40
Get rid of all the uses of cyclic data, eliminate the globality of ALL 00:41
00:43 tylercurtis joined
ingy sorear: FYJFTW! 00:44
00:46 khb left
snarkyboojum ingy: weird symlinking issues in t/ for testml-pm6 seem to prevent tests from finding *.tml files 00:48
ingy sorear: ah, yes 00:50
grab testml-tml from github
snarkyboojum ingy: i.e. testml-tml -> ../../testml-tml from the t/ directory - assumes I have the testml-tml repo checked out at the same level as testml-pm6 repo 00:51
ingy and just clone it next to testml-pm6
snarkyboojum: I have 3 implementations using this testml-tml suite.
soon to be a dozen
submodules could work too. 00:52
s/sorear:/snarkyboojum:/
I assume a make dist would tar up all the files for a typical module installer 00:53
anyway, hopefully not a big deal 00:54
snarkyboojum: also grab the latest ufo and do: cd testml-pm6; ufo - | make -f - install clean 00:55
to install testml for running yaml tests
snarkyboojum: also I fixed one of the whitespace bugs
will check that in now. 00:56
yaml-pm6 pushed 00:57
00:59 Sarten-X joined
pugssvn r31630 | Darren_Duncan++ | S02 : add initial formats for Blob (or Buf) literals 01:02
snarkyboojum ingy: make test for testml-pm6 complains about not being about to find Bridge (which resides in t/) 01:08
ingy: same for yaml-pm6 01:10
ingy: (using Makefiles generated by ufo) 01:11
ingy snarkyboojum: export PERL6LIB=t:lib 01:12
snarkyboojum: or use my Makefile :P
snarkyboojum ingy: yeah - just mentioning the issues I'm coming up with - other than that, installed and working :)
ingy :D
I've got a nice commit coming your way 01:13
snarkyboojum: yaml-pm6 pushed 01:19
support hoh and lol now 01:20
snarkyboojum: do you have a github account?
01:21 clintongormley left
snarkyboojum ingy: yep - snarkyboojum 01:21
ingy snarkyboojum: you have commit to both repos 01:23
snarkyboojum ingy: cheers! o/
01:30 masonkramer left
ingy snarkyboojum: I just pushed t/fail.tml with a couple failing reference tests. Feel free to make them pass. 01:32
01:32 tylercurtis_ joined
pmichaud good afternoon, #perl6 01:32
ingy snarkyboojum: they are currently set up to be skipped, but if you look at the file it will be obvious what to do.
pmichaud!
01:34 tylercurtis left, tylercurtis_ is now known as tylercurtis
ingy pmichaud: I got ufo patched to install the latest testml-pm6 to run the new yaml-pm6 testml tests, which are all now passing! 01:34
pmichaud ingy: \o/
ingy today was a good p6 day. thus breaking my record losing streak! 01:35
although I did find a couple rakudo bugs early on. 01:36
rakudo: die foo; CATCH { say $! } 01:37
p6eval rakudo 91a34e: OUTPUT«Could not find sub &foo␤»
ingy rakudo: die 'foo'; CATCH { say $! }
p6eval rakudo 91a34e: OUTPUT«foo␤»
ingy rakudo: die 'foo'; CATCH { die $! }
p6eval rakudo 91a34e: OUTPUT«foo␤ in main program body at line 20:/tmp/b78yKiThnb␤»
ingy wow
fixed already
must be jnthn++
tylercurtis Good afternoon, pmichaud. 01:38
pmichaud this is why we need Rakudo Star and more people writing programs/modules for Rakudo :-)
to find the bugs that we can fix :)
ingy pmichaud: yes, it was a banner field test day
pmichaud: now with testml and yaml, I can start producing lots more mods
pmichaud rakudo: say True..2; 01:39
p6eval rakudo 91a34e:
..OUTPUT«111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…
pmichaud wonders what *should* happen there.
ingy I should have jsync-pm6 done this week
which was my starting point with you guys :P
rakudo: say 1..2 01:41
p6eval rakudo 91a34e: OUTPUT«12␤»
ingy pmichaud: in a normal language .. would coerce True to 1, no?
pmichaud .. isn't specified to coerce to numeric, no.
01:42 Chillance left
pmichaud because one can also do 'a'..'z' 01:42
ingy nod
well given multi dispatch, it should coerce to Str,Str or Num,Num 01:43
no?
pmichaud multi dispatch doesn't coerce
ingy FAIL
time for $gf dance lessons. 01:44
laters
pmichaud enjoy the dance!
01:46 snarkyboojum left
tylercurtis pmichaud: how can I convert a PAST::Op(:pasttype<call>) with the sub in the name into a PAST::Op(:pirop<tailcall>) node? 01:46
pmichaud I think: 01:48
PAST::Op.new( :pirop<tailcall>, $old.name, |($old.list))
anyway, the steps to do: 01:49
1. change :pasttype to 'pirop'
2. change :pirop to 'tailcall'
3. unshift the sub name to be the first child
that probably works.
if it doesn't like the sub name as child zero, then change that to do a 'find_sub_not_null' pirop 01:50
tylercurtis Thanks. I'll try that. 01:52
01:53 whiteknight left
tylercurtis find_sub_not_null it will have to be. 01:58
02:15 macdaddy joined, macdaddy is now known as Guest36330
colomon jnthn: o/ 02:17
02:18 hercynium joined 02:24 takadonet joined
tylercurtis pmichaud: I now have a prototype implementation of basic tail-call elimination for NQP-rx working(it only works with an explicit return, though). :) 02:26
dalek kudo: bb6df24 | pmichaud++ | src/Perl6/Grammar.pm:
Accept <.ws> after version or module information in 'use' (per STD.pm6).
02:27
02:27 dangyajun joined 02:29 dangyajun left 02:36 shade_ left 02:38 sftp left 02:41 agentzh joined 02:50 takadonet left 02:58 pragma_ left 03:00 masonkramer joined 03:04 TiMBuS joined, kid51 left 03:07 pragma_ joined, pragma_ is now known as Guest998 03:10 justatheory joined 03:13 masonkramer left 03:26 skids left 03:37 Sanitoeter left 03:40 redicaps joined 03:49 redicaps left 04:02 Sanitoeter joined 04:20 Sanitoeter left, Sanitoeter joined
tylercurtis diakopter: ping 04:25
04:26 sbp joined
diakopter PONG 04:26
tylercurtis Can you add github.com/ekiru/tree-optimization to dalek for #parrot? It's the new location for my GSoC project. 04:27
04:28 Guest36330 left
diakopter ok, sorear or I will 04:28
tylercurtis Thanks. 04:29
04:36 dju left 04:44 dalek joined
sorear mode #perl6 +v dalek 04:45
04:45 sorear sets mode: +v dalek
sorear tylercurtis: should be done 04:49
tylercurtis sorear: thanks.
05:01 Sanitoeter left 05:06 tedv left 05:11 wilx left 05:18 Sanitoeter joined
dalek ecza: 8605d1d | sorear++ | (4 files):
Expose the preinit/run split to the entry point
05:26
ecza: 66d8e05 | sorear++ | (7 files):
Implement the setting stubber and YOU_ARE_HERE
05:43 xinming left, IllvilJa left, christine left, araujo left, dual left, plobsing left, juster left, Patterner left, [Coke] left, hsb left, felipe left, opx^away left, tomaw left, Gothmog_ left, TiMBuS left, f00li5h left, skangas left, rokoteko left, colomon left, nadim left, HarryS left, dalek left, agentzh left, hercynium left, rv2733 left, pjcj left, eternaleye left, [particle] left, sjohnson left, yahooooo left, knewt2 left, cono left, Cyrus left, nothingmuch left, awwaiid left, bkeeler left, moritz_ left, mathw left, diakopter left, cj left, kolibrie left, _sri left, sbp left, s1n left, kloeri left, dmpk2k left, _ilbot2 left, sorear left, jjore_ left, astinus left, renormalist left, jql left, Sarten-X left, Sanitoeter left, broquaint left, drbean left, Helios left, IRSeekBot left, Tene left, Guest998 left, PZt left, sukria left, justatheory left, Grrrr left, arnsholt left, estrabd_afk left, betterworld left, huf left 05:51 redicaps joined 06:21 tylercurtis left 07:44 rgrau joined, elmex joined, constant joined, lkk- joined, salzh joined, cjk101010 joined, uniejo joined, pnate joined, Sanitoeter joined, dalek joined, sbp joined, Guest998 joined, TiMBuS joined, agentzh joined, hercynium joined, Patterner joined, colomon joined, pjcj joined, IllvilJa joined, cono joined, nadim joined, [Coke] joined, eternaleye joined, dual joined, christine joined, s1n joined, f00li5h joined, xinming joined, PZt joined, kloeri joined, hsb joined, araujo joined, skangas joined, gfldex joined, LionMade0fLions joined, cognominal joined, cls_bsd joined, PerlJam joined, tylerni7 joined, cosimo joined, chitragupt joined, rokoteko joined, lue joined, buubot joined, baest joined, p6eval joined, card.freenode.net sets mode: +vv dalek p6eval, zachy joined, ldd joined, Exodist joined, simcop2387 joined, mantovani joined, mtve joined, rhr joined, solarion joined, Maddingue joined, ajs joined, buu joined, perlygatekeeper joined, szabgab joined, bbkr joined, pmichaud joined, perigrin joined, sawyer_ joined, athomaso1 joined, saaki joined, zostay joined, szbalint joined, spinclad joined, BinGOs joined, charsbar_ joined, TimToady joined, mdxi_ joined, ascent_ joined, literal joined, john__ joined, hugme joined, gabiruh joined, hejki joined, Khisanth joined, pnu joined, thepler joined, cotto joined, kst joined, allbery_b joined, hudnix joined, Lorn joined, zamolxes joined, Juerd joined, pugssvn joined, card.freenode.net sets mode: +oovv pmichaud TimToady hugme pugssvn, patch joined, frettled joined, Util joined, jnthn joined, sykes_ joined, dimid joined, DemoFreak joined, meteorjay joined, ingy joined, lestrrat joined, Woody2143 joined, wolverian joined, frodwith joined, cxreg joined, phenny joined, m6locks joined, revdiablo joined, c1sung joined, stepnem joined, HarryS joined, Grrrr joined, felipe joined, Gothmog_ joined, tomaw joined, opx^away joined, [particle] joined, card.freenode.net sets mode: +oovo jnthn ingy phenny [particle], Cyrus joined, broquaint joined, drbean joined, moritz_ joined, bkeeler joined, awwaiid joined, nothingmuch joined, yahooooo joined, knewt2 joined, sjohnson joined, Helios joined, dmpk2k joined, arnsholt joined, _ilbot2 joined, cj joined, estrabd_afk joined, IRSeekBot joined, card.freenode.net sets mode: +oovv moritz_ arnsholt _ilbot2 IRSeekBot, mathw joined, betterworld joined, huf joined, sorear joined, jjore_ joined, card.freenode.net sets mode: +oo mathw sorear, diakopter joined, sukria joined, kolibrie joined, astinus joined, _sri joined, renormalist joined, jql joined, Tene joined, card.freenode.net sets mode: +oo diakopter Tene 07:48 _jaldhar joined 07:49 gfx joined, Sarten-X joined, jaldhar joined, nsh_ joined, sunnavy_ joined, japhb joined, jaldhar left
dalek ecza: c1c8f20 | sorear++ | (5 files):
Implement box/unbox primitives, improved scope handling
07:51
ecza: 2917971 | sorear++ | (5 files):
Expose box/unbox to NIL; make Str a real class
07:56 lkk- left 08:06 eternaleye left 08:07 Mowah joined
pugssvn r31632 | moritz++ | [t/spec] make qx/qqx tests more robust 08:11
TiMBuS in rakudo's pir ouutput, I often see the candidate list being set to random (null?) P registers. im not sure how to force it to tell me what it's trying to set.. at a guess, would it be a p6Invocation? 08:12
moritz_ just add a 08:17
$S999 = typeof $P0
printerr $S999
printerr "\n"
to it
then you know the type of the $P0 register
(yes, it's ugly to modify generated code, but for debugging it's OK :-)
TiMBuS wwwow why didnt i think of that? too busy analyzing the source to even think about modifying/running it 08:18
moritz_ because taking a step back as not an easy excercise :-) 08:19
08:20 redicaps left 08:29 dakkar joined
mathw Good localtime 08:31
08:31 cj left
moritz_ good morning mathw 08:32
08:33 cj joined
mathw Hi moritz_ 08:33
moritz_ arcanesentiment.blogspot.com/2010/0...reter.html monkey-typed continuation-based turing complete interpreter through libc calls... 08:34
08:34 thebird joined
mathw Wow 08:36
Scary-amazing 08:37
moritz_ right
arnsholt I'm just going to pop off and floss my brain =) 08:47
moritz_ free/libre open source brain! 08:49
frettled FLOSB? 08:51
08:52 Guest998 left, Guest998 joined 08:53 Guest998 is now known as pragma_
sorear stefan@stefans:~/niecza$ ./niecza -e 'say(42 / 3)' 09:01
14
moritz_ rakudo: say 42 / 3 09:02
p6eval rakudo bb6df2: OUTPUT«14␤»
moritz_ o/ they agree :-)
sorear two things, yapsi has, I don't 09:03
variables
control structures
moritz_ ingy: just saw your question in the backlog... in perfect Perl 6 you can give a routine two signatures, but NYI in Rakudo
sorear this will be fixed soon.
moritz_ sub (Int $x) | (Str $x) { say $x }
sorear but not tonight.
moritz_ std: sub (Int $x) | (Str $x) { say $x } 09:04
sorear out.
p6eval std 31632: OUTPUT«ok 00:01 115m␤»
moritz_ good night
dalek ecza: 5cd98c5 | sorear++ | (3 files):
Implement method declarations
ecza: 7d05860 | sorear++ | setting:
Implement .Str context, use it in &say
ecza: 440f8e2 | sorear++ | (3 files):
Implement Num literals
ecza: 4169610 | sorear++ | (4 files):
Implement four-function calculation on Num
09:08 xinming_ joined 09:09 ror_question_guy joined 09:11 xinming left, lestrrat is now known as lest_away 09:13 ror_question_guy left
frettled Hmm. 09:14
std: sub (Int $x) | (Num $x) | (Str $x) { say $x }
p6eval std 31632: OUTPUT«ok 00:01 115m␤»
frettled hah.
moritz_ std: sub (Int $x) | (Num $y) { } # should fail 09:15
p6eval std 31632: OUTPUT«ok 00:01 110m␤»
moritz_ std: sub (Int $x) | (Num $y) { say $x, $y } # should fail
p6eval std 31632: OUTPUT«ok 00:02 114m␤»
moritz_ TimToady: should probably complain about not using the same set of variables
09:20 Ross joined 09:23 cj left 09:26 clintongormley joined 09:27 salzh left 09:28 envi^home joined 09:33 cj joined
szabgab can someone please remind me how to type « and » ? 09:33
moritz_ compose <<
szabgab on what eitor?
editor?
or os?
moritz_ or altgr+z or y (depending on your keybord)
szabgab: on any OS that has a compose key :-) 09:34
I think everything that uses the X windowing system has one
09:35 ruoso joined
szabgab I have a key with a windows icon on it 09:36
moritz_ typically you need to configure a compose key before first use 09:37
szabgab oh and I have a ket for "right click", I did not know that :)
moritz_ gnome and KDE offer GUI configurators
I have keycode 115 = Multi_key keycode 117 = Multi_key in my .xmodmaprc for that 09:38
szabgab « » ok I managed these 09:39
configured right-alt to be the compose key
cono Got it :) «» 09:42
compose -> <3 09:47
09:49 proller joined
frettled moritz_: it's ≤≥ the same on a Mac; option + shift + v = «, no shift = ‹ :) 09:51
jnthn morning, #perl6
moritz_ good late morning, jnthn :-) 09:52
jnthn: I've patched quoting.t, hope it works on windows now
szabgab 09:56
lovely :)
szbalint it is indeed
cono rakudo: multi sub infix:«÷»(Num $a, Num $b) {pir::div__NNN($a, $b)} say 5÷2
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Confused at line 20, near "multi sub "␤»
cono What am I doing wrong? 09:57
pugssvn r31633 | jani++ | Changed from shtml to html, renamed CSS file, cleaned up pre-formatting a bit
jnthn cono: missing ; after the } 09:59
rakudo: multi sub infix:«÷»(Num $a, Num $b) {pir::div__NNN($a, $b)}; say 5÷2
p6eval rakudo bb6df2: OUTPUT«2.5␤»
cono jnthn: ah, thanks ☺ 10:00
10:02 ruoso left 10:03 pmurias joined 10:07 masak joined, agentzh left
jnthn lolitsmasak 10:07
masak oh hai, #perl6!
jnthn moritz_: quoting.t is now WIN on Win32 10:08
er, PASS 10:09
:-)
szabgab is looking for a Pass32 operating system
moritz_ nonono, let's start with pass64 10:10
szabgab Fail32 and Pass64 10:11
sorear phenny: ask TimToady How do you work around code.google.com/p/ibus/issues/detail?id=526 ? ibus and compose-<-< seem to be incompatible 10:12
phenny sorear: I'll pass that on when TimToady is around.
bbkr masak: there is typo "becumes" in lates article on planetsix.perl.org/
masak bbkr: thanks, fixing.
fixed. bbkr++ 10:13
it'll take a few minutes for it to propagate to planetsix.perl.org/
bbkr :) 10:14
rakudo: if "z" -> $a { say $a } # curious... 10:17
p6eval rakudo bb6df2: OUTPUT«z␤»
masak bbkr: its use is not immediately obvious. but there are "interesting values of 'true'" in Perl 6, such as the value returned from some routine the searches for things. 10:23
if find-first-match() -> $match { ... }
bbkr i know, this syntax is awesome! 10:24
jnthn
.oO( if i-can-haz-cheezburger() -> $nom { omnom($nom) } )
10:25
masak :P
jnthn: bythewayitsmidtermreportsyay! 10:26
jnthn omgyay!
colomon o/ 10:27
jnthn o/ colomon
moritz_ \o colomon. Did you enjoy your vacations?
masak colomon \o
colomon it was awesome
pmurias moritz_: hi, i'm brewing a fresh perl with perlbrew to check if Mildew installs on it 10:28
moritz_ pmurias: did diakopter give you shell access yet?
pmurias diakopter: ping 10:29
colomon eight hours fishing a day....
moritz_ sounds like stress... not :-)
pmurias moritz_: haven't spoken to him yet
colomon most relaxing vacation I've had in a long time. 10:30
moritz_ is envious, but comforted by the thought of visiting YAPC::EU 10:31
arnsholt is jealous of YAPC 10:32
(going to, that is)
10:33 tadzik joined
moritz_ I'm thinking about applying for a Hague grant 10:33
jnthn moritz_: +1 10:34
moritz_ subject: non-string error messages for Perl 6
s/error messages/errors/
masak \o/
moritz_: go for it!
10:34 sftp joined
jnthn will be interested to see it 10:34
masak I've sometimes had the urge to trawl the synopses for all different types of error messages. :)
moritz_ come up with a spec for error objects, error classification, standard error messages, I18N hooks
mathw is going to have to reserve time and money for YAPC::EU next year... or some other European Perl event. After he's renewed his passport, too. 10:35
moritz_ ok, two positive responses so far
jnthn moritz_: ooh, we could have lolspeak errors 10:36
.oO( there's more than one silly way to test I18N support )
pmurias moritz_: spec only or an implementation too?
10:36 jedai joined
moritz_ jnthn: I thought more about German error messages as proof-of-concept, but of course lolspeak is far superior 10:36
pmurias: implementation too
10:37 tadzik left
mathw lolspeak 10:37
Esperanto
Lojban
there are no limits
moritz_ limited to languages I know :-)
jnthn
.oO( Ich kann haz Käseburger? )
mathw well you don't have to do them all yourself
moritz_ which obviously excludes English :-)
mathw Lojban would probably take several months just to sort out the vocabulary though 10:38
moritz_ mathw: sure, but the proof-of-concept should be something that makes sense to me
mathw so, lolspeak then :)
or German
German's good
10:39 sftp_ joined, sftp left
moritz_ pmurias: I plan to discuss my spec ideas with all implementors too :-) 10:40
10:46 tadzik joined 10:47 timbunce joined 10:48 tadzik left
masak ah; the midterm evaluations cannot be made until 19:00 UTC today. 10:54
10:55 meppl joined
jnthn Aww! 10:56
masak jnthn: re what you just sent to p6c: does that still hold if Bool ~~ Int? 11:04
jnthn rakudo: say Bool ~~ Int
p6eval rakudo bb6df2: OUTPUT«0␤»
jnthn masak: No 11:05
It wouldn't
I'm still unconvvinced.
(On Bool being an enum.)
masak I would love to see Rakudo have a more fleshed-out enum implementation soonish. 11:06
jnthn Yes, I know.
masak maybe I should put my tuits where my mouth is and dig in and see what I can do. :) 11:07
jnthn Rumour has it tuits are tasty. ;-)
masak I had a few tuits but I eated them... :/ 11:09
11:11 gfx left
frettled Whether tuition is tasty or not is probably something that's best discussed somewhere else. 11:13
frettled probably ought to have a look at how Rakudo is implemented, then run away screaming.
arnsholt The tools are actually quite nice 11:14
NQP and PAST are pretty straightforward to work with
11:16 tadzik joined
frettled :) 11:20
11:22 _jaldhar is now known as jaldhar 11:32 redicaps joined
cono rakudo: multi sub infix:«÷» (Num $a, Num $b) { $a/$b }; say 5÷2 11:36
p6eval rakudo bb6df2: OUTPUT«2.5␤»
cono jnthn: could you please try this example in REPL? multi sub infix:«÷» (Num $a, Num $b) { $a/$b }; say 5÷2
moritz_ the REPL is known to be b0rked wrt non-ASCII character 11:39
11:42 rv2733 joined
cono moritz_: ah, thanks 11:45
12:05 sawyer_ left 12:12 sawyer_ joined 12:18 ocean joined, fda314925 joined 12:27 xinming_ is now known as xinming 12:35 ocean left 12:42 lest_away is now known as lestrrat
moritz_ duckduckgo.com/?q=perl+6&v= perl6.org as first result \o/ 12:42
all ini all it seems to return very sane information :-) 12:44
12:47 baest left 12:48 lestrrat is now known as lest_away 12:50 skids joined 12:57 rgrau_ joined 13:05 lest_away is now known as lestrrat
moritz_ the example graphs from scruffy.rubyforge.org/ are all gone :( 13:25
I wanted to motivate people to port scruffy to Perl 6
but I think they will be far less impressed if there are no shiny graphs to show 13:26
and in the bug tracker there is a report about it from 2009-09 13:27
mathw :( 13:29
moritz_ maybe I should really port Chart::Clicker instead
colomon what happened in the p6 packaging world while I was out? is pls working? 13:30
moritz_ don't think so
bbkr is this ticket still valid? rt.perl.org/rt3/Ticket/Display.html?id=62002 looks like it was created before Mu object was added to spec.
mathw colomon: you might want to go out for a bit longer :)
moritz_ bbkr: well, it's now s:g/Object/Mu/ 13:31
bbkr: but all in all we still need a good default .perl method
pmurias moritz_: why are the example graphs all white
moritz_ pmurias: because they've fucked it up. And I can't find anybody who could fix it 13:32
pmurias: and I'm kinda disappointed, because when I decided to port that lib to Perl 6 (back in 2009 I guess) it was all pretty, and a good incentive
jnthn Port it and then be like "and unlike Ruby we can show you thre pretty!" ;-) 13:33
moritz_ jnthn: problem is, I don't want to port it all by myself
jnthn Ah :-) 13:34
bbkr moritz_: thanks. but since both code samples work then the main problem in ticked - .perl method not available in user defined class - is solved (despite output it generates)
ticket*
moritz_ jnthn: so I want to show people "look at these pretty graphs, don't you want to write that for Perl 6 too?"
bbkr: if you say so... then somebody will open a ticket about Any.perl being useless
I don't mind either way
jnthn waybackmachine? :-) 13:35
pugssvn r31634 | pmurias++ | [STD-dist] add missing prereqs 13:36
r31635 | pmurias++ | [mildew] add missing dependencies
r31636 | pmurias++ | [mildew-setting-smop] remove useless use statements from MyBuilder
jnthn replay.waybackmachine.org/200802160...forge.org/
moritz_: ^^
pugssvn r31637 | pmurias++ | [smop] add missing dependencies
r31638 | pmurias++ | [smop] disable the p5 module temporarly as it doesn't work on all perls
r31639 | pmurias++ | [mildew] add missing prereq
pmurias moritz_: got mildew to work on a fresh 5.12.1 13:37
moritz_: what's the perl version on the evalbot box?
moritz_ jnthn: ah, completely forgot about that, thanks
pmurias: there's a 5.12.1 and a 5.10.0 available
13:38 redicaps left
bbkr rakudo: module M { enum E <a b> }; M::E::a; 13:39
p6eval rakudo bb6df2: OUTPUT«Can not find sub M::E::a␤ in main program body at line 1␤»
pmurias moritz_: which one did you try to install mildew last time
moritz_ pmurias: the 5.10.0 one 13:40
pmurias moritz_: btw thanks for helping out with mildew installation
moritz_ pmurias: you're welcome 13:42
13:45 Lorn left 13:46 Lorn joined
pmurias moritz_: what do you use for having to perl's perlbrew? 13:47
* perls
moritz_ pmurias: uhm, I just used the system perl, and configured the other manually with -Dprefix=... 13:48
no perlbrew involved
bbkr rakudo: my %h = "bike"=>"banshee","car"=>"dodge"; say %h{*}.values.say # curious.. 13:49
p6eval rakudo bb6df2: OUTPUT«Any()␤1␤»
bbkr bug? or NYI?
moritz_ NYI, I'd say
pmurias moritz_: if you have time what we could attempt is to install mildew into it's own local-lib dir without using the other local::lib, it would duplicate some dependencies but that should avoid all the strange problems 13:50
s/local-lib/local::lib/
moritz_ pmurias: I could set up a different unix user with its own local::lib
bbkr moritz_: thanks
13:51 uniejo left
moritz_ pmurias: and use that for installing a perl + mildew... do you think that's sane? 13:51
pmurias yes 13:52
you want to have a seperate perl for mildew? 13:53
13:53 uniejo joined
moritz_ yes. Just to avoid repeating the current mess. 13:53
pmurias the system one should be fine 13:54
moritz_ that's a 5.10.0, not 5.12
13:55 uniejo left
pmurias moritz_: 5.10.0 is enough 13:55
but OTOH the system perl might have some evil bitrotten modules installed
moritz_: does diakopter have a disk space limit on his server? 13:56
moritz_ 28G free
bbkr rakudo: multi a (Str $a, Str $b) { [+$a, +$b] }; multi a (Array $a, $b where '+') { [+] @($a) }; ('1', '2', '+').reduce: &a; # checking rt.perl.org/rt3/Ticket/Display.html?id=66352
p6eval rakudo bb6df2: ( no output )
moritz_ bbkr: don't rely on p6eval in the error case right now, it's a bit unreliable :/ 13:57
bbkr moritz_: thanks. I'm just confirming results that i do on local machine on Kiev build. test above should reduce using second multi method, right? 13:58
rakudo: multi a (Str $a, Str $b) { [+$a, +$b] }; multi a (Array $a, $b where '+') { [+] @($a) }; say ('1', '2', '+').reduce: &a; # expecting 3... 13:59
moritz_ first with the Str, Str and then with Array, $b where '+' multi I think
p6eval rakudo bb6df2: OUTPUT«3␤»
pmurias moritz_: so using a seperate perl seems sensible
colomon has no idea what bbkr is trying to do there. Has someone been adding features?
bbkr colomon: no, i'm just checking old RT tickets 14:00
moritz_ pmurias: so my plan is now: 1) install perlbrew in ~mildew/perlbrew/
2) use perlbrew to install a perl-5.12.1 in ~mildew/usr/
3) use the new perl to install all the modules, and mildew 14:01
sane?
not sane 14:02
because I need to set PERL5LIB for perlbrew to find its module
which will likely confuse further installations 14:03
better ideas? install perlbrew on the system?
pmurias moritz_: better idea read App::perlbrew 14:04
14:04 alester joined
pmurias 's docs 14:04
moritz_ that suggests it won't be a problem, right?
pmurias search.cpan.org/~gugod/App-perlbrew...STALLATION
colomon what does $b where '+' mean? 14:05
moritz_ colomon: it smart-matches against the '+'
oh
pmurias moritz_: perlbrew doesn't need any fiddling with PERL5LIB
moritz_ ok
pmurias keep it mind that i first used it today so i'm no expert on it 14:06
after perlbrew installs perl-5.12.1 install cpanm 14:08
manual installation from CPAN of it should be easy enough
then cpanm Dist::Zilla and dzil install --install-command 'cpanm .' in the same modules as yesterday 14:09
14:10 PacoLinux joined
moritz_ perlbrew fails to create a Makefile for perl 14:12
14:13 gbacon joined 14:15 plainhao joined
bbkr rakudo: my @list = 1,2,Code; say @list.sort: { $^a cmp $^b } 14:15
p6eval rakudo bb6df2: OUTPUT«12Code()␤»
bbkr example above should sort by class name? 14:17
rakudo: my @t = Code, Array; say @t.sort
p6eval rakudo bb6df2: OUTPUT«Array()Code()␤»
moritz_ the default comparison stringifies if it can't find a better way 14:18
bbkr moritz_: rt.perl.org/rt3/Ticket/Display.html?id=67010 - so this one is fixed, can i steal it for tests? 14:19
moritz_ bbkr: sure
cono rakudo: Rat.new(½).perl.say 14:22
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 20␤»
14:22 tylercurtis joined
pmurias moritz_: how so? 14:22
how does perlbrew fail? 14:23
moritz_ with "no makefile and no target"
which seems to imply that configure aborted with an error
but its output doesn't end with an error
anyway, I've now checkout out a copy of perl-5.12.1 from the git repo 14:24
and try to let perlbrew do its magic on it
seems to work so far, just takes some time
pugssvn r31640 | bbkr++ | [t/spec] tests for RT #67010 Error with glibc backtrace dump when cmp used wrong 14:26
14:29 tadzik left 14:30 ash_ joined 14:32 rindolf joined
bbkr rakudo: role Array {} # this shouldn't fail, right? 14:34
p6eval rakudo bb6df2: ( no output )
moritz_ I think it should 14:35
std: role Array { }
p6eval std 31639: OUTPUT«ok 00:01 110m␤»
moritz_ hu
std disagrees with me
it's probably right
tylercurtis std: role Foo { }; role Foo { } 14:36
p6eval std 31640: OUTPUT«ok 00:01 110m␤»
tylercurtis std: class Foo { }; class Foo { } 14:37
p6eval std 31640: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/6u_xDK7YnJ line 1:␤------> class Foo { }; class Foo ⏏{ }␤Illegal redeclaration of symbol 'Foo' (see line 1) at /tmp/6u_xDK7YnJ line 1:␤------> class Foo {
..};…
moritz_ ah right, roles are multis by nature
jnthn Aye
Though we could sometimes detect the signature overlap and whine earlier.
bbkr cool, then rt.perl.org/rt3/Ticket/Display.html?id=67768 looks like fixed 14:38
tylercurtis rakudo: role Foo { method f { say 1; } }; class A does Foo { }; A.new.f; role Foo { method f { say 2; } }; class B does Foo { }; B.new.f; A.new.f 14:40
p6eval rakudo bb6df2: ( no output )
14:40 macdaddy joined
rindolf Hi all. 14:40
moritz_ hi 14:41
14:41 macdaddy is now known as Guest22357
rindolf moritz_: what's up? 14:41
moritz_ the sun
bbkr rakudo: role Foo { method foo {say 666;} }; class A does Foo {}; A.new.foo
p6eval rakudo bb6df2: ( no output )
rindolf clubs moritz_ with a dictionary.
moritz_ ouch. That was not polite
tylercurtis rakudo: say 1;
p6eval rakudo bb6df2: OUTPUT«1␤»
moritz_ it's really the sun that dictates most of our lives around here 14:42
rindolf clubs moritz_ with an etiquette guide.
bbkr tylercurtis: on Kiev build this returns "Could not find sub &say", which is weird
moritz_ by shining extremely and usually powerful
and so it does on up-to-date rakudo 14:43
it's the long-standing cannot-use-lexicals-from-the-setting-in-a-role bug
tylercurtis rakudo: role Foo { method f { 1.say; } }; class A does Foo { }; A.new.f; role Foo { method f { 2.say; } }; class B does Foo { }; B.new.f; A.new.f
p6eval rakudo bb6df2: OUTPUT«1␤1␤1␤»
moritz_ pmurias: perl installed, attacking cpanm now... 14:44
tylercurtis rakudo: multi f () {1.say;}; f(); multi f () { 2.say; }; f(); 14:45
p6eval rakudo bb6df2: OUTPUT«Ambiguous dispatch to multi 'f'. Ambiguous candidates had signatures:␤:()␤:()␤␤ in main program body at line 20:/tmp/vfrQEOhjNk␤»
14:47 PacoLinux left 14:49 PacoLinux joined, patspam joined
masak colomon, moritz_: pls is "working" in that it has been shown to work for installing json. it needs much field testing with installing all other projects. 14:56
jnthn Plus the Win32 tweaks
Though I put some stuff into Rakudo that hopefully means all the platform specific stuff that shells out can go.
moritz_ masak: has it installed a project with a dependency yet? 14:57
jnthn: a function for getting the current working directory would be handy too 14:58
masak moritz_: no, not really.
but the tests for it are all there.
pugssvn r31641 | bbkr++ | [t/spec] tests for RT #67768 Cannot declare a role with a name already assigned to a class 15:01
jnthn rakudo: say pir::new__Ps('OS').cwd() 15:04
p6eval rakudo bb6df2: OUTPUT«/home/p6eval/rakudo␤»
jnthn Should be easy to write 15:05
rakudo: multi cwd() { pir::new__Ps('OS').cwd() }; say cwd();
bbkr rakudo: say (1..10).sort(&rand)
p6eval rakudo bb6df2: OUTPUT«/home/p6eval/rakudo␤»
rakudo bb6df2: ( no output )
ingy greetings 15:07
moritz_ \i/ngy
bbkr where can i put tests for rt.perl.org/rt3/Ticket/Display.html?id=68112 ? sort or signature/arity ? 15:08
ingy \mmm/oritz
moritz_ bbkr: sort 15:09
bbkr moritz_: thanks
pugssvn r31642 | bbkr++ | [t/spec] tests for RT #68112 sort doesnt accept &rand (or zero-arg subs in general) 15:17
tylercurtis rakudo: .say for (1..10).sort(* % 3} 15:18
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 20␤»
tylercurtis rakudo: .say for (1..10).sort(* % 3)
p6eval rakudo bb6df2: OUTPUT«3␤6␤9␤1␤4␤7␤10␤2␤5␤8␤»
cono how can I omit "" in new? pastebin.com/VtgXMmme wanna: new(½) 15:20
ingy rakudo: my %h; %h{'x'} = 1; say %h.perl
masak bbkr: you just resolved #68112 because it works on Kiev, but I opened it again, because it fails on master.
p6eval rakudo bb6df2: OUTPUT«{"x" => 1}␤»
moritz_ cono: you'd have add a parsing rule for it
cono: which is not yet implemente in Rakudo 15:21
ingy rakudo: my %h; %h{'x'} = 1; %h = (); say %h.perl
p6eval rakudo bb6df2: OUTPUT«{}␤»
cono moritz_: Can I make it in nqp ?
moritz_ cono: you can patch src/Perl6/Grammar.pm and add a term:sym<⅔> { <sym> } 15:22
bbkr masak: I'm sorry
cono moritz_: thanks :) I will try
masak bbkr: no worries. just letting you know, in case you wonder why it's open again.
bbkr masak: should i revert it from test suite untill expected behavior is determined? 15:24
15:25 isBEKaml joined
moritz_ bbkr: just fudge it for now 15:25
masak bbkr: might want to fudge it as "todo".
bbkr masak: ok, fudging
masak bbkr++
15:30 colomon left
pugssvn r31643 | bbkr++ | [t/spec] tests for RT #68112 sort doesnt accept &rand (or zero-arg subs in general) - fudged 15:35
pmurias masak: how's installation?
masak pmurias: in pls? 15:36
it's good, as far as I've tested it.
pmurias masak: meant to ask moritz
masak: how's installation?
masak pmurias: try again :P 15:37
you need to type M, O, and *then* tab-complete.
[Coke] bbkr: are you trying to support all the unicode fractions?
jnthn And that's *still* ambiguous. :-)
masak jnthn: yes, but it tends to default to moritz_ :) 15:38
[Coke] I think you need the quotes unless you're going to change the grammar to allow those to be interpreted as numbers.
(which would be a nifty patch.)
bbkr [Coke]: what do you mean by that?
moritz_ pmurias: installing dzil worked... now I'm tackling mildew
[Coke] bbkr: ... what do I mean by ... "you need the quotes" ? 15:39
masak my loops post made hacker news. news.ycombinator.com/item?id=1508071 -- they think 'repeat while EXPR { ... }' is goofy. I do too. :)
bbkr [Coke]: no, by "support all the unicode fractions" 15:40
15:40 xinming left
[Coke] bbkr: whoops. I mean "cono", not "bbkr". =-) 15:41
[Coke] did not review backscroll closely enough.
masak bbkr: re "determine behavior of 0-arity methods passed to sort" -- (1) it's not a method :) (2) I think the behavior is already clear, at least if the spec says this should act like a Schwartzian transform, which I think it does. 15:42
then the behavior is "collect all (random) values, sort on them". 15:43
ingy yaml-pm6 now handles dumping duplicate and circular references! 15:44
15:45 xinming joined
masak ingy: wow! 15:45
ingy++
bbkr masak: thanks, I didn't know about Schwartzian transform. adding this info to ticket. 15:46
masak bbkr: en.wikipedia.org/wiki/Schwartzian_transform
15:46 Trashlord joined
ingy masak: this things all work: github.com/ingydotnet/yaml-pm6/blob...t/dump.tml 15:47
cono [Coke]: no, just for Rats. It present only for numerator less than denominator
I guess it would be nice to make another one constructor for Rational numbers
Rat.new(⅞).perl.say something like that
masak ingy: that is really cool. 15:48
ingy masak: thanks! 15:51
[Coke] cono: so, unless the perl6 grammar changes to make those numeric and not "random unicode", you'll need the strings. 15:52
ingy masak: (it's powered by ufo :)
masak \o/
ingy: doesn't it feel a bit slow to re-generate the Makefile each time?
ingy masak: I only use it for install 15:53
masak ah, ok.
ingy I have my own Makefile for testing
masak :)
ingy I can do make t/specific.t
you should add that
we should also think about making the Makefile distributable 15:54
[Coke] portable makefiles suck. 15:55
... less than ant, but still. =-)
ingy [Coke]: I said _think_ about it 15:56
:)
15:56 tadzik joined
moritz_ speaking of options... we could add --prefix for installing location 15:56
masak ingy: yes, I'd be happy to add 'make t/specific.t' 15:57
moritz_: sounds like a neat idea.
bbkr rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; foo(:a, :b)
p6eval rakudo bb6df2: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:(Any :a($a)!, *%_)␤:(Any :b($b), *%_)␤␤ in main program body at line 20:/tmp/J9JYdkj14S␤»
ingy masak: can I have a bit for ufo? 15:58
moritz_ ... and should I add it to hugme?
15:58 justatheory joined
masak ingy: you now have it. 15:59
moritz_: please, go ahead.
I'll keep a fairly close eye on commits landing in ufo, though. and I'll probably revert things I feel hesitant about.
I'd like to keep a slightly closer guard on it than I did with proto. :)
bbkr std: sub foo; 16:01
p6eval std 31642: OUTPUT«===SORRY!===␤Malformed block at /tmp/C2QFrAHCvC line 1:␤------> sub foo⏏;␤ expecting any of:␤ new name to be defined␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 110m␤»
bbkr rakudo: sub foo;
p6eval rakudo bb6df2: OUTPUT«Could not find sub &foo␤ in main program body at line 20:/tmp/etRnoXzPKV␤»
moritz_ mildew@debian:~$ time !!
time mildew -e 'say 1'
1
real 0m7.061s
\o/ it runs
/o\ it's not that fast...
isBEKaml 7secs? :O
16:02 envi^home left
masak that's slower than Yapsi :) 16:02
ingy masak: \o/
masak granted, STD parsing takes some time...
cono [Coke]: or I can change perl6 grammar :)
moritz_ hugme: reload 16:03
hugme moritz_: reloaded successfully
moritz_ hugme: show ufo
hugme moritz_: the following people have power over 'ufo': P⁣erlJam, T⁣imToady, [⁣particle], c⁣olomon, j⁣nthn, m⁣asak, m⁣berends, m⁣oritz_, p⁣michaud. URL: github.com/masak/ufo/
tylercurtis .u fraction slash
phenny U+2044 FRACTION SLASH (⁄)
masak moritz_++
moritz_ pmurias: on the custom perl, I can install CHI without problems 16:04
but the mere presence doesn't speed it up
bbkr rakudo: try { 1.say CATCH { say "inside catch" } }; 16:05
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 20␤»
bbkr rakudo: try { 1.say; CATCH { say "inside catch" } };
p6eval rakudo bb6df2: OUTPUT«1␤»
bbkr rakudo: try { say abc; CATCH { say "inside catch" ~ $! } }; 16:07
p6eval rakudo bb6df2: OUTPUT«inside catchCould not find sub &abc␤»
isBEKaml we have try-catch already? great! (can I assume that's p5's signals in p6? ^_^ )
rakudo: try { die "foo!"; CATCH { say "caught" ~ $! } }; 16:08
masak which phasers trigger on a redo()?
p6eval rakudo bb6df2: OUTPUT«caughtfoo!␤»
moritz_ decommutes 16:09
isBEKaml btw, should `catch` always be in caps? catch is treated like a phaser?
TimToady masak: I would say none of them, probably; it's just a goto the top of the block
phenny TimToady: 10:12Z <sorear> ask TimToady How do you work around code.google.com/p/ibus/issues/detail?id=526 ? ibus and compose-<-< seem to be incompatible
isBEKaml rakudo: try { die "foo!"; catch { say "caught" ~ $! } };
p6eval rakudo bb6df2: ( no output )
masak can you do next() in a LAST block and "abort" any last() inside the loop? 16:10
16:10 ruoso joined
isBEKaml rakudo: try { die "foo!";} catch { say "caught" ~ $! } ; 16:10
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Confused at line 20, near "try { die "␤»
bbkr test for rt.perl.org/rt3/Ticket/Display.html?id=68728 should be put in S04-statements/try.t ? I'm not exactly sure what was causing the bug...
16:10 Cyrus left 16:11 Cyrus joined
masak I think 'next' in a LAST block will actually just naturally fall out as resuming the loop :) if there is anything to resume, that is. 16:11
but it's scary-ish, since LAST actually executes after the loop has finished. 16:12
pmurias ruoso: hi 16:13
bbkr rakudo: my $a = "oh hai"; say $a .= "uc" 16:14
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Quoted method name requires parenthesized arguments at line 20, near ""␤»
bbkr std: my $a = "oh hai"; say $a .= "uc"
p6eval std 31643: OUTPUT«===SORRY!===␤Unsupported use of . to concatenate strings or to call a quoted method; in Perl 6 please use ~ to concatenate, or if you meant to call a quoted method, please supply the required parentheses at /tmp/HDXgt_YnN3 line 1:␤------> my $a = "oh hai";
..sa…
pmurias moritz_: the mildew slowness is caused by the high startup cost
moritz_: App::Persistent will take care of that but i'm not using it atm as it's not yet on CPAN 16:15
bbkr rakudo: my $a = "oh hai"; say $a .= "uc"() 16:16
p6eval rakudo bb6df2: OUTPUT«OH HAI␤»
ruoso hi pmurias 16:17
tylercurtis rakudo: my $a = "oh hai"; say $a .= uc; # simpler way if you know the method at program-write time.
p6eval rakudo bb6df2: OUTPUT«OH HAI␤»
isBEKaml rakudo: my $a = "hohai"; my $b = "uc"; say $a .= $b; # will this work?
p6eval rakudo bb6df2: OUTPUT«Method '!dispatch_variable' not found for invocant of class 'Str'␤ in main program body at line 20:/tmp/4JC2BH6oPS␤» 16:18
isBEKaml hmmm
masak rakudo: my $a = "hohai"; my $b = "uc"; say $a .= "$b"();
pmurias ruoso: Mildew installs on a fresh perl
p6eval rakudo bb6df2: OUTPUT«HOHAI␤»
16:18 rindolf left
isBEKaml hmmm, you need to quote an already quoted variable? 16:18
masak isBEKaml: "already quoted"? :) 16:19
isBEKaml ""$b""
:D
masak isBEKaml: you need the quotes if you want to do something dynamic.
cognominal What is the status of Whatever regarding to dispatching? On one hand, it should be accepted for any type and as such will create ambiguity. On the other, not all code is tooled to DWIM when receiving a Whatever?
isBEKaml I see.. Somehow I find using the quotes something of a nuisance.. :) 16:20
masak isBEKaml: in this case, they mean "the method name is not literally this".
PerlJam isBEKaml: purposeful nuisance. 16:21
masak that, too.
isBEKaml rakudo: my $a = "hohai"; my $b = "uc"; say $a .= $b[](); ## :O :O
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Confused at line 20, near "say $a .= "␤»
tylercurtis rakudo: my $a = "hohai"; my $b = "uc"; say $a."$b"
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Quoted method name requires parenthesized arguments at line 20, near ""␤»
tylercurtis rakudo: my $a = "hohai"; my $b = "uc"; say $a."$b"()
masak rakudo: my $m = method { say self + 10 }; 32.$m # you can do this, though
p6eval rakudo bb6df2: OUTPUT«HOHAI␤» 16:22
rakudo bb6df2: OUTPUT«42␤»
bbkr std: my $a = "oh hai"; say $a .= "uc"()
p6eval std 31643: OUTPUT«Potential difficulties:␤ Useless use of quotes at /tmp/OiJYK6kYDj line 1:␤------> my $a = "oh hai"; say $a .= "uc"⏏()␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/OiJYK6kYDj line 1:␤------> my $a = "oh hai"; say $a
...=⏏[3…
tylercurtis std: my $a = "oh hai"; say ($a .= "uc"()) 16:23
p6eval std 31643: OUTPUT«Potential difficulties:␤ Useless use of quotes at /tmp/0XjOgSjbpu line 1:␤------> my $a = "oh hai"; say ($a .= "uc"⏏())␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/0XjOgSjbpu line 1:␤------> my $a = "oh hai"; say ($a
...=⏏…
tylercurtis std: my $a = "oh hai"; my $b = "uc"; say ($a .= "$b"())
p6eval std 31643: OUTPUT«Potential difficulties:␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/zxnvAhdTvS line 1:␤------> $a = "oh hai"; my $b = "uc"; say ($a .=⏏ "$b"())␤ok 00:01 112m␤»
tylercurtis std: my $a = "oh hai"; my $b = "uc"; $a .= "$b"(); say $a;
p6eval std 31643: OUTPUT«Potential difficulties:␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/rxJIR43oom line 1:␤------> my $a = "oh hai"; my $b = "uc"; $a .=⏏ "$b"(); say $a;␤ok 00:01 111m␤»
isBEKaml masak: I guess the reason why we can do 32.$m is it's just an anon method. not quite the case in $b= "uc". 16:24
tylercurtis std: my $a = "oh hai"; my $b = "uc"; $a .= $b(); say $a;
isBEKaml (hopefully , I'm not wrong..)
p6eval std 31643: OUTPUT«Potential difficulties:␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/r0BOngt_wl line 1:␤------> my $a = "oh hai"; my $b = "uc"; $a .=⏏ $b(); say $a;␤ok 00:01 111m␤»
masak isBEKaml: right, it's completely different use cases, really.
tylercurtis doesn't understand.
std: my $a = "hohai"; my $b = "uc"; say $a."$b"() 16:25
p6eval std 31643: OUTPUT«ok 00:01 111m␤»
tylercurtis std: my $a = "hohai"; my $b = "uc"; say $a."$b"();
p6eval std 31643: OUTPUT«ok 00:01 111m␤»
TimToady phenny tell sorear Alas, I don't remember how I got compose to work with ibus-anthy, but I did, so at least it's possible. One thing I failed on was getting it to use my own .XCompose though.
masak swimming &
16:25 masak left
tylercurtis std: my $a = "hohai"; my $b = "uc"; say $a .= "$b"(); 16:25
p6eval std 31643: OUTPUT«Potential difficulties:␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/FAb5P6eA5U line 1:␤------> my $a = "hohai"; my $b = "uc"; say $a .=⏏ "$b"();␤ok 00:01 111m␤» 16:26
bbkr RT is rt.perl.org/rt3/Ticket/Display.html?id=69204 now I'm confused if it's solved or not. seems to not be compatible with STD
tylercurtis rakudo: my $a = "hohai"; my $b = "uc"; say $a .= "$b"()
p6eval rakudo bb6df2: OUTPUT«HOHAI␤»
isBEKaml tylercurtis: yes, I was confused too. STD & rakudo at disparity here.
TimToady .$m is for hard refs only
."$m" is symbolic
we always try to keep them distinct in p6 16:27
isBEKaml rakudo: my $a = "hohai"; my $b = &uc; say $a .= $b;
p6eval rakudo bb6df2: OUTPUT«Method '!dispatch_variable' not found for invocant of class 'Str'␤ in main program body at line 20:/tmp/vDMyRhvC9u␤»
isBEKaml rakudo: my $a = "hohai"; my $b = &uc; say $a .= $b();
p6eval rakudo bb6df2: OUTPUT«Method '!dispatch_variable' not found for invocant of class 'Str'␤ in main program body at line 20:/tmp/5aUDyabZ8z␤»
16:27 rgrau_ left
isBEKaml rakudo: my $a = "hohai"; my $b = &uc; say $a .= "$b"(); 16:28
p6eval rakudo bb6df2: OUTPUT«HOHAI␤»
16:28 eternaleye joined
tylercurtis std: my $a; my $b; $a .= "$b"(); 16:28
isBEKaml uhh, I don't understand. isn't $b = &uc; actually making a hard ref?
p6eval std 31643: OUTPUT«Potential difficulties:␤ Unsupported use of .= as append operator; in Perl 6 please use ~= at /tmp/2jGuo8LGpY line 1:␤------> my $a; my $b; $a .=⏏ "$b"();␤ok 00:01 111m␤»
TimToady yes, so the "$b" should not work 16:29
16:29 jaldhar left
TimToady but that's semantics, which std doesn't check 16:29
PerlJam apparently neither does rakudo on this point :)
isBEKaml rakudo: my $a = "hohai"; my $b = &uc; say $a .= $b(); ## hard ref, doesn't work. 16:30
p6eval rakudo bb6df2: OUTPUT«Method '!dispatch_variable' not found for invocant of class 'Str'␤ in main program body at line 20:/tmp/WIYAuX4pFS␤»
TimToady rakudo: sub foo; say &foo
p6eval rakudo bb6df2: OUTPUT«Could not find sub &foo␤ in main program body at line 20:/tmp/II_4K30ijl␤»
TimToady rakudo sub foo {...}; say &foo
rakudo: sub foo {...}; say &foo
p6eval rakudo bb6df2: OUTPUT«foo␤»
tylercurtis TimToady: should $a .= "$b"() produce that syntax error in std?
16:30 lichtkind joined
TimToady it's not a syntax error 16:31
it's a usage warning
PerlJam TimToady: should it stringify with the & ?
16:31 gbacon left
tylercurtis Oh. Right. 16:31
TimToady which doesn't look ahead far enough to see the ()
tylercurtis didn't notice the ok at the end.
TimToady and probably should
PerlJam so, ""() is never a valid construction? 16:33
TimToady std: my $a; my $b; $a.="$b"();
p6eval std 31643: OUTPUT«ok 00:01 110m␤»
TimToady sure it is
ingy rakudo: %h = (f => 5); say %h.elems
16:34 ilogger2 joined
p6eval rakudo bb6df2: OUTPUT«0␤» 16:34
ruoso pmurias, that's awesome... 16:38
what's the next step? "use v6-mildew"?
ingy moritz_: do you run the evalbot? 16:41
moritz_ ingy: yes 16:43
ingy moritz_: is there any way to have modules installed with it? 16:45
moritz_ ingy: yes. Write a script that clears the installation site, fetches and builds the modules. I'll add it to the rebuild script. 16:46
ingy moritz_: can I write it in /bin/sh ? 16:47
moritz_ ingy: sure
ingy moritz_: is your entire evalbot setup installable from git? 16:48
moritz_ ingy: no 16:49
TimToady rakudo: die 'foo'; CATCH { say $! } # by strict reading of spec this should not mark $! as handled, but die again with "foo"
p6eval rakudo bb6df2: OUTPUT«foo␤»
TimToady jnthn: ^^^
moritz_ ingy: just assume that there's a ~/p/bin/perl6 available
TimToady only .defined and .Bool mark as handled
moritz_ I thought if there's a matching when-block it's also handled? 16:50
TimToady yeah, that too, but that's not true in this case
moritz_ die 'foo'; CATCH { when * { say "gotta catch 'em all" } }; say "lives"
16:50 tedv joined
TimToady I'm wondering if say is testing .defined somewhere deep 16:51
maybe it's okay, but it seems like a place that implementations could easily diverge 16:52
16:53 silug joined
moritz_ right 16:54
TimToady it's really a circularity saw issue; do primitives that invoke .defined internaally have $! handling semantics, or should there be a lower-level .__defined__ -ish thing
jnthn TimToady: Aye, I didn't expect to fix that. 16:55
TimToady do you know how it's happening?
jnthn TimToady: I was just fixing the re-catch.
TimToady is there a deep .defined somewhere? 16:56
jnthn Well, at the moment it appears to always mark an exception as handled.
Whatever happened inside the CATCH
TimToady: Sorta in the sense that there's the Parrot v-table interface 16:57
16:57 cjk101010 left
TimToady but it should have redied when it hit the end 16:57
jnthn Which hs a defined v-table method
TimToady if there's an implicit die at the end that is only bypassed by 'succeed', how did it not die? 16:58
jnthn TimToady: I know - the code we generate at the moment just unconditionally marks the exception as handled though.
isBEKaml when doing CATCH { when * { ... } }; what does * catch here? Are we speaking of catching exceptions in terms of unix-y errnums or Exception classes ?
TimToady should have died again anyway 16:59
16:59 cdarroch joined, cdarroch left, cdarroch joined
jnthn TimToady: huh? 16:59
TimToady isBEKaml: yes
there's an implicit die/rethrow at the end of a CATCH that gets bypassed by a when's 'succeed' breakout
jnthn Right, I know that's how it should work.
That's just not the way it's been implemented. :-( 17:00
So it needs a re-work.
jnthn didn't write any of the original exception-y stuff - yesterday was the first time I hacked on that bit.
tylercurtis It seems like that could be a problem even with non-primitives. After all, if .defined and .Bool mark as handled, then you have to be very careful about what functions you call with $! in a CATCH. 17:01
TimToady isBEKaml: more specifically, 'when' is doing smartmatching, so if you match numerically, you'll get errnos, and if you match type-ly, you get exception classes
and 'when *' always matches anything
it's another way of writing 'default'
ingy what doe .HOW do?
*does
TimToady tylercurtis: yes, that's what I was trying to say re circularity saws 17:02
tylercurtis On the other hand, sometimes you actually do want to defer your exception-handling logic to a separate sub.
moritz_ ingy: it returns the metaclas
cognominal TimToady, what is the status of Whatever for dispatching in the light of Range as a role?
moritz_ HOW = Higher Order Workings
[Coke] that's what the synopses need, an index.
lue ohai o/ 17:03
isBEKaml TimToady: in that case, is there any way to define our own exceptions? Contrived Eg., when dealing with currencies, I don't want to see numbers without decimal points. So can I write code to throw exceptions when format errors liek these crop up?
moritz_ [Coke]: they had one, last I looked
tylercurtis TimToady: right. It sounded like you were mostly concerned about primitives, though.
ingy rakudo: class Foo {}; say Foo.new(x => 1)
p6eval rakudo bb6df2: OUTPUT«Foo()<0x817e950>␤»
TimToady well, the question is how many layers of turtles thre are
tylercurtis [Coke]: perlcabal.org/syn/index_X.html or perlcabal.org/syn/index_C.html , take your pick.
cognominal I also mean, if I instanciate a parmetric role with a type, it should accept WHATEVER as well. 17:04
ingy rakudo: class Foo {}; say Foo.new(x => 1).x
jnthn TimToady: I'm not sure what things would check definedness by mistake. Maybe binding against a signature with a :D in it would.
p6eval rakudo bb6df2: OUTPUT«Method 'x' not found for invocant of class 'Foo'␤ in main program body at line 20:/tmp/p56S1Bsn0f␤»
[Coke] tylercurtis, moritz_ : wow. that could really use a better label than x or c tags. =-)
ingy rakudo: class Foo {has $.x is rw}; say Foo.new(x => 1).x
p6eval rakudo bb6df2: OUTPUT«1␤»
ingy rakudo: class Foo {has $.x is rw}; say Foo.new(x => 1).perl
[Coke] (on perlcabal.org/syn/)
p6eval rakudo bb6df2: OUTPUT«Foo.new()␤»
[Coke] moritz_++
tylercurtis++
moritz_ .perl on Any sucks, I know
ingy moritz_: how do I access the members of an object? 17:05
moritz_ ingy: via accessors :P
pmichaud good morning, #perl6
jnthn TimToady: Maybe we should say succeed or .Bool sets it handles but not .define
ingy moritz_: how do I YAML Dump an object?
moritz_ attribute introspection just returns name and type of the attribute
jnthn *defined
tylercurtis [Coke]: they're labelled "Indexes" on perlcabal.org/syn/
cognominal good morning pmichaud
jnthn morning, pmichaud
TimToady isBEKaml: sure, the exception types are completely open-ended
ingy moritz_: how do I introspect attributes? 17:06
jnthn TimToady: If we find it causes problems for .defined to clear it anyway.
moritz_ I guess you could try with pir::getattribute__pps()
jnthn ingy: Objects are opaque.
TimToady jnthn: foo() // die "$!" has to work right
jnthn TimToady: oh.
TimToady so maybe // instead of .defined
isBEKaml rakudo: class Foo { has $.xfoo; }; say Foo.^fields; ## Just sayin' :P
moritz_ rakudo: class Foo { has $!x }; say Foo.^attributes.perl
p6eval rakudo bb6df2: OUTPUT«Method 'fields' not found for invocant of class ''␤ in main program body at line 20:/tmp/SZ6rBy_PBk␤»
rakudo bb6df2: OUTPUT«(Attribute.new(), )␤»
[Coke] tylercurtis: yes. having something slightly more verbose than "X tags" would be nice.
jnthn TimToady: Heh... // calls .defined on the LHS, no?
moritz_ rakudo: class Foo { has $!x }; say ~Foo.^attributes».name
TimToady well, yes, but it's also its own thing 17:07
p6eval rakudo bb6df2: OUTPUT«$!x␤»
ingy rakudo: class Foo { has $!x; has $!y }; say ~Foo.^attributes».name
p6eval rakudo bb6df2: OUTPUT«$!x $!y␤»
jnthn TimToady: Could always make a low-levelish thing be macro-ish
ingy rakudo: class Foo { has $!x; has $.y }; say ~Foo.^attributes».name
jnthn .DEFINED
p6eval rakudo bb6df2: OUTPUT«$!x $!y␤»
TimToady cognominal: I have no idea what would happen if you instantiate a role with type Whatever, probably depends on how you use it in the role 17:08
jnthn TimToady: But...ew...that has issues too
ingy what's the diff between 'has $.x' and 'has $!x' ?
moritz_ the former generates an accessor
jnthn perlcabal.org/syn/index_C.html # how did I not know about this 17:09
TimToady ingy: see the cheet sheet :)
moritz_ the latter doesn't
ingy TimToady: url?
isBEKaml TimToady: thanks!
moritz_ it's on perl6.org/documentation/
TimToady it's on perl6.org/documentation
ETOOSLOW
ingy no url?
[Coke] jnthn: that's what I was thinking. =-)
tylercurtis ingy: svn.pugscode.org/pugs/docs/Perl6/Ch...tsheet.txt 17:10
TimToady ingy: we're trying not to give you a fish (except for tylercurtis++) :)
moritz_ jnthn: nopaste.snit.ch/21971 any idea what might be wrong?
ingy wnats a pony
moritz_ Match inherits from Regex::Match, which has a $!from attribute 17:11
cognominal TimToady, if Range was rewritten as a role, that would be Role [::T] { has T $.min }. But in that light what 1..* would mean dispatching wise? one : there would be no explicit instantiation of the role. And * is not an Int.
ingy RTFCS...
moritz_ ingy: perl6.org gives you a pony - it just comes in the shape of a butterfly :-)
ingy :)
cognominal ...or is it?
jnthn moritz_: You're sure that your new method is getting called?
(good to check) 17:12
tylercurtis moritz_ aren't you setting the 'from' attribute instead of '$!from'?
17:12 Sanitoeter left
moritz_ tylercurtis: right 17:12
17:12 takadonet joined
jnthn tylercurtis: Yeah, but I'd expect an error if it was that 17:12
moritz_ oh, it's not called
"huh"
renaming it to 'create' and then calling Match.create seems to work 17:13
jnthn rakudo: class Foo { }; augment class Foo { method new { say "called" } }; Foo.new
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Can't augment class Foo without 'use MONKEY_TYPING'␤»
TimToady cognominal: if range is controlled by the left arg, then the role can contain both a (T,T) sig and a (T,Whatever) sig
jnthn rakudo: use MONKEY_TYPING; class Foo { }; augment class Foo { method new { say "called" } }; Foo.new
p6eval rakudo bb6df2: ( no output )
jnthn hmpfth 17:14
moritz_ submits rakudobug
17:14 gbacon joined
ingy rakudo: class Foo { has $!x; has $.y }; say ~Foo.^attributes 17:14
p6eval rakudo bb6df2: OUTPUT«Attribute()<0x865c930> Attribute()<0x865ce70>␤»
ingy rakudo: class Foo { has $!x; has $.y }; say ~Foo.^attributes.WHAT 17:15
p6eval rakudo bb6df2: OUTPUT«Parcel()␤»
jnthn rakudo: class Foo { has $!x; has $.y }; say ~Foo.^attributes>>.name
p6eval rakudo bb6df2: OUTPUT«$!x $!y␤»
jnthn rakudo: class Foo { has $!x; has $.y }; say ~Foo.^attributes>>.has_accessor
p6eval rakudo bb6df2: OUTPUT«0 1␤»
isBEKaml :wq
hugme hugs isBEKaml, good vi(m) user!
moritz_ there's a section in S12 about introspection, I believe
ingy rakudo: class Foo { has $!x; has $.y }; say ~Foo.^attributes[1]
p6eval rakudo bb6df2: OUTPUT«Attribute()<0x25bb1f0>␤»
ingy rakudo: class Foo { has $!x; has $.y }; say ~Foo.^attributes[1].name 17:16
p6eval rakudo bb6df2: OUTPUT«$!y␤»
isBEKaml heh
isBEKaml hugs hugme
ash_ for nqp do you guys use perl6 syntax highlighting?
moritz_ yes 17:17
17:17 Sanitoeter joined
TimToady npq is supposed to be a strict subset, but doesn't always succeed 17:18
moritz_ yeah, like with Q:PIR { }
ingy is there a p6 vim hilighter that works? 17:19
moritz_ good enough, IMHO
ingy moritz_: which one?
arnsholt vim-perl on github
isBEKaml github.com/hinrik/vim-perl.git
arnsholt petdance/vim-perl IIRC
moritz_ the one linked on perl6.org/whatever/ :-)
ingy maybe I have it installed wrong 17:20
moritz_ # vim: ft=perl6
isBEKaml ingy: what moritz_++ said or :set syntax=perl6
ingy: note that my solution is just temporary. you have to type it everytime you open a p6 source file. :) 17:21
pmurias ruoso: i think the test step would be to get App::Persistent to work
ingy isBEKaml: I understand 17:22
ruoso pmurias, but I just noticed after writing... do you have full Mildew? or just the parser/
meaning...
moritz_ when you ack -l 'ft=perl6' | wc -l in rakudo you get a good approximation for how many files I've touched :-)
alester ingy: How did you install it?
ruoso pmurias, do you have the mildew-setting working already?
ingy moritz_: does foo ?? 1 !! 2 work right?
alester also: Work in progress, y'know.
pmurias ruoso: yes
moritz_ ingy: if foo is a term, yes 17:23
if it's a function name, not sure
ruoso pmurias, awesome...
moritz_ std: foo ?? 1 !! 2
p6eval std 31643: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ?? or redundant prefix ?␤ (to suppress this message, please use space between ? ?) at /tmp/QSJPbD8MZB line 1:␤------> foo ??⏏ 1 !! 2␤Parse failed␤FAILED 00:01 112m␤»
ingy moritz_: everything after !! is fucked for me
pmurias ruoso: but not the whole setting is ported over
ruoso pmurias, but it's probably a good idea to get'em actually released on CPAN, wouldn't it?
moritz_ rakudo: say 1 ?? 3 !! 5
p6eval rakudo bb6df2: OUTPUT«3␤»
ingy moritz_: I'm talking about hilightling :P 17:24
moritz_ rakudo: sub foo () { }; say foo ?? 3 !! 5
tylercurtis rakudo: sub foo() { True; } foo ?? 1 !! 2;
moritz_ ingy: oh
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Confused at line 20, near "say foo ??"␤»
rakudo bb6df2: OUTPUT«===SORRY!===␤Confused at line 20, near "sub foo() "␤»
moritz_ ingy: works fine here
tylercurtis rakudo: sub foo() { True; }; foo ?? 1 !! 2;
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Confused at line 20, near "foo ?? 1 !"␤»
tylercurtis rakudo: sub foo() { True; }; foo() ?? 1 !! 2;
ingy I have to put a !1; after it to reset the highlighting
p6eval rakudo bb6df2: ( no output )
moritz_ ingy: the highlighter is a bit picky about s\b and m\b 17:25
pmurias ruoso: it would be mostly a matter of taking things from the old CORE and making them parse under the new stricter STD
moritz_ and y, for that matter
even though y/// is gone
ingy moritz_: I'll try to reinstall the .vim
moritz_ but my perl6.vim is also outdated 17:26
moritz_ git pull's
ruoso pmurias, I see... most of it is related to $LexicalPrelude usage, right?
pmurias i made STD accept $LexicalPrelude 17:27
DefinedBySMOP.setting contains all the stuff which are defined by SMOP 17:28
ruoso right...
so, where is the problem/
pmurias i think coping over most of the stuff would be easy 17:29
TimToady ingy: foo ?? 1 !! 2 is a syntax error in Perl 6 17:30
listops always expect a term, not an operator
ingy sigh 17:31
pmurias ruoso: i disabled the p5 interop as it was depending on MULTIPLICITY being set while building the perl
moritz_: did mildew install? 17:32
moritz_ pmurias: yes
ingy moritz_: I grabbed github.com/petdance/vim-perl.git, did make intstall, set ft and it still looks like p5 syntax hl
ash_ set ft=perl6
ruoso pmurias, hmm.... isn't that a commonly used option?
17:32 hercynium left
ash_ :set ft=perl6 to be more precise 17:32
ruoso doesn't remember building a custom Perl to run SMOP p5 interop
ingy moritz_: try !! with ft=perl5
pmurias ruoso: the one in debian has that
ingy moritz_: what happens? 17:33
pmurias as it's needed by threading
17:33 isBEKaml joined
ingy ash_: yeah, I said I did that 17:33
moritz_ ingy: nothingmuch
ruoso pmurias, I think that's an acceptable requirement... (maybe packaging it separatedly, if that's the case)
pmurias, but indeed... p5-interop should be in a different package, probably...
pmurias we could determin that at compile time
ingy moritz_: it acts like an unfinished quote for me 17:34
so to be clear, are things like 'class' and 'method' highlighted under ft=perl6?
moritz_ yes
pmurias dinner&
ingy ok, well it is clearly not working here 17:35
moritz_ augment class Match { # three different colors for each word
ingy: stupid question... did you close vim after installing the plugin?
ingy moritz_: yes
moritz_: but just now things started working... 17:36
moritz_ when I :set ft=unknown_syntax I get only black text
ingy nod
I'm not sure what happened
tylercurtis moritz_: ooh. perlgeek.de/blog-en/perl-6/want-to-...phics.html Can I have a Tufte commit bit?
ingy but things seem to work now
moritz_ tylercurtis: sure... what's your github name again? 17:37
tylercurtis moritz_: ekiru
moritz_ hugme: add ekiru to tufte
hugme hugs ekiru. Welcome to tufte!
17:37 moritz_ sets mode: +oooo pmurias tylercurtis ruoso ash_, moritz_ sets mode: +o isBEKaml 17:39 Trashlord joined
ingy alester: can you key off of 'use v6;' ? 17:39
moritz_ finds a weird array flattening bug in Match.new
17:40 tadzik joined, Trashlord left
pmurias moritz_: so what is the mildew: in the evalbot blocking on now? 17:41
lue is there an equivalent to trait_mod for post constraints? [things like our multi trait_mod:<does>]
moritz_ pmurias: I need to plug in the right paths into p6eval
dalek ok: 71c68c8 | (Gabor Szabo)++ | .gitignore:
ignore swp files
ok: 0b4cfd7 | (Gabor Szabo)++ | src/ (2 files):
add comment about 􏿽xBB
moritz_ pmurias: and then I need to check the timeouts, since a simple 'mildew -e "say 1"' takes 7s here
rakudo: say 1; sleep 3; say 2; 17:42
p6eval rakudo bb6df2: OUTPUT«1␤2␤»
17:42 Trashlord joined
moritz_ rakudo: say 1; sleep 7; say 2; 17:42
p6eval rakudo bb6df2: OUTPUT«1␤2␤»
pmurias moritz_: that's bad
moritz_ ah, i guess the limit is only on CPU time, not execution time
pmurias: I've also installed CHI, but that alone didn't help
pmurias it really needs App::Persistent 17:43
moritz_ is that on CPAN?
pmurias unfortunatly not
and i would have to dust of the code to use that
ingy rakudo: say Nil 17:44
p6eval rakudo bb6df2: OUTPUT«␤»
ingy rakudo: say Nil.perl
p6eval rakudo bb6df2: OUTPUT«()␤»
ingy rakudo: say {x=>Nil}.perl
p6eval rakudo bb6df2: OUTPUT«{"x" => Any}␤»
pmurias ruoso: re CPAN i want TimToady to figure out how should all the packages be prefix in STD before i release that on CPAN
ingy rakudo: say Nil == Nil 17:45
p6eval rakudo bb6df2: OUTPUT«1␤»
moritz_ rakudo: say Nil eqv Nil
p6eval rakudo bb6df2: OUTPUT«1␤»
moritz_ rakudo: say Nil === Nil
p6eval rakudo bb6df2: OUTPUT«0␤»
TimToady lue: no, there isn't; it's possible 'where' should be considered a trait, but I'm not so sure about post_constraint sigs
pmurias ruoso: and propably having App::Persistent support would be wise so that mildew doesn't seem extremly sluggish
ingy moritz_: how do I test if a value is undef?
lue well, I originally thought it was a trait :)
moritz_ ingy: !$thing.defined 17:46
$thing ~~ *.notdef
$thing.notdef
moritz_ doesn't really like notdef
ingy is Nil a value? 17:47
pmurias ruoso: but the Mildew packages don't have relative paths or anything like that's it's mostly a matter of them still not being polished enough for CPAN
isBEKaml neither. Sounds like "Thing is not deaf!"
ingy rakudo: say Nil.notdef
p6eval rakudo bb6df2: OUTPUT«0␤»
TimToady ingy: Nil is simply ()
sorear good * #perl6
TimToady notdef is dead for a month or so now
tylercurtis rakudo: say Nil.defined
sorear pmurias: look at blizkost's Configure.pl, I've got a MULTIPLICITY detector
ingy TimToady: and what is () simply?
pmurias moritz_: so what would be a good persistance model for the evalbot?
p6eval rakudo bb6df2: OUTPUT«1␤»
17:47 ive joined 17:48 ive left
pmurias mildew: say 1 17:48
p6eval mildew: OUTPUT«Can't open perl script "mildew": No such file or directory␤»
ingy is there a scalar value that closely matches undef in p5 or null in js or None in py?
moritz_ pmurias: I don't really know. So far I focused on *not* having persistence, so that executions that screw up something don't affect future evaluations
pmurias the process doing the compilation would be forked from the persitant one 17:49
moritz_ currently the ulimit affects child processes too 17:50
so one thing you could do is having a separate process that's running all the time
to which mildew then connects
if that helps
then it would be outside the resource limits in evalbot
TimToady sorear: Alas, I don't remember how I got compose to work with ibus-anthy, but I did, so at least it's possible. One thing I failed on was getting it to use my own .XCompose though.
ingy rakudo: say 1 < 0 17:51
p6eval rakudo bb6df2: OUTPUT«0␤»
ruoso pmurias, I'd suggest having App::Persistant as the last step
moritz_ (and btw, can I remove mildew-js from p6eval?)
pmurias yes
sorear TimToady: yes, I saw your reply earlier
ingy rakudo: say (1 < 0) === Bool::True
tylercurtis ingy: All type-objects are undefined. Mu is the "most generic non-failure undefined value" according to S02.
TimToady phenny didn't :)
p6eval rakudo bb6df2: OUTPUT«0␤»
ingy rakudo: say (1 < 0) === Bool::False
p6eval rakudo bb6df2: OUTPUT«1␤»
ingy rakudo: say (1 < 0) == Bool::False
pugssvn r31644 | moritz++ | [evalbot] proper paths to mildew; remove mildew-js 17:52
p6eval rakudo bb6df2: OUTPUT«1␤»
pmurias ruoso: ok
ruoso pmurias, probably after the first release to CPAN
ingy rakudo: say Mu
p6eval rakudo bb6df2: OUTPUT«Mu()␤»
moritz_ evalbot control restart
17:52 p6eval left
ingy rakudo: say Mu == Any 17:52
tylercurtis rkaudo: say Mu.defined
rakudo: say Mu.defined
17:53 p6eval joined
tylercurtis rakudo: say Mu.defined 17:53
ingy rakudo: say Mu == Any
TimToady 0 and error
p6eval rakudo bb6df2: OUTPUT«0␤»
rakudo bb6df2: OUTPUT«No applicable candidates found to dispatch to for 'infix:<==>'. Available candidates are:␤:(Any $x?)␤:(Num $a, Num $b)␤:(Date $a, Date $b)␤:(Real $a, Real $b)␤:(Numeric $a, Numeric $b)␤:(Any $a, Any $b)␤␤ in main program body at line 20:/tmp/hbwZ1Sp5ku␤»
moritz_ == is just numeric identity
pmurias ruoso: App::Persistant is more important than Forest::Gtk2
lue
.oO(all hail TimToady)
ruoso pmurias, I'd keep Forest::Gtk2 for the third CPAN release ;) 17:54
ingy moritz_: is there an identity operator?
moritz_ ingy: yes, ===
ingy rakudo: say Mu.WHICH
TimToady hmm, Any,Any is wrong, should be Cool,Cool
p6eval rakudo bb6df2: OUTPUT«94144672␤»
moritz_ ingy: you should read S03 at some point
TimToady: we've been discussing this...
ingy rakudo: say Nil.WHICH
p6eval rakudo bb6df2: OUTPUT«125283536␤»
pmurias TimToady: if i update STD-dist to the current STD and make it create STD-0.01 would it be ok if i release it on CPAN? 17:55
moritz_ TimToady: sorear suggested it should be Cool, Cool. If you agree, I'll adapt rakudo and the spectests
ingy rakudo: say Bool::True.WHICH
TimToady well, i can argue it the other way too
p6eval rakudo bb6df2: OUTPUT«111704000␤»
moritz_ with Cool,Cool we would have consistency between methods and operators
ingy I can probably use WHICH on known values to do nice YAML dumping
TimToady if a user-defined type supplies a Numeric, you oughta be able to use == even if they aren't Cool, you'd think 17:56
ingy which is all I'm trying to do here
rakudo: say Cool.WHICH
p6eval rakudo bb6df2: OUTPUT«98864432␤»
pmurias milew: say 1
mildew: say 1
moritz_ TimToady: good point
TimToady Cool is primarily for methods, but the question is do some operators arise to the level of language constructs rather than mere methods
p6eval mildew: OUTPUT«1␤»
TimToady in the same way that list ops do
moritz_ \o/ 17:57
TimToady I'd argue that == might
tylercurtis ingy: by identity, do you mean testing that the two objects are bound to the same container?
TimToady so maybe Any,Any is okay for such universal operators
pmurias mildew: say "We have mildew in the evalbot"
p6eval mildew: OUTPUT«We have mildew in the evalbot␤»
TimToady \o/ 17:58
ingy tylercurtis: I want to know if %h{'x'} is Nil or Mu or True
tylercurtis rakudo: say Mu =:= Mu;
p6eval rakudo bb6df2: OUTPUT«1␤»
tylercurtis rakudo: say Mu === Mu;
p6eval rakudo bb6df2: OUTPUT«1␤»
pmurias ruoso: the evalbot now supports mildew again 17:59
TimToady =:= should probably fail on bindables
non-bindables
now my non- key is on the blink
[Coke] perl6: say "what?"
p6eval pugs, rakudo bb6df2: OUTPUT«what?␤»
lue [ stupid scissor mechanism :) ]
[Coke] does perl6 run /all/ the possible evals, or just a few? 18:00
TimToady mildew: foo ?? 1 !! 2
moritz_ [Coke]: just two atm
p6eval mildew: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ?? or redundant prefix ?␤ (to suppress this message, please use space between ? ?) at eb5f2444ddfdcfb89acf9d94df8df62e line 1:␤------> foo ??⏏ 1 !! 2␤Parse failed␤»
pmurias TimToady: that's correct? 18:01
TimToady yes
pmurias perl6: foo ?? 1 !! 2
TimToady listops always expect a term
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Confused at line 20, near "foo ?? 1 !"␤»
..pugs: OUTPUT«*** No such subroutine: "&foo"␤ at /tmp/OQXl8mxUWd line 1, column 1 - line 2, column 1␤»
tylercurtis ingy: =:= checks container identity. === checks value equality.
ingy tylercurtis: thanks
TimToady hmm, I wouldn't say it that way
ingy I still think I can do better using WHICH 18:02
TimToady eqv tests value equality
=== tests identity equality
where 4 and 4 have the same identity, but [] and [] don't 18:03
rakudo: say 4 === 4, [] === []
18:03 colomon joined
p6eval rakudo bb6df2: OUTPUT«10␤» 18:03
TimToady rakudo: say 4 eqv 4, [] eqv []
tylercurtis Ah, right. As the spec says, "Binary === tests immutable type and value correspondence".
ingy rakudo: my %h = (x => Nil); say %h{'x'}.WHICH, Nil.WHICH
p6eval rakudo bb6df2: OUTPUT«11␤»
rakudo bb6df2: OUTPUT«96656608140310416␤»
ingy rakudo: my %h = (x => Nil); say %h{'x'}.WHICH, ' ', Nil.WHICH 18:04
p6eval rakudo bb6df2: OUTPUT«96656608 140891616␤»
ingy :\
tylercurtis raludo: say Nil =:= Nil
TimToady it doesn't make sense to use =:= there
tylercurtis raludo: say Nil === Nil
ingy rakudo: my %h = (x => Bool::True); say %h{'x'}.WHICH, ' ', Bool::True.WHICH
p6eval rakudo bb6df2: OUTPUT«111704000 111704000␤» 18:05
tylercurtis rakudo: say Nil === Nil
p6eval rakudo bb6df2: OUTPUT«0␤»
TimToady parcels are objects, not values
() is an empty parcel
tylercurtis rakudo: say Nil eqv Nil
p6eval rakudo bb6df2: OUTPUT«1␤»
TimToady 1
ingy rakudo: say Nil =:= Nil
p6eval rakudo bb6df2: OUTPUT«0␤»
TimToady should fail
with "those aren't variables" 18:06
pmurias cycling&
sbp rakudo: my $a = Nil; my $b = Nil; say $a =:= $b; 18:07
phenny sbp: 18:02Z <Morbus> tell sbp www.insidemacgames.com/news/story.php?ID=19048
p6eval rakudo bb6df2: OUTPUT«0␤»
18:07 Barb joined
tylercurtis ingy: You want eqv for that, it seems. 18:07
18:07 Barb left
moritz_ I fear that eqv won't work well for user-defined types 18:07
ingy rakudo: my %h = (x => Mu); say %h{'x'}.WHICH, ' ', Mu.WHICH
p6eval rakudo bb6df2: OUTPUT«94144672 94144672␤»
ingy what is Mu for? 18:08
moritz_ rakudo: class A { }; say A.new eqv A.new
p6eval rakudo bb6df2: OUTPUT«0␤»
TimToady it's the value that is most like p5's undef
but it's also the root of the types
ingy thanks, finally :)
18:08 kensanata joined
TimToady so the most typeless undef 18:09
rakudo: say Any ~~ Mu
p6eval rakudo bb6df2: OUTPUT«1␤»
ingy rakudo: my %h = (x => Mu); say %h{'y'} === Mu
TimToady that should be true for any type derived from Mu, which is all of them
p6eval rakudo bb6df2: OUTPUT«0␤»
ingy rakudo: my %h = (x => Mu); say %h{'y'} eqv Mu
p6eval rakudo bb6df2: OUTPUT«0␤»
moritz_ except that most languages put their Null value at the bottom of the type hierarchy, not on the top
ingy rakudo: my %h = (x => Mu); say %h{'y'}.defined 18:10
p6eval rakudo bb6df2: OUTPUT«0␤»
ingy rakudo: my %h = (x => Mu); say %h{'x'}.defined
p6eval rakudo bb6df2: OUTPUT«0␤»
ingy ?!
moritz_ ingy: you can also use .exists, you know...
rakudo: my %h = x => Mu; say %h.exists('x')
p6eval rakudo bb6df2: OUTPUT«1␤»
ingy moritz_: yes, I know 18:11
TimToady all your tests but the last were x/y
ingy rakudo: my %h = (x => Mu); say %h{'x'}.defined # why?
p6eval rakudo bb6df2: OUTPUT«0␤»
TimToady Mu isn't defined
moritz_ because Mu is a type object, and undefined
sbp rakudo: my %h = (x => Bool::True); say %h{'x'}.defined
ingy rakudo: my %h = (x => 1); say %h{'x'}.defined # why?
p6eval rakudo bb6df2: OUTPUT«1␤»
moritz_ because 1 is defined
ingy rakudo: my %h = (x => Mu); say %h{'x'}.exists # why?
p6eval rakudo bb6df2: OUTPUT«Method 'exists' not found for invocant of class ''␤ in main program body at line 20:/tmp/hggqXwc1d3␤» 18:12
ingy rakudo: my %h = (x => Mu); say %h{'x'}.exists
p6eval rakudo bb6df2: OUTPUT«Method 'exists' not found for invocant of class ''␤ in main program body at line 20:/tmp/nxzTlRSOaf␤»
arnsholt ingy: Mu is an undefined value, much like undef in Perl 5
moritz_ %h.exists('x')
sbp you can't even test for the existence of Mu? heh
ingy rakudo: my %h = (x => Mu); say %h.exists('x')
p6eval rakudo bb6df2: OUTPUT«1␤»
ingy arnsholt: who defined it?
;)
TimToady I'll never tell
lue If Mu existed, we'd have a very interesting paradox on our hands :) 18:13
sbp no, it would just open up the field of mathematical zen
you'd get up with Aleph-Mu and such 18:14
*end up
TimToady moritz_: Mu is top, and any() is bottom 18:15
lue
.oO(O no! I defined Mu, and now black is white and the sun is Aleph-Mu meters wide!)
18:16
TimToady rakudo: say all() ~~ Mu
p6eval rakudo bb6df2: OUTPUT«1␤»
TimToady rakudo: say Mu ~~ all() 18:17
p6eval rakudo bb6df2: OUTPUT«1␤»
TimToady rakudo: say Mu ~~ any()
p6eval rakudo bb6df2: OUTPUT«0␤»
sbp is ~~ commutative by design?
TimToady non by design 18:18
used to be, but that's a Bad Mistake
sbp why so?
TimToady makes it impossible to optimized jump tables
s/d//
when 1 {...}; when 2 {...} has to force the match to be integer equality 18:19
if it could be doing some crazy reverse lookup, it's pessimized
and that would be bad
18:20 REPLeffect joined, kst joined
sbp so basically to allow some form of short circuiting to work, do I understand right? 18:20
TimToady unfortunately, p5 borrowed the commutative one before we figgered that out
it's really a reverse dispatch based on the type of the pattern
$a ~~ $b is really $b.ACCEPTS($a)
so $b is totally in control, unless it wants to share with $a 18:21
PerlJam wait ... p5 ~~ is commutative? /me looks
18:21 jaffa4 joined
TimToady was, they're recovering from that 18:21
lue are there any other post constraints besides 'where' ?
TimToady yes, signatures
sub foo ($x ($a,$b) ) 18:22
or [$a,$b] equivalently
note, space before is required, or it's a shape declaration on $x
jnthn It's not quite equivalent. :-) 18:26
[ ... ] implies Positional too, iirc
TimToady on CATCH blocks, I'm thinking CATCH { ... } really means CATCH { $!.handled = 1; ...; die $! } where the die "unhandles" $!
STD doesn't care, just parses a sig inside [...] there
jnthn Well, nor does Rakudo at the parsing level ;-) 18:27
TimToady arguably, it could be disallowed to prevent accidentaly use as a shape, but that'll end up with undefined $a error anyway
frettled
.oO(CATCH me if you can)
PerlJam for some reason I want to see the haskellian @
TimToady std: sub foo($x [$a,$b]) {...}
p6eval std 31644: OUTPUT«ok 00:01 113m␤»
TimToady std: sub foo($x[$a,$b]) {...} 18:28
p6eval std 31644: OUTPUT«ok 00:01 110m␤»
TimToady hmm
18:28 silug left
TimToady that shoulda complained about missing $a 18:28
jnthn eww, you can expect a shape based on some outer lexical?
TimToady stdbug, I guess
jnthn hadn't appreciated that
moritz_ std: sub f ($x) | ($y) { } # should also go boom
p6eval std 31644: OUTPUT«ok 00:01 109m␤»
TimToady why? 18:29
moritz_ because alternative signatures must have the same set of variables
TimToady maybe $x.defined !=== $y.defined
is that specced?
jnthn For one because two signatures on an only sub are invalid, no?
TimToady well, there is that
moritz_ TimToady: I'm pretty sure it is 18:30
TimToady we don't require such pattern coherence of regexen
the missing one is just undefined
so maybe the spec is rong 18:31
18:31 xinming_ joined
ingy yaml-pm6 now dumps booleans 18:31
PerlJam How does one discover the variable names of positionals? Just ask for the sig? 18:32
TimToady std: multi f ($x) | ($y) { $x, $y, $z }
p6eval std 31644: OUTPUT«===SORRY!===␤Variable $z is not predeclared at /tmp/Xzzq4gxYcu line 1:␤------> multi f ($x) | ($y) { $x, $y, $z⏏ }␤Check failed␤FAILED 00:01 113m␤»
jnthn PerlJam: .signature.params[0].name for example
moritz_ TimToady: S13:101
PerlJam: S06/Signature Introspection/
jnthn yay nomzeit 18:33
bbiab
PerlJam I'm just thinking of the case where the module may be compiled to some form and the person extending the module via additional multis doesn't have easy access to the source. 18:34
Tene TimToady: can you please explain about CATCH ending with die?
moritz_ PerlJam: say &yourmulti».candidates».signature.perl
erm, wihtout the first »
TimToady Tene: there's always an implicit die at the end of every CATCH 18:35
ash_ rakudo: 'foo' ~~ / $<f>=[ f $<o>=[o] ] /; say $/<f><o> # i am is probably doing this wrong, but is this possible?
p6eval rakudo bb6df2: OUTPUT«␤»
PerlJam aye, I get it. It seems weird that the programmer need do that.
TimToady Tene: specced at S04:983
Tene "If none of the cases in the CATCH handles the exception, the exception is rethrown." 18:37
[Coke] perlcabal.org/syn/S04.html#line_983 has a busy script error in firefox, and keeps scrolling up and down an em or so. freaky. 18:40
wow. and I can't stop the script, either. 18:41
tylercurtis moritz_: I'm looking at the scruffy tests, and I'm wondering why it is that the default value for Scruffy::Graph.new.theme.class is Scruffy::Themes::Keynote, but then testing setting the theme set it to Scruffy::Themes::Mephisto(which I'd have thought should be the class of the new theme?). 18:42
I suppose it doesn't matter since the test doesn't do anything but test that you can assign new values to @graph.theme, but it looks asymmetric to test that the class of the default .theme is a certain theme class, then set .theme to another theme class to test that it can be set.
[Coke] how does a catch block handle an exception?
moritz_ tylercurtis: I actually haven't looked at the tests yet 18:43
tylercurtis: I just focused on getting some code translated for now
[Coke] ah, there it is, further down.
moritz_ though I'd love to actually get some output from it :-)
tylercurtis Should I focus on translating first and making it prettier later? Or just go ahead and change the setting test to look more like the default test as I translate the tests?
18:44 dju joined
moritz_ tylercurtis: I don't care either way 18:44
18:46 dju left
ash_ can a named capture have a named capture in it? in a regex, that is, so you could do like $/<a><b> ? 18:47
18:47 dju joined
moritz_ yes 18:48
18:49 xinming joined
ash_ cool, just checking 18:49
tylercurtis moritz_: Are you planning to use strings, enums, or what for default-type? 18:50
moritz_ tylercurtis: strings, as scruffy 18:51
does
(at least for now)
18:52 xinming_ left, timbunce_ joined 18:53 quips joined
quips hi 18:53
18:53 timbunce_ is now known as timbunce
moritz_ hi quips 18:54
pyrimidine moritz_: haven't caught up with the current status of .trans, how much needed to still be implemented? 19:00
19:00 takadonet left
tylercurtis moritz_: sorry to keep bothering you, but will Tufte::Graph.new take an options hash as Scruffy::Graph.new does or just a *%options slurpy hash parameter? 19:00
moritz_ tylercurtis: in some of the components I've used an %options hash, but I think that's a mistake. should be slurpy 19:02
makes writing the constructors nearly superfluous
and having to write few lines of code is always a good sign :-)
tylercurtis Alright. I'll translate the tests assuming it'll be slurpy. 19:03
moritz_ pyrimidine: currently only string patterns for .trans is implemented - the regex patch (don't remember by whom) seemed too intrusive to apply 19:04
19:04 cono left
moritz_ closures on the RHS should be easy to do 19:04
src/core/Cool-str.pm:137 19:05
19:05 cono joined
pyrimidine didn't know there was a regex patch. Agreed on closures, may fork and try implementing something. 19:06
moritz_ somebody else submitted it, rewriting .match and .subst along the way
or re-implementing it, don't remember exactly 19:07
pyrimidine in RT?
moritz_: by the way, presented a talk at the Bioinformatics Open Source Conference, which touched upon BioPerl 6 at the very end 19:08
slides: www.slideshare.net/bosc2010/fields-...10-bioperl
moritz_ nice 19:09
pyrimidine: not RT, but somewhere on p6c
tylercurtis moritz_: Now I see that Scruffy::Graph.new accepts either a hash or slurpy named parameters. Although I guess that's not really necessary with |%foo.
pyrimidine moritz_: okay, will check. Thanks!
ingy moritz_: I just patched ufo to run `make t/specific.t`. Can you please review the patch? 19:13
19:13 sftp joined
moritz_ ingy: sure 19:14
where is it?
ingy moritz_: seems to work great here. I'll switch completely to ufo Makefiles.
moritz_: github!
masak++ gave me a bit
moritz_ pulls
+ $makefile.say(qq[PERL6LIB='$cwd/t:$cwd/lib']); 19:15
not sure if that's common practise
ingy what part?
moritz_ having t/ in PERL6LIB
ingy it will be :) 19:16
moritz_ apart from that, looks good
ingy++ # patching the toolchain
ash_ in a regex, if you have multiples you want to capture (like <foo>*) but you want to be able to see how many it captured and look at them individually, how do you say that in regex terms?
tylercurtis <foo>* 19:17
ash_ well, how do you access that?
$/<foo>[0] didn't work for me
moritz_ $<foo> is an array
rakudo: say 'abc' ~~ /<alpha>+/; say $<alpha>.perl 19:18
p6eval rakudo bb6df2: OUTPUT«abc␤[Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ from => 0,␤ orig => "abc",␤ to => 1,␤), Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ from => 1,␤ orig => "abc",␤ to => 2,␤),
..Match.new(␤ # W…
moritz_ oh, bad idea
rakudo: say 'abc' ~~ /<alpha>+/; say $<alpha>.WHAT; say $<alpha>.elems
p6eval rakudo bb6df2: OUTPUT«abc␤Array()␤3␤»
ingy TestML needs a bridge class to put the language specific code. Don't want to put it under lib. t/ makes sense. Although I could munge @*INC from t/foo.t if needed.
ash_ is that true in nqp too?
moritz_ ash_: well, it's a ResizablePMCArray in nqp, not an array
but +$<alpha> and $<alpha>[0] should both work 19:19
dalek kudo: cfca4fb | moritz++ | src/core/IO.pm:
implement cwd, jnthn++
kudo: 129c37f | moritz++ | src/core/Match.pm:
[Match.perl] fix double-brackets
kudo: 94d01ff | moritz++ | src/core/Match.pm:
initial Match.new - does not handle subcaptures yet
moritz_ nqp: my $m = 'abc' ~~ /<alpha>+/; say(+$m<alpha>); say($m<alpha>[0])
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " 'abc' ~~ "␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
moritz_ nqp: my $m := 'abc' ~~ /<alpha>+/; say(+$m<alpha>); say($m<alpha>[0])
p6eval nqp: OUTPUT«3␤a␤»
moritz_ less sugar, still works 19:20
ash_ got ya, i see where i made my mistake now 19:21
jnthn Sweet
moritz_: yay, thanks for putting in cwd :-)
moritz_ jnthn: thanks for (mostly) writing it for me :-) 19:22
[Coke] pmichaud++ #putting in all the partcl-nqp scaffolding.
(if anyone is looking to hack on NQP, I have penty more to do. =-)
moritz_ [Coke]: consider something like my "weekly" challenges to attract contributors 19:24
[Coke] moritz_: that would probably be slightly more effective than my current plan. 19:25
moritz_ if you have byte-sized tasks that you know how to describe well... go for it
TimToady moritz_: jdporter is hailing you on chatterbox 19:31
moritz_ TimToady: other way round :-) 19:32
ingy moritz_: github.com/ingydotnet/yaml-pm6/blob...ter/README ufo++
TimToady moritz_: oh, yeah :) 19:33
jdporter: moritz_ is hailing you on chatterbox :)
moritz_ :-)
19:34 |newbie| joined
moritz_ ingy: if you pass a --prefix option to ufo, would you expect it to add the lib/ automatically? 19:37
19:38 jaffa4 left, ashleydev joined
cognominal does not understand what the operator C<before> and C<after> are 19:43
moritz_ cognominal: it's generalized smaller-than and greather-than operators 19:44
cognominal in what way are they different (no pun intended)? 19:45
moritz_ > compares numerically 19:46
gt compares by string
after compares "smart", ie by number if the args are numbers, and lexicographically if they are strings
cognominal ok, thx
19:50 eternaleye joined
pugssvn r31645 | lwall++ | [S04] try to nail down CATCH exit semantics a bit more water-tightly 19:52
TimToady well, just that any given type may define before and after, but there's no coercion 19:53
ingy moritz_: whatever p5 does...
19:53 mberends joined
moritz_ aka "no". 19:54
thought so
TimToady though, possibly if we define cross-type cmp, before and after could be cross-type too 19:55
ingy moritz_: how long will you be here online? 19:56
cognominal hum, without knowing with C<before>, I was feeding the discussion about range as a role. 19:59
20:00 eternaleye left 20:11 hercynium joined
ingy rakudo: class F {has $.h = {}}; my $f = F.new; $f.{'x'} = 1; say "OK" 20:21
p6eval rakudo bb6df2: ( no output ) 20:22
ingy rakudo: class F {has $.h = {}}; my $f = F.new; $f.h{'x'} = 1; say "OK"
p6eval rakudo bb6df2: OUTPUT«OK␤»
ingy rakudo: class F {has $.h = {}}; my $f = F.new; $f.h = (); say "OK"
20:22 pmurias joined
p6eval rakudo bb6df2: ( no output ) 20:23
ingy rakudo: class F {has $.h is rw = {}}; my $f = F.new; $f.h = (); say "OK"
p6eval rakudo bb6df2: OUTPUT«OK␤»
ingy rakudo: class F {has $.h = {}}; my $f = F.new; $f.h = (); say "OK"
p6eval rakudo bb6df2: ( no output )
ingy why does $.h need to be rw to clear it? but not to add to it? 20:24
arnsholt IIRC object attributes are ro by default 20:25
tylercurtis ingy: because the immutability of the attribute container doesn't make the value immutable.
pugssvn r31646 | pmurias++ | [smop] require a higher version of File::Path then is in perl-5.10.0
tylercurtis ingy: $f.h{'x'} = 5; doesn't change what value the container it holds.
jnthn Also because the constructor is "on the inside" and can get at the underlying $!h 20:26
moritz_ ingy: $.h{'...'} = foo just translates to a method call on $.h
whereas $.h = $stuff is assignment, which honors the rw property
tylercurtis But $f.h = () changes the value that the attribute holds.
cognominal rakudo: my (Int| Whatever) $a = * 20:27
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤Unable to parse declarator, couldn't find final ')' at line 20␤»
cognominal rakudo: my Int| Whatever $a = *
p6eval rakudo bb6df2: OUTPUT«===SORRY!===␤In "my" declaration, typename Int must be predeclared (or marked as declarative with :: prefix) at line 20, near "| Whatever"␤»
pmurias what does rakudo use for determining which tests it runs? 20:28
cognominal rakudo: Int | Whatever
p6eval rakudo bb6df2: ( no output )
jnthn pmurias: t/spectest.data
cognominal STD: my (Int| Whatever) $a = *
ingy moritz_: thanks 20:29
pmurias jnthn: thanks 20:30
cognominal std: my (Int| Whatever) $a = *
p6eval std 31645: OUTPUT«===SORRY!===␤Unable to parse declarator at /tmp/PhvY7dIFtf line 1:␤------> my ⏏(Int| Whatever) $a = *␤Couldn't find final ')'; gave up at /tmp/PhvY7dIFtf line 1:␤------> my (Int⏏| Whatever) $a = *␤ expecting any of:␤
..constr…
cognominal should that be allowed? 20:31
moritz_ what would $a default to if you don't assign anything to it?
cognominal rakudo: my Int $a; say "{$a.WHAT} {$a.perl}" 20:32
p6eval rakudo bb6df2: OUTPUT«Int() Int␤» 20:33
20:35 silug joined
cognominal I don't know. 20:36
rakudo: say Int|Whatever 20:37
p6eval rakudo bb6df2: OUTPUT«any(Int, Whatever)␤»
moritz_ it has been considered, but discarded for 6.0
you can always say
subset WhatIntever of Any where Whatever | Int
20:37 mberends left 20:39 tri1 joined
tylercurtis Should the rakudo REPL die if I try to access a non-existent contextual? 20:40
jnthn no
the repl is too death-prone atm 20:41
pugssvn r31647 | pmurias++ | [mildew] port of &print
tylercurtis On a related note, how can I get the current working-directory in rakudo? $*CWD as per S28 doesn't seem to work. 20:42
moritz_ rakudo: say cwd()
p6eval rakudo bb6df2: OUTPUT«Could not find sub &cwd␤ in main program body at line 20:/tmp/A82d7OUc9v␤»
moritz_ it's too old 20:43
you need to get a newer rakudo :-)
Tene rakudo: say $*CWD 20:44
p6eval rakudo bb6df2: ( no output )
20:44 bluescreen joined
ingy moritz_: pushed a fix to ufo 20:44
moritz_: wasn't remaking all before a specific test
20:45 bluescreen is now known as Guest50523
ingy moritz_: ie, wasn't building .pir 20:45
moritz_ right
tylercurtis It just isn't a day of Perl 6 hacking without needing to build a new Rakudo, huh? :)
moritz_ or phrased differently, we're progressing :-) 20:46
ingy yaml-pm6 now supports 'null', aka '~' dumping. (albeit poorly due to my lacklustre grokage of Mu) 20:47
yaml object dumping is next 20:48
20:48 hercynium left
colomon rakudo: say (1...100).grep({ $_ %% 2 }).grep({ $_ %% 3 }).perl 20:55
p6eval rakudo 94d01f: ( no output )
colomon rakudo: say (1...100).grep({ $_ %% 2 }).Array.grep({ $_ %% 3 }).perl 20:57
p6eval rakudo 94d01f: OUTPUT«Method 'Array' not found for invocant of class 'List'␤ in main program body at line 20:/tmp/OBjUnMAchm␤»
colomon rakudo: say (1...100).grep({ $_ %% 2 }).perl.eval.grep({ $_ %% 3 }).perl
p6eval rakudo 94d01f: ( no output ) 20:58
20:59 quips left
moritz_ > say (1...100).grep({ $_ %% 2 }).grep({ $_ %% 3 }).perl 21:00
Cannot resume dead coroutine.
rakudobug, I'd say 21:01
colomon: care to submit?
jnthn say (1...100).grep({ say $_; $_ %% 2 }).grep({ $_ %% 3 }).perl
colomon moritz_: it's already in there, I'm sure.
jnthn rakudo: say (1...100).grep({ say $_; $_ %% 2 }).grep({ $_ %% 3 }).perl
colomon it's the gather / take bug, it's been a problem for months.
moritz_ hasn't see the error before
p6eval rakudo 94d01f: ( no output )
colomon originally supposed to be a closure-related bug 21:02
moritz_ which is supposed to be fixed :-)
colomon which is why I say "supposed"
rakudo: say (1 ... 10) Z~ ('A' ... 'G')
p6eval rakudo 94d01f: OUTPUT«AABBCCDDEEFFGG␤»
moritz_ "huh" 21:03
colomon If you have two different instances of the same gather / take block running at once, they get tangled up.
and gather / take is pretty ubiquitous throughout Rakudo.
I think the closure bug changed the effect a little? At least, I don't remember ever seeing that AABBCCDDEEFFGG pattern before. 21:05
*bug fix
moritz_ neither 21:06
ingy: find: `t': No such file or directory 21:07
ingy: that's less-than-awesome, I guess
21:09 timbunce left
moritz_ discovers that adaptive step-size runge-kutta doesn't mix well with big numbers and a absolute errors 21:11
21:13 rgrau_ joined 21:14 |newbie| left, timbunce joined
ingy moritz_: oops 21:16
moritz_ goes to bed 21:17
ingy \o
moritz_ o/
21:18 gbacon left
ingy moritz_: I think I have a fix for ufo 21:19
21:23 kensanata left 21:25 kloeri left
pugssvn r31648 | pmurias++ | [mildew-setting-smop] avoid rebuilding .so three times 21:25
21:25 skangas left, kloeri joined 21:30 kloeri left 21:36 silug left
lue ohai o/ 22:02
hrm, there don't seem to be any other post constraints other than 'where'... 22:08
22:15 kensanata joined 22:25 timbunce left 22:30 tri1 left
ingy rakudo: say substr("ingy", 0, *-2) 22:38
p6eval rakudo 94d01f: ( no output )
22:39 rv2733 joined, kid51 joined
ingy rakudo: say "ingy".substr(0, *-2) 22:39
p6eval rakudo 94d01f: ( no output )
ingy rakudo: say "ingy" 22:40
p6eval rakudo 94d01f: OUTPUT«ingy␤»
ingy rakudo: say "ingy".substr(0,1)
p6eval rakudo 94d01f: OUTPUT«i␤»
ingy rakudo: say "ingy".substr(0,3)
p6eval rakudo 94d01f: OUTPUT«ing␤»
ingy rakudo: say "ingy".substr(0,*)
p6eval rakudo 94d01f: ( no output ) 22:41
ingy rakudo: say "ingy".substr(0,-1)
p6eval rakudo 94d01f: OUTPUT«ing␤»
ingy rakudo: my $x; say $x 22:44
p6eval rakudo 94d01f: OUTPUT«Any()␤»
ingy rakudo: my $x; say $x.WHAT
p6eval rakudo 94d01f: OUTPUT«Any()␤»
ingy rakudo: my $x; say $x.WHAT.Str
p6eval rakudo 94d01f: OUTPUT«Any()<0x3981a00>␤»
22:44 pmurias left
ingy rakudo: my $x; say $x.WHICH 22:45
p6eval rakudo 94d01f: OUTPUT«60308352␤»
ingy rakudo: say Any.WHAT.Str 22:46
p6eval rakudo 94d01f: OUTPUT«Any()<0x3981a00>␤»
ingy what is that? 22:47
a better question is "How do I get the class name, as a string value, from an instance object?" 22:48
lue rakudo: my $a; say $a.WHAT
p6eval rakudo 94d01f: OUTPUT«Any()␤»
lue rakudo: my $a; say ($a.WHAT).WHAT 22:49
p6eval rakudo 94d01f: OUTPUT«Any()␤»
jnthn rakudo: my $a; say $a.WHAT.perl # like that
p6eval rakudo 94d01f: OUTPUT«Any␤»
ingy eek
that's the best way?
jnthn It's not like encouraging people to use strings to identify classes is good. 22:50
ingy rakudo: my $a; say $a.WHAT.perl.WHAT
p6eval rakudo 94d01f: OUTPUT«Str()␤»
ingy jnthn: they might be handy in serializations
jnthn ingy: Still doesn't mean it needs to be huffmanized. 22:51
Most people don't write serializers every day :-)
ingy does
jnthn I did say "most" ;-)
ingy I wasn't calling you a liar 22:52
jnthn The thing with string names is that they may be meaningless out of context.
lue rakudo: my $a; say "The variable is type {$a.WHAT}"
p6eval rakudo 94d01f: OUTPUT«The variable is type Any()␤»
22:52 whiteknight joined
jnthn { my class Foo { } }; # name Foo is not referring to the class outside the scope 22:52
ingy I was just having fits turning $x.WHAT into a string 22:53
due to my n00bniz
jnthn Well, it stringifies with a () on the end
ingy jnthn: show me how to substr it off
jnthn So if a type object accidentaly makes it into output, it looks like something odd is going on. Or something like that.
heh, that's longer than .perl on the type-object ;-)
ingy c'mon! 22:54
jnthn $foo.WHAT.substr(0, $foo.WHAT.chars - 2) # eww :-)
lue rakudo: my $a = 2; say $_
jnthn There must be a better way that that
p6eval rakudo 94d01f: OUTPUT«Any()␤»
jnthn rakudo: my $foo = 42; say $foo.WHAT.substr(0, $foo.WHAT.chars - 2) 22:55
p6eval rakudo 94d01f: OUTPUT«Int␤»
jnthn rakudo: my $foo = 42; say $foo.WHAT.substr(0, -2)
p6eval rakudo 94d01f: OUTPUT«Int␤»
jnthn Ah, yes
That :-)
lue It doesn't work right [pun intended]. (unless, of course, it's supposed to do that)
sbp come on, it's perl. double chop it! :-)
phenny sbp: 21:43Z <Morbus> tell sbp v
sbp: 21:43Z <Morbus> tell sbp www.newscientist.com/article/dn1916...hesia.html
ingy rakudo: my $foo; say $foo.WHAT.substr(0, -2)
p6eval rakudo 94d01f: OUTPUT«Method 'substr' not found for invocant of class ''␤ in main program body at line 20:/tmp/DaCBAHrZH_␤»
jnthn rakudo: my $foo = 42; say $foo.WHAT.chop.chop
lue jnthn: shouldn't that be $foo.WHAT.substr(0,*-2) ? 22:56
p6eval rakudo 94d01f: OUTPUT«Int␤»
sbp (sorry for the message spam)
ingy see!
jnthn ingy: That's not Cool
sbp double chop. so perl™
jnthn ingy: Probably needs to be coerced to a Str before you substring it.
lue rakudo: my $foo; say $foo.WHO
p6eval rakudo 94d01f: OUTPUT«Any␤»
jnthn rakudo: my $foo; say $foo.WHAT.Str.chop.chop 22:57
p6eval rakudo 94d01f: OUTPUT«Any()<0x3981a0␤»
ingy see!
jnthn ...grr
lue I wish WHO would give me the variable's name though...
ingy jnthn haz fitz 2!
rakudo: my $foo; say $foo.WHAT.perl; 22:58
jnthn ingy: That's why I use .WHAT.perl :P
p6eval rakudo 94d01f: OUTPUT«Any␤»
jnthn ingy: I'm sure there's a bug in there somewhere though.
ingy jnthn: I just wanna know what's going on
jnthn (in that last line I sent to Rakudo)
lue rakudo: my $foo; say ($foo.WHO).WHAT
p6eval rakudo 94d01f: OUTPUT«Method 'WHAT' not found for invocant of class 'Any'␤ in main program body at line 20:/tmp/AJSvkDs__u␤»
jnthn rakudo: my $foo; say $foo.WHAT
p6eval rakudo 94d01f: OUTPUT«Any()␤»
jnthn rakudo: my $foo; say $foo.WHAT.Str
p6eval rakudo 94d01f: OUTPUT«Any()<0x3981a00>␤»
jnthn rakudo: my $foo; say $foo.WHAT.Stringy 22:59
p6eval rakudo 94d01f: OUTPUT«Method 'Stringy' not found for invocant of class ''␤ in main program body at line 20:/tmp/vYAfrlQeaU␤»
lue rakudo: say Any.^methods(:local)
p6eval rakudo 94d01f: OUTPUT«nonevaluescankeysreverseuniqisaclassifymapkvminmaxpickflatfirstminmaxdoesrotatejoinNumericelemsendreduceallStrpostcircumfix:<[ ]>postcircumfix:<{ }>listat_keypairsoneACCEPTSat_posanysortSeqgrep␤»
jnthn ingy: my $foo; say $foo.WHAT.Str # this does the wrong thing
ingy I think so
jnthn looks for masakbot
ingy I'll use .perl and #RAKUDO it 23:00
lue
.oO(無の楽土!)
23:03
23:05 rv2733 left
tadzik rakudo: mouse.WHAT.say 23:06
p6eval rakudo 94d01f: OUTPUT«Could not find sub &mouse␤ in main program body at line 20:/tmp/MrF78F6xzP␤»
tadzik hmm. Locally, it gives me "Failure()". What is a mouse in rakudo? 23:07
lue There is no mouse (AFAIK). I get `could not find sub &mouse' locally. 23:08
tadzik hmm, latest monthly release here 23:09
strange, now I get "could not find sub" too
23:10 kloeri joined
tadzik ah, right. REPL remembers class definitions 23:10
23:15 tadzik left, kloeri left
ingy rakudo: class Foo {}; say Foo.new.^attributes; 23:16
p6eval rakudo 94d01f: OUTPUT«␤»
ingy rakudo: class Foo {has $.x}; say Foo.new.^attributes;
p6eval rakudo 94d01f: OUTPUT«Attribute()<0x813d510>␤» 23:17
ingy rakudo: class Foo {has $.x}; for Foo.new.^attributes -> $a { say ">>$a" };
p6eval rakudo 94d01f: OUTPUT«>>Attribute()<0x420d8d0>␤»
23:21 Guest50523 left
ingy rakudo: class Foo {has $.x}; for Foo.new(x=>123).^attributes -> $a { say $a.name }; 23:22
p6eval rakudo 94d01f: OUTPUT«$!x␤»
ingy rakudo: class Foo {has $.x}; for Foo.new(x=>123).^attributes -> $a { say $a.^methods }; 23:23
p6eval rakudo 94d01f: OUTPUT«Method 'methods' not found for invocant of class ''␤ in main program body at line 20:/tmp/YGiFIVhtMu␤»
ingy rakudo: class Foo {has $.x}; for Foo.new(x=>123).^attributes -> $a { say $a.^attributes }; 23:24
p6eval rakudo 94d01f: OUTPUT«Method 'attributes' not found for invocant of class ''␤ in main program body at line 20:/tmp/qmGnmv75zR␤»
ingy rakudo: class Foo {has $.x}; for Foo.new(x=>123).^attributes -> $a { say $a.WHAT };
p6eval rakudo 94d01f: OUTPUT«Attribute()␤»
23:24 skids joined
ingy rakudo: class Foo {has $.x}; for Foo.new(x=>123).^attributes -> $a { say Attribute.^methods }; 23:24
p6eval rakudo 94d01f: OUTPUT«Method 'methods' not found for invocant of class ''␤ in main program body at line 20:/tmp/GyPo9KkSQU␤»
ingy rakudo: say Attribute.new 23:25
p6eval rakudo 94d01f: OUTPUT«Attribute()<0x7d63020>␤»
ingy rakudo: say Attribute.new.^attributes
p6eval rakudo 94d01f: OUTPUT«Method 'attributes' not found for invocant of class ''␤ in main program body at line 20:/tmp/5fWnTemq3n␤»
ingy rakudo: say Attribute.new.name 23:26
p6eval rakudo 94d01f: OUTPUT«␤»
ingy rakudo: say Attribute.new(name => 'foo').name
p6eval rakudo 94d01f: OUTPUT«foo␤»
ingy jnthn: how can I introspect the Attribute thing? 23:27
tylercurtis rakudo: say Attribute.new.HOW
p6eval rakudo 94d01f: OUTPUT«P6metaclass()␤»
tylercurtis rakudo: say Attribute.new.^methods
p6eval rakudo 94d01f: OUTPUT«Method 'methods' not found for invocant of class ''␤ in main program body at line 20:/tmp/7fBlJ522km␤»
jnthn ingy: At present, you can't. 23:28
ingy: The metaclass of Attribute doesn't support introspection.
(Yes, it sucks.)
ingy jnthn: can I use you to introspect it :)
rakudo: class Foo {has $.x}; for Foo.new(x=>123).^attributes -> $a { say $a.name }; 23:29
p6eval rakudo 94d01f: OUTPUT«$!x␤»
ingy I want to get 123
somehow
jnthn ingy: The reason Mu.perl sucks at the moment is because there's not a way to actually do that from Perl 6 space at the moment. 23:30
ingy: If you want to Do It Anyway then there is a hack, which you should certainly #RAKUDO 23:31
23:31 masonkramer joined
jnthn my $value = pir::getattribute__PPs($object, $a.name); 23:31
23:31 kensanata left
ingy somehowsorry, lost teh NET 23:33
back
jnthn: sounds good 23:34
thanks
23:34 ruoso joined
TimToady the parse of t/spec/S32-temporal/DateTime.t fails at line 166 because C<time> is a listop. should it be a term like C<now> instead? 23:35
Tene rakudo: say Mu.perl 23:37
p6eval rakudo 94d01f: OUTPUT«Mu␤»
TimToady std: time == 42
p6eval std 31648: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix == instead at /tmp/QPbmtaueOT line 1:␤------> time ⏏== 42␤Parse failed␤FAILED 00:01 112m␤»
TimToady should that work?
jnthn Only 42 seconds after the last millenium. 23:39
:-)
TimToady I'm inclined to think it should parse like
jnthn TimToady: I'd say if now does then time also should but...what's the difference?
TimToady std: now == 42 23:40
p6eval std 31648: OUTPUT«ok 00:01 109m␤»
TimToady time is currently a listop, not a term
jnthn time is seconds from epoch, now gives an object-y thing?
No, I meant between "now" and "time"
jnthn can't keep up with Temporal
TimToady now gives an Instant, time is still POSIXy
jnthn OK 23:41
TimToady but I think it's probably another pseudo constant like now, rand, and self
jnthn I'd suggest they're both terms.
(Or both not. Consitency though.)
TimToady and you can always say time() if you want to call a function
and I've contemplated making 'same' a pseudo constant meaning the current capture, so nextsame is nextwith(|same) 23:42
but maybe that's just context().args or some such 23:44
23:45 silug joined
jnthn Guess it depends how much you fancy huffmanizing it. 23:45
TimToady wait, we renamed that
callframe().args, or some such 23:46
jnthn I kinda can't see anyone writing nextwith(|same) when nextsame exists
OTOH
nextwith(|same, :extra<thingy>) may be more useful.
sorear What is the full set of categories that can be extended with a simple sub?
jnthn infix, postfix, prefix, circumfix, postcircumfix and term all can be 23:47
I'm sure TimToady++ will point out any I missed.
I'm very sure that scope_declarator, package_declarator and the like cannot be. 23:48
Oh
And trait_mod
TimToady that depends on how far we push the proto as a default
jnthn trait_does:sym<does> my $x does Freezable 23:49
TimToady: typo? ^^
Hould be trait_mod:sym<does>
(from s02)
sorear: Maybe the metaop ones could too. The rest I'd be surprised by, but OTOH I'm used to being surprised in Perl 6. :-) 23:50
pugssvn r31649 | lwall++ | [S02] typo for jnthn++
r31650 | lwall++ | [S06] add .args to what a context can return 23:51
sorear should be trait_mod:<does> anyway 23:52
:sym<> is only for parser stuff
jnthn sorear: top of that section starts "Here are some of the names of parse rules in STD:" 23:53
But yes, for the sub it'd be trait_mod:<does>
23:55 Psyche^ joined
ingy yaml-p6 can dump objects! 23:59
jnthn++
jnthn \o/
ingy++
pugssvn r31651 | lwall++ | [S13] try to make multisig semantics slightly more generic so sigs can do better pattern matching