»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:00 stevan_ left
timotimo_ what is the second argument to stat for? "put a 0 here"? :P 00:02
except sometimes you put 7 00:03
ah, found the list of constants 00:04
00:06 fgomez joined
dalek p: 6b97517 | (Timo Paulssen)++ | src/HLL/Compiler.pm:
better message for nonexistent files on the commandline.
00:39
lee__ timotimo_: would it make more sense to do the stat in the catch block? </peanutgallery> 00:45
timotimo_ hm, can the stat throw? 00:47
lee__ i'm not sure, i was just thinking you could avoid a stat in most cases, and only do it to get the more specific error 00:49
japhb_ Why bother stat'ing at all?
What does it tell you that a failed open does not? 00:50
timotimo_ well, it allows me to say "coldn't stat" ... i guess?
japhb_ timotimo_, but that's not friendly to the user -- they only want to know if the file could be opened. 00:51
Plus, they don't want to run a directory, right?
timotimo_ that sounds reasonable. i'll roll it back to what i had before
00:52 Targen joined
japhb_ Just skip the first bit with the stat. The rest of the change seems sane to me. 00:52
timotimo_ i guess i'll run some tests now, too :)
dalek p: 1e657f9 | (Timo Paulssen)++ | src/HLL/Compiler.pm:
the stat was kind of superfluous
00:57 anuby joined 01:03 araujo joined 01:10 japhb_ left 01:12 lustlife joined 01:22 hypolin joined 01:28 ggoebel_ left 01:48 rking joined
timotimo_ lee__: now i remember why i changed it like that. look at the bug report: rt.perl.org/rt3//Ticket/Display.html?id=112988 - it would be nice to have a "no such file" in there 01:56
Could not open does_not_exist.p6. Unable to open filehandle from path 'does_not_exist.p6' - this isn't much prettier either, but at least it doesn't show a lengthy stack trace
02:00 rindolf joined 02:30 xinming joined 02:46 am0c joined 02:57 stevan_ joined 03:02 adu joined 03:03 Jimmy_ joined 03:08 orafu joined 03:13 Jimmy_ left
dalek rl6-roast-data: 3ae6521 | coke++ | / (4 files):
today (automated commit)
03:15
03:48 Targen left 03:49 LlamaRider joined 03:52 stevan_ left 04:03 LlamaRider left 04:12 SamuraiJack joined 04:15 daniel-s joined 04:28 jaldhar joined 04:38 skids left 04:50 SmokeMachine joined, preflex joined 04:54 ircleuser joined 04:55 Heather joined
Heather is there 'elif' ? 04:55
if elif else ? 04:56
timotimo_ it's called elsif
Heather oh... thanks
timotimo_ it already complains if you try "else if", maybe it should get to know "elif", too
i'll do that tomorrow if nobody else does
gnite!
diakopter o/ 04:57
Heather timotimo_ gnite 04:59
what means "Missing block" ? 05:00
diakopter what's the line?
Heather when f { say 'f'; } 05:01
in given block
I'm trying to match IO
diakopter what's f
Heather IO.f
diakopter squints
what's the given line? 05:02
Heather diakopter sec 05:03
diakopter oh, did you try :f
Heather diakopter I'm trying to make something alike gist.github.com/Cynede/5140496
diakopter :f works ! thank you 05:04
diakopter hm, what about .IO.f 05:05
Heather updated gist
diakopter oh ok 05:06
Heather diakopter wait ... can I mach it alike .IO.f ? )
diakopter I dunno
Heather how to check if there is no such file at all? 05:07
diakopter for now I think if that is not dire not file and not link that it's nothing )
diakopter r: say "perl7".IO.e
p6eval rakudo 810412: OUTPUT«False␤»
diakopter r: say "perl6".IO.e 05:08
p6eval rakudo 810412: OUTPUT«False␤»
diakopter oh..
erm
diakopter is still guessing blindly
r: say ".".IO.e
p6eval rakudo 810412: OUTPUT«True␤»
diakopter oh heh
r: say ".".IO.d
p6eval rakudo 810412: OUTPUT«True␤»
diakopter r: say ".".IO.f
p6eval rakudo 810412: OUTPUT«False␤»
diakopter okay yeah; e
Heather diakopter can I write: 'when :f :l {' ? 05:09
so I need match both in one case, :f and :l
seems like yes ) 05:10
cool
diakopter put & between
Heather I need OR
diakopter |
Heather but it works just with space :S
seems like...
yes, tested 05:11
when :f :l { works
diakopter r: given '.'.IO { when .e&.d { say 44 } }
p6eval rakudo 810412: OUTPUT«44␤»
diakopter r: given '.'.IO { when .f|.d { say 44 } }
p6eval rakudo 810412: OUTPUT«44␤»
diakopter huh. 05:12
Heather 07 01r: given '.'.IO { when :f :d { say hi } }01
01....
p6eval hey 05:13
diakopter what? :)
Heather doesn't work
I mean bot
diakopter your messages look blank to me
diakopter checks the clogs
oh! weird.
Pleiades` you put a space in before the r:
Heather 01r: given '.'.IO { when :f :d { say 44 } } 05:14
...
diakopter I think you pasted it; try retyping it
Heather 01r: say 'where are you'
he ignores me :(
TimToady your r: is in very dim grey here 05:15
diakopter ohhh maybe your irc client is coiloring
coloring even
TimToady r: given '.'.IO { when :f :d { say 44 }}
p6eval rakudo 810412: ( no output ) 05:16
Heather it is
TimToady :f :d doesn't actually work
Heather r: say 'test'
p6eval rakudo 810412: OUTPUT«test␤»
TimToady r: given '.'.IO { when :f | :d { say 44 }}
p6eval rakudo 810412: OUTPUT«44␤»
Heather yeah
TimToady it's applying the :d as a modifier on the :f, and probably ignoring it
n: given '.'.IO { when :f :d { say 44 }}
Heather r: given '.'.IO { when :f :l { say 44 }}
p6eval niecza v24-33-gfc6d5fd: OUTPUT«===SORRY!===␤␤Multi colonpair syntax not yet understood at /tmp/7tETQCwxcz line 1:␤------> given '.'.IO { when :f :d ⏏{ say 44 }}␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1…
rakudo 810412: ( no output )
diakopter r: say :alone :in :the :world 05:17
p6eval rakudo 810412: OUTPUT«␤»
TimToady named args there
Heather I see
will use | then
diakopter r: say (:alone :in :the :world)
p6eval rakudo 810412: OUTPUT«"alone" => Bool::True␤»
TimToady I'm not sure named args should be applied to a pair... 05:18
diakopter r: say {; :alone :in :the :world}()
p6eval rakudo 810412: OUTPUT«"alone" => Bool::True␤»
TimToady a colon pair where an infix is expected is applied as an adverb 05:19
to whatever operation is on the left
but :alone isn't exactly an operation...
diakopter r: say {; .alone: in::the:world}() 05:20
p6eval rakudo 810412: OUTPUT«Could not find symbol '&the'␤ in method <anon> at src/gen/CORE.setting:10545␤ in at src/gen/Metamodel.pm:2493␤ in any find_method_fallback at src/gen/Metamodel.pm:2481␤ in any find_method at src/gen/Metamodel.pm:929␤ in at src/gen/BOOTSTRAP.pm:895␤ in any …
diakopter o_O 05:21
r: &_::_::_::_::_::_::_::_::_::_ 05:23
p6eval rakudo 810412: ( no output )
diakopter r: &BOOGABOOGA::BOOGA 05:25
p6eval rakudo 810412: ( no output )
diakopter happily sees Stefon appear on SNL 05:27
Heather how to return from main? 05:33
return; ?
diakopter exit 0 ?
Heather diakopter thanks 05:35
05:35 wk joined 05:36 adu left
diakopter is glad some of my guesses have worked.. 05:36
Heather diakopter how to concat strings? :) 05:39
diakopter ~ ?
diakopter yes
Heather diakopter is there something alike sprint ? 05:40
diakopter like with %s %d ...
diakopter yep perl6advent.wordpress.com/2009/12/0...ormatting/
Heather wow... 05:41
truly cool 05:42
diakopter :) 05:44
05:46 kaleem joined 05:54 wk left 05:57 ircleuser left
Heather I think I'm about to present my first perl program :D 06:10
Timbus o boy, i love spaghetti 06:11
Heather spaghetti ? )
Timbus I'm just being mean :v 06:12
diakopter Heather: what's your program
Heather adds line to file \o/
Timbus an excellent use for perl 06:13
(was actually being serious that time)
diakopter -_- 06:14
sorry just sleepy
Heather \p/
diakopter the tail of the p must be long hair 06:15
Heather github.com/Cynede/ignore
github.com/Cynede/ignore/blob/master/bin/ignore
diakopter you don't need the () after if 06:16
Heather diakopter I think I don't :S 06:17
habit
diakopter what is .elems = 1
Heather if found 1 element ) 06:18
diakopter ==
Heather overhead
diakopter ?
Heather basically I can check it with :e
oh....
I need ==
true
another habit -_-'
Timbus a habit from.. basic?? 06:19
Heather ml
Timbus oh phew
Heather :P
Timbus howcome you indent your closing braces? thats one of the more different styles ive seen 06:20
diakopter I think the :e is redundant: :e & (:f | :l) 06:21
Heather Timbus I indent last bracket with code
diakopter if file don't exist it goes in this pattern, I don't know why
doesn't
Timbus yes I see. Is that a particular style from somewhere?
diakopter that sounds like a bug 06:22
Heather Timbus I inline first bracket like K&R and indent last like GNU
Timbus oooh yeah. gnu style
Heather Timbus but not very GNU alike ... gnu was a bit more weird ) 06:23
en.wikipedia.org/wiki/GNU_coding_standards 06:24
they have double indent
I do single indent for code and for closing bracket
it makes me feel like I have no brackets and use empty line in the block ending 06:25
06:26 toebu left
Heather Timbus another example: github.com/Cynede/ctodo/blob/master/ctodo.c 06:26
Timbus i see 06:28
well its readable
and youre very consistent so yeah. its just different to follow
Heather thanks ) 06:29
it's because after some ml practice I think in ml and when I write void doit() { I think about let doit() = 06:30
diakopter sorear: did you feel the quake 06:31
sorear no 06:32
sleep&
Heather diakopter quake?
not
diakopter socal 06:33
Heather diakopter to check if string contains something I need regexp? 06:42
diakopter r: say "foo" ~~ /fo/ 06:47
p6eval rakudo 810412: OUTPUT«「fo」␤␤»
Heather Quantifier quantifies nothing 06:48
diakopter I want match * 06:49
diakopter \* ? 06:50
diakopter . means any char
* means 0..Inf repetitions of the previous
so .* means match anything or nothing
Heather wait ... how user will input * -_-' 06:51
fault
diakopter oh, you mean literal *
'*'
er
Heather yes 06:52
diakopter r: say '*' ~~ /'*'/
p6eval rakudo 810412: OUTPUT«「*」␤␤»
Heather seems like /\*/ also works
r: say 'hi*' ~~ /\*/
p6eval rakudo 810412: OUTPUT«「*」␤␤»
Heather r: say 'hi' ~~ /\*/ 06:53
p6eval rakudo 810412: OUTPUT«#<failed match>␤»
Heather diakopter but it's non-inputable ) 06:54
diakopter only if user will put something alike "*" but user is lazy :(
How can I creat code wrappers, alike usingFile { code code code } # File will be closed in the end 06:59
07:00 daniel-s left
Heather wrapped code could be some lambda ) 07:00
wait.... TimToady is perl creator? O_O 07:11
tadzik yes 07:13
Heather wow...
tadzik I remember myself suddenly discovering that :P
Pleiades` ^ same 07:14
Heather on windows I have strawberry perl and I was checking if there is anything interesting and there was quote on main page (strawberryperl.com/) in picture and I was alike "who is this" then found github account then wikipedia article ) 07:17
tadzik does rakudo means something in Japanese? A butterfly maybe? 07:19
Timbus 'way of the camel' 07:21
Heather Timbus do<- way raku<-camel ? 07:22
Timbus well the 'do' part is correct, i dont actually know if raku means camel 07:23
tadzik rakuda-do, or so
07:25 labster joined 07:29 rindolf left 07:30 rindolf joined
labster looks at backlog... 07:32
rakuda-do means way of the camel. rakudo means paradise
Heather labster oh.. and what means butterfly? :) 07:33
labster chou in japanese. mariposa in spanish.
Heather labster I mean in logo
I have some obsession to sybolics )
labster I think Camelia means happiness. 07:34
Heather labster Camelia? 07:36
labster I suppose her name would be Tsubaki in Japanese, but that's not so much of a pun.
07:37 rindolf left
Heather labster the butterfly is Camelia? :S 07:37
labster Camelia is the name of the Perl6 butterfly.
07:38 rindolf joined
labster www.perl6.org/ <-- first sentence here 07:38
Heather oh -_-'
labster what is spokesbug 07:39
labster spokesperson ~~ s/person/bug/ 07:40
an insect who speaks for us.
speaking of bugs: 07:42
r: say 1.1.fmt('%.*f')
p6eval rakudo 810412: OUTPUT«Null PMC access in get_number()␤ in method fmt at src/gen/CORE.setting:2293␤ in block at /tmp/YwbgSjFsYH:1␤␤»
Heather I see
07:44 rindolf left 07:52 wk joined 07:57 yeltzooo joined
Heather does someone use Parde ... 08:00
08:02 FROGGS joined
moritz szabgab does 08:09
though he isn't on IRC much these days 08:10
08:11 domidumont joined, am0c left
Heather want to try it. it's gentoo ebuild suddenly disappeared from tree, maybe I should recover it. 08:11
08:33 domidumont left 08:34 domidumont joined 08:43 brrt joined 08:59 Jimmy_ joined
Jimmy_ .u ☭ 08:59
yoleaux U+262D HAMMER AND SICKLE [So] (☭)
08:59 Jimmy_ left
tadzik hrm 09:00
Heather :D 09:01
hoelzro what's the recommended way to ./configure ; make ; make test ; make install for a Perl6 module? 09:07
I'm guessing that's up in the air atm...
09:07 grondilu joined
hoelzro is ufo still a thing? 09:07
hoelzro is looking into generating packages for Perl6 modules
grondilu Is there a german here? If so, what does "Haftungsbe" mean to you?
Heather hoelzro I like ufo 09:08
grondilu (I don't see it on wiktionnary.org but this word seem to exist)
09:08 daxim joined
Heather grondilu maybe it's alike ehrnviuerhbreiuvreiojgoehuhuj ? 09:08
FROGGS grondilu: that word isn't complete 09:10
bonsaikitten grondilu: it's part of a word
tadzik hoelzro: ufo && make test I guess
FROGGS grondilu: could be Haftungsbescheid, though I dont hope you mean that 09:11
tadzik ufo is The Thing for module developers
bonsaikitten grondilu: "Haftungsbeschraenkt" or similar would mean "limited liability" or something equivalent
hoelzro ok, I didn't know if that was "standard"
tadzik yes, it is 09:12
well battle-proven too :)
grondilu bonsaikitten: thanks. I guess it is this.
Heather bonsaikitten it reminds me some fun picture set about Deutch...
FROGGS RATZKRATZNFATZ!! 09:13
bonsaikitten Heather: ambulance, ambulance, KRANKENWAGEN ?
hoelzro ok, great!
FROGGS butterfly, SCHMETTERLING
brrt psyche?
Heather YES
:D
FROGGS :#|
Heather found it www.trolino.com/image?id=15874
bonsaikitten FROGGS: and the fun is that schmetter- means smashing- ... so a butterfly in german is a SMASHER 09:14
hulk butterfly!
FROGGS hehe
Heather it's big picture set -_-' 09:15
FROGGS bonsaikitten: "Der deutsche Name „Schmetterling“, 1501 erstmals belegt, kommt vom slawischstämmigen ostmitteldeutschen Wort Schmetten (das heißt Schmand, Rahm)" [...]
so butterfly
bonsaikitten FROGGS: ah, so it's a cream-fly instead of a butter-fly
that's an interesting etymology 09:16
FROGGS right :o)
bonsaikitten I still prefer to parse it as "HULK SMASH"
FROGGS well, if you know the spongebob episode.... hulk fits well 09:17
09:21 labster left
bonsaikitten no, I don't 09:23
:\
09:26 fhelmberger joined 09:31 dakkar joined 09:46 brrt left 09:55 domidumont left 09:59 eiro joined 10:02 hypolin left
hoelzro hmm 10:28
in order to use ufo for module installation when building package, it's going to need DESTDIR support... 10:29
tadzik you can use panda :)
DESTDIR=foo panda install .
hoelzro hmm
that would be acceptable
although bootstrapping that will be...interesting.
tadzik it'll just be tad slower
hoelzro I'm guessing panda can install itself? 10:30
tadzik panda bootstraps itself using panda :)
yes
hoelzro perfect =)
so I'll have to tell my spec conversion script to skip panda
and write spec files for panda by hand
which isn't too bad
tadzik spec files? 10:31
hoelzro PKGBUILD/RPM specs/DEB spec files
for Linux distros
tadzik nice
hoelzro I want Rakudo * to be installable as a meta-package by 2013.04 10:32
and it's something I can help with
I feel like a lot of the effort in the Perl 6 community is focused on the compiler(s)
which *is* important
Heather moar benchmarks please 10:33
tadzik I was recently thinking about a marketing effort
hoelzro but I think that people will be more keen to slap the "production-ready" label on if there's some infrastructure behind it
tadzik like those who say "look, our language X is faster than C!"
everyone knows it's total bullshit, but they get the attention they wanted
Heather tadzik it's not bullshit :)
tadzik there are things we can advertise. Built-in profiler, for example
Heather: of course it is. C is a language, not an implementation :) 10:34
languages aren't fast
hoelzro well, to take a note from chromatic: I think we need real-world examples that don't break between releases
rosetta code is nice and all
but a web application or something like that would probably go over better
arnsholt We're getting there
Heather tadzik so... but people don't mean exactly language when they say such )
arnsholt Not quite in place just yet, but I think it's within reach soon 10:35
hoelzro I was thinking of registering 6pan.org
tadzik yeah, but it's always "here, we came up with something in language X that coincidentally runs faster than other thing we wrote in C"
arnsholt I have a plan involving both Zavolaj and webapps
hoelzro arnsholt: oh?
hoelzro listens up
Heather is faster then C 10:36
arnsholt Do you know Mongrel 2?
hoelzro I know of it
arnsholt Well, it handles all the annoying HTTP bits and communicates with webapps over ZMQ
hoelzro right
arnsholt So my idea is to get a ZMQ wrapper going, and then plug that into Mongrel 2 to make some kind of webapp 10:37
hoelzro hmm 10:38
grondilu just edited the Perl 6 entry in wikidata: www.wikidata.org/wiki/Q2052676 :)
hoelzro I think I would start with bailador + nginx proxy
just to get something off the ground
arnsholt That'll work as well 10:41
hoelzro having a module repository for Perl 6 (something a little better than modules.perl6.org) would be nice 10:42
and *actual* releases, rather than "build from Git"
heck, for the time being, we could fork MetaCPAN and use it =)
tadzik PAUSE, more like 10:43
hoelzro good point
PAUSE ne MetaCPAN
tadzik I think it would be nice if you could just tag a release on git and the module repo will figure out the rest for yourself
hoelzro I'm 110% behind that 10:44
tadzik I like things being easy :)
hoelzro I'm in favor of easy
especially if that's part of the "killer features" of Perl 6
tadzik hmm
hoelzro "wanna release your module? git tag -s"
tadzik I may want to look at that soonish 10:45
hoelzro you just need to cope with other rev systems
10:45 Heather left
hoelzro and people who tag version 0.01 as 0.01, v0.01, release/0.01, etc 10:45
tadzik we'll deal with them when anyone uses them :P
here we go, an easy way to enforce conventions :0
hoelzro Git is the winner in the Perl 6 community, it seems
arnsholt I think there are several things not done yet about modules though
tadzik I'm said that the smoketesting thing never took off 10:47
sad *
it's all in place, it's just cron not working
feather.perl6.nl/~sergot/modules/ I mean this 10:48
tadzik vanishes
10:52 am0c joined 10:58 Heather joined
Heather tadzik panda installs all it's dependies? 10:59
it's bad for packaging. 11:00
hoelzro that's why you make sure all of the dependencies are installed when building the package =)
but a --nodeps option would be nice 11:01
Heather hoelzro yes, it must not install them in package because deps are another packages controlled by PM 11:02
colomon tadzik: I'm still planning on trying to set up smoke testing on my new Linux box. Just need to find the tuits...
11:03 am0c left
daxim raw.github.com/bbkr/jsonrpc/master..._32x32.png 11:03
this means invoking a deity, right?
grondilu TimToady: I updated your entry wikidata: www.wikidata.org/wiki/Q92597 11:06
:)
gist: Larry Wall: creator of Perl, also known as TimToady. 11:07
masak ahoj, #perl6 11:08
Heather ahoj? 11:12
masak hi
FROGGS ++colomon # I'll do the same on my boxes then 11:16
11:17 anuby left, am0c joined, kaleem left 11:22 rindolf joined
rindolf Hi all. 11:22
Heather masak why ufo default installation place and default PERL6LIB are different?
colomon because ufo is ancient.... 11:30
Heather colomon panda makes the same -_-' 11:31
but... I'm not sure, it makes the same for itself
when I run bootstrap
maybe I use wrong prefix... 11:32
11:53 ilogger2 joined, ChanServ sets mode: +v ilogger2
Heather default to ED? 11:53
hoelzro github.com/Cynede/ufo/commit/1a0fd...cc0fea0425 see if I made something wrong 11:57
hoelzro what's ED? 11:58
moritz why do we need both $DESTDIR and $PREFIX?
why not just set $PREFIX to the concatenation of both values? 11:59
hoelzro because DESTDIR is needed by package managers
you could
but
moritz or simply change PREFIX to DESTDIR?
Heather failed in ED )
and in lines 60+
hoelzro then you need to figure out from outside of ufo/Makefile what PREFIX is supposed to be
I *should* just be able to say make install DESTDIR=$pkgdir or whatever and have it "just work" 12:01
I shouldn't need to know where ufo thinks modules should be installed under /
Heather: you missed a \
Heather hoelzro github.com/Cynede/ufo/commit/867a5...568f50b883 12:02
hoelzro check your changed lines for missing \
Heather I think empty line is fine
for default
hoelzro empty is fine
in fact, you don't need to "declare" DESTDIR, iirc 12:03
Heather: I see from your GH that you also have some Gentoo packages for perl6 =) 12:04
I might need to enlist you for Gentoo testing when I get these Rakudo * packages off the ground
Heather hoelzro just for myself, currently
hoelzro bonsaikitten is gentoo perl6 maintainer
hoelzro that's totally fine!
Heather hoelzro but I will do more )
masak: github.com/masak/ufo/pull/5 12:05
hoelzro my first goal is Arch packages, as I'm on Arch
but I'm hoping to do RPM and DEB
and EBUILDs if I find the time
and hopefully others will help with other packaging =)
Heather hoelzro contact me if you need help with ebuilds )
hoelzro and let use one github repo
for them
hoelzro well, the ebuilds will be generated via a script under tools/build in rakudo/star 12:06
I haven't pushed that yet 12:07
but I have Arch package files being generated successfully
Heather hoelzro good
I will take a look after push
hoelzro sorry but what is enlist for Gentoo testing? 12:12
hoelzro Heather: oh, I just mean that I don't have a Gentoo system, and when I write the script to generate ebuilds, I need people to test them =) 12:13
Heather hoelzro alright, I'm in
hoelzro \o/
(if anyone is willing to help with RedHat/Debian distros, that would also be nice!) 12:14
also, I think we should have a build server somewhere
so I can point my machine to packages.perl6.org/archlinux/perl6.db and it will "just work"
Heather teamcity?
hoelzro I'm not sure what to do just yet 12:15
but having nqp, rakudo, and rakudo-star packages generated for each release would be *great* 12:16
my current rakudo * package is a monolithic one, and I have to manually package it every month
Heather hoelzro about DESTDIR declaration I prefer to keep it because some checkers may feel bad w/o it 12:19
hoelzro ok 12:20
that's fine
Heather and it's better to use make DESTDIR= ... instead if DESTDIR = .. make
I think
hoelzro well, those are different things, iirc
make DESTDIR=... is what you're supposed to do 12:21
12:28 snearch joined 12:29 snearch left 12:40 rindolf joined 12:42 kaleem joined 12:44 census joined
hoelzro \o/ 12:45
hoelzro finds panda already supports --nodeps
Heather hoelzro oh... 12:46
hoelzro crap 12:48
panda has its own deps...=/
how do I install those?! 12:49
Heather lol
hoelzro unless...
no, that won't work.
masak Heather: thank you for your pull request. teaching right now, but will try to look at it later. 12:50
Heather hoelzro we need package everything in panda deps without panda usage )
masak Heather: please remind me if I forget. I get too many pull requests.
hoelzro yeah
that's tricksy
Heather masak cool :)
moritz hoelzro: since when does panda have its own deps? 12:54
erm, never mind 12:55
I confused panda and ufo
hoelzro: panda has a bootstrapping mechanism
Heather yes and it installs all the installed libs with file collision 12:56
ok, time to go for me ) see you
hoelzro moritz: I saw, but I want to make OS packages for panda and Perl 6 modules 12:57
moritz hoelzro: and is there a reason not to use the bootstrapping mechanism for that?
hoelzro so when panda installs itself, does it install its own copy of the deps?
moritz no 12:58
hoelzro ah
so how does it work once installed?
moritz it just installs the deps
hoelzro oh, I see
got it
hmm
moritz erm, I might have misunderstood the question
it installs a copy of the deps, but not a separate copy of the deps
hoelzro right
moritz so it records the deps as being installed 12:59
hoelzro so I want to create OS packages for Perl 6 modules
I want to use panda for the build/install process
I also don't want panda to bundle the dependencies in its package
(they belong on their own)
but
I can have the packaging process for panda create packages for its deps as well 13:00
arnsholt Does NQP still potentially have problems to build with --gen-parrot when there's a system Parrot as well?
13:00 domidumont joined
hoelzro so I *think* I can make it work! 13:00
PerlJam arnsholt: See irclog.perlgeek.de/parrot/2013-02-19#i_6474292 13:06
arnsholt: dunno if that's "good enough" of an answer. 13:07
13:09 bluescreen10 joined 13:14 stevan_ joined
raiph what's a colorcircumfix? 13:23
(from GlitchMr's latest Perl 6 changes blog post) 13:24
(glitchmr.github.com/) 13:25
13:25 kivutar joined
raiph ah. coloncircumfix 13:26
13:31 kresike joined
kresike hello all you happy and/or unhappy perl6 people 13:31
PerlJam kresike: there are no unhappy perl6 people :) 13:32
kresike PerlJam, unfortunately I just ran into one a few days ago 13:33
he/she was really upset by not being greeted :) 13:34
tadzik ah, Heather's gone 13:39
hoelzro: there is --nodeps :) 13:40
hoelzro I just saw =)
tadzik oh, ok :)
hoelzro hmm 13:41
panda isn't shy about using the network =/
even when it doesn't need to
tadzik hm, what do you mean?
bootstrap should be offline 13:42
hoelzro well, if I'm installing ./ext/File__Tools
it still wants the projects file
tadzik if it says "fetching", it means copying files from one directory to another
it does? Shit
hoelzro mhmm
tadzik that shouldn't happen
hoelzro it's not terrible
tadzik itis
hoelzro well, it doesn't stop me from making packages =) 13:44
tadzik heh, ok :) 13:45
hoelzro: wow, it really shouldn't happen :( 13:46
it creates the projects.json before it even runs itself
well, bootstrap creates, before bootstrap runs panda
and it does work alright if it even installs File-Tools from exr
*ext
wth 13:47
hoelzro: okay, cannot replicate that here 13:49
13:50 araujo joined
tadzik hoelzro: trying gist.github.com/tadzik/5143006 and bootstrap.pl. If it does download stuff for you, can you show me the output? 13:50
hoelzro tadzik: I'm not using bootstrap.pl atm
I was seeing if ./bin/panda install ./ext/File__Tools will work 13:51
tadzik ah
if you're using an unsupported way, then it means that the supported way is not good enough 13:52
hoelzro well
tadzik please tell me what you need
hoelzro I'm trying to build OS packages for the modules included in Rakudo *
tadzik okay
hoelzro I'd like to use panda for the build/install process when building a package
which means I need a panda package 13:53
...which itself depends on other modules
tadzik ah
hoelzro so I was hoping to use panda to create packages for the deps
tadzik so you need a self-contained panda?
offline?
hoelzro and then create a panda package
that would help, yes
tadzik I can do that
hoelzro \o/
tadzik gimme 10 minutes
hoelzro that would be excellent
I think OS packaging will move the production ready clock forward a good deal 13:54
tadzik actually, it'd me just a modified bootstrap.pl
you're absolutely right
now if you look at bootstrap.pl, it's mostly about shell "perl6 bin/panda install File::Tools JSON::Tiny Test::Mock {cwd}";
hoelzro (can we make productionreadyclock.perl6.org?)
ok, cool 13:55
tadzik so you can just change that to whatever you want
however!
it'll still create its state file, src directory and all this crap
so you'll need to clean that up anyway :/
hoelzro ah =/
tadzik we need pandaminus
hoelzro haha
whatever works for creating packages
tadzik I like panda less and less. I lost control of this code 13:56
I have trouble maintaining it already
and it'll get worse, because it's not really complete
hoelzro hmm 13:57
13:58 mavcunha joined, FROGGS joined
colomon hmm indeed 14:00
hoelzro well, whatever works for now
I'm not writing the package files by hand, so changing it for future releases will be fine
tadzik I can write you something that'll generate them itself 14:02
I know Arch packaging system, I think
I used to maintain this and that in AUR
hoelzro well, I've got the bulk of it done
just build() { ... } and package() { ... }
need doing
and I was thinking of using ufo or panda for it
tadzik I wouldn't mind if panda (or whatever replaces it) would be pluggable enough to provide a simple tool for tasks like this 14:03
14:03 skids joined
hoelzro that would be great, honestly 14:03
tadzik hmm
hoelzro pandapp --generate-pkg=arch
tadzik when I was turning neutro into panda it didn't take that long 14:04
maybe I got even more efficient in rewriting module installers over time
hoelzro heh
tadzik besides, I wanted to try how functional-style programming will work for this
I think too much about oop, it's unhealthy
14:09 FROGGS left 14:10 PacoAir joined 14:11 erkan joined, erkan left, erkan joined 14:14 wk joined 14:17 PacoAir left, PacoAir joined
colomon oop-- 14:18
14:21 kaleem left 14:22 Psyche^ joined, Psyche^ is now known as Patterner
masak I like OOP, but I think the unhealthy bits are mostly related to inheritance hierarchies. 14:26
14:26 davidalso joined
colomon OOP is very useful where it is useful, but I think overuse of it promotes insanity. 14:26
14:27 FROGGS joined
davidalso promotes insanity? occult oriented programming? 14:27
colomon adds ^ and $ to his top-level STEP rule to avoid parse issues.... 14:29
14:29 kaare__ joined
colomon it may be that I am not really anti-OOP, but instead very anti-Design Patterns 14:31
14:32 xilo joined
moritz it's mostly a problem when people use *only* OOP 14:32
geekosaur in the haskell world, it's often said that a design pattern indicates a language shortcoming
colomon moritz: right
moritz there are cases where a function is the best API
geekosaur: I believe that's very true 14:33
colomon geekosaur: right on
masak there's much to be said for a healthy mix of OOP and FP.
tadzik geekosaur: indeed it is
masak really, a function is in many ways like a really small interface.
tadzik 90% of design patterns for C++ I've seen is just the lack of first-class functions
masak also, functions are units of abstraction and units of encapsulation.
colomon "bless used at line 10. Did you mean '&elems'?" 14:34
FROGGS I need help ó.ò # <---- puppy eyes
moritz colomon: :( 14:35
FROGGS It's about github.com/rakudo/rakudo/commit/d2...44df97707a
colomon moritz: forgot the self. before bless. but not a helpful message!
FROGGS the current code uses eval to create a regex containing regex rules from a variable like "a+b"
moritz colomon: aye, it shouldn't suggest that when the difference between 'bless' and 'elems' is so big 14:36
[Coke] wilwheaton.tumblr.com/post/45121088...ia-lab-ito - this seems like a good crowd for this link.
FROGGS without the eval it would call INTERPOLATE, but which will be an endless loop (since I'm creating that regex within INTERPOLATE)
is there a way to create an anon regex like: my $rx := anon regex { ^$arg } 14:37
colomon btw, gist.github.com/colomon/5143394 is a great example of how p6 is awesome -- and the code can probably still be significantly improved / shortened.
moritz FROGGS: my $rx = regex { <$arg> } 14:38
FROGGS: but I guess that doesn't help you
because you're implementing <$arg>
FROGGS moritz: right, doesnt work
nqp: my $arg := "a+b"; my $rx := /^<$arg>/; say("aaaaab" ~~ $rx) 14:39
p6eval nqp: OUTPUT«aaaaab␤»
FROGGS would be nice if I could tell it to do that in nqp-land only
and call !INTERPOLATE instead of INTERPOLATE
14:39 wk left
FROGGS I mean, pmichaud is right, an eval is not the best idea 14:41
[Coke] hurm. not that you're soliciting, but should that -> $keyword be .kv -> $key, $value ?
colomon how does one declare an anonymous class? class { whatever } ? 14:44
FROGGS r: my $thing = anon class { } 14:45
p6eval rakudo 810412: ( no output )
colomon never mind, did it.
moritz class { } and anon class { } are the same thing 14:47
r: my $x = anon class Foo { }; say $x.^name
p6eval rakudo 810412: OUTPUT«Foo␤»
moritz r: my $x = anon class Foo { }; say $x.^name; say Foo # not in the symbol table 14:48
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Undeclared name:␤ Foo used at line 1␤␤»
colomon how do you capture the key and value of a Pair in a subsig?
colomon really needs to learn that syntax 14:49
[Coke]: if you were talking to me, you can't do .kv after .sort
FROGGS moritz: maybe I should create an NQPRegexMethod directly 14:55
[Coke] colomon: I was, ok. 14:57
colomon admittedly learned that by trying it after [Coke] suggested it. ;) 14:58
colomon updated the gist to use an anonymous class and Pair unpacking: gist.github.com/colomon/5143394 14:59
BTW, this script is for $work. :)
[Coke] r: my Pair $a = <a b>; say $a.kv.join(": ");
p6eval rakudo 810412: OUTPUT«Type check failed in assignment to '$a'; expected 'Pair' but got 'Parcel'␤ in block at /tmp/Cr0Q5R4Grk:1␤␤»
14:59 cognominal joined
[Coke] r: my Pair $a = 1 => 2; say $a.kv.join(": "); 14:59
p6eval rakudo 810412: OUTPUT«1: 2␤»
15:01 sizz_ joined 15:03 xilo left 15:04 happydude joined, cognominal left 15:05 happydude left 15:06 xilo joined
kresike bye folks 15:08
15:08 kresike left 15:16 xilo left
colomon just realized his current anti-OOP feelings may come from $working with STEP at the moment, surely the most ridiculously over OOPed CAD file format ever. 15:19
15:22 am0c joined 15:23 xilo joined
arnsholt PerlJam: Thanks for the reply! I think that's the answer I wanted 15:24
15:25 mls left
timotimo_ added 'elif' parsing to the list of things that throw X::Syntax::Malformed::Elsif 15:25
15:28 Guest6468 joined, Guest6468 left 15:31 asarch joined
asarch I've downloaded Rakudo, perl Configure.pl, make and make install. However I cannot find perl6 in my system. The only place I find "perl6" is in the rakudo/bin dir. Is this correct? 15:32
timotimo_ that's correct, yes 15:34
at least that's the default 15:35
asarch Oh
FROGGS asarch: after make install you have everything within rakudo/install/...
asarch I thought "sudo make install" would install perl6 in my system
Then I need to change my $PATH envdir 15:36
FROGGS no, it doesn't do that
right
15:36 am0c left
timotimo_ no, "sudo" will only run it with root privilege and "make install" can do whatever it wants, just depends on the Makefile 15:36
[Coke] and rakudo efaults to local ./install/ dir
timotimo_ for what it's worth, "sudo make install" could delete all your files or create an off-site backup on your amazon glacier or order ten pizzas to your home 15:37
asarch lol :-D 15:38
Ok, ok. Thank you guys
Thank you very much :-)
15:38 stevan_ left
timotimo_ i think i may be hungry 15:41
15:42 FROGGS left
davidalso r: say <good better best>.pick(1); 15:46
p6eval rakudo 810412: OUTPUT«better␤»
davidalso pretty good. could have done better.
timotimo_ it *did* do "better".
davidalso yes, but nevertheless, it could have done *better* 15:47
timotimo_ you mean it could have done best?
davidalso I feel like it did its best, but the result wasn't good 15:48
15:48 isomorphisms joined
timotimo_ hm 15:48
davidalso r: eval 'better'; 15:49
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Undeclared routine:␤ better used at line 1␤␤»
davidalso Oh, I guess I was wrong. It can't do better. 15:50
timotimo_ oh my 15:51
15:54 risou_ joined, krunen joined, szbalint left, djanatyn joined, szbalint_ joined, moritz_ joined, p5eval joined, Khisanth joined, davidalso left 15:55 nyuszika7h joined, sizz joined 15:56 sizz_ left, census left 15:58 rindolf left 16:02 FROGGS joined
timotimo_ i wonder why i can't <.typed_panic: "foo", bar => "baz">, but i can { $/.CURSOR.typed_panic("foo", bar => baz) }? 16:03
16:06 census joined
moritz_ because there's no support (yet) for named arguments in subrule calls 16:07
timotimo_ OK
TimToady n: say 'foo' ~~ /<alpha: :ignoreme>/ 16:08
p6eval niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: Excess arguments to Cursor.alpha, unused named ignoreme␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (Cursor.alpha @ 1) ␤ at /tmp/LRV81myOGi line 1 (ANON @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2968 (Regex.ACCEPTS @ 1…
TimToady apparently not niecza either 16:09
moritz_ n: class A { method m() { } }; A.m(:foo)
p6eval niecza v24-33-gfc6d5fd: OUTPUT«Unhandled exception: Excess arguments to A.m, unused named foo␤ at /tmp/PAp17bVfqJ line 0 (A.m @ 1) ␤ at /tmp/PAp17bVfqJ line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4285 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line…
moritz_ ah, niecza doesn't implement the 'interface consistency' thingy
TimToady I guess not 16:10
TimToady is still wondering if there's a better way to handle that
16:10 jay_ joined 16:12 moritz_ is now known as moritz
diakopter nods hi 16:16
jay_ hi there. if i understand correctly <ident> defines C-like identifiers, not perl6 identifiers. am i right? 16:18
16:19 domidumont left
moritz well, if you include Unicode in "C-like", then yes 16:19
so rather "Java-like"
jay_ thanks.
16:29 jay_ left 16:35 rindolf joined 16:38 domidumont joined 16:41 cognominal joined 16:45 pmurias joined
TimToady and as it happens, STD effectively defines 'identifier' as <ident>+ % <[ ' \- ]> 16:47
16:48 stevan_ joined
census Hi, I'm sorry this is not directly perl6 related, but I hope it is ok since there does not seem to be big conversation at the moment. Is anybody very familiar with google plus? 16:54
16:55 spider-mario joined, domidumont left, domidumont joined 16:57 SunilJoshi joined
jnthn evening, #perl6 16:59
17:02 wk joined
[Coke] hateses DST. 17:02
17:04 cognominal left 17:05 gdey joined 17:07 jerome joined 17:09 gdey left 17:10 LlamaRider joined
spider-mario so do I. 17:12
17:12 mtk joined 17:14 cognominal joined
jnthn Oh, and it comes earlier in the US now? 17:15
jnthn thinks he remember reading something on that 17:16
Think it's still a couple of weeks off here...
colomon yes, it comes earlier in the US now. 17:19
[Coke] IT'S ALREADY UPON US, DEVOURING OUR SOULS 17:20
[Coke] just signed a petition at whitehouse.gov to pick one or the other and stick with it.
diakopter signed a petition there for monkeys to generate all possible petitions 17:22
timotimo_ i'm currently spectesting github.com/rakudo/rakudo/pull/114
[Coke] seems crazy to me that we're able to parse 'else if' but then yell at people about it. 17:23
diakopter
.oO( it should fix the code for you.. )
17:24
17:24 SunilJoshi left
[Coke] or make it legal syntax. 17:24
17:24 SunilJoshi joined
japhb diakopter, that way lies madness. Sometimes very awesome madness, but madness all the same. 17:24
geekosaur seems to me the issue with else if is that, unles syou recognize it up front, the errors it engenders happen somewhere after the end of the if ... else if ... block 17:25
17:25 cognominal left
TimToady r: given \(42, :foo<x>) { when * -> $pos, :$foo { say $pos } } 17:25
p6eval rakudo 810412: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in block at /tmp/O_Xo6sfvkg:1␤ in block at /tmp/O_Xo6sfvkg:1␤␤»
geekosaur (or replace block there with "chunk" or "expression" or whatever)_
TimToady n: given \(42, :foo<x>) { when * -> $pos, :$foo { say $pos } }
p6eval niecza v24-33-gfc6d5fd: OUTPUT«Potential difficulties:␤ $foo is declared but not used at /tmp/Au24O2Tn1u line 1:␤------> given \(42, :foo<x>) { when * -> $pos, :⏏$foo { say $pos } }␤␤Unhandled exception: No value for parameter '$pos' in 'ANON'␤ at /tmp/Au24O2Tn1u li…
jnthn TimToady: Is that the "try binding to the block" thing?
TimToady yes, not_gerd was asking about that on Sunday 17:26
or maybe Monday there...
jnthn Is it syntactic?
TimToady irclog.perlgeek.de/perl6/2013-03-10#i_6572439 17:27
jnthn I guess so...
jnthn wonders how to implement it...
TimToady doesn't have to be, /methinks
timotimo_ r: if False { 10 } else if { 99 }
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Please use 'elsif'␤at /tmp/48_UEYAghg:1␤------> if False { 10 } else if ⏏{ 99 }␤Confused␤at /tmp/48_UEYAghg:1␤------> if False { 10 } else if ⏏{ 99 }␤ expecting any of:␤ postfix␤ …
jnthn What would it look like in a non-syntactic case?
timotimo_ ah, it already compiled that
r: if False { 10 } elif { 99 }
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Confused␤at /tmp/dZrGmQun18:1␤------> if False { 10 } ⏏elif { 99 }␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ statement modifier loop␤ horizontal whitespace…
timotimo_ so "confused" isn't very helpful i think 17:28
TimToady well, it wouldn't be syntactic if we allow any when to take a pointy that just does nothing if it doesn't bind
but maybe we don't want to do that 17:29
so maybe it is syntactic
jnthn TimToady: Does when $a -> ... { } mean anything, for example?
TimToady wanders off to get more obviously needed coffee
well, generally you don't put a $a in a smartmatch in any case
timotimo_ okay, the spectests go through, except for the tests that have been failing without my modifications. feel like merging? 17:30
jnthn Yeah, I'm just trying to feel out the expectations so I can try to implement it right ;)
TimToady s/right/according to expectations/ :)
17:30 cognominal joined
jnthn ;) 17:30
Expectations vary :) 17:31
TimToady if we want * -> to be a degenerate case (which feels rightish to me, at least today), then failure to bind the block has to be a no-op generally
but I will try to think up arguments for doing it otherwise :) 17:32
jnthn Well, part of it is how I catch the bind failure in a sane way 17:33
I guess if I make bind failures a typed exception... :) 17:34
TimToady I suppose the main argument for the other side is that people might expect a failure to bind to complain rather than do nothing
jnthn Well, I kinda thought the use of the construct was so you could try binding in a range of ways?
Almost like a sequential multi-dispatch, or kinda like tree matching if you go unpacking... 17:35
TimToady yes, but should the * be required for that?
or should we just say that any binding can veto the case?
and does that have performance ramifications?
of course, we can distinguish the case syntactically by recognizing the -> rather than the * 17:36
diakopter ..someday maybe
jnthn The * "feels funny" for this
I guess the question is, if you write
when 'foo' -> $a { } 17:37
What does that one really mean?
The thing is that what we're kinda doing with * is using the * to say "no, really I mean try binding that block"
TimToady it just means does it stringify to 'foo'
jnthn Yes, I mean about the -> $a { } bit
TimToady I can imagine: when ThisType -> $a { } 17:38
jnthn We support if cond -> $a { }
TimToady this is much the same
jnthn What should the argument be?
The topic?
I'm vaguely pondering (maybe this sucks) that if we force peple to write the sig in parens we can stop it being a special case at all.
when * -> (:$foo, :$bar) { } 17:39
oh wait
That doesn't make the failure to bind just skip it
Yeah, scratch that.
TimToady or you can just Capturize $_ if there's a ->, in addition to trapping non-binding
jnthn Hm, so you could do like 17:40
TimToady presumably one could find a way of Capturizing it only once for multiple tries
jnthn when Pair -> :$kday, :$value { }
*key
Yeah, we could stop that we need to capturize it one time I suspect. 17:41
Just do it before the first when that needs it.
Well, that needs a little tracking I guess...
Optimizer could catch it at the very least. 17:42
17:42 cognominal left, LlamaRider left
jnthn We can tell very easily if you're using a pointy on a when, anyway, so I don't think it'd thwart being able to analyze simple ones and transform them into jump tables some day. 17:43
TimToady nodnod 17:44
17:45 asarch left
jnthn I guess iwht this, the * works but it's just a special case since it always matches. 17:45
This feels like a more powerful/general mechanism than recognizing * and special-casing. 17:46
TimToady that's what I'm kinda aiming for, if it doesn't blow performance in the usual cases
but I wonder whether there should be a -> form that implies .?-ish semantics somehow 17:47
moritz ->?
-?>
jnthn ~>
TimToady ~> is a bit too hard to distinguish visually
jnthn I'm not sure how useful that is in other places, though 17:48
Yeah.
I realized that right after I'd typed it ;)
TimToady well, we have to balance out the general use case for a ->? against the DWIM/WAT quotient of not doing anything when the user might expect failure 17:49
the DWQ
:) 17:50
17:50 cognominal joined
jnthn True 17:50
Dunno if the "when" is a strong enough hint.
TimToady the Department of Wat(er) Quality
felher Whats WAT? 17:51
TimToady also, -> $a { } when * given $stuff
arguably that has a harder time knowing that the -> should be treated as optional 17:52
jnthn ugh, yes, I really don't want to have to make that work :) 17:53
moritz felher: the sound of utter confusion and shock you make when discovering an unbelievable misfeature/bug/behavior 17:54
TimToady see also www.youtube.com/watch?v=kXEgk1Hdze0
it's supposed to sound a bit like a duck quacking too 17:55
17:56 cognominal left 17:58 bluescreen10 left
masak #perl6! \o/ 17:59
colomon \o/
jnthn masak! 18:00
TimToady WAT?!?
18:00 Chillance joined
jnthn
.oO( WAT for? :P )
18:00
masak .oO( $masak.WAT ) 18:01
TimToady .WAT should explain what the thing on the left thought it was doing :) 18:02
moritz it usually returns a WTF object
TimToady what's the World Trade Federation got to do with it? 18:03
moritz it's the central duck registry 18:04
[Coke] r: wait.WHAT?
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/0CfDdRoHgl:1␤------> wait.WHAT⏏?␤ expecting any of:␤ method arguments␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statement mo…
moritz r: wait().WHAT 18:05
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Undeclared routine:␤ wait used at line 1␤␤»
jnthn Time to find some dinner...bbiab 18:06
moritz I don't understand why this becomes a TTIAR error
either it parses as wait().WHAT or as wait(.WHAT)
[Coke] r: say wait().WHAT?
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/cl1mGl4RJS:1␤------> say wait().WHAT⏏?␤ expecting any of:␤ method arguments␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statem…
moritz both cases should complain about undecared routines, none about TTIAR
std: wait().WHAT
p6eval std 86b102f: OUTPUT«ok 00:00 41m␤»
moritz std: foobar().WHAT 18:07
p6eval std 86b102f: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'foobar' used at line 1␤Check failed␤FAILED 00:00 41m␤»
[Coke] std: wait().WHAT?
p6eval std 86b102f: OUTPUT«===SORRY!===␤Confused at /tmp/rvY8hftRuO line 1:␤------> wait().WHAT⏏?␤ expecting any of:␤ POST␤ infix␤ infix or meta-infix␤ infixed function␤ method arguments␤ postcircumfix␤ postfix␤
..postfix_prefix_meta_operator␤ postop␤ stat…
[Coke] points moritz at the ?
moritz oh.
jnthn It's the ?, and it's because it assumes if it was looking for an infix and didn't get one then it must be a ttiar
'cus I didn't implement suppose yet.
moritz unconfuses
jnthn Once I implement that it can suppose term, and not give bogus ttiar
[Coke] asks jnthn why he supposes that is.
TimToady std: wait().WHAT?;
p6eval std 86b102f: OUTPUT«===SORRY!===␤Confused at /tmp/WeDUfIGl13 line 1:␤------> wait().WHAT⏏?;␤ expecting any of:␤ POST␤ infix␤ infix or meta-infix␤ infixed function␤ method arguments␤ postcircumfix␤ postfix␤
..postfix_prefix_meta_operator␤ postop␤ sta…
jnthn Really dinner hunting... :) 18:08
TimToady std: wait().WHAT+;
p6eval std 86b102f: OUTPUT«===SORRY!===␤Bogus term at /tmp/dMisghFVFu line 1:␤------> wait().WHAT+⏏;␤Parse failed␤FAILED 00:00 42m␤»
felher moritz: of course! I should have known :)
TimToady doesn't understand why ? doesn't give that error instead
18:08 SamuraiJack joined
TimToady std: wait().WHAT ?; 18:08
p6eval std 86b102f: OUTPUT«===SORRY!===␤Confused at /tmp/k3oFrdoMl5 line 1:␤------> wait().WHAT ⏏?;␤ expecting any of:␤ infix␤ infix or meta-infix␤ infixed function␤ statement modifier loop␤Parse failed␤FAILED 00:00 42m␤»
TimToady std: wait().WHAT ? ;
p6eval std 86b102f: OUTPUT«===SORRY!===␤Confused at /tmp/qH44MYFHxF line 1:␤------> wait().WHAT ⏏? ;␤ expecting any of:␤ infix␤ infix or meta-infix␤ infixed function␤ statement modifier loop␤Parse failed␤FAILED 00:00 42m␤»
TimToady huh
duh 18:09
(the + is also an infix) 18:10
no amount of coffee will fix certain cognitive difficulties... 18:11
[Coke] TimToady: nice theory, we should test it by drinking MOAR.
[Coke] drinks a cup of spicy eggnog coffee.
TimToady is allergic to spicy eggnog coffee.
geekosaur [12 13:49] <mizmoose> oh, StDiluted reminds me: Thing I tried last night that yinz must: Coffee with a Cadbury creme egg. As in, make coffee, drop in egg. stir. Drink. Die. 18:12
perigrin could see doing that with some cocoa. 18:13
diakopter r: \{ s!ay WAT?!.?!!?! }
p6eval rakudo 810412: ( no output )
[Coke] TimToady: OH NOESE
diakopter std: \{ s!ay WAT?!.?!!?! } 18:14
p6eval std 86b102f: OUTPUT«ok 00:00 43m␤»
diakopter std: \{ s!ay WAT?!.?!!? } 18:16
p6eval std 86b102f: OUTPUT«===SORRY!===␤Malformed replacement part; couldn't find final ! at /tmp/DSaWSkaFoX line 1:␤------> \{ s!ay WAT?!.?!!? }⏏<EOL>␤ expecting escape␤Parse failed␤FAILED 00:00 43m␤»
diakopter std: \{ s!ay WAT?!.?!! }
p6eval std 86b102f: OUTPUT«===SORRY!===␤Malformed replacement part; couldn't find final ! at /tmp/ls_1XaKzDb line 1:␤------> \{ s!ay WAT?!.?!! }⏏<EOL>␤ expecting escape␤Parse failed␤FAILED 00:00 43m␤»
diakopter std: \{ s!ay WAT?!.?! }
p6eval std 86b102f: OUTPUT«===SORRY!===␤Couldn't find terminator ! at /tmp/e9pxUqvd19 line 1:␤------> \{ s!ay WAT?!.?! ⏏}␤ expecting any of:␤ metachar␤ quantifier␤ regex atom␤Parse failed␤FAILED 00:00 43m␤»
diakopter I don't get it; what does the second ! mean 18:17
TimToady S05:2334 18:18
[Coke] r: say "hello" ~~ s!l!e! 18:19
p6eval rakudo 810412: OUTPUT«Cannot modify an immutable value␤ in sub infix:<=> at src/gen/CORE.setting:12575␤ in block at /tmp/q0bJejIlZn:1␤␤»
[Coke] r: my $a = "hello" ~~ s!l!e!; say $a;
p6eval rakudo 810412: OUTPUT«Cannot modify an immutable value␤ in sub infix:<=> at src/gen/CORE.setting:12575␤ in block at /tmp/G0jQJIZeF7:1␤␤»
[Coke] ... me sees what needs doing, but goes and drinks coffee instead.
masak so, I'm thinking of giving a Perl 6 course on IRC. how much interest is there? Heather and tadzik already expressed an interest. any more takers?
TimToady would like to find out more about Perl 6... 18:20
masak TimToady: you're welcome to attend.
PerlJam masak: course on macros in Perl 6? ;)
masak we'd grab a channel somewhere and basically amuse ourselves for a day.
PerlJam: possibly macros would figure somewhere. I was thinking the scope would be much wider than just macros, though. 18:21
something more like "how to write awesome code with Perl 6".
PerlJam sweet!
masak just probing a bit for interest before making any fix'd plans :)
18:25 SamuraiJack left 18:28 SunilJoshi left
census i would be a taker!!! 18:29
:)
yay for perl 6 !!
masak \o/ 18:30
timotimo_ masak: i'd like to attend, too, if i can 18:32
masak that makes five. Heather, tadzik, TimToady, census, and timotimo_. 18:34
cool, I think there's enough of an audience for something like this :)
it won't be any earlier than end of next week, due to @courses. until then we can do planning; find themes and dates.
er, date.
18:37 stevan_ left 18:39 kivutar left 18:47 japhb_ joined
dalek o: 1a0fd4f | ℋeatђer++ | bin/ufo:
$(DESTDIR)
18:48
o: 867a5d4 | ℋeatђer++ | bin/ufo:
Update ufo
o: a4e9a53 | (Carl Mäsak)++ | bin/ufo:
Merge pull request #5 from Cynede/master

  $DESTDIR for ufo
