»ö« 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 declaredat /tmp/M2cTBTkz95:1» | ||
..niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===Variable $dir is not predeclared at /tmp/F2tWyKQlwY line 1:------> BEGIN { our $dir = 'abc' }; say ⏏$dirUnhandled 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«gistUnmarshallable 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 Nilat /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!===Confusedat /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
|