»ö« 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.
TimToady what we really need is smart tabs that know how to line up with the longest non-tab thing 00:00
then we could just use proportional fonts all over the place and still make code line up nicely 00:01
00:01 wamba1 left
sorear i.e. lhs2TeX 00:01
timotimo have you ever tried that out as a prototype?
just to see if propertional fonts in code do look viable if done right? (i.e. you'd do it right manually and come up with technology to do it right automatically afterwards) 00:02
TimToady the main problem with it is that it has to be work both forwards and backwards from the longest bit 00:03
so youre really doing layout on multiple lines in parallel, left to right 00:04
*
*'
this implies some kind of smart text container that limits the effect of this to a set of lines 00:05
kinda like TeX does whole-paragraph hypthenation optimization 00:06
sorear TimToady: this is a solved problem, lhs2TeX does it but is somewhat Haskell-specific 00:09
TimToady not to mention TeX specific
00:30 ggoebel__ left
mikemol TimToady: If you guys can find a suitable fixed-width font, I can specify it in the RC CSS load. 00:31
mikemol & 00:32
00:35 ggoebel__ joined 00:36 kst joined 00:43 ggoebel__ left 00:53 whiteknight left 00:56 perigrin left 00:57 perigrin joined 01:04 scott_ joined, scott_ is now known as Guest40924 01:07 woosley left
MikeFair_ good evening all! :) 01:09
TimToady timotimo: actually, it looks from the ir clogs that the copypaste worked fine on input (see irclog.perlgeek.de/perl6/2012-09-11#i_5979839), but our irc clients didn't cope on output 01:11
or possible screen didn't copy with Plane 1 chars 01:13
*cope
01:14 hypolin joined
benabik It showed up basically correct for me (piles of whitespace above/below), although I'm using a OS X program instead of something terminal based. 01:14
01:15 helecho joined
sorear screen is BMP only, yah 01:31
someday I'm going to replace irssi+screen with something better
but first I'd have to find a new server
the one that diakopter++ has been graciously letting me use is a little limited 01:32
shachaf Oh, *screen* is the reason my IRC client can't handle non-BMP characters?
shachaf sighs.
sorear it doesn't even have tmux :(
shachaf I guess this is a reason to use tmux.
sorear what, you've been resisting tmux? 01:33
sorear sics doy on shachaf
sorear ducks
01:33 vs-midi left
shachaf I tried it once and didn't like something about it, and screen was working fine. 01:33
01:36 tokuhiro_ joined
geekosaur has been trying to switch himself over from screen to tmux 01:37
02:01 hypolin left, hypolin joined 02:06 tokuhiro_ left 02:11 OuLouFu joined 02:14 orafu left 02:24 UncleFester6 left 02:32 geekosaur left, geekosaur joined 02:38 benabik left 02:39 benabik joined 03:00 ggoebel joined 03:20 Celelibi left 03:25 BlueT_ left 03:26 BlueT_ joined 03:30 hypolin left 03:31 BlueT_ left 03:33 BlueT_ joined 03:43 BlueT_ left, BlueT_ joined 03:49 BlueT_ left 04:02 Guest40924 left 04:04 scott_ joined 04:05 scott_ is now known as Guest1393 04:08 gootle joined 04:32 _jaldhar left, jaldhar_ joined, cognominal joined, raiph left 04:42 ggoebel left 04:43 skids left, kaleem joined 04:49 ggoebel joined 04:55 kaleem left 05:02 kaleem joined 05:24 fgomez left
moritz good morning 05:38
05:41 hypolin joined
sorear o/ moritz 05:42
05:49 fhelmberger joined 06:04 fgomez joined 06:05 wtw_ joined 06:06 cognominal left 06:10 ggoebel left 06:13 cognominal joined 06:16 ggoebel joined 06:18 stepnem joined 06:25 s1n joined 06:35 ggoebel left 06:37 cognominal left 06:38 erkan joined 06:40 ggoebel joined 06:44 cognominal joined 06:45 wamba joined 06:52 marmay joined 07:06 brrt joined
dalek ecs: 22f12ce | (Felix Herrmann)++ | S32-setting-library/Containers.pod:
[S32::Containers] fix minor typo
07:06
07:08 ggoebel left 07:10 spider-mario joined 07:12 ggoebel joined 07:22 kaleem left
tadzik good day #perl6 07:23
07:23 hoelzro|away is now known as hoelzro 07:25 FROGGS__ joined 07:26 FROGGS joined, cognominal left
moritz \o tadzik 07:28
07:45 DfA joined 07:52 xinming left 07:53 xinming joined 07:59 DfA left 08:06 kaleem joined 08:07 kaleem_ joined 08:08 wamba left
FROGGS good morning 08:10
tadzik hello FROGGS 08:11
08:11 kaleem left
tadzik how is the bubble game coming along? :) 08:11
FROGGS well, I can draw text now too, but I didnt committed the changes yet 08:16
my hacks that I did to unpack C-struct are right now just working on 64bit machines
sorear o/ #perl6
tadzik oh, I see
FROGGS don't know If its good to add such a module to modules.perl.org :/ 08:17
tadzik hello sorear
FROGGS hi sorear
sorear FROGGS: there is some absolutely horrid stuff on CPAN5
tadzik well, I just want to shout "GUYS GUYS WE HAVE AN SDL GAME RUNNING SMOOTHLY ON RAKUDO" sooner or later :)
FROGGS ya, the current SDL module (pure pir) isnt that good too
08:19 kaleem_ left 08:20 Psyche^ joined
sorear heh heh heh heh heh. 08:20
FROGGS tadzik: let me prepare a commit...
08:23 Patterner left, Psyche^ is now known as Patterner, kresike joined
kresike good morning all you happy perl6 people 08:23
tadzik hello kresike 08:24
kresike hello tadzik o/ 08:25
FROGGS hi kresike
kresike hello FROGGS o/ 08:26
08:39 dakkar joined 08:47 cognominal joined, fgomez left 08:50 rhr left
FROGGS how do I get the dirname from $?FILE ? 08:51
sorear n: say $?FILE
p6eval niecza v21-1-ga8aa70b: OUTPUT«/tmp/kddimH9zGR␤»
tadzik r: say $?FILE.WHAT; say $?FILE.perl
p6eval rakudo d1f4dc: OUTPUT«Str()␤"/tmp/3Djo0Fy79G"␤»
moritz r: say IO::Path.new($?FILE).directory 08:52
p6eval rakudo d1f4dc: OUTPUT«Could not find symbol '&Path'␤ in method <anon> at src/gen/CORE.setting:9836␤ in at src/gen/Metamodel.pm:2317␤ in any find_method_fallback at src/gen/Metamodel.pm:2305␤ in any find_method at src/gen/Metamodel.pm:859␤ in at src/gen/BOOTSTRAP.pm:826␤ in any …
moritz oh, that doesn't work on evalbot
because we remove all IO classes
cognominal needs a mockup :)
sorear n: say $?FILE.IO.combine('.') 08:53
p6eval niecza v21-1-ga8aa70b: OUTPUT«".".IO␤»
sorear n: say $?FILE.IO.append('.')
p6eval niecza v21-1-ga8aa70b: OUTPUT«"/tmp/3R8YNow58T/.".IO␤»
cognominal forgot the variable name for rakudo configuration :(
FROGGS cool, IO::Path.new($?FILE).directory works
sorear n: BEGIN say $?FILE.IO.slurp
p6eval niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: slurp may not be used in safe mode␤ at /home/p6eval/niecza/lib/CORE.setting line 1673 (List.gist @ 5) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/oaNyR6WyTu line 1 (ANON @ 3) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home…
FROGGS thanks moritz
sorear oh, huh, I fixed that 08:54
n: say $?ORIG # well this works at least (?)
p6eval niecza v21-1-ga8aa70b: OUTPUT«say $?ORIG # well this works at least (?)␤»
tadzik ...huh?
FROGGS hehe
sorear tadzik: $?ORIG is a bug and/or undocumented feature of STD that I implemented in Niecza because I thought it would be funny 08:56
maaaaany versions ago
08:57 rhr joined
tadzik :) 08:59
09:14 Guest1393 left 09:15 scott_ joined 09:16 scott_ is now known as Guest72928 09:17 wk left 09:24 wamba joined
masak good antenoon, #perl6 09:29
today: Perl 6 day. 09:32
I have some errands to run first, though.
sorear o/ masak 09:38
kresike hello masak o/
tadzik \o masak 09:40
masak "sigilless style" looks to me like a committee was 50%-50% on whether sigils are a good idea, so they compromised and put both variants into the language. 09:42
09:48 Guest72928 left 09:51 scott__ joined, wamba left
FROGGS hi masak 09:54
does somebody know why $dir is Mu? 09:55
gist.github.com/3705646
arnsholt: ping? 09:56
09:57 dayangkun left
sorear masak: TimToady has a committee of split personalities. 09:58
FROGGS: traits like "is native" run at BEGIN time, before normal code
FROGGS: you should be able to make that work if you wrap the assignments in a BEGIN block
our $dir; BEGIN { $dir = 'abc' } 09:59
BEGIN our $dir = 'abc'; # shorter, note absense of braces
FROGGS cool, will try 10:00
rn: BEGIN our $dir = 'abc'; 10:01
p6eval niecza v21-1-ga8aa70b: ( no output )
..rakudo d1f4dc: OUTPUT«===SORRY!===␤Cannot assign to a non-container␤»
FROGGS okay, braces ;o)
rn: our $dir; BEGIN { $dir = 'abc' }
p6eval niecza v21-1-ga8aa70b: ( no output ) 10:02
..rakudo d1f4dc: OUTPUT«===SORRY!===␤Cannot assign to a non-container␤»
FROGGS 􏿽xF3.􏿽xF2
10:02 scott__ left, scott__ joined
FROGGS rn: BEGIN { our $dir = 'abc' }; say $dir 10:03
p6eval rakudo d1f4dc: OUTPUT«===SORRY!===␤Variable $dir is not declared␤at /tmp/M2cTBTkz95:1␤»
..niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Variable $dir is not predeclared at /tmp/F2tWyKQlwY line 1:␤------> BEGIN { our $dir = 'abc' }; say ⏏$dir␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ …
FROGGS I'm lost
10:03 scott__ left
sorear FROGGS: try using my instead. 10:05
rn: BEGIN my $dir = 'abc'
10:05 wamba joined
p6eval niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $dir is declared but not used at /tmp/Hh44Alpo7U line 1:␤------> BEGIN my ⏏$dir = 'abc'␤␤» 10:05
..rakudo d1f4dc: ( no output )
FROGGS ohh, cool
sorear looks like both compilers have no propblemw ith that
basically any time you're tempted to use our, think again
cognominal r: say $_ for Method.^methods
p6eval rakudo d1f4dc: OUTPUT«gist␤Unmarshallable foreign language value passed for parameter '$_'␤ in block at /tmp/10nLLXmzmG:1␤␤»
FROGGS ya, it's working 10:06
sorear++
sorear sleep&
cognominal not sure if I already pasted this one
FROGGS gnight
cognominal r: say Method.^methods
p6eval rakudo d1f4dc: OUTPUT«No such method 'gist' for invocant of type 'Sub'␤ in method gist at src/gen/CORE.setting:4748␤ in sub say at src/gen/CORE.setting:7161␤ in block at /tmp/wy8Luujuns:1␤␤» 10:07
cognominal probably same cause but different error messages
FROGGS r: say Method.^methods.WHAT
p6eval rakudo d1f4dc: OUTPUT«Parcel()␤»
10:08 snarkyboojum left
cognominal I like introspection as a way to learn the language but it is still has some rough edge in rakudo 10:09
got a long way this last few months though
10:09 snarkyboojum joined
masak agreed. 10:10
feel free to submit the above two things as rakudobugs.
&
10:10 snarkyboojum left 10:11 snarkyboojum joined 10:16 kaleem joined 10:17 snarkyboojum left, ggoebel left 10:20 snarkyboojum joined 10:22 ggoebel joined 10:41 snearch joined 10:53 snearch left 10:54 wk joined 11:02 wamba left 11:05 Su-Shee_ joined 11:08 gootle left 11:09 Su-Shee left 11:21 fhelmberger left 11:23 daxim joined 11:24 mucker joined 11:48 baest_ joined 11:51 baest left 11:57 baest_ is now known as baest 12:09 cognominal left 12:10 cognominal joined
dalek osystem: 650642f | (Tobias Leich)++ | META.list:
added Games::BubbleBreaker
12:10
FROGGS tadzik^^ 12:11
tadzik \o/
now I can shout
FROGGS I'll hope that it will install fine
tadzik I'll check at $home, probably
FROGGS because I have a .c file in SDL/lib 12:12
dont know if that will work
12:13 Celelibi joined
FROGGS huh: resolve stage failed for Games::BubbleBreaker: Project Games::BubbleBreaker not found in the ecosystem 12:13
panda said that^^ 12:14
12:15 cognominal left 12:16 cognominal joined
tadzik hold on 12:18
I'll bump the modules API
12:18 Su-Shee_ is now known as Su-Shee
tadzik it usually runs hourly 12:19
12:22 cognominal left
FROGGS ahh, k, good to know 12:22
cron++
12:23 cognominal joined
tadzik FROGGS: ok, panda update now and it should work 12:24
12:26 wk_ joined 12:27 wk left 12:31 cognominal left, cognominal joined
FROGGS tadzik: it still can't find it 12:35
do I have to update my pando cache somehow? 12:36
ohh, there is panda update 12:37
fetching now!
12:37 fhelmberger joined 12:38 yarp joined, yarp left, yarp joined 12:42 PacoAir joined
yarp say "good morning"; 12:42
moritz r: say 'oh hai yarp' 12:43
p6eval rakudo d1f4dc: OUTPUT«oh hai yarp␤»
12:43 PacoAir left
yarp r:say "good morning" 12:43
12:44 PacoAir joined
FROGGS tadzik: so far, so good; but my .c file doesn't get installed 12:44
time for Inline::C, isnt it?
and I need to fix my tests 12:45
12:45 [particle]1 joined
[Coke] I have a friend with a 12 year old who wants to program video games, and would love to able to point him at perl6 & sdl. I pointed him at karthik for now. 12:46
FROGGS kartik is pretty busy
I'd love to help
12:46 [particle] left
FROGGS there's a project called Avanger that might be of interest 12:47
12:47 pochi left
FROGGS github.com/PerlGameDev/Avenger 12:47
12:47 benabik left 12:48 nuba left
FROGGS we might do something like this for perl6 too, but this will take time 12:48
and kartik has no time to do perl6 stuff atm, I'm the only one who cares
Su-Shee me idiot would use something common which most people use for game development, but hey, that's just me. ;)
FROGGS libSDL is common for game developement 12:49
12:49 nuba joined, pochi joined
Su-Shee maybe, but definetely not with Perl. 12:49
FROGGS right
yarp but curent rakudo is very slow 12:51
FROGGS ya, you just can make smaller games atm 12:53
[Coke] FROGGS: well, not at him personally, but his online trail of p5 SDL games.
Su-Shee: also: I don't write games, so I had nothing to offer except "I know this one guy..."
now, if the youngun was interested in the glamorous world of custom corporate tax software for multinationals... 12:54
... man, what the hell happened to my dreams of writing video games. Crap. 12:55
12:56 perigrin_ joined, p6eval left, perigrin left
tadzik same here 12:56
I wanted to become a programmer because of games
12:57 p6eval joined, ChanServ sets mode: +v p6eval, [particle]1 is now known as [particle]
FROGGS almost true for me 12:57
12:58 crab2313 joined
moritz I never wanted to become a programmer, I just became one ;-) 13:02
sorear I used to be a game programmer, then realized I had absolutely no interest in it
FROGGS what are you doing here then?
moritz not programming games :-) 13:03
FROGGS I meant sorear, but actually I didn't read "game" 13:04
13:07 dayangkun joined 13:09 jaldhar_ left 13:10 JimmyZ joined
masak is back 13:14
game programming has always been a big part of why I program.
there's something about games, even very simple ones, that makes programming them fun. 13:15
today is apparently en.wikipedia.org/wiki/Programmers'_Day 13:16
moritz finds most games to be too much effort or too complex to program, because he's lazy :-)
masak wow! which is apparently an officially recognized holiday in Russia! 13:17
13:17 hypolin left
__sri is waiting for the book Game Programming with Perl6 13:19
masak heh :) 13:20
moritz waits for "Programming Paradigms with Perl 6" 13:24
13:24 marmay left 13:30 yarp left
masak the book idea by Gloria? I got the feeling that would be a Perl 5 book... but thinking back, I don't think either 5 or 6 was mentioned explicitly in the discussion. 13:31
13:32 fgomez joined 13:33 M_o_C joined
[Coke] so make it "with perl" and do it both ways. 13:35
13:35 skids joined
moritz masak: I think Gloria meant it as a killer app for Perl 6, and then the 5ers noticed that it'd work fine for Perl 5 too :-) 13:36
sorear masak: they'll have fun writing about data parallel in 5 :D
JimmyZ is always waiting for a faster rakudo
[Coke] moritz++ 13:37
JimmyZ: don't wait. profile it today and tell us what's slow.
masak sorear: heh.
moritz: oh, yes. that was probably it.
13:37 benabik joined
JimmyZ [Coke]: PCC ? 13:37
[Coke] JimmyZ: That's an excellent guess. Can you verify? suggest ways to make it go faster? 13:38
sorear [Coke]: jnthn told me quite directly at yapc::eu that PCC was one of the problems 13:39
13:39 yarp joined
JimmyZ [Coke]: yes, I can, just compare fib.pir and fib.pl. 13:39
which fib.pir is almost 50 times slower 13:40
IIRC
tadzik ....wow, it is?
13:40 bluescreen10 joined
JimmyZ IIRC, not sure now 13:40
[Coke] misses chromatic. 13:41
JimmyZ m0's PCC is also a pain
[Coke] Do we have any C developers in here that could see if that could be improved?
13:43 nine_ joined, nine_ left
sorear [Coke]: I get the feeling you've missed a large part of the profile that's been done lately on rakudo 13:44
[Coke] adds that to his list of things to try out as time permits.
[Coke] almost forgot about the rosettacode test, though. hurm.
sorear: very likely. is it published?
i.e somewhere other than backscroll? 13:45
sorear masak: do you know if jnthn et al published this? 13:47
13:47 yarp left 13:49 kenjiskywalker left
masak published what? 13:49
a profile?
I think pmichaud is the one to talk to.
JimmyZ I'm wrong, about 3 times slow. I think 50 times was m0 13:50
13:50 tokuhiro_ joined 13:51 thou joined, kenjiskywalker joined 13:52 stopbit joined 13:53 Moukeddar joined, cognominal left
JimmyZ and the other thing it that PMC is expensive, confirmed by bacek++ and rakudo 13:55
moritz it's expensive that we create PMC per call 13:56
JimmyZ using PMC type is also expensive
13:57 wamba joined
skids tadzik: github.com/skids/perl6sum # should be usable enough for modules.perl6.org now. 13:57
13:58 leprevost joined
tadzik skids: t/ should be top-level 13:58
13:58 FROGGS__ left
tadzik also, did you read wiki.perl6.org/Create%20and%20Distr...%20Modules ? 13:58
skids nope, but I will. 13:59
14:00 FROGGS left
[Coke] JimmyZ: what's the alternative? 14:01
(to using PMCs)
"use less of them" is good advice.
14:02 FROGGS__ joined
JimmyZ [Coke]: use int/str/num if possible 14:02
skids tadzik: OK, I'll work on that later. Thanks tadzik++
[Coke] I know in partcl, I pretty much couldn't NOT use PMCs without doing a lot of work at compile time to try to use natives. (I think nqp actually DOES a lot of that work now.)
JimmyZ: yah, it's hard to do that. 14:03
JimmyZ or use 6model?
14:04 Moukeddar left
moritz 6model objects are also PMCs 14:04
what 6model does is avoiding lots of extra PMCs
JimmyZ so what's why bacek++ said porint parrot to 6model?
moritz (like for attributes)
JimmyZ porting 14:05
moritz well, then we wouldn't have to use PMCs for 6model objects anymore
thing is, we want our objects to be collected by the GC eventually
14:05 Moukeddar joined
moritz and currently the GC looks at strings and PMCs 14:05
so, every user-facing object must be a PMC 14:06
(same for passing stuff around)
sorear
.oO( 6model objects backed by STRINGs )
[Coke] sorear: this ain't tcl.
... well, partcl is tcl. nevermind.
moritz sorear: parrot strings are immutable-ish, so that would not be much fun :-) 14:07
sorear not fun? PURE FUN! 14:09
JimmyZ someone said lorito is bad, but I think lorito will be good if it's designed well, at least it's easy to jit
14:09 crab2313 left
JimmyZ jitting parrot's ops or dynops by using libjit is almost impossible 14:10
14:13 FROGGS joined 14:15 dayangkun left
brrt jitting parrot is nearly impossible period 14:20
or
jitting parrot and getting something more efficient than inteprretation is nearly impossible
14:20 helecho left 14:22 kaleem left
moritz well, parrot has decided long ago to provide rather high-level ops 14:23
and that's a problem for JITting
so, one must revise this decision (that's what lorito/m0 plan to do)
and then suddenly the performance characteristics change drastically, and you have to rethink everything 14:24
so, you'll end up a with big (nearly complete) rewrite
at least that's my mental image of the process
masak mine too.
lorito/m0 as a big step to reversing some of the "hasty" decisions back in 2003. 14:25
atrodo It'd be very difficult to prevent lorito/m0 from becoming a complete rewrite
masak essentially giving Parrot a new Parrot.
14:25 GlitchMr joined
sorear what I've seen of lorito makes me think it will kill performance for everything except the jit 14:27
JimmyZ wonders why sorear hates the lorito design
JimmyZ doesn't think so
lorito makes things smaller and smarter 14:28
and jit is always the killer feature
sorear but these days I try to avoid talking too much about parrot 14:29
JimmyZ too
sorear just ignore it, hope it gets better, and try not to say too many things that might disturb people
14:30 tokuhiro_ left 14:33 spider-mario left
atrodo I did some initial looking at porting parrot and pir and everything to a lorito prototype, and it'd be a huge amount of work. I've come to the conclusion that porting parrot's users to a new platform would be easier 14:34
brrt the thing about lorito, the thing about m0 what i'm most worried about 14:35
is that it provides /no/ high-level features
at all
14:35 kaare__ joined
brrt whatsoever 14:35
which means, that calling-a-function is not defined by the vm 14:36
which means that different langauges will use differently optimised calling conventions
benabik M0 is supposed to be the low level the high level is implemented in. External users should not see it unless they're trying to extend the VM.
14:36 wamba left
[Coke] so, more like old school assembly. 14:36
masak I think various performance shortcomings of Parrot might be forgiven/ignored if the original vision of Parrot had been realized -- to be a common platform for dynamic languages.
brrt very much like old school assembly
atrodo I for one am not a fan of that direction of m0 14:37
brrt my point is one and only
how are you going to assure interoperability with such low-level operations 14:38
benabik Interop is always going to be a matter of convention. 14:39
GlitchMr .u 
phenny U+F8E5 (No name found)
brrt old parrot made interop the high goal
which is why there is the vtable interface
14:39 leont joined
brrt which works! 14:39
everything is abstract
at the painful cost of interpretation speed
atrodo you hope and pray everyone follows a singluar ABI
tadzik except that there was only one person caring about HLL interop
which then got discouraged because nobody else cared 14:40
benabik I would suggest that if you all care about this, you join #parrot and/or #parrotsketch and _help us_.
14:40 c1sung joined
brrt thinks that if you specify high-level constructs simply enough 14:40
you will get interoperability
benabik "simple high-level"?
JimmyZ porting parrot's users to a new platform? I'm not a fan of jvm and C# ;)
[Coke] tadzik: While I sympathize with your pain, there was more than one person who cared.
brrt yep
tadzik [Coke]: true. s/cared/worked on the code/ I guess 14:41
JimmyZ I don't care about HLL interop if it's slow
leont isn't a fan of the jvm or clr either
moritz benabik: I do care about parrot, but with my limited tuit supply I know I won't do much more than talking 14:42
[Coke] tadzik: I tried to provide an HLL for folks to interop with. ;)
brrt you can specify say, lambda as: create a buffer, put the contents of register $2 into the first word, register $3 into the second, the first is the code ref, the second is the 'stack' ref
tadzik [Coke]: well, I'm just
parroting
Tene's words
(pun indented)
benabik moritz: This conversation comes up from time to time. "Why doesn't Parrot do ___?" My answer right now is "The two developers working on it don't have time for everything, so go help.". Maybe if I remind people how OSS works, we'll get some help. It doesn't have to be you. 14:43
brrt if you do that, then everybody writing a compiler can just say 'lambda $reg, $code, $stack'
which can then be used with a call $lambda, $stack, $continuation
moritz benabik: I do pretty much the same for rakudo
brrt those are relatively high-level constructs
benabik brrt: Welcome to designing M0.
[Coke] benabik: I think we all know how OSS works.
brrt benabik: I've been thinking about m0 a /lot/ by now 14:44
i think you need /some/ high level constructs
moritz benabik: I just think it's a dangerous attitude, because it makes it easy to become defensive
brrt to do the things that langauges must share
benabik M0 is supposed to have continuations and objects.
JimmyZ I had been looking forward to gerdr's new M0 implementation :)
[Coke] benabik: and many of us here have/do contribute to parrot. I myself don't work in C, which makes it difficult to actually help out with core issues.
atrodo I think lorito needs two things: Things and a way to call functions on things 14:45
leont benabik: that sounds like perl 5 (re "Why doesn't Parrot do ___?")
benabik Gah!
JimmyZ gerdr++'s
benabik I'm not trying to be defensive! I just want help!
moritz I know, I know
sorear leont: I think there may be more than two people working on perl 5
sorear hugs benabik
tadzik brrt: wasn't that m1's thing? 14:46
leont sorear: yeah, but still it's about 4 people doing 80% of the work
(if not more than 80%)
brrt tadzik: what I worry about is that somebody is then going to compile to m0, bypassing m1, and saying 'it runs on parrot'
which is true
but not the point
sorear who are the current four, ooc?
moritz leont: I guess that's the dynamic of nearly all open source projects
brrt because you could not then possibly interoperate 14:47
benabik brrt: Parrot shouldn't accept raw M0 as a program.
leont Nicholas, DaveM, Father C and the release manager of the month, I'd say
sorear leont: are you the same leon t from the PRS?
brrt benabik: then you cannot compile to m0 bytecode and ship it
leont sorear: yeah
brrt should have been at yapc
masak sorear: hm... whiteknight, bacek, cotto, and *mumble*?
[Coke] masak: wrong project. ;)
masak oh! 14:48
14:48 M_o_C left
benabik masak: rurban at the moment, and bacek and cotto haven't been seen much of late. 14:48
leont forgot Karl on that list
[Coke] leont: 2 of those are subsidized, aye?
leont Yeah
benabik brrt: Yup. Don't do that. You compile to PBC (or its replacement) + M0 ops. The PBC specifies how to compose the M0.
brrt then m0 is the 'invisible intermediate layer'
in which case
atrodo then there's no point to m0 14:49
brrt get rid of it as a specification, and implement it as a /explicit/ intermediate layer
much like v8 does
benabik brrt: But more to the point, it's possible to break interop using HLL ops. Interop between raw parrot and Rakudo is non-trivial for example. 14:50
14:51 sirrobert joined
brrt benabik: that is very true, and very much a problem 14:52
and it Should Not Be That Way :-)
JimmyZ heard that m0b will replace pbc
benabik HLL interop is matter of providing tools good enough to use and having languages use them.
14:52 Moukeddar left
benabik No matter what level you implement what in. 14:52
atrodo I've heard a lot of things, and most of it contradicts everything else. m0 is in design hell 14:53
brrt benabik: then we should define those tools
moritz that has been tried
atrodo No matter what tools you provide, some langauges will want/need to use their own
moritz currently I think the only real approach to m0 and HLL interop is having a hacker who does most of the work (including design) on his own 14:55
that's basically the only way to escape the "designed to death" trap
atrodo moritz: If I had the tuits, I would actually do exactly that. 14:56
moritz atrodo: yes, that's the common catch
benabik If I can find a way to make a reasonable thesis of it, I might do it. :-D
14:56 FROGGS left, FROGGS__ left
moritz benabik: "I purposefully the whole parrot" :-) 14:57
benabik moritz: Yeah.
moritz: But a few years paid to work on it can do a lot.
But I need to: claw &
Uhm. class & 14:58
14:58 fhelmberger left
JimmyZ So the final problem is that Parrot Foundation has no sponsor ;) 14:58
moritz I'm not sure 14:59
sorear to be fair TPF is not exactly drowning in cash either
moritz so far I haven't heard any of the parrot core hackers say "I would want to work on parrot full time. Can we find the cash to do it?" 15:00
leont sorear: TPF has quite a bit of cash in the Perl5 maintenance fund, but not much anywhere else
tadzik and for Hague Perl 6 grants, I think 15:01
moritz well, then there's the part of the Hague grant for improving the TPF infrastructure
that's what, 50k? 100k?
tadzik that too
leont The Hague Perl 6 grant is almost done
moritz (USD)
leont AFAIK
moritz leont: I don't think so
brrt JimmyZ: its one problem
leont I could be wrong, Karen gave all the details at YAPC::{NA,EU}, but my memory is limited
moritz leont: the last thing I've heard was that there was about half of the technical funds left, and nearly all of the infrastructural
15:02 jaldhar_ joined, benabik left
leont Yeah, I can see how infrastructural money is harder to spend 15:02
moritz well, there were two applications
one was withdrawn, iirc 15:03
but the way TPF responded to szabgab's proposal was to never decide
which made me sad
leont Well, that's a general TPF issue
s/TPF/OSS/
moritz because I think gabor is quite capable of this sort of stuff, but TPF folks were afraid of change (?) 15:04
JimmyZ What's szabgab's proposal?
15:04 wamba joined
moritz JimmyZ: basically to get paid to persuade companies to sponsor Perl development 15:05
JimmyZ oh
moritz news.perlfoundation.org/2010/06/hag...erl-e.html
JimmyZ I heard it 15:06
15:06 cognominal joined
JimmyZ I thought it was accepted 15:06
15:07 cognominal left
moritz JimmyZ: I'm pretty sure it wasn't 15:07
JimmyZ: I've never seen any decision either way on the TPF blog
and I'm pretty sure I talked to Gabor about it 15:08
JimmyZ that's sad
kresike bye folks 15:09
15:09 kresike left
sirrobert off topic: moritz, do you use postgresql-9.2? 15:12
moritz sirrobert: not yet
15:12 jaldhar_ left
moritz but in time, i will 15:13
masak I think Grammar::Debugger currently falls victim to this bug: rt.perl.org/rt3/Ticket/Display.html?id=114836
sirrobert do you know of a good resource for getting started? (as in, I'm at the "for the love of God, how can it be so hard to get this running?" point... why won't psql just work?
masak at least that's what a cursory analysis gives.
moritz masak: wasn't it you who wrote the QAST transformer for those loops? :-)
sirrobert moritz: the package installs fine, everything seems ok, but the docs don't say anything about how to set up accounts for psql... they assume you can use it already. 15:14
masak r: my $x; repeat { $x = 5 } while $x
p6eval rakudo d1f4dc: OUTPUT«Cannot assign into a PMCNULL container␤ in block at /tmp/xCPedXstBW:1␤␤»
moritz sirrobert: on debian, I do su - postgres
masak moritz: I've certainly been in and around that area, yes. good memory.
moritz: don't know if I'm the ultimate cause of the bug. in some sense, it doesn't matter.
moritz sirrobert: and then use the 'createuser' command line too 15:15
sirrobert moritz: ok... just cleaned it out and am re-installing. will try
masak moritz: maybe my knowledge of the code will help be track it down, though.
masak tries
moritz masak: note that the error occurs in the assignment, but only if the variable also mentioned in the 'while' block
arnsholt sirrobert: It usually provides a program called createuser as well
masak aye, I noticed.
moritz r: my $x; repeat { $x = 5 } while False
p6eval rakudo d1f4dc: ( no output )
moritz r: my $x; repeat { $x = 5 } while $x
masak moritz: which makes it seem to be a lexical kind of thing.
p6eval rakudo d1f4dc: OUTPUT«Cannot assign into a PMCNULL container␤ in block at /tmp/4mIyaLbwXP:1␤␤»
arnsholt (But that's mostly a wrapper around SQL stuff)
masak moritz: I think the error would stand out quite plainly if there was a way to inspect the resulting QAST... 15:16
er, the resulting intermediate code, I mean.
moritz aye. As the appropriate system user, you should be able to use 'createdb', 'createuser', 'createrole' and 'psql' commands
masak: I've missed such a facility while hacking on the sink context thingy :/
15:18 cognominal joined, hoelzro is now known as hoelzro|away
moritz I've located the codegen in nqp/src/QAST/Operations.nqp 15:18
and then stared at it for a while
and then shook my head
in particular I don't see how it relates to scopes at all 15:19
and why 'while' is not affected 15:20
15:20 colomon left
masak yes, the codegen is in that file. 15:20
masak stares at it for a while, too 15:21
moritz also stares at the generated pir 15:22
the difference between a while-loop (working) and the repeat { } while (failing) is minimal
r: my $x; while $x { $x = False } 15:23
p6eval rakudo d1f4dc: ( no output )
moritz oh, maybe I have found it
masak oh? 15:24
moritz moritz.faui2k3.org/tmp/repeat-while.diff 15:25
null $P108
goto while12_redo16
is the main difference
I suspect that the 'null' is what gives us the NPMCA
masak sounds reasonable. 15:26
this line: github.com/perl6/nqp/blob/master/s...s.nqp#L573 15:27
moritz and the way registered are nulled has to with Stmt vs. Stmts, no?
masak no idea.
moritz oh, an explicit null
let's try to remove that
masak so... we null $x, and then immediately try to assign to it in the loop body?
yeah, I can see how that may not end up so well.
15:29 JimmyZ left
masak here's the commit that added that line: github.com/perl6/nqp/commit/3c9b25...220d17fed9 15:33
GlitchMr Because git blame is useful :) 15:34
masak reads en.wikipedia.org/wiki/Continuation...e#Examples and finds a deep similarity between CPS and Haskell's monads 15:38
sorear masak: CPS is the free monad.
15:38 MayDaniel joined
masak I have no idea what that means, but I'm glad there is an actual similarity, and not just my imagination. 15:40
sorear en.wikipedia.org/wiki/Free_object 15:41
might be best to start with "Examples" 15:42
masak ok. 15:43
moritz masak: oh, your imagination is just a multidimensional manifold on the vector spece of endofuctors, or so :-)
masak also, commutative diagrams look like abstract art to me. upload.wikimedia.org/wikipedia/com...mma-02.png
maybe I should tattoo a commutative diagram on my upper arm, and then category theorists can giggle behind my back about what it really means. 15:44
sorear a free object is the most generic possible object of a sort.
CPS is a monad, Haskell calls it Cont 15:45
most monads have properties, like in the IO monad, a given statement will return at most once 15:46
Cont has no properties, everything goes
the free group is a group with no properties. only the group laws are valid
in the free group, ab = ba if and only if a = b^-1 or a = identity or b = identity
masak ah. 15:47
I can kinda-sorta see it.
it's the least constrained kind of group that's still a group.
sorear any statement which is true of a free object is true of any object in the sort
well, equality statments
masak also makes sense, I guess. 15:48
15:50 fgomez left
GlitchMr gist.github.com/3707610 15:52
I would like 'multi sub fizzbuzz(Int $ where { $_ %% 15 }) { 'FizzBuzz' }' to be more important than other multi subs
Would this be possible?
moritz GlitchMr: try adding an 'is default' to it 15:53
GlitchMr Thanks
masak wow, an actual use of 'is default'. 15:54
sirrobert cool feature 15:55
masak well, yes and no.
I would consider 'is default' in any actual code to be a code smell.
moritz it's a blatant misuse of the feature :-)
masak why "misuse"? isn't this exactly what it's for?
promoting some multis ahead of others? 15:56
15:56 colomon joined
moritz hm, yes 15:56
masak in a sense, it's a code smell for the same reason CSS's !important is a code smell.
moritz mental model mismatch
[Coke] masak: mmm. I know exactly why I shouldn't use !important. and yet it's a nice hammer and ends up squashing many issues. ;) 15:57
moritz masak: fwiw removing that 'null' from QAST/Operations.nqp seems to fix the issue
running a spectest now
sirrobert moritz: got psql working; thanks (blog.deliciousrobots.com/2011/12/13...nux-mint/) 15:58
TimToady 'is default' is one of those escape valves that indicate that some other part of the language is either missing or being ignored by the programmer
masak that's a good summary, I guess.
same with CSS !important -- there's like four features you could've used before using that. 15:59
TimToady it can indicate that the type system is not up to doing what needs doing, or that the programmer doesn't sufficiently understand the type system
moritz or that maybe the type system isn't the best approach :-)
TimToady unfortunately, making the first part better makes the second part worse
15:59 snearch joined
TimToady the more complete the type system, the harder for mere mortals to understand 16:00
Haskell solves this by abandoning the mere mortals :)
16:01 cognominal left
TimToady many languages solve it by abandoning a type system, so everything becomes operational rather than declarative 16:01
Perl 6 tries to have it both ways, as usual. 16:02
masak oh come on, Haskell isn't that bad :)
16:03 brrt left
masak moritz++ # removing 'null' 16:03
TimToady hugs Haskell 16:04
geekosaur would have pointed to Agda as leaving the humans behind...
leont Haskell is something you have to warp your mind around first
masak [Coke]: I'm not anti-hammers. if we always avoided inserting code smells, we would be less productive.
leont: and second, and third...
sirrobert lunch &
skids The only place I've had to use "is default" was to deal with some probably incorrect rakudo behavior. I think the above is one case of that since presence of a constraint is supposed to be a tie-breaker.
TimToady use hammer <default BEGIN eval>;
masak leont: "Haskell is easy to learn. I've done it five times by now." -- TimToady
[Coke] masak: I think haskell's pretty bad, but then, I don't use it. 16:05
TimToady or should that be 'use MONKEY_HAMMER <default BEGIN eval>;'
sorear augment class Mu { method looks_like() { "thumb" } } 16:06
TimToady we could fold in MONKEY_TYPING too: use MONKEY <augment>;
16:07 cognominal joined
geekosaur I use it. it takes some getting used to, certainly, but that's a good thing from a stretching-the-mind standpoint. perhaps not so much for day-to-day usability 16:07
masak I read this on Twitter recently: "When your hammer is a build system, ever problem looks like a build." 16:08
TimToady though if we included BEGIN in there, bosses would outlaw it, and then we'd have to find a way to do it anyway, like with 'constant'
[Coke] twitter! poor cjbot.
16:10 fgomez joined
masak [Coke]: what happened to it? 16:10
TimToady ended up a skull in a shakespeare play
16:11 Circlepuller joined 16:13 Circlepuller_ left
masak maybe an IRC channel is the wrong output channel for such a bot. 16:13
TimToady maybe it wants a dedicated IRC channel 16:14
sorear make it output to stdout and run it >> ~p6eval/dalek/dalek-poller/queue
TimToady we're just not dedicated enough here :) 16:15
masak there are limits even to our dedication. 16:16
for example, retweets of the same tweet turned out to be fairly... repetitive.
TimToady you can say that again 16:17
"There are limits even to our dedication." would make a great book dedication.
masak :P 16:18
but only after dedicating the book to tens of thousands of people.
TimToady limiting something to 0 is also a limit 16:19
or 1, if you count the autopun.
masak rn: say "There are limits even to our dedication.".comb(/dedication/).elems 16:20
p6eval rakudo d1f4dc, niecza v21-1-ga8aa70b: OUTPUT«1␤»
masak rn: say "There are limits even to our dedication.".comb("dedication").elems
p6eval rakudo d1f4dc: OUTPUT«Cannot call 'comb'; none of these signatures match:␤:(Str:D : Mu *%_)␤:(Str:D : Regex $pat, $limit = { ... }, :match(:$match), Mu *%_)␤:(Cool : Mu *%_)␤:(Cool : Regex $matcher, $limit = { ... }, Mu *%_)␤␤ in method comb at src/gen/CORE.setting:2053␤ in block at …
..niecza v21-1-ga8aa70b: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Str␤ at /home/p6eval/niecza/lib/CORE.setting line 629 (Cool.comb @ 16) ␤ at /tmp/bl8K23Lufc line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤ …
masak .comb doesn't take a string. ok. 16:21
[Coke] cjbot didn't handle twitter being down. 16:27
basically caused it to flush its cache.
sorear: if you can do it via dalek faster than I can get back to it, that's fine. 16:28
16:29 Vlavv_ left
masak half-opposes filling #perl6 with retweets 16:29
I'm not talking of the flush-cache case, but the normal, working case. 16:30
16:31 Circlepuller_ joined 16:32 wamba left 16:33 Circlepuller left
[Coke] but not commit messages? 16:42
16:43 Vlavv_ joined
masak it is rare that commit messages are re-tweeted to the channel. 16:46
repetitions of commit messages happen sometimes in the case of merges. but they tend to coincide with dalek flooding and being kicked by the system.
[Coke] ah. So tweets are ok, but rewtweets are not? 16:47
masak here's what I'm saying. assume a tweet about Perl 6 is so popular that it garners thousands of retweets. what do we gain from seeing each one of them on the channel?
16:47 benabik joined
masak right. tweets good, retweets bad. 16:47
[Coke] Sure, that's reasonable. 16:48
... good luck getting that many rewtweets, though. ;)
I'll add that to the list of things that must be fixed before cj can be turned back on.
arnsholt masak: That about the build system, is so true! =)
I do a bajillion things with make these days 16:49
[Coke] masak: if you could open a ticket at github/coke/cjbot, that'd be helpful.
benabik backlogs. 16:51
masak [Coke]: consider it done. 16:53
benabik Haskell doesn't leave mortals behind. It sit above them and invites them to come up to it. More rude than dismissive.
16:54 fgomez left
arnsholt benabik: Context? =) 16:54
16:56 dakkar left 16:57 tj joined, tj is now known as Guest34211 16:59 stopbit left 17:00 stopbit joined, cognominal left, cognominal joined
Guest34211 Just taking a first look at Perl 6 and rakudo. I'm looking at the source to ufo. There seems to be a subroutine "dir" in the namespace by default. But I have been unable to find where this is specified. 17:00
17:00 cognominal left
Guest34211 I looked in the builtins synopsis. 17:00
17:01 cognominal joined
Guest34211 I note that perl6advent.wordpress.com/2010/12/0...perations/ refers to it: "Instead of opendir and friends, in Perl 6 there is a single dir subroutine" 17:01
masak Guest34211: doc.perl6.org/routine/dir
gfldex Guest34211: perlcabal.org/syn/S32/IO.html#dir 17:02
masak moritz++ # it's so nice to be able to link to doc.perl6.org like that
leont Nice use of that junction, that's pretty awesome 17:03
17:03 benabik left
masak yes, I hadn't seen that before. but yeah, all() should be vacuously true. :) 17:04
rn: say so all
p6eval niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤The 'all' listop may not be called without arguments (please use () or whitespace to clarify) at /tmp/sFke9xkoPK line 1 (EOF):␤------> say so all⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/…
..rakudo d1f4dc: OUTPUT«True␤»
Guest34211 masak, gfldex: thanks
masak rn: say so all()
p6eval rakudo d1f4dc, niecza v21-1-ga8aa70b: OUTPUT«True␤»
17:04 benabik joined
masak rn: say so any() 17:05
p6eval rakudo d1f4dc, niecza v21-1-ga8aa70b: OUTPUT«False␤»
masak rn: say so one()
p6eval rakudo d1f4dc, niecza v21-1-ga8aa70b: OUTPUT«False␤»
benabik arnsholt: irclog.perlgeek.de/perl6/2012-09-12#i_5981273
dalek rlito: 8fdcbaf | (Flavio S. Glock)++ | / (5 files):
Perlito5 - initial impl of caller()
Guest34211 and the thing that confirms that it's correct for it to automatically be in the main namespace without me having to import it from IO is the fact that it's listed at doc.perl6.org/#Routines , is that right? 17:06
GlitchMr caller()? It's really basic :). But I guess it works 17:09
17:10 fgomez joined
masak Guest34211: think so. though I'm not 100% that list is complete yet. 17:11
[Coke] shouldn't the spec have something to say about that? no?
GlitchMr caller() accepts additional argument, but sometimes it doesn't return what you want even in actual Perl implementation, so whatever
masak GlitchMr: I'm sure fglock will happily accept patches. 17:12
GlitchMr: also, it's unusual for people in here to stand by the sidelines commenting how commits of new features don't do enough yet. 17:13
GlitchMr well, I guess it's good enough for start
masak I'm sure your tone just happens to sound dismissive. twice. 17:14
17:17 cognominal left 17:18 cognominal joined
masak re "It's very basic": that's how features are build, generally. you start with something small that works, and then add to it. 17:18
built*
17:18 leont left
PerlJam GlitchMr: What fancy thing do you want instead? Can you describe it? Maybe you can build it and share? 17:22
GlitchMr perlcabal.org:8080/ 17:23
Perhaps...
17:23 wk_ left
[Coke] GlitchMr: is english your first language? 17:23
GlitchMr No 17:24
ok, so HTTP server sort of works
17:24 benabik left 17:27 FROGGS joined, FROGGS__ joined
GlitchMr tadzik: 17:30
sub baile is export {
given HTTP::Easy::PSGI.new(port => 3000) {
Why it is hardcoded?
PerlJam Because no one has written the code to make it otherwise. 17:31
17:32 cognominal left 17:35 benabik joined 17:36 cognominal joined
TimToady Prototypes "Я" Us 17:38
GlitchMr perlcabal.org:5266/ - Bailador sort of works (I'm going to do something serious in it)
TimToady Toys "Я" Us # not so far off the truth
17:39 spider-mario joined, alvis joined, wamba joined
GlitchMr Not like it was intended to be used in production, but hey, this is feather, so fun 17:40
17:41 alvis left, cognominal left 17:46 cognominal joined
GlitchMr perlcabal.org:5266/lol 17:48
I'm aware of XSS issue
This is going forward
2012-09-12T17:48:30Z -- GET /lol HTTP/1.1 17:49
2012-09-12T17:48:55Z --
unknown HTTP method
This is getting crazy
17:50 Guest34211 left
masak GlitchMr: having thought about it, all other things equal, I prefer you to be slightly dissing of various things, than to just react with '...' :) 17:51
17:54 benabik_ joined 17:55 fgomez left 17:57 benabik left, benabik_ is now known as benabik
GlitchMr gist.github.com/3708613 gives me "Unable to open filehandle from path 'content/rghwrg'" 17:58
Am I doing something wrongly?
17:58 kenjiskywalker left
moritz does it exist? 17:58
GlitchMr try {} should catch it, shouldn't it?
17:59 kenjiskywalker joined
masak not if you don't handle it in the CATCH... 18:00
something needs to &succeed from the CATCH block, or set $!.handled, IIRC. 18:01
GlitchMr That... makes sense
Even if it is somewhat confusing
18:02 benabik left
masak you probably have a better idea for how it should be done. :) 18:03
GlitchMr succeed without when clause
That... sort of makes sense
masak I disagree. 18:04
18:04 kenjiskywalker left
GlitchMr Why I cannot use "succeed" without "when"? 18:04
masak you can.
oh, I thought you meant that you wanted "succeed" to be implicit if there wasn't a "when" clause in the CATCH.
and I think that would be a bad idea. 18:05
18:05 kenjiskywalker joined
masak you're fully free to use &succeed either directly, or indirectly through a "when" clause. 18:05
GlitchMr succeed when True? 18:08
18:08 kenjiskywalker left 18:09 kenjiskywalker joined, cognominal left, cognominal joined 18:10 kenjiskywalker left 18:12 MayDaniel left, kenjiskywalker joined
masak rn: given 42 { succeed; say "this doesn't get run" }; say "alive" 18:14
p6eval rakudo d1f4dc: OUTPUT«succeed without when clause␤ in block at src/gen/CORE.setting:352␤ in block at src/gen/CORE.setting:429␤ in block at /tmp/3ZMygYDIWi:1␤␤»
..niecza v21-1-ga8aa70b: OUTPUT«alive␤»
masak hm. I'm tentatively with Niecza on this one.
masak checks the spec
hm. nope. Rakudo is right there. 18:15
"succeed" binds (statically) to the surrounding "when" block. Niecza should have flagged the above as an error. 18:16
masak submits niecza-issue
FROGGS tadzik: from reading github.com/tadzik/panda/blob/maste...staller.pm there is no way to tell panda that it should install a .c file?
18:18 fgomez joined 18:19 benabik joined
GlitchMr perlcabal.org:5266/%3Cbody%20onload...tw')%22%3E 18:19
I'm XSS-ing yourself
oh wait
Why am I doing this
moritz why indeed? 18:20
18:23 cognominal left 18:24 cognominal joined 18:28 cognominal left 18:32 HarryS left
GlitchMr Why Dancer crashes every time I attempt to make POST request? 18:33
18:33 HarryS joined
GlitchMr The crash looks like gist.github.com/3708917 18:34
But it looks more like HTTP::Easy crash
moritz didn't you have the same error before with GET? 18:35
GlitchMr No 18:36
It only happens with POST request
Simple POST request
perlcabal.org:5266/ - if you will attempt to create article, it will crash
moritz so fix it
GlitchMr The problem is that it is HTTP::Easy crash 18:37
But... 18:38
unless $method eq any(<GET POST HEAD PUT DELETE>) { die "unknown HTTP method"; }
POST is known
moritz so what's in $method?
GlitchMr I'll have to use debugger ;) 18:39
but that's ok
moritz a simply say $method.perl will suffice
GlitchMr wow, this debugger is amazing 18:40
It can even debug regular expressions
It can debug almost anything :-)!
Except for syntax errors, I guess
masak how would you debug a syntax error? even the thought is a category error. 18:41
GlitchMr Even if this debugger only has breakpoints and single steps, it's usually enough :) 18:43
18:43 daxim left
GlitchMr I guess that more will be added later 18:43
18:44 cognominal joined
moritz masak: I routinely debug syntax errors with bad error messages by commenting out chunks of code 18:44
18:45 cognominal left, mdupont joined 18:46 MayDaniel joined
GlitchMr oh, it wasn't POST 18:46
Rakudo just was seeing ghost query once a while
I wonder why
[Coke] binary compilation search.
moritz GlitchMr: are you using a browser? 18:47
GlitchMr Yes
moritz GlitchMr: there you go
GlitchMr: browsers do all sorts of stuff
GlitchMr: like ask for a favicon.ico
or send a HEAD request now or then
GlitchMr favicon.ico would be catched by page request
get /^\/(<-[/]>*)$/ => sub ($name is copy) {
It would return 404, because page favicon.ico doesn't exist
[Coke] When I'm debugging this sort of thing, I find a tool like Fiddler very helpful. 18:48
masak moritz: oh, sure. but running them through a debugger felt like a category error.
moritz anyway, browser in general do many more requests than you'd expect 18:49
*browsers
masak moritz: I also employ the technique of commenting stuff out. for really large golfings, I ratchet forward using a throwaway git branch.
moritz git++ 18:50
imagine doing that in svn :-)
GlitchMr Now, I wonder how I could set Location: header in Bailador. But I probably know answer already - I cannot do that... easily
moritz then create a way to do it 18:51
it's all open source, you know
masak "there is no spoon"
GlitchMr hmmm... but content_type function exists... perhaps I could see how it works 18:53
[Coke] folks, sometimes we don't want to CREATE tools so much as use them. I know this isn't the right channel for that, necessarily.
masak moritz: as I'm writing this git course, a mental model is emerging that I find quite interesting. in centralized VCSes, there's just the working copy and the central repository, in a sense. in git-like systems, there's the working copy, *your unpushed work*, and (by convention, often) a central repository. that unpushed work is where a lot of the flexibility resides.
GlitchMr $app.response.headers<Content-Type> = $type;
I have my answer
masak [Coke]: it's not yet late enough in Perl 6's development when you can expect that all tools will have been created for you, no. like you can with Perl 5. 18:54
GlitchMr Except... I don't think I can access $app directly in Bailador 18:55
Because of Bailador "design" 18:56
But I guess that having multiple Bailadors at once would be strange, so singleton sort of works
masak hugs GlitchMr 18:57
GlitchMr: I'm sure tadzik will also happily accept patches.
GlitchMr I already have changed Bailador so port won't be hardcoded 18:58
Or rather, it's hardcoded to different port
(ok, it doesn't change anything) 18:59
diakopter masak and moritz: you are being way too defensive. don't assume GlitchMr is complaining. Lots of people point out problems intending to be helpful, not looking for someone to tell them, "well fix it your own fucking self"
moritz diakopter: statements like "But I probably know answer already - I cannot do that" don't sound like that 19:00
diakopter still, it could be tongue-in-cheek ribbing, not disgruntled maligning
give him the benefit of the doubt 19:01
GlitchMr I could hack "Location" header like that: github.com/GlitchMr/Bailador/commi...632c6efa08
But I find this ugly
moritz diakopter: the benefit of doubt wears up quickly with the volume of negative statements
GlitchMr What if next day somebody would want to put "X-Destroyed-By" header
moritz diakopter: but if you're right, it would be more productive I simply /ignore'd folks that rub me the wrong way 19:02
masak diakopter: all this backlog, I've been giving GlitchMr the benefit of the doubt.
diakopter ok
moritz sadly /ignore sometimes lead to weirdly sensless conversations 19:03
masak note all the places where I didn't explode, rant all over him, or kick him out.
FROGGS GlitchMr: why not add a header method that can set every header?
GlitchMr Hmmm... yeah
masak I tried to put in enough smilies to make sure that my pointing out that his disgruntled complaining wasn't being productive didn't get read as being too negative, too.
FROGGS GlitchMr: you still can have other methods that set common headers, for usa- and readability 19:04
masak you're probably right in general about (many of) us being "too defensive". I still have trouble detecting when that happens.
GlitchMr But I guess this is worst HTTP header API - www.php.net/manual/en/function.header.php 19:05
masak as far as I know, that's a community defense mechanism, which has to be untrained for it not to happen.
GlitchMr Perhaps, header('Location', 'duckduckgo.com') would work
diakopter whether you're defensive or not, saying patches welcome in response to complaints more than 1 time comes across as rude
(or ignored) 19:06
(oh well) :)
FROGGS GlitchMr: or a Pair: header( 'Location' => '/foo' )
looks nice to me
both would work actually
masak diakopter: I'll think of that until next time.
thanks for pointing it out. 19:07
GlitchMr In Perl 5, => is fat comma. It would work instantly
But I guess implementing this in Perl 6 is more problematic
FROGGS masak: 2nd time a "please make a ticket" would be more constructive I suppose
GlitchMr github.com/GlitchMr/Bailador/commi...e1b88329ea 19:08
FROGGS GlitchMr: no, thats not difficult in Perl6
TimToady diakopter: don't be so dismissive of masak for being so dismissive of GlitchMr for being so dismissive of...I forget who... :)
GlitchMr Generic, you say?
masak TimToady: this reminds me of the time I called someone a troll :)
moritz accessing .key and .value isn't hard
19:08 mucker left
diakopter still feels badly for that occasion, even though I barely remember anything about it 19:09
FROGGS GlitchMr: you can have multi methods, one for ( Str, Cool ) the other for ( Pair )
TimToady hugme: hug everyone who needs it
hugme hugs everyone who needs
TimToady hugme: hug it
hugme hugs it
FROGGS GlitchMr: but I guess this can be done via some weird sign in front of the var names, like * or : or so
masak TimToady: this one, quite familiar to the above: irclog.perlgeek.de/perl6/2010-03-06#i_2071590 :) 19:10
diakopter hugme: hug 1 2 3 4 5 6
hugme hugs 1
diakopter :( 19:12
GlitchMr Well, "quite familiar" doesn't include kick :-) 19:13
github.com/tadzik/Bailador/pull/2
moritz GlitchMr++ # putting up, not shutting up :-) 19:14
masak \o/ 19:15
GlitchMr++ # well-deserved karma
GlitchMr Well, I'm trying to do is a nice Wiki in Perl 6 :) 19:16
masak ooh
diakopter Camelia's shadow looms 19:17
GlitchMr Git based, I might add ;)
diakopter GlitchMr: where do you want to store the content? 19:18
TimToady masak++ and diakopter++ for, er, participating, yeah, participating...
19:18 stopbit left
GlitchMr diakopter: Probably GitHub :-) 19:18
diakopter heh, I meant the wiki content
19:18 stopbit joined
diakopter although 19:19
I suppose you could store wiki content in a git repo
19:19 benabik left
awwaiid ya, that's what GlitchMr meant I bet :) 19:19
github's wiki's are all stored in git, btw, diakopter
19:20 fgomez left
TimToady Ain't communication wunnerful, exceptin' when it ain't... 19:20
diakopter oh, I missed the "Git based"
19:22 benabik joined
masak I'm not getting anything done today, so taking an early night and hoping it gets better tomorrow. :) 19:24
'night, #perl6
FROGGS gnight 19:26
GlitchMr But... the HTTP::Easy sounds annoying. It dies on request type it doesn't know. 19:28
And when you can catch exception, it's already too late - server has closed
moritz so, what kind of request does it not know about?
but you're right, that's not very defensive 19:29
GlitchMr Well, for some reason it sees empty request, but technically, anybody could crash my app with request like SPAWN /creeper
[Coke] what, now we need to be MORE defensive?
:) 19:30
GlitchMr Web app in Perl 6 would be fun 19:31
But it would have to be secure
Woodi btw. do $socket.recv() is allowed to segfault ? 19:32
GlitchMr I hope not
Woodi () segs, but (number) can be used 19:33
[Coke] rakudo should never segfault, no 19:34
(nor expose parrot exceptions)
Woodi atm simple 'telnet' returns things like: "łąka\r\n\b\x[10] or "łąka\r\n\b\x[0]", etc or Segmentation fault 19:36
dalek rlito: d7ae527 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - parser: fix problem with "&" sigil
Woodi and server send only "łąka\r\n" part 19:37
[Coke] is this with rakudo?
if you could open a ticket with a code sample that demonstrates the segfault (preferably with a gdb backtrace) that would be very helpful in tracking it down. 19:38
Woodi yes, 08. say $result.perl
ok
19:38 mtk left 19:39 mtk joined
PerlJam \ 19:40
19:41 snearch left
moritz / 19:42
dalek p: 2651350 | moritz++ | src/QAST/Operations.nqp:
[QAST] do not null something we still need

