»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:11
leont left
00:14
Rotwang left
00:31
FROGGS joined
00:38
xenoterracide joined
00:46
xenoterracide left
00:48
xenoterracide joined
01:05
xenoterracide left
01:06
hypolin joined
|
|||
[Coke] | util++ | 01:08 | |
01:10
fgomez joined,
fgomez left,
fgomez joined
01:13
itz joined
01:14
ggoebel joined
01:15
FROGGS left
01:21
Aww is now known as AWW,
AWW is now known as Aww
01:23
btyler joined,
aindilis left
01:24
raiph left
01:25
ssutch joined
01:28
pdurbin joined,
btyler left
01:31
benabik left
01:33
logie left
01:38
benabik joined
01:41
prevost joined
01:43
xenoterracide joined
01:49
btyler joined
01:52
prevost left
|
|||
[Coke] | Aww Yaaah. | 02:06 | |
Aww yaaah. | 02:07 | ||
02:07
FROGGS joined
|
|||
[Coke] | Aww++ | 02:07 | |
02:34
FROGGS left
|
|||
BenGoldberg | rpn: say gather {}[0] | 02:40 | |
camelia | niecza v24-88-g1f87209: OUTPUT«(Any)» | ||
..rakudo 42758c: OUTPUT«Nil» | |||
..pugs: OUTPUT«» | |||
BenGoldberg | rn: say 1...90 | 02:41 | |
camelia | rakudo 42758c: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90» | ||
..niecza v24-88-g1f87209: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8… | |||
labster | rn: say 1..88 | ||
camelia | rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«1..88» | ||
BenGoldberg | :) | ||
labster | rn: say 1...88 # use moar dots | 02:42 | |
camelia | niecza v24-88-g1f87209: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88»… | ||
..rakudo 42758c: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88» | |||
BenGoldberg | If truncation happens, camelia always seems to think the outputs are different | 02:43 | |
labster | the top one isn't even truncated, that's an edge bug. | ||
02:55
orafu left,
colomon left
03:02
slavik joined
03:11
wtw_ joined,
itz left
03:13
wtw left
03:15
itz joined
03:25
_jaldhar joined
03:32
_jaldhar is now known as jaldhar
03:36
fridim_ joined
03:38
preflex_ joined,
ChanServ sets mode: +v preflex_,
preflex left,
preflex_ is now known as preflex
03:56
kaleem joined
03:59
thou left
04:02
fridim_ left
04:12
kaleem left
04:15
btyler left
04:39
itz_ joined
04:40
xinming left
04:41
itz left,
birdwindupbird joined
04:42
xinming joined
04:52
BenGoldberg left
05:13
raiph joined
|
|||
raiph | This looks like pretty cutting edge concurrency / parallelism: | 05:14 | |
"Executing Time Warp on 1,966,080 Cores" | |||
www.cs.rpi.edu/~chrisc/COURSES/PARA...s-2013.pdf | |||
"direct simulation of planetary-scale discrete event models are now, in principle | 05:18 | ||
at least, within reach. | |||
diakopter | .. | 05:19 | |
planetary scale, but to what granularity | 05:20 | ||
basketball? | 05:23 | ||
kilonewton> | |||
? | |||
JimmyZ | what | 05:25 | |
05:42
jaldhar left
05:46
jaldhar joined
06:10
daxim joined
06:14
FROGGS joined
06:18
Tene left,
djanatyn left
06:26
dmol joined,
_daniel-s__ joined
06:28
FROGGS left
06:30
daniel-s__ left
06:33
fgomez left
06:38
Mouq left,
Mouq joined
06:39
rindolf joined
|
|||
Mouq | hugme hug camelia | 06:39 | |
hugme hugs camelia | |||
06:49
crab2313 joined
06:55
domidumont joined
07:00
FROGGS joined
07:03
domidumont left
07:04
domidumont joined
|
|||
FROGGS | timotimo: how can I render these nice graphs? | 07:16 | |
timotimo | FROGGS: ./bench --outfile=moarvm_nqp.html --format=html_plot compare moarvm/3fc3fa2 nqp-jvm/0b93372 nqp/0b93372 | 07:17 | |
FROGGS | thanks! | ||
timotimo | yw :) | 07:18 | |
07:19
xinming left
07:20
itz_ left,
xinming joined
|
|||
FROGGS | timotimo: zero and hello look a bit differently here froggs.de/perl6/moarvm_nqp.html (compared to t.h8.lv/p6bench/moarvm_nqp_2013-08-07.html) | 07:27 | |
timotimo: note that this isnt using the crosscompiler | 07:28 | ||
JimmyZ would like to see p5 too there | |||
FROGGS | yeah, was my first test run, after fudging the test environment to play nicely with .moarvm-files | ||
I need to figure out while_empty only shows a dot here | 07:29 | ||
for moarvm | |||
timotimo | sprinkle prints all over timeall :) | 07:31 | |
07:32
leont joined
|
|||
FROGGS | ahh | 07:34 | |
I think it lies | |||
if you move over the first dot of nqp/HEAD for the while_empty test, it says that nqp/HEAD is 670 times slower than faster, which only could be moarvm/HEAD | 07:35 | ||
I dont believe that chart | |||
timotimo | no | 07:36 | |
that's nqp-jvm | |||
the "fastest" is not restricted to the same column | |||
it's a global number | |||
FROGGS | ahh, so it compares to the peak always | ||
timotimo | yep | ||
FROGGS | k | ||
07:41
domidumont left
|
|||
FROGGS | hmmm, it works when running it by hand | 07:41 | |
07:44
sqirrel joined
|
|||
masak | mornin', #perl6 | 07:47 | |
wow, Util++ | |||
07:49
xinming left
|
|||
FROGGS | morning masak | 07:49 | |
lizmat | morning #perl6! | ||
yoleaux | 06:54Z <diakopter> lizmat: I have some corrections for your syllabus for the rakudo/nqp workshop.. you forgot to s/Day/Week/g | ||
preflex | yoleaux: you have 2 new messages. '/msg preflex messages' to read them. | ||
FROGGS | morning lizmat | ||
07:50
xinming joined
|
|||
lizmat | .tell diakopter if you can't stand the heat, don't go into the kitchen! | 07:50 | |
yoleaux | lizmat: I'll pass your message to diakopter. | ||
masak | hehe, s/Day/Week/g -- Edument courses are intense, we told you that. | 07:51 | |
07:51
iSlug joined
|
|||
masak | lizmat: I read that as "if you can't stand the heat, go back into the kitchen with you!" :P | 07:51 | |
lizmat | :-) | ||
masak .oO( "make me a sandwich, diakopter" ) | 07:52 | ||
lizmat | of course, if you realize that Edument was started by a guy called Tor, it's only a small step to Torment :-) | ||
masak | haha | ||
two guys, actually. | |||
but the second one is called "Acke", so... point taken. :) | |||
lizmat | yeah, good cop, bad cop, I know the drill :-) | ||
masak | more like "the techie and the marketer", but yeah. | 07:53 | |
07:55
wtw_ is now known as wtw
|
|||
lizmat | www.jugendherberge-frankfurt.de/en/ was suggested as a location for the RaNIW | 07:57 | |
the Dutch Perl workshop has been held at a youth hostel many times, and I have fond memories of that | 07:58 | ||
I think jnthn was even at one of them | |||
It would certainly make the boarding of the particpants a lot easier | |||
tadzik | lizmat: 14-15 august? | 08:02 | |
lizmat | 14/15 September | ||
tadzik | I assume september | ||
sounds perfect | |||
lizmat | cool! | ||
tadzik | I'm excited too Y( | 08:03 | |
:) | |||
lizmat loves it when a plan comes together :-) | |||
tadzik | but that doesn't change the fact that I was supposed to be at work an hour ago | ||
and I woke up 20 minutes ago | |||
tadzik runs | |||
FROGGS attached multithreaded legs at tadzik's body so he can run while he runs | 08:04 | ||
tadzik | but still, the sleep was worth it :D | ||
FROGGS | *g* | 08:06 | |
lizmat | fitness& | 08:07 | |
08:10
avuserow left
08:11
avuserow joined
08:13
dakkar joined
|
|||
masak | FROGGS: clearly, you should read "The multithreaded leg-marathon" by Terry Xzibit | 08:16 | |
08:29
crab2313 left
|
|||
FROGGS | ohh, okay | 08:31 | |
diakopter | masak: multiple marathon legs at once? but where would you stand to pass out water? | 08:33 | |
yoleaux | 07:50Z <lizmat> diakopter: if you can't stand the heat, don't go into the kitchen! | ||
diakopter | "stay out of the .." | 08:36 | |
(better alliteration) | |||
FROGGS | timotimo: should timo_command measure the exec time including compile time? | 08:40 | |
timotimo | i think so. not sure. | 08:41 | |
FROGGS | because the cross compiler takes ages on moarvm... like 3s or so | 08:42 | |
timotimo | but the benchmark system sutracts the startup time | ||
nwc10 | lizmat: www.perl-workshop.de/en/2009/index.html and conferences.yapceurope.org/gpw2011/ | 08:43 | |
labster | good morning #perl6 | 08:58 | |
masak | labster! \o/ | 08:59 | |
FROGGS | hi labster | ||
labster | this perl 6 compiler hacking workshop sounds exciting | 09:00 | |
I'm tempted to go, but worried about concepts going way over my head. | 09:01 | ||
Anyway, I've decided that I should work on Bailador. The only problem being that I don't know Dancer to begin with, so I've been playing around with it today. | 09:03 | ||
masak | it won't be as head-spinning as, say, reverse grammars ;) | ||
JimmyZ | or mojo | 09:04 | |
09:06
berekuk joined
09:13
crab2313 joined,
Rotwang joined
|
|||
masak | crazy. github.com/seliopou/typo | 09:16 | |
09:17
pecastro left
|
|||
tadzik | labster: oh, awesome :) | 09:18 | |
09:18
nyuszika7h left
|
|||
tadzik | oh gods: osrc.dfm.io/tadzik | 09:18 | |
it scares me how accurate that is | 09:19 | ||
09:19
pecastro joined
|
|||
labster | oh wow, that is scary accurate for me too. | 09:20 | |
09:20
rindolf left
|
|||
JimmyZ | somebody said mojo::lite is like dancer | 09:20 | |
09:21
berekuk left
|
|||
labster | Although it's not so much that I work best late at night, it's just that the darn things finally pass tests then. | 09:22 | |
or I just give up and commit the partially working code before sleep. | 09:23 | ||
09:23
hypolin left
09:24
hypolin joined
|
|||
masak | Perl... and C#? osrc.dfm.io/timtoady | 09:24 | |
oh, because Niecza. | |||
"In particular, Larry is a serious Perl expert." -- :D | |||
09:25
hypolin left,
hypolin joined,
hypolin left
|
|||
labster | facebook should ask him if he's read the camel book. | 09:25 | |
masak | also, audreyt and ingydotnet are really language omnivores -- it's utterly clear from their report cards. | 09:26 | |
09:31
nyuszika7h joined
09:32
iSlug left
09:33
xenoterracide left
|
|||
moritz just acquires a macbook from 2007 so that he has any laptop at the hackathon at all | 09:34 | ||
JimmyZ | masak: we're a late-week deadliner | 09:35 | |
nwc10 | moritz: that might be the same generation hardware as mine | ||
mine is a "late 2007" macbook bought in Feb 2008 about 2 weeks before an unexpected refresh | 09:36 | ||
moritz: which OS version? | |||
09:37
Exodist joined,
Teratogen joined,
Teratogen left,
Teratogen joined
|
|||
Ulti | Util++ wow thanks, I'll makesure I get on with it ;) I dont even recognise those perl5 regexp modules | 09:37 | |
09:37
Teratogen left
09:38
Teratogen joined,
Teratogen left,
Teratogen joined,
Teratogen left,
Teratogen joined,
Teratogen left
|
|||
moritz | nwc10: I'm just upgrading to 10.7.4 | 09:39 | |
09:39
Teratogen joined,
Teratogen left
|
|||
FROGGS | wow, that site is awesome: osrc.dfm.io/ | 09:39 | |
09:39
Teratogen joined
|
|||
nwc10 | 10.7.4 is most recent Leopard? | 09:39 | |
09:39
odoacre_ left
|
|||
moritz | nwc10: I'm not sure; I have no idea of Mac OS X | 09:40 | |
09:40
odoacre_ joined
|
|||
moritz | nwc10: I'm just using it because it's preinstalled, and the owner would kill me if I installed a linux instead :-) | 09:40 | |
nwc10 | I don't have a good idea. Mine reports 10.8.0 | ||
and it's Snow Leopard | |||
timotimo | image the hard drive? | 09:41 | |
tadzik | moritz: do you want my old ThinkPad? | ||
moritz | tadzik: what characteristics does it have? | ||
09:42
ssutch left,
iSlug joined
|
|||
moritz | tadzik: but most certainly "yes" ;-) | 09:42 | |
tadzik | moritz: it's core 2 duo, 4 gigs of ram. It's also heavy (almost 4kg), and battery lasts like 30 minutes :) | ||
09:42
berekuk joined
|
|||
tadzik | oh, and the keyboard is in a bad shape :( | 09:42 | |
but only the windows key | |||
nwc10 | ssh into that one from the other. | ||
tadzik | hehe | ||
moritz | tadzik: sounds great, in comparison to what I have now | ||
nwc10 | 4 gigs of RAM should help compilation | 09:43 | |
tadzik | it used to have an SSD, but I sold it | ||
moritz | once I have network access, I can also ssh to another server and compile rakudo there | ||
tadzik | I can arrange a 320gig hdd for it, probably | ||
moritz | I can also bring my old laptop's hdd | 09:44 | |
and hope they are compatible :-) | |||
tadzik | this one was 9mm wide, or such | ||
like "the regular laptop width" :) | |||
masak | emotions in various github communities: geeksta.net/geeklog/exploring-expre...-messages/ | 09:46 | |
nwc10 | I can bring a USB housing for a laptop drive (but probably not the screwdriver needed to get into it) but I'd rather not unless it's useful and no-one else has one | 09:47 | |
tadzik | I have one too | 09:48 | |
but I'd rather not bring it :) | |||
moritz | I'll just bring my own laptop HDD along, and we'll be fine (hopefully :-) | 09:49 | |
tadzik | sounds good :) | ||
crowd-ware | 09:50 | ||
moritz feels so c[lr]o[wu]dy | 09:51 | ||
09:51
berekuk left
09:52
xenoterracide joined
|
|||
mathw | masak: I like the quoted message "regexes are fun and pleasant to work with, in the same way that oranges are purple" | 10:01 | |
timotimo | thankfully, perl6 changes that in a big way | 10:02 | |
nwc10 | the oranges are chartreuse? | 10:03 | |
mathw | I tend to think that if you get to that level of frustration with regexes then you either haven't bothered to actually learn regexes, or you're trying to do something that's past what I consider the sane complexity limit for a plain regex | ||
there's a point where you're sometimes far better off doing it in several steps, because then you've got a chance of understanding the code next year when you have to change it | 10:04 | ||
FROGGS | mathw++ # true | ||
masak | right. if the tool frustrates you, then do something about that. | 10:07 | |
either learn more about the tool, or change your expectations, or change tools. | |||
diakopter | oh noes jnthn quit Perl 6 | ||
dalek | ecs: a888b08 | (Elizabeth Mattijsen)++ | S12-objects.pod: First attempt at speccing "samewith" |
10:08 | |
10:08
raiph left
|
|||
mathw | timotimo is right of course, Perl 6 moves the goalposts quite substantially on the complexity barrier, because they're not regexes anymore... I do see a lot of people trying to do things with regexes that you really need a grammar engine for, and Perl 6 should help them a lot. | 10:09 | |
10:09
lee_ joined
|
|||
dalek | p: f68cb4f | (Pawel Murias)++ | t/nqp/18-associative.t: convert test to using ok instead of say, add a test for a nqp-js bug |
10:09 | |
mathw | admittedly, regexes themselves won't be substantially more powerful - but having grammars built in is really nice | ||
10:09
pmurias joined,
sqirrel left
10:10
berekuk joined,
jnthn joined
|
|||
pmurias | mathw: I think being able to easily import regex subparts from CPAN will be a huge benefit (increase in power) | 10:10 | |
masak | mathw: regexes became "not regexes anymore" long before Perl 6 took the Perl 5 regexes and added grammars. | ||
timotimo | oh yen | ||
mathw | I'm now very much in the camp that a good language should have either good parsing abilities or the kind of extensibility that lets you add them without going mad | 10:11 | |
masak: yeah I'm using 'regexes' more to mean Perl 5 ones, not the proper regular expressions which are far more limited | |||
pmurias: that, definitely that. | |||
masak .oO( "Perl 6 regexes are not even the Perl 5 regexes that are not even real regexes anymore, anymore!" ) :P | 10:13 | ||
10:15
woosley left
10:17
berekuk left
|
|||
Ulti | Util's regex translator looks to be quite solid at least for this use case :) | 10:18 | |
masak | Util and Ulti: I think you two have started interacting just to mess with the rest of us. :P | 10:19 | |
Ulti | >:D | ||
I dont have jakudo on my work laptop so can't hammer this out now... also my thesis is now dragging well into *no funding* time | 10:20 | ||
10:20
iSlug left
10:21
arnsholt left
|
|||
mathw | masak: I like the convention of "regex" meaning superpowered ones like Perl 5's, and "regular expression" meaning what the parsing theorists think about | 10:22 | |
and that I learned about in the G51MAL module at uni :) | |||
Ulti | I'll try and get this done and submit a patch to the bioperl6 repo since I think it would be quite neat if in my paper I can name drop Perl6 | ||
mathw | probably the best module in the first year, that one, especially when one day the lecturer demanded of a late arrival "YOU! What is your favourite regular language?" | ||
Ulti | yeah I think regex usually implies perl5 wizz4rdry | 10:23 | |
mathw | So the poor guy said "umm... a^n b^n?" | ||
"NO! That is not a regular language! Sit down!" | |||
masak | :D | 10:24 | |
mathw: yes, that's a good convention. I remember that being discussed/decided on p6l. | 10:25 | ||
mathw: also, Perl 6 people consistently say "regex", whereas many Perl 5 people say "regexp". | |||
rn: say Regex.^name | |||
camelia | rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«Regex» | ||
Ulti | mathw: isn't it regular if you bound how many repeats then it becomes finite and thus regular (thats what I would have thrown back at the lecturer) | 10:26 | |
masak | r: say Regexp | ||
camelia | rakudo 42758c: OUTPUT«===SORRY!=== Error while compiling /tmp/MX_jgSPSFTUndeclared name: Regexp used at line 1. Did you mean 'Regex'?» | ||
masak | rakudo++ | ||
10:26
iSlug joined
|
|||
Ulti | nice | 10:26 | |
masak | Ulti: that's changing the problem, which is usually considered "cheating". | ||
Ulti | thats the sort of cheat I am | 10:27 | |
masak | Ulti: the fact remains that a^nb^n isn't a regular language. | ||
it is, however, in the next level of hopelessness: a context-free language. | |||
that is, you need to endow your FSM with a pushdown stack. | 10:28 | ||
mathw | absolutely | 10:31 | |
this was a point that had been made in the previous lecture | |||
I found that course very interesting indeed. It turned parsing from something strange and scary into something merely complicated | 10:32 | ||
masak | :) | 10:33 | |
mathw: I have a talk at YAPC::EU where I will try to get some of these points across. | |||
a very small subset of these points, in fact. | |||
the summary of the talk is something like "NFAs are cool stuff". | 10:34 | ||
Ulti | {a^nb^n | 0 > n < 10} is a finite language so is regular is what I meant, I'd have hastily added on the bound to show the lecturer I knew the requirements for a regular language even if I was wrong to begin with | 10:35 | |
mathw | yeah, but you know what the requirements for a regular language are | 10:36 | |
Ulti | regular expressions are just unions of all the words which is finite, its horrible but regular.. its only when its an infinite space of words its not regular because you have to recurse to express it | 10:37 | |
masak | r: say set ($_ % 10 for 1, 2, 4 ... 65536) | ||
camelia | rakudo 42758c: OUTPUT«set(1, 2, 4, 8, 6)» | ||
Ulti | also our lecturer for that stuff didnt care enough to attempt to catch anyone out :'( | ||
masak | r: say set ($_ % 100 for 1, 2, 4 ... 65536) | ||
camelia | rakudo 42758c: OUTPUT«set(1, 2, 4, 8, 16, 32, 64, 28, 56, 12, 24, 48, 96, 92, 84, 68, 36)» | ||
masak | Ulti: not exactly. the kleene star also creates an infinite space of words. but it's still regular. | 10:38 | |
Ulti: as in, a^n with no limit on n is still regular, for example. | |||
Ulti: the impossibility of a^nb^n is that the state machine cannot "remember" the n going from a to b. | 10:39 | ||
Ulti | I'd have gotten caught out then ;) | 10:40 | |
mathw | indeed | ||
Ulti | also we didn't have any parser/compiler theory on our CS course | 10:42 | |
masak | o.O | ||
Ulti | the language theory stuff was two lectures as part of a foundation maths module | ||
I learn regex when I had to do stuff in Perl and PHP in my first job, they didnt even cover practical "regular" expressions | 10:44 | ||
*learnt | |||
10:46
crab2313 left
|
|||
mathw | :( | 10:59 | |
we had a whole module on 'machines and their languages', which was basically about how to parse things | |||
very handy for the second year when we did a module on compilers :) | 11:00 | ||
11:14
crab2313 joined
11:21
ggoebel left
|
|||
lizmat | r: my Int @a; @a[0]="foo" # wonders where the $v comes from | 11:23 | |
camelia | rakudo 42758c: OUTPUT«Type check failed in assignment to '$v'; expected 'Int' but got 'Str' in block at /tmp/coPrjEV8J6:1» | ||
lizmat | cycling& | ||
11:31
crab2313 left,
crab2313 joined
|
|||
masak | because Python doesn't declare variables (all your variables are implicit locals), you can see an outer lexical from an inner scope, but you cannot write to it, because assigning to a variable in the inner scope creates a new inner lexical that shadows the outer one. | 11:49 | |
11:50
dmol left
|
|||
FROGGS | masak: is that a response to someone? | 11:51 | |
11:51
dmol joined
|
|||
FROGGS | I mean, it is interesting to know, and makes python feel even more weird | 11:52 | |
Juerd | masak: Hm, that explains the foo = foo I saw and didn't understand yesterday :) | ||
masak | Juerd: yup. but that was probably a parameter default. | 11:54 | |
FROGGS: no, I'm just discovering things as I go. | |||
FROGGS: some of which are weird. | 11:55 | ||
FROGGS | right :o) | ||
FROGGS subscribes to masak's feed | |||
masak | Juerd: Python has the same problem as Moose does with defaults. they are evaluated at declaration-time, not at call-time or instantiation-time. | ||
Juerd: so 'foo = foo' means "I have this parameter foo. its default value is whatever's in (the surrounding environment's lexical variable) foo *at function declaration time*" | 11:56 | ||
12:03
pdurbin left
12:15
benabik left
12:16
skids left
12:19
benabik joined
12:21
g0r joined
12:23
arnsholt joined
12:32
daxim left
12:38
domidumont joined
|
|||
FROGGS | I wonder why nqp@moarvm is so equal to nqp@parrot... froggs.de/perl6/moarvm_nqp.html | 12:39 | |
mebbe I'm benching it wrong | |||
[Coke] | or it could be that moarvm is slower than parrot for non-MOP thins | 12:42 | |
*things | |||
12:49
domidumont left
12:55
g0r left
12:56
iSlug left
|
|||
JimmyZ | FROGGS: Did you with --optimize :P | 12:57 | |
FROGGS | JimmyZ: I did | ||
JimmyZ | what? zero is so high in moarvm? :) | 12:58 | |
FROGGS | I just wonder because it is in many cases *identical* to nqp@parrot, and that is odd | ||
13:00
slavik left
13:01
berekuk joined
13:02
sqirrel joined,
sqirrel left
|
|||
moritz | masak: but Moose allows you to pass closures for defaults | 13:23 | |
13:24
thou joined,
rindolf joined
|
|||
moritz managed to compile a rakudo on "his" laptop | 13:25 | ||
just 6 minutes to parse the setting | 13:26 | ||
tadzik | not that bad | ||
moritz | it doesn't make rakudo hacking very practical, but maybe I can hack on modules | 13:27 | |
FROGGS | that was what I was thinking *g* | 13:28 | |
5min for stage parse means you'll become the next famous module hacker :P | 13:29 | ||
masak | moritz: yes, and I don't really see why the parameter defaults in Python couldn't all be thunks. but they're not. | 13:32 | |
moritz: Moose even forbids [] and {} without the surrounding sub ref. | 13:33 | ||
tadzik | FROGGS: ...or the next successful gsoc student :P | 13:35 | |
FROGGS | tadzik: well, at least we are too old for beeing gsoc students :o) | 13:36 | |
tadzik | I don't think you can be too old :) | ||
13:39
ajr joined,
btyler joined,
ajr is now known as Guest55702,
Guest55702 is now known as ajr_
|
|||
crab2313 | ls | 13:39 | |
13:40
crab2313 left,
marshyon joined
13:41
skids joined
|
|||
mathw wonders if moritz might instead become the reason why Rakudo at in May 2014 can be compiled in less than pi seconds | 13:41 | ||
pmurias | what's taking so long? parsing? | 13:49 | |
arnsholt | Well, the parse stage of the compilation includes the generation of the full AST, as well as executing any code that has to be run at compile-time (traits, BEGIN blocks, etc) | 13:51 | |
pmurias | arnsholt: and what's the bottleneck? | 13:52 | |
jnthn: what should "foo".WHAT return? | |||
arnsholt | I'm not sure if there's anything in particular that's slowing it down | ||
moritz | pmurias: the Str type object | 13:53 | |
arnsholt | The setting is just massive | ||
moritz | mathw: if I had any idea on how to do that, I'd have done it by now | ||
pmurias | moritz: in nqp | 13:55 | |
masak | rn: say "foo".WHAT === Str | ||
camelia | rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«True» | ||
masak | nqp: say "foo".WHAT | ||
camelia | nqp: OUTPUT«Confused at line 2, near "say \"foo\"."current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)» | ||
masak | nqp: say("foo".WHAT) | ||
camelia | nqp: OUTPUT«Can only use get_what on a SixModelObjectcurrent instr.: '' pc 43 ((file unknown):164815216) (/tmp/rb5XP_N8vy:1)» | ||
masak | pmurias: seems "you can't do that" | 13:56 | |
13:56
bluescreen10 joined
13:59
mtk left
14:01
isBEKaml joined,
konundra joined,
logie joined
14:03
mtk joined
|
|||
mathw | moritz: it's easy - just invent a really really fast computer :P | 14:03 | |
14:04
marshyon left
|
|||
pmurias | masak: on parrot you can't on jvm you can | 14:05 | |
masak: what_or_null is #ifdef'ed on parrot | |||
14:06
crab2313 joined
|
|||
masak | pmurias: what does it return on the JVM? | 14:09 | |
14:09
kaare_ joined
|
|||
pmurias | masak: some internal package I guess, I would have to check the source | 14:09 | |
14:11
logie left
|
|||
timotimo | moritz: if i buy a new laptop by the time the workshop happens, and i attend the course, i could bring my x200s along with the new laptop to the course | 14:11 | |
it does stage parse in about 3 minutes i think... | 14:13 | ||
but i still do all my rakudo hacking on my desktop via ssh if i can | |||
dalek | rlito: 8b345b3 | (Flavio S. Glock)++ | / (5 files): Perlito5 - grammar - new module Perlito5::Grammar::Map |
14:16 | |
14:20
jaldhar left,
logie joined
14:23
isBEKaml left,
Timbus left
14:24
ponbiki left,
Timbus joined
|
|||
diakopter | the cover of my new passport is so thick, there must be a computer inside | 14:30 | |
oh wait, it even admits there is. nm. | 14:32 | ||
tadzik | haha | 14:33 | |
14:34
colomon joined
14:38
Psyche^_ joined
14:41
ponbiki joined,
ponbiki is now known as Guest37797
14:42
Psyche^ left
|
|||
dalek | kudo-js: c51e407 | (Pawel Murias)++ | / (3 files): Stub nqp::multicachefind. Fix QAST::VarWithFallback. |
14:44 | |
kudo-js: b9bdecb | (Pawel Murias)++ | / (3 files): Implement basic multis. Pass test 51. Implement nqp::invokewithcapture. Stub nqp::multicacheadd. Make nqp::what return null for non objects. Fix dependencies in the Makefile. |
|||
14:45
sqirrel joined
|
|||
cognominal | pommed? | 14:58 | |
15:00
birdwindupbird left
|
|||
mathw | diakopter: can you run rakudo on it? | 15:01 | |
15:02
domidumont joined
15:04
berekuk left
|
|||
dalek | rlito: 7bf2dc3 | (Flavio S. Glock)++ | / (4 files): Perlito5 - grammar - placeholder for sort() special cases |
15:09 | |
15:13
FROGGS left
|
|||
[Coke] wishes we could do more about spam on blogs.perl.org. :| | 15:21 | ||
masak | comments or no spam. pick any 1. | 15:24 | |
15:25
colomon left
|
|||
mathw | masak: you can have no spam and comments, if you employ a horde of moderators to approve every post before it appears | 15:27 | |
and train them perfectly | 15:28 | ||
[Coke] | masak: it's not comment spam. it's new-acccount-first-post-spam. | 15:29 | |
masak | [Coke]: oh :/ | 15:36 | |
mathw: while that is definitely a solution, under my definition that doesn't count as "no spam". :) | 15:37 | ||
15:37
FROGGS joined
|
|||
masak | only "no spam reaches the reader". | 15:37 | |
15:37
ajr_ left
15:38
ajr joined,
ajr is now known as Guest47564
|
|||
mathw | masak: good point. In that case you're quite correct that the only way to prevent spam is to disallow comments entirely. | 15:41 | |
moritz | somhow my default perl in $PATH is a 5.8.9 :/ | 15:43 | |
mathw | hmm | 15:44 | |
15:50
Guest47564 is now known as ajr_
|
|||
moritz | perlbrew to the rescue, I hope | 15:51 | |
16:10
ajr_ left
16:19
sqirrel left
16:26
konundra left
16:28
ssutch joined
16:34
Tene joined
|
|||
dalek | p: 5d3cfd5 | (Pawel Murias)++ | t/nqp/18-associative.t: Add testing for access of missing keys to test 18. |
16:45 | |
kudo-js: 925254e | (Pawel Murias)++ | / (3 files): Pass newly added test 76. Fix the passing of positionals to nqp::invokewithcapture(). Update nqp submodule. "Implement" just enough of nqp::getcomp to determine the backend name. |
16:47 | ||
p: 465c0ac | (Pawel Murias)++ | t/nqp/76-capture.t: Add new test 76. |
|||
timotimo | that sounds good! | 16:49 | |
16:49
census left
|
|||
benabik | Why is `sub savecapture` so complex? | 16:50 | |
16:53
vk_ joined
16:58
nebuchadnezzar left
17:00
spider-mario joined
|
|||
pmurias | benabik: you mean why it wrap the return value in an array? | 17:01 | |
benabik | pmurias: Also, why store the result in $x | ||
pmurias | debugging leftovers... | 17:02 | |
17:04
dakkar left,
nebuchadnezzar joined
|
|||
dalek | p: 80104a9 | (Pawel Murias)++ | t/nqp/76-capture.t: Simplify test. |
17:05 | |
17:05
cooper left
17:07
sqirrel joined
17:08
ajr_ joined
|
|||
pmurias | jnthn: closures can have different code objects? | 17:25 | |
17:28
konundra joined
|
|||
masak | pmurias: that sounds... unlikely. assuming I understand you correctly. | 17:31 | |
pmurias | masak: that seems to be true | 17:34 | |
masak: pastie.org/8219245 | 17:35 | ||
jnthn | evening, #perl7 | 17:36 | |
yoleaux | 06:54Z <diakopter> jnthn: I have some corrections for your syllabus for the rakudo/nqp workshop.. you forgot to s/Day/Week/g | ||
jnthn | oh f*8k | ||
FROGGS | jnthn: O.o | ||
jnthn | evneing, #perl6 | ||
...laggy train wifi | |||
FROGGS just claims that jnthn is drunk :o) | |||
jnthn | I wish! | ||
FROGGS | sure, it is the wifi | ||
:P | 17:37 | ||
jnthn | pmurias: s/can/must/ :) | ||
lizmat | some of my history: medium.com/p/13392e324814 | ||
what the article doesn't mention, is that PLATO Notes was badly reimagined later as Lotus Notes | 17:38 | ||
ah, the days of the orange glow :-) | |||
17:39
sqirrel left
|
|||
FROGGS | lizmat: you worked for that company? | 17:41 | |
lizmat | I was a PLATO user, I worked for the University of Amsterdam | 17:42 | |
PerlJam | ./foo | 17:43 | |
lizmat | but I do know some of the people mentioned in the article personally :-) | ||
jnthn: given @a, how do I get at its ContainerDescriptor ? | 17:45 | ||
jnthn | lizmat: nqp::getattr(...) ? :) | 17:49 | |
17:49
cooper joined
|
|||
FROGGS | core/Array.pm should have examples, right? | 17:50 | |
pmurias | jnthn: what I'm trying to figure out is how does a serialized closure in test 55 get it's code object | 17:52 | |
jnthn | pmurias: iirc, the code object index is stored in the closrues table | 17:53 | |
moritz | does ContainerDescriptor live at compile or at run time? | ||
pmurias | jnthn: thanks | 17:54 | |
FROGGS | I'd guess at compile time | ||
(that is my guess, not the time when I guess fwiw) | |||
lizmat | r: my @a is default(42); say @a[0] # trying to fix things like this | 17:55 | |
camelia | rakudo 42758c: OUTPUT«This type does not support elems in method REIFY at src/gen/CORE.setting:7465 in method REIFY at src/gen/CORE.setting:7742 in method reify at src/gen/CORE.setting:6691 in method gimme at src/gen/CORE.setting:7111 in method exists at src/gen/CORE.setting:7… | ||
FROGGS | because I've seen calls to install_lexical_container when generating the ast | ||
lizmat | r: my @a of Int; say @a[0] # and this | 17:56 | |
camelia | rakudo 42758c: OUTPUT«(Any)» | ||
lizmat | src/core/Variable is setting these as expected at line 37 and 55 | 17:57 | |
and it works fine for scalars, but not for arrays and hashes | |||
so it feels to me the wrong descriptor is being set there | |||
or some special handling for @ and % is needed there | 17:58 | ||
jnthn | Made at compile time | ||
slava | I wonder, can grammars be used with binary data? | 17:59 | |
like for data packets coming across the network, and using grammars to classify/decode packets | 18:00 | ||
FROGGS | slava: sure | 18:01 | |
slava | nice ^_^ | ||
FROGGS | one problem I see is that you cant process data this way while still streaming it | 18:03 | |
you would have to receive the the block of data first in order to parse it | |||
lizmat | unless we had a binary Cat | 18:05 | |
FROGGS | while grammars can be used as a switch/case replacement they come handy at the point where data is nested and has repetitions | ||
I have 10 cats | 18:06 | ||
lizmat | I hope they like each other | 18:07 | |
jnthn | I have and haven't a cat | ||
FROGGS | jnthn: but a box? | ||
jnthn | .oO( It's my cat in a box, girl... ) |
18:08 | |
jnthn sets about a big refactor of the NQP/Rakudo on JVM IO | 18:09 | ||
diakopter | jnthn: wat | 18:24 | |
you cursed at my message to you? I was tongue-in-cheek | |||
masak | diakopter: jnthn cursed at slow conn. | 18:25 | |
diakopter | oh | ||
masak is a #perl6 backlog historian! :P | 18:26 | ||
jnthn | Actually, at writing #perl7 :P | ||
masak | because of slow conn. | ||
jnthn: don't try to claim you know your intentions better! :P | |||
[Coke] hopes jnthn is planning to include all these updates in the class! ;) | 18:27 | ||
woolfy | Just want to mention that the place where the Perl 6 hackathon this sunday will take place in Kiev, well, it's gorgeous, lovely, magnificent! www.dniprohotel.ua/en/confercehalls...ntium-hall | ||
jnthn | Yes, it's beautiful, like much in Kiev! :D | 18:28 | |
masak | it's decadent! | ||
diakopter | wat. | ||
do I need to reserve a space at that table, and how much does it cost | |||
masak | how can we hack when there are plates and cutlery all over the table!? | ||
woolfy | Is it the most lovely beautiful place ever where a Perl 6 hackathon was held? | ||
masak | woolfy: my kitchen isn't half-bad either :P | 18:29 | |
18:29
iSlug joined
|
|||
jnthn | masak: Your kitchen isn't that decorated :P | 18:29 | |
masak | it has a... raw beauty. | ||
diakopter | seriously though, will there be room for me there on Sunday | ||
woolfy | masak, thank you for volunteering your kitchen for the next Perl 6 hackathon. Nice. So, one more todo done. | ||
lizmat | diakopter: the question is more: will you be in any shape arriving at 3am? | ||
masak | woolfy: people are welcome to use my kitchen for Perl 6 hackathoning! | ||
jnthn | Best thing about hackathons in masak's kitchen is the port :P | 18:30 | |
diakopter | lizmat: hey, that's 4 pm my time or something | ||
5 pm | |||
woolfy | masak: that's nice, maybe we will take you up on that, the next time we're in Malmoooo | ||
lizmat | maybe you should just stick to your time zone :-) | ||
18:31
zwut00 joined,
zwut00 left
|
|||
diakopter | question is will I be up for waking up for the day at 8 pm my time | 18:31 | |
I have body clock adjustment tools | |||
i'll be ok | |||
masak | woolfy: I'd be delighted. | 18:32 | |
woolfy | masak: ditto | ||
diakopter | miraculously got super-cheap upgrade to businessFirst on united for the 11-hour flight to frankfurt | ||
18:32
zwut00 joined
|
|||
diakopter | seriously, miraculously | 18:32 | |
so, probably won't bring my eternal battery | 18:33 | ||
erm. | |||
*external | |||
lizmat | .oO( there would be a market for an eternal battery ) |
||
masak | I would be seriously jealous of anyone who had an eternal battery. | 18:34 | |
[Coke] wonders why the opcode is named "nqp::jvmisnull" and not "nqp::isnull" ? | |||
diakopter | I invented free energy last night, but then entropy made me forget it. | ||
jnthn | [Coke]: There's an nqp::isnull already | 18:37 | |
[Coke]: nqp::jvmisnull is for checking if you have a Java object reference that is null | |||
[Coke] | hokay | 18:39 | |
18:39
raiph joined
18:40
sqirrel joined
18:44
iSlug left
|
|||
dalek | kudo/nom: 26f33e2 | (Elizabeth Mattijsen)++ | src/core/ (2 files): Make .of work on scalar values |
18:46 | |
lizmat | r: my Int $a = 1; say $a.of | ||
camelia | rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Int' in block at /tmp/DiKJfPygA0:1» | ||
lizmat | should be fixed now | 18:47 | |
jnthn | um | 18:50 | |
No, that shouldn't work | |||
You should write $a.VAR.of, which I think already worked | |||
benabik | r: my Int $a; say $a.VAR.of | ||
camelia | rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Scalar' in block at /tmp/ZCYEWREB7c:1» | ||
jnthn | OK, that's the one that should work :) | ||
dalek | kudo-js: 52d4615 | (Pawel Murias)++ | nqp: Update submodule. |
18:51 | |
kudo-js: aa06f2c | (Pawel Murias)++ | run (2 files): Set the code object on deserialized closures. Pass test 55. |
|||
lizmat | well, that's one part of the patch: adding .of to Scalar | ||
jnthn | OK, but a plain $foo.of should not work | ||
18:51
crab2313 left
|
|||
jnthn | Unless the thing in the container has a method of. | 18:51 | |
lizmat | why not? A plain $a[0] also works | 18:52 | |
pmurias | jnthn: re code object, setting it makes the multi method test pass ;) | ||
jnthn | pmurias: yay :) | ||
lizmat | jnthn: why shouldn't a plain $a.of not always work ? | ||
jnthn | lizmat: I fail to see the connection. | ||
lizmat: Operations on scalar containers always see through the container | 18:53 | ||
lizmat: $a[0] works becuase it does .postcircumfix<[ ]>(0) on the thing inside of the container. | |||
lizmat | so given a $a of unknown type, how will you be able to tell you can call .of on it ? | ||
if you pass $a to a sub, and it expects an array, you can still do [0] on it, even if it was a scalar | 18:54 | ||
jnthn is very confused :/ | |||
lizmat | I'm saying: you don't need to look at what you have, you can always do [0] on it | ||
jnthn | Yes, because the thing *inside* the scalar is an array | 18:55 | |
lizmat | but before my patch, that was not true for calling .of on something | ||
jnthn | It's like saying $a.name should return $a | ||
uh, '$a' | |||
It shoudln't | |||
That's confusing container and value. | |||
lizmat | I may be confused then | 18:56 | |
jnthn | I think so. | ||
lizmat | but from an API point of view, having .of bomb depending on the object, is not a good thing | 18:57 | |
jnthn | Note that | ||
my Array $a = [1,2,3]; | |||
say $a.of # Mu | |||
say $a.VAR.of # Array | |||
Those should be the correct answers. | 18:58 | ||
pmurias | hmm the slurp test relies on being in the nqp directory, is there a way to avoid that? | ||
like get the path of the currently executing script? | 18:59 | ||
lizmat | well, the latter definitely did not work before my patch | ||
r: my $a; say $a.VAR.of | |||
camelia | rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Scalar' in block at /tmp/BzJpgAHU5m:1» | ||
jnthn | Right. Adding Scalar.of is fine. Making .of work on anything at all is not. | ||
The reliable way to ask the question is .VAR.of | |||
lizmat | ok | 19:00 | |
r: my @a; say @a.VAR.of # expecting Any here | |||
camelia | rakudo 42758c: OUTPUT«(Mu)» | ||
lizmat | r: my Int @a; say @a.VAR.of # expecting Int here | ||
camelia | rakudo 42758c: OUTPUT«(Int)» | ||
pmurias | jnthn: do you have any ideas how could we avoid assuming the current directory while running the nqp slurp test? | 19:01 | |
jnthn | pmurias: No, why do we need to do that? | ||
pmurias | I'm loading things stuff from my nqp-js'y current directory | 19:02 | |
dalek | kudo/nom: 81eec1b | (Elizabeth Mattijsen)++ | src/core/Mu.pm: Returning .of on anything is wrong, according to jnthn++ |
||
pmurias | s/things// | ||
19:02
rindolf left
|
|||
lizmat | jnthn: I guess the @a.VAR.of saying Mu is another symptom of "my @a of Int" not working | 19:02 | |
pmurias | jnthn: and I keep the nqp submodule in nqp/t | 19:03 | |
lizmat | r: my Int @a; say @a.VAR # expecting Array here ? | ||
camelia | rakudo 42758c: OUTPUT«» | ||
jnthn | pmurias: Ah...not got a good answer on that one... | ||
pmurias: Various Rakudo tests assume the wame... | |||
pmurias | wame? | ||
jnthn | *same | ||
lizmat: .VAR returns the Scalar container for scalars, or identity for anything else. | |||
pmurias | well assuming the current directory in nqp-js is a serious limitation that should be removed | 19:04 | |
lizmat | r: my @a; say @a.VAR # jnthn: so the empty string here is correct ? | ||
camelia | rakudo 42758c: OUTPUT«» | ||
timotimo | r: my @a; say @a.VAR === @a; | ||
camelia | rakudo 42758c: OUTPUT«True» | 19:05 | |
jnthn | lizmat: You've doing the same as say @a there | ||
lizmat | aaaaahhhh ok | ||
jnthn forgets which synopses .VAR is spec'd in... | |||
lizmat | r: my @a is default(42); say @a[0] # then what's wrong here ? | 19:06 | |
camelia | rakudo 42758c: OUTPUT«This type does not support elems in method REIFY at src/gen/CORE.setting:7465 in method REIFY at src/gen/CORE.setting:7742 in method reify at src/gen/CORE.setting:6691 in method gimme at src/gen/CORE.setting:7111 in method exists at src/gen/CORE.setting:7… | ||
lizmat | I would expect 42 there | ||
jnthn | Me too...is "is default" implemented on arrays? | ||
lizmat | nqp::getattr($v.var, $v.var.VAR.WHAT, '$!descriptor').set_default($default); | 19:07 | |
is my naive implementation of "multi trait_mod:<is>(Variable:D $v, :$default!) {" | |||
apparently, it's missing something there | 19:08 | ||
r: my @a is default(42)=1; say @a[1] # better example | 19:09 | ||
camelia | rakudo 42758c: OUTPUT«(Any)» | ||
19:10
domidumont left
|
|||
lizmat | apparently REIFY needs some check for $!items still being Mu | 19:11 | |
jnthn: working on a fix src/core/Variable | 19:24 | ||
19:26
Rotwang left
19:30
sqirrel left
|
|||
pmurias | jnthn: if node.js has primitives for slurp and spew how should I expose them? Or should I just handle it later when emitting optimized code? | 19:31 | |
19:33
Rotwang joined
|
|||
jnthn | pmurias: I'd just go with implementing the existing nqp:: ops for now | 19:44 | |
19:49
leont left
|
|||
masak | in Python, you can .pop hash keys out of the hash. | 19:49 | |
masak , reporting from a strange land of subtle differences | |||
lizmat | I bet the order of keys is also determined ? | 19:50 | |
masak | no, it seems to be as indeterminate as in Perl. | ||
lizmat: you dict.pop('my key') | |||
lizmat | Ah, like %h.delete | 19:51 | |
masak | yes. | ||
lizmat | of better: %a{@slice}:delete | ||
masak | oh, unless you .popitem(), which just picks one seemingly at random. | ||
Mouq | I think S28 is wrong. In section "Perl5 to Perl6 ..." $1,$2,$3 should be $0,$1,$2 in the Perl6 column | 19:57 | |
dalek | rl6-roast-data: ca32f97 | coke++ | / (3 files): today (automated commit) |
19:58 | |
kudo-star-daily: 19db7d9 | coke++ | log/ (5 files): today (automated commit) |
|||
19:58
berekuk joined
|
|||
FROGGS | Mouq: sounds right, can you edit it or make a pul request? | 20:04 | |
pull* | |||
masak | Mouq++ | ||
20:08
kaare_ left
|
|||
dalek | kudo/nom: eea1906 | (Elizabeth Mattijsen)++ | src/core/ (3 files): Implement ($@%&)foo.VAR.default Although I don't think this is formally specced, it seems logical that we can introspect this at runtime using .VAR |
20:08 | |
lizmat | if anything, it helps me debugging :-) | 20:09 | |
20:09
sqirrel joined
20:11
Mouq left,
Mouq joined
|
|||
masak | lizmat++ | 20:12 | |
FROGGS | well, we can ask objects for its methods, so asking a variable for its default makes absolutely sense | 20:15 | |
masak | today's non sequitur, sponsored by FROGGS! :P | 20:16 | |
in other news, it absolutely makes sense to ask a method call for its line number. | |||
FROGGS | of course :P | 20:17 | |
masak | or an environment variable for its favorite value. | ||
(it's always "blue") | |||
FROGGS | gah | ||
20:18
Rotwang left
|
|||
lizmat | r: my %*ENV is default("blue"); say %*ENV<foo> # alas :-( | 20:19 | |
camelia | rakudo 81eec1: OUTPUT«===SORRY!=== Error while compiling /tmp/QF3uXgj6TROdd number of elements found where hash expectedat /tmp/QF3uXgj6TR:1------> » | ||
lizmat | ah, that should be fixed shortly :-) | 20:20 | |
FROGGS | lizmat++ # :o) | ||
dalek | kudo/nom: 1f57da5 | (Elizabeth Mattijsen)++ | src/core/Variable.pm: Make sure we only assign the default value for Scalars |
20:22 | |
20:24
Rotwang joined
|
|||
dalek | p/io-refactor: fbf9be3 | jonathan++ | / (5 files): Start stubbing in new IO bits. |
20:31 | |
p/io-refactor: 57188a8 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files): Fill out a little more of file I/O. |
|||
p/io-refactor: 3397641 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files): Start updating ops to use new IO scheme. Not everything is moved over or implemented yet, so this breaks things massively. |
|||
slava | is it possible to have a grammar output an error when a token doesn't match? | 20:34 | |
jnthn | something like token foo { blah || <.panic: 'oh noes!!!'> } perhaps? | ||
slava | yes | ||
is that exactly it? | |||
jnthn: I am thinking along the lines when compilers say "expect blah, got glah" type of messages | 20:35 | ||
jnthn | Can't remember if you get a panic by default, but if not you can easily write a method panic($msg) { die $msg ~ ' at ' ~ self.pos() } or so | 20:36 | |
slava | going to try some :D | 20:37 | |
thanks | |||
jnthn: if I ever meet you, can I touch your beard? ^_^ | |||
20:38
ajr_ left
|
|||
FROGGS | hehe | 20:40 | |
jnthn blushes | |||
FROGGS | jnthn has his first groupie *g* | ||
jnthn | I...I guess. :P | ||
20:41
BenGoldberg joined
|
|||
slava | $object.perl ... best thing since git/perl | 20:41 | |
:P | |||
dalek | ecs: 2d47c89 | (Alex Moquin)++ | S28-special-names.pod: Match vars begin at $0 in Perl 6 |
||
ecs: ac105c2 | (Brent Laabs)++ | S28-special-names.pod: Merge pull request #59 from Mouq/matchvars Match vars begin at $0 in Perl 6 Looks good to me :) |
|||
jnthn | woo, almost home... | 20:43 | |
jnthn is glad the train is only 10 minutes late this time, not 3 hours late... | |||
detrain, bbiab & | 20:44 | ||
20:52
Teratogen left
20:53
konundra left
|
|||
[Coke] | ~~ | 20:56 | |
FROGGS | hi [Coke] | ||
20:58
colomon joined,
pecastro_ joined
20:59
pecastro left
|
|||
jnthn | yay home | 21:02 | |
I'll be here all of...30 hours. :) | |||
FROGGS | \o/ | ||
21:03
btyler_ joined
|
|||
lizmat | jnthn++ | 21:03 | |
FROGGS | jnthn: btw, ^100_000 >>+<< ^100_000 takes almost the same time when using nqp_bigint_add for the elements as parrot's add takes | 21:04 | |
21:05
btyler left
|
|||
FROGGS | my hyper op can handle bigints now too, and it takes 8.5s (26.7s cpu, 4 cores) | 21:06 | |
now I'd just need to properly return the resulting list/array... I have a QRPA as it seems and have no idea what to do with it :/ | |||
nwc10 | $ | 21:08 | |
21:08
sqirrel left
|
|||
FROGGS | I'd thought I have to call nqp::p6list on the result, but when trying it it tells me it is a non-Perl6 value | 21:09 | |
slava | FROGGS: what is that? | 21:15 | |
the numbers part | |||
21:17
bluescreen10 left
|
|||
FROGGS | slava: in Perl6 you can combine operators, and @c = @a >>+<< @b means that you add the elements, like: @c[0] = @a[0] + @b[0], for every element | 21:17 | |
slava | what do the >> and << mean? | 21:18 | |
21:18
btyler_ left
|
|||
FROGGS | to concat all it would be: >>~<< | 21:18 | |
reduction IIRC | |||
slava | are they just flows to the operator? | ||
I see | |||
^100_000 ??? | |||
what does that mean? | 21:19 | ||
BenGoldberg | The ^ is the iota operator | ||
Stolen from APL :) | |||
FROGGS | if you have an array on one side and an element on the other, it could be @a >>+ $b | ||
BenGoldberg | r: print ^10, "\n" | ||
camelia | rakudo 1f57da: OUTPUT«0123456789» | ||
slava | ahh, add $b to every element of @a | ||
FROGGS | right | ||
slava | BenGoldberg: ty | ||
BenGoldberg | yw :) | 21:20 | |
slava | r: say ^10 >>+ 1; | ||
camelia | rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/zrWAt1tlJ6Missing << or >>at /tmp/zrWAt1tlJ6:1------> say ^10 >>+⏏ 1; expecting any of: postfix infix stopper infix or meta-infix» | ||
slava | :( | ||
FROGGS | slava: and you can have underscores in numbers whereever you like | ||
hmmm | |||
slava | oh, cool, I think | ||
r: say (^10 >>+ 1); | |||
camelia | rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/7deWTbY3lTMissing << or >>at /tmp/7deWTbY3lT:1------> say (^10 >>+⏏ 1); expecting any of: postfix infix stopper infix or meta-infix» | ||
BenGoldberg | r: say ^10 >>+<< 1 | ||
camelia | rakudo 1f57da: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same lengthleft: 10 elements, right: 1 elements in sub hyper at src/gen/CORE.setting:15373 in sub hyper at src/gen/CORE.setting:15361 in block at src/gen/CORE.setting:15352 in block at … | ||
slava | :( | ||
BenGoldberg | r: say ^10 >>+<< (1 x 10) | ||
diakopter | Mouq: you want a commit bit? | ||
FROGGS | maybe there is missing something on the right... never tried that bit, and I dont know the spec for it | 21:21 | |
camelia | rakudo 1f57da: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same lengthleft: 10 elements, right: 1 elements in sub hyper at src/gen/CORE.setting:15373 in sub hyper at src/gen/CORE.setting:15361 in block at src/gen/CORE.setting:15352 in block at … | ||
BenGoldberg | r: say ^10 >>+<< (1 xx 10) | ||
camelia | rakudo 1f57da: OUTPUT«1 2 3 4 5 6 7 8 9 10» | ||
BenGoldberg | r: say ^10 >>*<< (2 xx 10) | ||
camelia | rakudo 1f57da: OUTPUT«0 2 4 6 8 10 12 14 16 18» | ||
jnthn | rr: say ^10 >>+>> 1 | ||
r: say ^10 >>+>> 1 | |||
camelia | rakudo 1f57da: OUTPUT«1 2 3 4 5 6 7 8 9 10» | ||
FROGGS | ahh, there we go | ||
slava | nice | ||
jnthn | Point at an undersized side to upgrade it | ||
slava | jnthn++ ^_^ | ||
FROGGS | slava: and the cool thing: if you create a custom operator you can still have >> << around it for example | 21:22 | |
BenGoldberg | r: say ^10 <<+>> ^3 | ||
camelia | rakudo 1f57da: OUTPUT«0 2 4 3 5 7 6 8 10 9» | ||
slava | nice | ||
FROGGS | jnthn: do you have a hint for about returning QRPA? | ||
21:22
Khisanth left
|
|||
diakopter | Mouq: I added you | 21:23 | |
jnthn | FROGGS: What do you want to do? | ||
FROGGS: Wrap a QRPA into something? | |||
nqp::p6parcel may help | |||
FROGGS | I have an QRPA in pir code, and want to return it as an array/list | ||
jnthn | Well, p6parcel will make a Parcel at least | ||
YOu can then .list that. | 21:24 | ||
FROGGS | okay, I had tried p6parcel before, but I think the elements of the QRPA were parrots ['Integer']'s | ||
jnthn | oh... | ||
FROGGS | that is not the case anymore fwiw | ||
No such method 'list' for invocant of type 'QRPA' | 21:25 | ||
k, will try p6parcel | |||
21:25
Chat3488 joined
|
|||
Chat3488 | Hey | 21:25 | |
21:25
Chat3488 left
|
|||
Mouq | Buhbye | 21:25 | |
BenGoldberg | r: (^5).DUMP.say | ||
camelia | rakudo 1f57da: OUTPUT«Range<1>( :min(▶0), :max(▶5), :excludes_min(▶False), :excludes_max(▶True))» | ||
slava | hope I am not nagging, where can I read about the file extension conventions? I noticed thus far that pm6 is pure perl6 module, pm is pir, not sure about executables (is it p6? pl6?) | ||
BenGoldberg | r: (^5 >>+>> 5).DUMP.say | 21:26 | |
camelia | rakudo 1f57da: OUTPUT«List<1>( :$!flattens(Mu), :$!items(QRPA<3>( 5, 6, 7, 8, 9 )), :$!nextiter(▶Mu))» | ||
diakopter | Mouq++ | ||
BenGoldberg | Hyper operators reify lazy lists? | ||
FROGGS | slava: wrong, pm6 and pm are Perl6 code | ||
.pir is pir, .nqp is nqp and so on | |||
and scripts have .pl | 21:27 | ||
BenGoldberg | r: (1 <<+<< gather { .take for 1..3; say 'foo' }).[0].say | 21:28 | |
camelia | rakudo 1f57da: OUTPUT«foo2» | 21:29 | |
FROGGS | time perl6 -e 'my @a = ^100001; say nqp::p6parcel(nqp::hyper_MT(@a, @a, Array, Int), Any); say "done"' | ||
Unmarshallable foreign language value passed for parameter '' | |||
:/ | |||
21:30
raiph left
|
|||
masak | FROGGS: my scripts usually don't have .pl -- I don't see why I should give them a file extension at all. they're executable scripts. | 21:30 | |
BenGoldberg | n: (1 <<+<< gather { .take for 1..3; say 'foo' }).[0].say | ||
camelia | niecza v24-88-g1f87209: OUTPUT«foo2» | ||
BenGoldberg | p: (1 <<+<< gather { .take for 1..3; say 'foo' }).[0].say | ||
camelia | pugs: OUTPUT«***  Unexpected "<+<<" expecting operator at /tmp/OvG9g8xZgQ line 1, column 5» | ||
FROGGS | masak: do they have +x on windows too? | 21:31 | |
masak | FROGGS: how shall I put this? who cares? :) | ||
FROGGS | hehe | ||
BenGoldberg | FROGGS: If I recall correctly, if it has the right .extention, it's executable | ||
masak | I tend to program on Unix-like operating systems. | ||
21:31
raiph joined
|
|||
masak | because that's what doesn't drive me insane. | 21:32 | |
BenGoldberg | masak: What about cgywin? :) | ||
masak | BenGoldberg: from what little I know about it, I think it falls under "would drive me insane". | 21:33 | |
BenGoldberg: PuTTY, however, is a blessing. | |||
diakopter | vmware is a blessing | 21:34 | |
dalek | ast: 3bfd5ea | (Elizabeth Mattijsen)++ | S02-names/is_default.t: Added more "is default" related tests |
21:35 | |
geekosaur | cygwin is, if anything, even nuttier. because it's unixlike right up until it isn't | 21:36 | |
and you whack into an unexpected brick wall at full tilt | |||
lizmat | r: my @a; my Int @b; say @a.WHAT; say @b.WHAT # is there a way to get from (Hash+{TypedHash}) to (Hash) ? | ||
camelia | rakudo 1f57da: OUTPUT«(Array)(Array+{TypedArray})» | ||
21:36
Khisanth joined
|
|||
lizmat | r: my @a; my Int @b; say @a.WHAT; say @b.WHAT # is there a way to get from (Array+{TypedHash}) to (Array) ? | 21:36 | |
camelia | rakudo 1f57da: OUTPUT«(Array)(Array+{TypedArray})» | ||
lizmat | r: my Int %a; say %a.WHAT.^mro[1] # would that be the way? | 21:37 | |
camelia | rakudo 1f57da: OUTPUT«(Hash)» | ||
masak | diakopter: oh yes, that too. I'm writing this inside of vmware. I hardly even think about the emulation layer anymore. | ||
diakopter | hah. | ||
yeah it's essentially unnoticeable except for the occasional key mapping discrepancy | |||
21:39
skids left
|
|||
masak | Alt-Tab becomes non-symmetric when the VM captures the keyboard. | 21:39 | |
but that's a minor kvetch, all things considered. | |||
slava | FROGGS: ty | ||
FROGGS | slava: yw | 21:40 | |
BenGoldberg | masak: When you run an executable script on unix, the operating system opens the file, looks for a #! line, and if it sees one, it uses exec (based on that line) to start the appropriate script interpreter. If you want your script to also work on windows, you need to give it the right file extension (.pl for perl) because the OS does not look for a #! line. | ||
21:40
spider-mario left
|
|||
masak | "One implementation of Rakudo runs on Parrot VM" -- dukeleto on parrot-dev seems to be under the impression that Rakudo exists in several implementations, one per VM. | 21:42 | |
(just as I once was) | |||
BenGoldberg: yes, but I don't care about the script working on Windows. | |||
21:42
woolfy left
|
|||
BenGoldberg | Well in that case, nevermind ;) | 21:43 | |
jnthn | masak: Feel free to write a correctional post :) | ||
masak | jnthn: ok. | ||
sent. | 21:46 | ||
lizmat | r: my Int %a is default(42); say %a.VAR.default # just checking | 21:51 | |
camelia | rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/IQaLUhaffnNull attribute map for P6opaque in class 'Hash+{TypedHash}'at /tmp/IQaLUhaffn:1------> » | ||
lizmat | r: my Int @a is default(42); say @a.VAR.default # just checking again | ||
camelia | rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/e2qfebUgXPNull attribute map for P6opaque in class 'Array+{TypedArray}'at /tmp/e2qfebUgXP:1------> » | ||
BenGoldberg | rn: (1 <<+<< 1..5).say | 21:53 | |
camelia | niecza v24-88-g1f87209: OUTPUT«2..5» | ||
..rakudo 1f57da: OUTPUT«(2,).list.item..5» | |||
dalek | kudo/nom: 6edd19d | (Elizabeth Mattijsen)++ | src/core/Variable.pm: Make (%@)a is default(42) no longer die |
||
lizmat | and now for ~4 hours sleep before commuting to Kiev | ||
sleep& | 21:54 | ||
BenGoldberg | rn: (1 <<+<< 1..5).print | ||
camelia | rakudo 1f57da: OUTPUT«No such method 'succ' for invocant of type 'List' in sub postfix:<++> at src/gen/CORE.setting:2183 in sub postfix:<++> at src/gen/CORE.setting:2182 in method reify at src/gen/CORE.setting:6557 in method reify at src/gen/CORE.setting:6687 in method gimme a… | ||
..niecza v24-88-g1f87209: OUTPUT«2 3 4 5» | |||
timotimo | rn: (1 <<+<< (1..5)).print | ||
camelia | niecza v24-88-g1f87209: OUTPUT«2 3 4 5 6» | ||
..rakudo 1f57da: OUTPUT«23456» | |||
BenGoldberg | rn: print (1 <<+<< (1..5)) | 21:55 | |
camelia | rakudo 1f57da, niecza v24-88-g1f87209: OUTPUT«23456» | ||
BenGoldberg | rn: (2..5).say | 21:56 | |
camelia | rakudo 1f57da, niecza v24-88-g1f87209: OUTPUT«2..5» | ||
BenGoldberg | rn: print (1 <<+<< (1..5)).DUMP | ||
camelia | rakudo 1f57da: OUTPUT«List<1>( :$!flattens(Mu), :$!items(QRPA<3>( 2, 3, 4, 5, 6 )), :$!nextiter(▶Mu))» | ||
..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method DUMP in type Array at /tmp/M8Pf2PdWNo line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576)  at /home… | |||
BenGoldberg | Why aren't hyperoperators lazy? | 21:58 | |
ENOTUITS ? | 21:59 | ||
jnthn | No, hyper *means* non-lazy | ||
And potentially parallel | 22:00 | ||
Use the zip meta-op to do things pairwise lazily | |||
BenGoldberg | r: say (1 Z+ (1..5)) | 22:01 | |
camelia | rakudo 1f57da: OUTPUT«2» | ||
22:01
dmol left
|
|||
BenGoldberg | r: say (1 [+] (1..5)) | 22:01 | |
camelia | rakudo 1f57da: OUTPUT«6» | ||
Mouq | r: say (1 xx * Z+ (1..5)) | 22:02 | |
camelia | rakudo 1f57da: OUTPUT«2 3 4 5 6» | ||
BenGoldberg | r: (1 xx * Z+ (1..5))[0].say | ||
camelia | rakudo 1f57da: OUTPUT«2» | ||
BenGoldberg | r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[0].say | 22:03 | |
camelia | rakudo 1f57da: OUTPUT«2» | ||
BenGoldberg | r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[5].say | ||
camelia | rakudo 1f57da: OUTPUT«fooNil» | ||
BenGoldberg | r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[4].say | ||
camelia | rakudo 1f57da: OUTPUT«6» | ||
BenGoldberg | :) | ||
masak | hyper is one of the things that mean non-lazy, yes. | 22:04 | |
timotimo | it's even less lazy than normal | ||
masak | you can't both throw yourself at a task in a possibly parallel manner, and be really cool about it, like the Dude from "The Big Lebowski" | ||
22:10
ilogger2_ joined
|
|||
Mouq | rnp: class Like is Cool {}; say 'so', Like.gist, so not Cool | 22:17 | |
camelia | pugs: OUTPUT«*** No such subroutine: "&Cool" at /tmp/ra5pYDyCOq line 1, column 52 - line 2, column 1» | ||
..rakudo 6edd19, niecza v24-88-g1f87209: OUTPUT«so(Like)True» | |||
labster | totally. | ||
dang, looks like I'm going to have to backport some of the file path stuff I wrote to Perl 5. | 22:18 | ||
timotimo | because it's better than anything perl5 has? ;) | 22:21 | |
labster | yep. of course, it's just another example of perl 6 ruining perl 5 innovation | 22:23 | |
timotimo | yup | 22:25 | |
perl6 is killing perl5 so hard | |||
masak | (attention lurkers and backlogarchaeologists: they are joking) | 22:26 | |
'night, #perl6 | |||
dalek | p/io-refactor: e96a23f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java: Add missing interface implementation. |
||
p/io-refactor: 1f83dea | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files): Get stdout/stderr using new IO approach. |
|||
p/io-refactor: 4204202 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java: Fix a thinko in slurp. With this, all NQP tests pass, though there's still some notable bits still to do. |
|||
Mouq | night masak | 22:27 | |
FROGGS | jnthn: I added a file-io.t to moarvm a few minutes ago | 22:28 | |
22:45
benabik joined,
census_ joined
23:00
skids joined
23:09
census_ left
23:24
slavik joined
23:38
raiph joined
23:52
FROGGS joined
|
|||
dalek | p/io-refactor: 35ebaea | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java: Implement FileHandle.readline. |
23:56 | |
p/io-refactor: 756f91b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files): Get stdin and readline interactive using new IO. |
|||
p/io-refactor: d86cade | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/IOHandleInstance.java: Cleanup old IO leftovers. |