18:48 cognominal joined
masak Heather++ 18:49
18:50 _jaldhar joined, not_gerd joined
not_gerd o/ 18:50
masak \o
not_gerd what's the perl6-equivalent for setters? 18:51
in particular, I want to transcode a string on assignment
timotimo_ hm, i know how to do a setter that doesn't do anything to the assigned thing
not_gerd knows how to do that too via rw method 18:52
masak an rw method is the Perl 6 equivalent of a setter. 18:53
if you want to do fancy things in the background, it seems to me the practice is to return a Proxy object with an interesting .STORE method. 18:54
PerlJam masak: ... if only we had an IRC course on how to do awesome things with Perl 6 ... ;)
masak PerlJam: point taken, and noted. 18:55
timotimo_ masak: that seems pretty involved :|
masak also provisionally names the course "Perl 6 Awesome"
timotimo_: well, what you're asking is for the language to lie to you about assigning something. that should be at least a little involved, in my opinion :P 18:56
timotimo_ hm, kind of 18:57
PerlJam timotimo_: once you get the pattern, it's not *too* involved.
masak timotimo_: the default, just exposing the underlying container, is pretty sane.
18:57 snearch joined
timotimo_ right 18:57
18:59 snearch left
not_gerd r: class Foo { has $!bar; method bar is rw { my $bar := $!bar; Proxy.new(FETCH => method { $bar }, STORE => method ($val) { $bar = "Nanananana " ~ $val }) } }; my $foo = Foo.new; $foo.bar = "Batman"; say $foo.bar 19:02
p6eval rakudo 810412: OUTPUT«Nanananana Batman␤»
not_gerd is there a way to simplify that?
PerlJam using a proxy object seems like one of those "tribal knowledge" things. You're not intentionally left-out, but if you don't know it, you don't know.
moritz one could argue that the non-trivial extensibility means that it's not a good idea to implement/expose setters the way we do 19:03
19:04 FROGGS left
masak r: class Pope { hr: class Vatican { my $set = 0; has $!pope; method pope { Proxy.new(FETCH => { $!pope }, STORE => -> $, $newpope { die "Can only set pope twice" if ++$set > 2; $!pope = $newpope }) } }; given Vatican.new { say .pope = "Benedict XVI"; say .pope = "vacant"; say .pope = "Hilarius II" } 19:07
p6eval rakudo 810412: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/QfEtigJD56:1␤------> class Pope { hr⏏: class Vatican { my $set = 0; has $!pop␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤…
masak r: class Vatican { my $set = 0; has $!pope; method pope { Proxy.new(FETCH => { $!pope }, STORE => -> $, $newpope { die "Can only set pope twice" if ++$set > 2; $!pope = $newpope }) } }; given Vatican.new { say .pope = "Benedict XVI"; say .pope = "vacant"; say .pope = "Hilarius II" }
p6eval rakudo 810412: OUTPUT«Benedict XVI␤vacant␤Can only set pope twice␤ in block at /tmp/7e8tWnixii:1␤␤»
masak moritz: non-trivial extensibility? I'm curious, what do you mean? 19:08
19:10 rindolf left
PerlJam not_gerd: you could also .wrap() the autogenerated setter I bet. If so, that might be simpler 19:13
19:13 grondilu joined
moritz masak: I mean having to jump through the hoop of creating Proxy objects 19:14
(which are quite expensive in comparison to normal rwness, and much more code too)
masak PerlJam: I'm skeptical. could you show that in code? 19:15
PerlJam If I could, I would have already :)
19:16 domidumont left, domidumont joined 19:18 PacoAir_ joined
masak moritz: well, the one invariant here, I guess, is that the way to set attributes is '$obj.attr = $val'. so something like ECMAScript 5's getters and setters is out, I think. 19:18
19:18 PacoAir left, PacoAir_ is now known as PacoAir
moritz masak: but why is that the one invariant? 19:20
masak: why can't we say $obj.attr($val)?
dalek rl6-roast-data: 32184f7 | coke++ | / (4 files):
today (automated commit)
masak well, you *can* create methods like that, of course.
moritz masak: let my rephrase. Why not make 'is rw' generate such setters by default? 19:21
[Coke] S32-exceptions/misc.rakudo passed 525 unplanned test(s)
rakudo failed 14 tests again today. :|
masak I meant something more like (a) I kinda like the assignment operator there, (b) I'm not ready to change that bit of the design, and (c) even if I were, I'm not ready to fight that battle, and I don't think others are either.
moritz: so, 'is rw' would generate one getter method and one setter method? 19:22
moritz: how then would you explain that both are called .attr ?
19:22 FROGGS joined
masak moritz: where is the lying going on in the system to delegate to the setter? 19:23
[Coke] multis?
masak doesn't cut it, they're both 1-ary.
moritz huh?
one is 0-ary, one is 1-ary
+ invocant in both cases
masak you're still arguing .attr($val) !
why? 19:24
that's not even an option!
moritz it is an option, if we make it one
masak (I meant 1-ary, including the invocant, by the way)
moritz if you refuse to discuss it as an option, there's not much I can do
masak moritz: sorry, I think you're arguing something insane. :/
PerlJam masak: why insane? 19:25
moritz masak: then show me the insanity please
PerlJam It seems like what people coming from Moose-land would expect.
masak the whole design presupposes assignment there.
moritz which whole design?
masak S12.
moritz rw attrs aren't use much at all core
and not much depends on it
colomon rw attrs are evil! 19:26
moritz masak: most of S12 is completely orthogonal to the way setters work
colomon maybe.
masak moritz: again, I'm sorry. you're free to argue for .attr($val). I'm just not so interested in talking about it, because I (a) I like .attr = $val, and (b) I don't think you'll convince TimToady, and (c) I hope you won't convince TimToady. 19:27
put differently, I dislike Proxy less than I dislike .attr($val)
moritz masak: does using Proxy feel like a hack to you? 19:28
jnthn We have meta-programming. You can shove alternative attr classes in EXPORTHOW.
[Coke] I really don't like proxy.
it feels like a hack to me.
jnthn And have it generate the accessors you want.
masak moritz: no.
moritz: I looked at it in src/core/Bag.pm, and it looked completely fine to. 19:29
to me*
moritz jnthn: it's more about what we do by default, not about what can be done
19:29 bluescreen10 joined
moritz masak: well, that's the difference then. To me, Proxy always feels like a complete and utter hack that screams "you shouldn't be doing it like this" 19:29
masak Proxy doesn't scream at all to me. :) 19:30
PerlJam interesting.
jnthn Well, what you write for Proxy isn't far off writing property get/set things in C#.
tadzik I just thought about that
maybe a DSL would look nicer :) 19:31
jnthn Proxy feels a awkward to work with compared to those, though.
masak a Proxy feels more like a design element that releases the pressure between caller and callee when they have different expectations on how to get/set things.
tadzik has $.a = proxe { get {} set {} }
PerlJam I've always looked at Proxy as more like gentle pressure to reconsider your design, but otherwise works if you're willing to live with it (I am)
colomon PerlJam: +1
masak interestingly, both PerlJam and I just used the word "pressure" to describe Proxy :)
I agree with PerlJam, by the way.
but only because there might sometimes be simpler ways than using Proxy. sometimes not. 19:32
jnthn That is, rather than throwing out the way we do properties, we may want to find a way to do this that feels less hacky to those who find proxy hacky.
s/properties/accessors/
masak *nod*
jnthn I don't find Proxy particularly beautiful, fwiw.
masak tadzik's syntax is interesting.
not_gerd there should be a way to apply a transformation to a value on attribute assignment
masak modulo a semicolon or two. 19:33
[Coke] sighs again about upgrading rakudo breaking installed modules, and wonders when he can find time to fix it so he can work on his program to see if he likes proxy or not.
tadzik masak: I'm crafting a module right now :)
not_gerd the current Proxy system can do that, but it's more painful than it should be
masak tadzik++
tadzik but well, it's tricky
or maybe not :) 19:34
masak tadzik: 'get' is taken. maybe 'getter'?
jnthn moritz: What is it about Proxy that make it feel like a hack, out of curiosity?
tadzik masak: yeah, sounds good
masak proxy { getter {}, setter {} }
comma or semicolon, I dunno.
tadzik masak: no need :) 19:35
think Try::Tiny
moritz jnthn: the clunky syntax, and the need for extra objects for something that feels like it should be possible directly
not_gerd moritz++
skids And the general rule that if you see ALLCAPS you are doing something icky or complicated. 19:36
not_gerd feels like ECMAScript property descriptors *shudders*
moritz jnthn: given that getters and setters are closures, I don't even want to know how many extra GCables and calls are involved. Probably way too many for any hot-ish path
jnthn moritz: *nod*
moritz I mean the FETCH and STORE closures passed to Proxy.new
jnthn moritz: Yes, for a potential hot-path those are hard to optimize.
FROGGS jnthn: what do I get when calling nqp::getcomp('QRegex::P6Regex').compile("a+b") ? it tells me that get an eval 19:37
jnthn FROGGS: You can back something invokable
*get
FROGGS ahh, so I can call it
cool
jnthn Yes.
PerlJam skids: BEGIN, END, BUILD, CATCH, FIRST, NEXT, etc. Are these icky or complicated? :)
FROGGS calls it Peter then 19:38
skids Well, I guess that intention has drifted over time to ALLCAPS means PAY ATTENTION, but i seem to recall that was mentioned at some point when reading through the specs years ago.
hoelzro ahoy #perl6 folk 19:39
I have a question about type constraints in sub signatures!
PerlJam moritz: that's the one thing that does bother me about Proxy. It seems like it would be slow because of the extra hoops the code has to jump through.
hoelzro starts posting
gist.github.com/hoelzro/5146266
I can't for the life of me figure out why this type checks.
tadzik masak: ok, not possible after all :(
no prototypes in P6 19:40
dalek rlito: bbc5fbb | (Flavio S. Glock)++ | misc/jit.txt:
Perlito5 - misc/jit.txt - plan for a jit backend
19:41
hoelzro also, where are type constraints documented?
moritz hoelzro: ~~ sets $_ to the value on the left
hoelzro seriously?
moritz hoelzro: so never, ever smart-match against $_. It never dows what you want
hoelzro o_O
can we get a warning for that? =)
so, how can I implement this type check? 19:42
(I realize it's a stupid example, but I'm going to be using it in a better way)
moritz with a normal parameter
hoelzro I really would like the slurpy hash
PerlJam hoelzro: I'd use a self-declared var. $^o or something
hoelzro I'm trying to have normal parameters plus a list of "will be supported in the future, but isn't working yet" 19:43
PerlJam: ah, good call
moritz hoelzro: and don't you actually want it the other way round?
hoelzro: $_ ~~ $valid-options ?
hoelzro moritz: that's what I thought, but when I tested it, I needed Set ~~ Hash rather than Hash ~~ Set 19:44
moritz or maybe all(%options.keys) ~~ $valid-options ?
hoelzro hmm 19:45
that works too
moritz wouldn't know the smart matching between Hash and Set by heart, no matter which way
19:45 snearch_ joined
PerlJam from the table in S03, it looks like either Hash ~~ Set or Set ~~ Hash should work. 19:49
Although, I guess I don't know what you're really trying to achieve. 19:50
hoelzro sub MAIN(Bool :$help, *%extra-options where { $valid-options ~~ $^a } )
awesome =)
I want to issue a warning for options I intend to support, but don't yet 19:51
19:52 immortal joined, erkan left, immortal left, immortal joined, immortal left
hoelzro can one customize the usage message generated by MAIN? 19:52
PerlJam hoelzro: see S06:3425 19:53
hoelzro: or just ack for USAGE
hoelzro grazie
19:57 cognominal left
timotimo_ should i add tests for "elif" raising an X::Syntax::Malformed::Elsif to roast? 19:58
20:00 snearch_ left
tadzik masak: okay, I had a pretty plan, but this is over my head :( 20:02
20:03 snearch joined
masak tadzik: it's possible if you make 'setter' an infix. but I wouldn't do that. too magical. 20:03
timotimo_ "is setter"?
tadzik masak: I'm not so sure
masak tadzik: just put a comma or semicolon there :)
tadzik masak: rakudo doesn't really like 'has $.a = Proxy.new'
it then still fails on $foo.a = (stuff)
20:03 snearch left
tadzik because it's not rw 20:03
so you need $!a, and method a which returns a proxy
masak hm. 20:04
20:04 cognominal joined
tadzik or I'm doing something wrong, which is possible 20:04
20:08 cognominal left 20:11 cognominal joined 20:16 domidumont left 20:17 cognominal left
hoelzro wishes @array.first w/o params just returned the first entry 20:18
masak r: say [5, 6, 7].first(True)
p6eval rakudo 810412: OUTPUT«5␤»
hoelzro ah, but... 20:19
r: say [5, 6, 7].first()
p6eval rakudo 810412: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method first at src/gen/CORE.setting:1283␤ in block at /tmp/Ztd0gbGFlg:1␤␤»
hoelzro it couldn't just default to True?
20:20 erkan joined, erkan left, erkan joined 20:21 rurban joined
colomon hoelzro: seems like a lot of work to avoid saying [0] 20:23
hoelzro I know
but using methods on arrays makes me think of Ruby, and calling .first is idiomatic Ruby =) 20:24
fg 20:35
oops =/
moritz don't ctrl+z your IRC client :-) 20:36
not_gerd moritz: if you have time, please take a look at github.com/rakudo/rakudo/pull/115
or rather github.com/gerdr/rakudo/blob/f54e2...NET.pm#L93 20:37
the diff isn't all that helpful
20:37 erkan left
hoelzro when I do ... where $object 20:38
I'm guessing that's equivalent to ... where { $^a ~~ $object }?
moritz not_gerd: looks good, will spectest next
not_gerd moritz: thanks 20:40
masak today's fun moment in Perl class: implementing an infinite loop with a $SIG{INT} handler. "observe how Ctrl+C doesn't abort the script. great... so now how do I stop the script?" :) 20:42
timotimo_ :D 20:43
^\
tadzik masak: do you know the 'sl' program? 20:44
masak tadzik: nope. 20:45
(I ended up ^Z-ing, then doing 'kill %1')
timotimo_ sl is a very helpful utility
20:45 alester joined
masak url? 20:46
alester masak! I have something for you!
masak whoa! 20:47
is it rage? :P 20:48
20:48 erkan joined, erkan left, erkan joined
jnthn is it in a box? :P 20:49
masak in either of those cases, allow me to pass. :)
jnthn
.oO( rage in a box )
masak I was about to write that!
geekosaur ocelot? 20:50
[Coke] ocelittle. 20:53
FROGGS oceless
20:53 _jaldhar left
timotimo_ strange. i added a &?ROUTINE to the block that gets created from m/.../, like this: - QAST::Var(lexical &?ROUTINE :decl) 20:54
but rakudo complains "Undeclared name: &?ROUTINE used at line 1" when i reference it from inside
jnthn I'm not sure what should get one...
Hm, maybe it should...
I think regex { ... } etc should get one though. 20:55
Do you add a symbol table entry too?
20:55 mberends joined
timotimo_ i used "install_lexical_symbol. is that not enough? 20:56
tadzik oh, btw
jnthn should be.
tadzik does Perl 6 allow anything like "install those named subs into caller's lexical scope?"
jnthn If the thing you're calling is a macro, presumably through compiling
timotimo_ $outer[0].push(QAST::Stmt.new($block)); - this is in there some place else, would i need that, too, perhaps? 20:57
jnthn You can't do it after CHECK time since lexical scopes are immutable after that.
timotimo_: No, don't think so
tadzik Dancer2 does this: github.com/PerlDancer/Dancer2/blob...DSL.pm#L44
I wonder if that's portable in any way 20:58
moritz not to Perl 6 20:59
maybe with macros
timotimo_ jnthn: paste.ee/p/gZhrX this is the tree, maybe i'm looking at the wrong place?
maybe because of the inner block? 21:00
dalek Heuristic branch merge: pushed 17 commits to rakudo/new-nil by moritz 21:02
moritz dammit, merged into the wrong branch
21:02 skids left
FROGGS moritz: doesnt hurt if you wanted to merge it into nom 21:03
21:03 cognominal joined
timotimo_ yeah, maybe it doesn't work because it's a lexical, but the block is somewhere else in the tree? 21:03
21:04 kurahaupo joined
alester A kiwi! 21:05
jnthn timotimo_: Well, the lexical wants installing inside the regex block 21:07
timotimo_ so i need the lexical inside every { ... } block?
jnthn No, it should be visible from nested ones...it's a lexical 21:08
timotimo_: Hm, it looks to be in the same scope $?REGEX is. 21:09
So I don't immediately see what's wrong.
timotimo_: Does it work for regex foo { ... } ? 21:10
timotimo_ i'll try
it doesn't seem to error out at least 21:11
but i don't call it, but that doesn't make a difference, yes?
oh, neat,it does work 21:12
er,no, not quite
oh, no, actually yes, it does
perl6 -e '"a" ~~ regex { a { say &?ROUTINE.WHAT } };' -> (Regex)
dalek kudo/nom: 7a313c0 | (Gerhard R)++ | src/core/IO/Socket/INET.pm:
Change IO::Socket::INET.get to return undef on EOF, matching IO semantics.