Fixes RT #114836
kudo/nom: 220a691 | moritz++ | tools/build/NQP_REVISION:
bump to an NQP revision which fixes RT #11483
19:44
ast: 88de4c9 | moritz++ | S04-statements/repeat.t:
RT #114836, shared variable between loop body and conditional
19:47
tadzik FROGGS: under what circumstances do you need to install .c file?
19:47 benabik left
tadzik also, I need to figure out some way to override/extend various build steps 19:48
Build.pm or so
seen leont?
aloha leont was last seen in #perl6 2 hours 29 mins ago leaving the channel.
19:48 benabik joined
FROGGS tadzik: I compile that .c file to a lib, and use it with NativeCall 19:48
tadzik you compile it in runtime? 19:49
FROGGS tadzik: right now I'm working on a patch for NativeCall that allows one (probably just me) to use some sort of inline c
tadzik hmm
FROGGS tadzik: right
tadzik I see
19:49 LlamaRider joined
tadzik okay. What do you thing about designing how Build.pm should behave with me? 19:49
designing with me, not behave with me
FROGGS well, I only know Module::Build, not MakeMaker 19:50
tadzik I don't know either
FROGGS so all I can say that M::B is working good
tadzik I never wrote a Perl 5 module
FROGGS you have a Build.PL with information like the one in META.info
you can have hashes in that META.info where you can add extra files that wont get picked up usually 19:51
tadzik but it's still Module::Build responsibility to be able to handle them
FROGGS like: lib/mycustomfile.xyz => destinationdir/newfilename.abc
right 19:52
tadzik now what I think we need is allow arbitrary actions in the separate steps
FROGGS you set up a big hash, a config
tadzik use cases: your SDL code, Rakudo::Debugger
so code, not metadata
tadzik sketches
FROGGS M::B has subs like action_BUILD, action_INSTALL that you can replaxce with your own 19:53
tadzik gist.github.com/3709444
something of this sort
FROGGS simply by having a My::Module::Build module in inc, that has the same function names
tadzik you could do that with Build, Install, Test, whatever
FROGGS right 19:54
tadzik I discussed it with Schwern and Leon on the YAPC
FROGGS and you must be able to manipulate the list of files that get installed
tadzik but I don't remember all the details
well, installer just copies everything from blib/ to DESTDIR
FROGGS one nice feature of M::B is share_dirs
tadzik so it's builder's responsibility to put stuff in blib/
FROGGS to tell 'em a dirname (usually 'share') which contents get installed, whatever files it contains 19:55
and then you have a module called File::ShareDir, which gives you the path when its installed, so you can then acces your gfx or sounds again
right
tadzik GlitchMr++ # Bailador patch 19:56
I applied it blindly without testing :)
hmm, interesting
19:58 benabik left
FROGGS there a lot of stuff going on on M::B, can't get it out of my head right now 19:59
tadzik whoa, cowboy, let's not put too much intelligent design in Panda ;)
FROGGS ;o) 20:00
tadzik no, kidding
what do you think of the Build.pm thing for a start
we'll probably want _some_ Build.pm anyway
(optional of course)
people are happy with not having to do anything in simple cases 20:01
FROGGS ya, sounds good
tadzik so, want to implement it? :)
FROGGS you dont have to do much wich M::B, the simplest case is that you create your hash (10 lines max), then call "create_build_script"
20:02 GlitchMr left
FROGGS hmm, let me have a look at panda source 20:02
okay, your gist would allow me to make a custom build method 20:04
how would I let panda know to grab my Build.pm file at all?
place it in inc? 20:06
20:06 rickatcox joined
tadzik maybe try require()? 20:08
I don't know :)
FROGGS well, you say if its stupid what I write but I just would do it like: if 'inc/Build.pm'.IO.e { use lib 'inc'; use 'Build.pm' } 20:10
I know, use shouldnt work
maybe unshifting 'inc' to $*INC? 20:11
or was it $^INC?
20:12 Tanktalus joined
Tanktalus looks around for how to delete a key from a hash, but isn't having any luck finding it so far :-/ 20:12
20:12 kaare__ left
FROGGS splice it? 20:12
Tanktalus oh, and piping, like perl5's "open my $fh, '|/bin/echo'" :-) 20:13
20:13 fgomez joined
Tanktalus FROGGS: ouch, really? Is that because it won't be there ever, or that type of functionality just isn't there yet? 20:14
rickatcox cant you just "undef %hash{key}" im kind of a newbie but it sounds like it should work to me.. 20:15
cosimo Tanktalus: %hash<key>.delete I think 20:16
FROGGS then you have undef as the value
[Coke] my %h; %h<a>=2; %h<b>=3; delete %h<b>; say %h.perl;
r: my %h; %h<a>=2; %h<b>=3; delete %h<b>; say %h.perl;
p6eval rakudo 220a69: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&delete' called (line 1)␤»
FROGGS r: my %h; %h<a>=2; %h<b>=3; undef %h<b>; say %h.perl;
p6eval rakudo 220a69: OUTPUT«===SORRY!===␤Unsupported use of undef as a verb; in Perl 6 please use undefine function or assignment of Nil␤at /tmp/Uzyh7CgQBJ:1␤»
FROGGS r: my %h; %h<a>=2; %h<b>=3; undefine %h<b>; say %h.perl;
p6eval rakudo 220a69: OUTPUT«("a" => 2, "b" => Any).hash␤»
Tanktalus [Coke]: yeah, that's what I was getting :-)
[Coke] my %h; %h<a>=2; %h<b>=3; %h<b> :delete; say %h.perl; 20:17
r: my %h; %h<a>=2; %h<b>=3; %h<b> :delete; say %h.perl; 20:18
p6eval rakudo 220a69: OUTPUT«===SORRY!===␤Confused␤at /tmp/PbIU66082c:1␤»
[Coke] ah. 70:#?rakudo skip ':exists and :delete NYI'
cosimo r: my %h; %h<a>=2; %h<b>=3; %h<b>.delete; say %h.perl;
p6eval rakudo 220a69: OUTPUT«No such method 'delete' for invocant of type 'Int'␤ in block at /tmp/85v8Hm4vx6:1␤␤»
FROGGS r: my %h; %h<a>=2; %h<b>=3; %h.delete('b'); say %h.perl;
p6eval rakudo 220a69: OUTPUT«("a" => 2).hash␤»
cosimo aha
FROGGS Tanktalus: about pipe: www.perl6.org/archive/rfc/14.html 20:19
cosimo r: my %h; %h<a>=2; %h<b>=3; %h.delete(:b); say %h.perl;
p6eval rakudo 220a69: OUTPUT«("a" => 2, "b" => 3).hash␤»
FROGGS Tanktalus: didnt tested though
tadzik FROGGS: why not require('file')? 20:20
FROGGS ohh, that would work too, ye
ya
(its late here)
tadzik tries to run bailador on niecza 20:21
Tanktalus thanks, I see delete returns the value deleted, so that's useful... just trying to figure out the next issue with this sample :-S 20:22
20:23 fgomez left
tadzik woooo 20:24
sorear++
that's _FAST_
Tanktalus oh, delete returns something completely different. Yikes. 20:25
tadzik Requests per second: 162.57 [#/sec] (mean) 20:26
FROGGS r: my %h; %h<a>=2; %h<b>=3; say %h.delete('b'); 20:27
p6eval rakudo 220a69: OUTPUT«3␤»
FROGGS Tanktalur: looks good to me
s/r/s
Tanktalus FROGGS: hmm - I'm getting a hash as an in parameter. Maybe it's marked readonly, so that might be some sort of odd exception. 20:28
FROGGS apped " is copy " to the param
tadzik more: Bailador works on niecza, but not on Rakudo 20:29
rickatcox ok guys, so I just installed rakudo-star-2012.08 on RHEL 5 and when I do something like "perl6 -e '"abc" ~~ /(\w)+/ and say $/[0];'" I get ï½¢aï½£ ... am I doing something wrong or is there something wrong? 20:30
20:30 fgomez joined
rickatcox any time I do a capture I get garbage.. but if i use something like $/[0].join it cleans it up.. 20:31
tadzik hmm, no idea really 20:32
does it change if you put it in a script and run it there?
rickatcox nope 20:33
this is my first experience with perl6
tadzik care to try? I see no reason why it would react this way, really
FROGGS my first thought was that you terminal might be ansi and you get unicode stuff back... 20:34
Tanktalus pastebin.ca/2203620
tadzik r: "abc" ~~ /(\w)+/ and say $/[0]
p6eval rakudo 220a69: OUTPUT«「a」␤ 「b」␤ 「c」␤␤»
tadzik oh
those characters
FROGGS r: "abc" ~~ /(\w)+/ and print $/[0]
p6eval rakudo 220a69: OUTPUT«abc»
Tanktalus FROGGS: I added is copy, and the output shows that things didn't work :-S
oh, maybe it doesn't like the <> syntax? 20:35
rickatcox initially i tried the perl 5 syntax: ($a)=$s=~/(\w+)/; and then started looking around when that was hosed..
FROGGS "say" is for human readable output, print is for machine readable stuff
20:35 MayDaniel left
rickatcox hmm.. print does work... i guess I need to read up on the human interface.. 20:36
tadzik rickatcox: I guess it's just your terminal that doesn't properly render those funny characters: 「」
rickatcox I hve my term set to ansi on both securecrt and $TERM 20:37
tadzik okay, what do you see: bździągwa
FROGGS Tanktalus: it is working when you use ('b') instead of <b> 20:38
[Coke] you need something utf8y.
FROGGS Tanktalus: but I dont know if that is a feature or not
rickatcox ok.. well at least I know I'm not completely crazy.. thanks for the help!
tadzik :)
PerlJam star: say "hi"
p6eval star 2012.07: OUTPUT«hi␤»
Tanktalus FROGGS: yeah, I made that change. I'm not entirely clear on all the p6 brackets yet :-)
tadzik rickatcox: don't hesitate to complain loudly if something doesn't do what you expect :)
FROGGS Tanktalus: me neither ;o) 20:39
rickatcox thanks tadzik!
tadzik welcome :)
FROGGS hi PerlJam 20:40
Tanktalus and that rfc doesn't seem to suggest anything I didn't already try :-D
PerlJam greetings FROGGS
Tanktalus (for piping)
20:41 fgomez_ joined
FROGGS you already had a look at the spec or test repos on github? they show the current implementation 20:41
Tanktalus just the rfc, and just tried open '|/bin/echo' - that rakudo didn't like :-S 20:42
tadzik .u thumb 20:43
phenny tadzik: Sorry, no results for 'thumb'.
20:44 fgomez left
LlamaRider Is there a simple way to make P5 and P6 play together? I have a Perl5 framework and want to write some new modules in P6. How bad is that situation - is it the same as using P5 together with Java, for example? 20:45
20:45 fgomez_ left
tadzik LlamaRider: it's semi-possible in niecza, I think 20:46
LlamaRider that's kind of semi-vague :) 20:47
FROGGS LlamaRider: you might have a look at Object::Remote module mst writes
he is going to add support so that you can talk from perl5 to 6 and vice versa 20:48
LlamaRider fancy. and nice! 20:49
PerlJam Yeah, but IIRC Object::Remote isn't quite there yet. But maybe next week or the week after
rickatcox one more question, is there a document that describes the interactive mode and how to control it? (command line switches?) 20:50
20:50 fgomez joined
LlamaRider I am still gearing up to that until say mid-October, so I am in no super-rush. That's an interesting thing to look forward to. 20:50
tadzik rickatcox: not really 20:51
it's unspecced
rickatcox ok.. thanks..
tadzik it's mostly like writing code on the fly, not much command line switches there
LlamaRider I had also caught a note that someone (Larry?) is making Perl5 interpretable via Perl6. Not sure if that is a myth or not. 20:52
20:53 leprevost left
LlamaRider Ah yes, first FAQ answer here: www.perl6.org/archive/faq.html 20:53
it's a translation claim, my bad
PerlJam #perl6 is where magical people live. What may seem like a myth to the outside world may indeed be reality to people here :-) 20:54
FROGGS does somebody know how to access pod section in another module and if there is something like caller() (Perl5) ? 20:55
tadzik callframe() 20:56
as for Pod, that's a bit tricky now :/ What do you need to do?
FROGGS thanks
my inline c is actually a pod block, and I can get it by $=pod[index] 20:57
would it be $=MODULE::pod[index] then?
its empty :/
tadzik that won't work, I'm afraid :
it's file-scopet
FROGGS hmmm 20:58
tadzik you could maybe write an accesor sub for it :P
FROGGS ya, another workaround :/
21:00 tokuhiro_ joined
tadzik yeah, I know 21:00
jnthn evening o/ 21:05
FROGGS hi jnthn
jnthn survived stressful conf day
21:07 skids left
tadzik good evening jnthn 21:07
jnthn hi tadzik, FROGGS 21:08
21:10 rickatcox left 21:13 leont joined
FROGGS gnight 21:40
jnthn sleep & 21:46
21:49 Chillance joined
Tanktalus so far, no luck finding out how to pipe to a subprocess in p6 :-( 21:57
22:05 bluescreen10 left 22:11 leont left
sorear Tanktalus: don't think it's possible currently 22:12
Tanktalus sorear: ok, that explains it then. It's too bad because nearly everything I do in perl 5 is through pipes. 22:13
sorear Tanktalus: but see szabgab's latest blog post for "DOS pipes" 22:14
TimToady there's a whole bunch of stuff in nom's directory containing "pipe", but it's all down in parrotland 22:15
Tanktalus sorear: szabgab has a bazillion blog sites, I'm even subscribed to a few (!) but I'm not sure which one you're referring to :-) 22:16
sorear perl6maven.com/sending-email-using-perl6 22:20
Tanktalus sorear: that's the one I was trying to take issue with, actually, by trying to write it closer to how I'd do it in perl 5 ;-) 22:21
TimToady Tanktalus: are you trying to do this on windows or unix?
one could use a named pipe on unix 22:22
Tanktalus I'm on linux, but doing this as much to cement perl 6 ideas as anything else - I only learn by doing, not by reading, so I read that article in perl6maven and wanted to "improve" on it :-)
I'd actually rather use something like Net::SMTP, but I'm not sure that's available on perl6 yet either :-) 22:23
Of course, I'm going to end up getting myself into trouble again with Gabor - last time I critiqued something on perl5maven, he told me to write my own damned article. (Paraphrased, he didn't use the word "damned") :-D 22:24
TimToady shell 'mknod fifo p; mysubproc <c &'; my $pipe = open "fifo", :w; or some such
Tanktalus Right. Ow. :-) 22:25
TimToady or fiddle with PIR:: stuff 22:26
sorear TimToady: my darwin system here wants 'mkfifo', does not have 'mknod p' :|
TimToady how...darwinian...
it's a good think I hedged it
a good thing too 22:27
I guess linux has mkfifo too
I'm showing my age by remembering mknod instead 22:28
geekosaur mkfifo has the advantage that it can be run by ordinary users; mknod is root only 22:29
TimToady I almost said, "I'm dating myself", but I'd be dating myself to use that phrase nowadays without realizing it's become a double entendre, just like everything else has. Get off my lawn! 22:30
Tanktalus still thinks it'd be nicer just to be able to open pipes to subprocesses. :-P
TimToady someone has to be the tormented implementor
Tanktalus Is the syntax settled? Not that I'm volunteering :-) 22:31
TimToady it's specced, so yes, but it's specced in IO, so, er, no, not exactly 22:32
Tanktalus
.oO( TimToady is a manager? )
TimToady last I knew moritz++ was being the tormented IO speccer
I'd think it'd be nice to have *a* way, even if it's the wrong way 22:33
Tanktalus I was kind of expecting something like my $fh = open '|-' or exec '/usr/bin/sendmail' ... "or some such" though maybe my $fh = open [ '/usr/bin/sendmail' ], :pipeto; would work, too. :-) 22:35
22:35 flussence left, flussence joined
Tanktalus But what do I know, I only dabble in perl 6 once every couple of years :-) 22:35
TimToady we're trying to avoid putting modes into the same string as the filename these days; even Perl 5 thinks that's a bad plan... 22:36
Tanktalus Ever since TheDamian visited us in Toronto for a presentation on perl 6 ... back in 2001. :-)
TimToady I think prior art is the curse of IO 22:37
Tanktalus (And I moved away from Toronto in 2002.)
TimToady everything has to look like 'open'
or everything has to look like a constructor
I'd be happy with pipe-to() and pipe-from() functions for now 22:38
Tanktalus my $fh = readpipe <some command here>; # too perl 5-ish? :-)
TimToady that was an internal primitive that escaped :)
Tanktalus that'd work for me. Probably better, really. Though I can't quite state in words how pipe-* would be better. :-) 22:39
TimToady and it's not the same as pipe-from(), which would return a handle
readpipe was the name for `command`
Tanktalus Yes, I know perl5's readpipe returns text not an object :-P 22:40
TimToady pipe-from doesn't contain the morpheme "read"
Tanktalus I've tried to take a look at how to get perl 5's readpipe could take a list (like system) and failed :-)
diakopter what's the syntax for telling such a pipe to decode utf-16 to P6's internal string representation when reading? or latin-1? etc 22:41
Tanktalus I'm just curious as to how pipe-from/pipe-to would look alongside a normal pipe() function that also seems missing so far :-)
TimToady presumable the same as other handle openers 22:42
that doesn't mean they all have to be called "open"
*bly
Tanktalus my $fh = pipe-from(<some command here>); but my ($rh, $wh) = pipe(); # no command for pipe
TimToady p5 considers pipe() to be a syscall-level primitive 22:43
Tanktalus of course, if pipe accepted a command, too, it could do what IPC::Open2 does in p5 ;-)
TimToady pipe-through() or some such 22:44
22:44 PacoAir left
TimToady though to set encodings differently on input/output would require something more than current open's named args 22:45
diakopter TimToady: was "presumably.." in response to my question? if so, what's that syntax
I seem to hav forgotten 22:46
TimToady me too, which makes it a good thing it's documented somewhere :)
probably in the source code, if nowhere else... 22:47
diakopter what
what's the syntax to change that encoding setting once you have the handle
TimToady r: say &open.^signature
p6eval rakudo 220a69: OUTPUT«No such method 'signature' for invocant of type 'Perl6::Metamodel::ClassHOW'␤ in block at /tmp/fY1mH6_BEQ:1␤␤»
diakopter r: say &open.signature 22:48
p6eval rakudo 220a69: OUTPUT«:()␤»
TimToady I think IO says something about that
r: say IO.^methods
p6eval rakudo 220a69: OUTPUT«␤»
22:51 skids joined
TimToady IO specs :enc() on open, so presumably a similar arg on pipe opens 22:51
diakopter n: say IO.WHICH, IO.clone.WHICH
p6eval niecza v21-1-ga8aa70b: OUTPUT«[34C76880][34C76880]␤»
TimToady it specs IO::Encoded.encoding as a rw thing, which is funny
so $handle.encoding = "foo" would work, but only if it's already an IO::Encoded :/ 22:52
nr: say $*IN.WHAT 22:53
p6eval niecza v21-1-ga8aa70b: OUTPUT«TextReader()␤»
..rakudo 220a69: OUTPUT«IO()␤»
diakopter n: say $*IN.WHO 22:54
p6eval niecza v21-1-ga8aa70b: OUTPUT«Stash.new(...)␤»
TimToady r: $*IN.encoding = "ISO-8859-1"; say lines()
p6eval rakudo 220a69: OUTPUT«No such method 'encoding' for invocant of type 'IO'␤ in block at /tmp/5pQ6W8RYfG:1␤␤»
TimToady right... 22:55
r: binmode($*IN, "Latin-1")
p6eval rakudo 220a69: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&binmode' called (line 1)␤»
TimToady didn't expect that to work...
diakopter same for how to encode output/write/send 22:57
TimToady I suppose the only way to handle it currently is to use buffer read/write and encode by hand
diakopter if the current factoring remains, the std handles need to be IO::Encoded 22:58
TimToady kinda by definition, anything that reads or writes unicode strings is *coded 22:59
Tanktalus technically, anything that is intended to be consumed textually is coded :-P
diakopter (perhaps poorly/wrongly) 23:00
TimToady if the default is unicode text, then the default IO should consider itself to have a decoding/encoding 23:01
diakopter assumes that would be utf8/ascii/ansi 23:06
TimToady and $*IN.encoding should maybe be $*IN.decoding
$*IN's decoding would usually be $*OUT's encoding, but this is not a guarantee 23:07
likewise for a pipe-through, we need to be able to supply those as separate layers (in P5-think) 23:08
I mean parallel for input and output, not layered on each other 23:09
23:11 stopbit left 23:12 wamba left
diakopter hmm, twitter didn't translate my "/me" 23:14
I should've specified IRC encoding
TimToady or is that decoding? who's to be master, that's all... 23:17
Tanktalus Oh, and dup'ing a filehandle, such as $*IN, shouldn't lose layers like in p5. :-P 23:20
23:25 stepnem left
Tanktalus for reference, in perl5, the bug I refer to is rt.perl.org/rt3/Ticket/Display.html?id=113982 and related is rt.perl.org/rt3/Ticket/Display.html?id=114334 23:25
23:26 benabik joined
TimToady
.oO( $*IN.deepclone )
23:26
23:27 spider-mario left
diakopter ambulate& 23:30
23:46 thou left 23:50 fgomez left