»ö« | 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«111» | ||
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«36914710258» | ||
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 traitParse failedFAILED 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': PerlJam, TimToady, [particle], colomon, jnthn, masak, mberends, moritz_, pmichaud. 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 !! 2Parse failedFAILED 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«12» | ||
17:42
Trashlord joined
|
|||
moritz_ | rakudo: say 1; sleep 7; say 2; | 17:42 | |
p6eval | rakudo bb6df2: OUTPUT«12» | ||
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 !! 2Parse 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 failedFAILED 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«abcArray()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«3a» | ||
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 ⏏== 42Parse failedFAILED 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 |