Now, if only someone could show me a good way to make the transcoding happen at attribute assignment and not at every readline call...
kudo/nom: f54e210 | (Gerhard R)++ | src/core/IO/Socket/INET.pm:
Fix IO::Socket::INET.lines - now with actual looping
kudo/nom: a98aa70 | moritz++ | src/core/IO/Socket/INET.pm:
Merge branch 'fix-socket-get-2' of github.com/gerdr/rakudo into nom
moritz not_gerd++
alester In text, are we wrintg "Perl 6" or "Perl6"? 21:13
timotimo_ i wrote Perl 6 recently 21:14
alester I've heard people suggest it should be the latter but not more than that.
OK, "Perl 6" it is.
arnsholt jnthn: 'Nother ops question. When I have "class NQPArray { ... }" in NQP, does that end up in the same namespace as, say, QRPA? 21:15
21:16 kaare__ left
jnthn arnsholt: QRPA isn't in any NQP-visible namespace as it's a Parroty type thing 21:20
arnsholt: And NQPArray should be a in NQPCORE, so it shouldn't be in a package.
s/a//
It should be declared my and visible due to being lexical.
timotimo_ jnthn: should i pullrequest the change that adds the &?ROUTINE already? or wait until somebody clever finds out why it doesn't work with /.../ regexes? 21:21
jnthn timotimo_: I'm not convinced if it should 21:22
timotimo_ rt.perl.org/rt3//Ticket/Display.html?id=116417 - moritz said so. i have no opinion :) 21:23
jnthn ah
I dunno if /.../ counts as a routine-y thing or a block-y thing. I guess it is ~~ Regex, so if it's about type...
timotimo_ so, if it's not supposed to be available in /.../, should i make sure the &?ROUTINE won't be added to the AST in the first place? 21:25
21:27 not_gerd left
masak alester: I'm curious to see what it is you have -- I'm a bit knackered from lots of teaching, though, so forgive my silly humor and lack of attention. 21:32
alester Here it comes.
gist.github.com/petdance/5147279 21:33
Sorry it took so long to get here. 21:34
I would also suggest that the answers to the first three questions should be in every release announcement. 21:35
One of my frustrations as both potential user and news editor is that the release announcements tell me about what's new, but not what the state is. The what's new doesn't mean anything to me if I haven't been following previous releases. 21:36
There's some of that in rakudo.org/2013/02/24/rakudo-star-2...-released/ down at the tail end. 21:37
Now, all that said: How can I help? 21:40
masak alester++ 21:41
I won't have the strength to do anything until tomorrow. but what's there already looks good. 21:42
alester The writing is mostly yours, and wordsithed a bit 21:44
Wordsmithed. Wordsithed would mean I have to run it past a dark lord.
But the questions are gonna be the tough part.
masak honestly, I think it's based mostly on what PerlJam++ wrote. 21:49
jnthn alester: (what's new, not state) interesting point, perhaps it's worth revisiting the start-of-announcement text to consider what we convey there. 21:50
alester jnthn: That's why I'm trying to be the outsider here. 21:51
Becuase y'all are SO CLOSE to the project. 21:52
masak that's because our arms are only so long.
jnthn alester: Well, conveing progress is important too, so I guess it wants to be a balance.
alester I don't see it needs to be a balance. If progress is the bulk of it, that's fine. 21:53
But I think that as an outsider, I want to know what I'm getting.
jnthn Something up front that ways you're getting a Perl 6 compiler, modules, debugger, documentation, etc? 21:56
*says
alester That'd be a start, sure.
masak as a Perl 5 teacher, I proudly tell my participants "it's been 13 years. we're working on it. there's noticeable progress, but there are also things left to finish."
alester masak: Absolutely. I'm proud to be involved, too, in all the things I've done. 21:57
Not nearly as much as most of y'all, but yeah, I get what you mean.
It stinks that the black/white mentality of done/not-done comes out as so hostile.
But it's also what we have to deal with. 21:58
hoelzro can one augment a subset? 22:00
jnthn No
hoelzro =(
so I can't add methods to a subset?
jnthn No
hoelzro dang
oh well
jnthn It's not a type capable of having methods directly.
masak can one inherit from a subset? :) 22:01
timotimo_ you could add "does foo" as part of the subset-ness test? :P
masak can one mix a subset into a class as if it were a role?
hoelzro is there a way I can define a class that has an automatic string coercion?
ex. sub MAIN(IssueState :$state)?
masak hoelzro: class IssueState is Str {} # ;) 22:02
[Coke] imagines masak with tyrannosaurus arms.
alester hoelzro: Get outta here, go overhaul betterthangrep.com to support ack 2.0
hoelzro alester: heh 22:03
timotimo_ ack 3.0 will be perl6? :) 22:04
jnthn hoelzro: Override method Stringy
hoelzro I was actually thinking of writing an ack port in Perl 6 called 6pack
masak [Coke]: 2.bp.blogspot.com/_9ooaR4kZwTY/S4NG...Comics.png 22:05
[Coke] masak: funnyasduck.net/post/11512 22:06
22:06 _jaldhar joined
masak rawr. 22:07
grondilu Ayiko: hi, how did you manage to have syntax highlighnting in rosalind.info/problems/fibd/solutions/ without using a shebang?
grondilu realises he can just ask this on this very page 22:08
japhb_ moritz, re: irclog.perlgeek.de/perl6/2013-03-12#i_6578249 , on a purely edit-distance basis, 'bless' and 'elems' are very close. What tweak to the distance heuristics would you recommend to DWYM? 22:09
hoelzro jnthn: so I only need to override Stringy? do I need to consume that role?
jnthn hoelzro: no 22:10
masak today's autopun: bash.org/?772595 22:11
22:11 olivia123 joined
olivia123 Helloo 22:11
22:11 olivia123 left
masak goodbyee 22:12
hm, are there any autopuns on the form <do>...<say>? all the ones I can think of are <say>..<do>.
22:14 mehwork joined
mehwork what's the best way to play with perl6 today? 22:14
alester mehwork: Thanks for asking. We're talking about that very question.
mehwork nice 22:15
japhb_ alester, bracketed line 60 of your gist seems no longer necessary, since you have the blockquote at the end that addresses it.
masak mehwork: download Rakudo. write a one-liner. see if it did what you hoped it would. (probably does.) repeat from step 2.
alester I've just updated gist.github.com/petdance/5147279 to include mehwork's question'
timotimo_ mehwork: you can also use the p6eval bot to evaluate single lines of code or gists from gist.github.com for you :)
masak rn: say "hello $_, from us compilers!" given "mehwork" 22:16
mehwork cool, thanks
p6eval rakudo a98aa7, niecza v24-33-gfc6d5fd: OUTPUT«hello mehwork, from us compilers!␤»
japhb_ alester, OK, it's now line 62. ;-)
timotimo_ here on the channel you always get the newest version of rakudo, but you can also type star: to get your code run on the latest rakudo star release 22:17
star: if True { say "yay" } else if False { say "no" }
p6eval star 2013.02: OUTPUT«===SORRY!===␤Missing block␤at /tmp/OyojzVsqYV:1␤------> if True { say "yay" } else ⏏if False { say "no" }␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ state…
timotimo_ r: if True { say "yay" } else if False { say "no" }
p6eval rakudo a98aa7: OUTPUT«===SORRY!===␤Please use 'elsif'␤at /tmp/C9FWhBzvNe:1␤------> if True { say "yay" } else if ⏏False { say "no" }␤Confused␤at /tmp/C9FWhBzvNe:1␤------> if True { say "yay" } else if ⏏False { say "no" }␤ expect…
japhb_ likes that star tracks a *release*, not just HEAD
alester Removed.
22:19 spider-mario left
timotimo_ how long until the 2012.03 rakudo release is planned to happen? 22:19
jnthn It happens on the Thursday following the third Tuesday in the month 22:20
japhb_ hoelzro, last I hacked on it, overriding &USAGE didn't allow you to access $?USAGE (the default-generated usage info) -- that's still a TODO, see src/core/Main.pm for details. 22:21
hoelzro japhb_: yeah, I noticed that too 22:22
22:23 bluescreen10 left
japhb_ hoelzro: I ran out of right-shaped tuits, but you're welcome to work on any or all of those TODOs. 22:23
hoelzro if I find the time =) 22:24
timotimo_ a proto regex should not get &?ROUTINE, is that right?
hoelzro puts that next to "add STD opening/closing brackets"
jnthn timotimo_: I'm not sure there's a way to get at it even if you give it one... 22:25
timotimo_: But it doesn't hurt if it has one.
timotimo_ hm, OK 22:26
timotimo_ specs runtests 22:29
i'm still not sure if i should try to give &?ROUTINE to /.../ or not ... 22:31
masak hm, the Thursday following the third Tuesday in the month can be either the third Thursday or the fourth Thursday, but no other nth Thursday, right? 22:33
jnthn rajt
timotimo_: Me either; I was wondering if TimToady might drop us an opinion if we're patient :) 22:34
timotimo_ oh, that would be nice
i fear he'd suggest to add it in, in that case i wouldn't be sure how to do it :| 22:36
22:37 PacoAir left
timotimo_ i shall add some tests. 22:37
22:38 skids joined
timotimo_ hm, not sure where to add them to be honest. S05-grammars/? 22:39
jnthn Somewhere in S02-magicals maybe 22:41
timotimo_ subname.t seems to have &?ROUTINE in it already 22:42
but only &?ROUTINE.name
ah, sub.t is better 22:43
that was surprisingly easy :) 22:47
dalek ast: ee9b043 | (Timo Paulssen)++ | S02-magicals/sub.t:
test that &?ROUTINE gets set in regex/token/rule.
22:48
timotimo_ these tests pass with my local rakudo, which is just the code that i recently pushed to my github 22:49
TimToady I wouldn't give /.../ a &?ROUTINE, since it functions mroe like a block 22:50
regex {}, token {}, rule {} on the other hand are methods
timotimo_ great, i'll issue a pull request and if the code looks sane, it could be merged immediately 22:51
jnthn TimToady: That was my gut feeling too :) 22:53
A couple of errands aside, I should have a good tuit supply tomorrow :)
diakopter hi 22:54
ww 22:55
ww ww
masak diakopter: :)
jnthn wat? :)
timotimo_ ww ww ww ww ww ww ww ww watman!
TimToady dwim! pow! exp! 22:56
jasonmay that's so meta 22:59
22:59 xilo left
lue hello o/ 22:59
22:59 pmurias left
masak jasonmay: if there's something we like in here, it's meta. 23:00
masak .oO( every time you mention the meta, you level up ) 23:01
jnthn It's so meta, even this allusion... 23:02
masak at this point, I feel obliged to mention Bertrand Russell. that is all. 23:04
timotimo_ oh no, what did i do
masak you created a self-feeding tempo-spacial vortex! 23:05
lue r: my @a = 1,2; my @b = 4,5,6; say @a ZX+ @b; say @a XZ+ @b; # not sure what I want this metaop combining to do :P
p6eval rakudo a98aa7: OUTPUT«5 7␤5 6 7 6 7 8␤»
timotimo_ github.com/rakudo/rakudo/pull/116 - this is now cleaned up and can be merged if you like :) 23:06
alester masak et al: Let me know how I can help with writing/wthaever. TTYL. 23:07
23:07 alester left
jnthn timotimo_: If nobody beats me to it, will merge it in the morning 23:07
well, review andmerge if it's fine
timotimo_ :) 23:08
jnthn Sleep now... 'night o/ 23:09
23:17 mj41 joined 23:27 slavik joined 23:28 Chillance left, xilo joined 23:39 labster joined 23:40 xilo left
masak 'night, #perl6 23:42
23:42 revdiablo joined, xilo joined 23:43 slavik left 23:45 slavik joined
colomon 's $work script would be much easier to write if he could do it in p6 rather than p5. :( 23:59