»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
00:08
am0c joined
|
|||
lue | hello | 00:10 | |
00:10
b_jonas left
|
|||
colomon | o/ | 00:11 | |
lue | o/ | ||
00:15
payload joined
|
|||
japhb | NQP bug or PEBCAK? $ parrot-nqp -e 'pir::die("foo"); CATCH { pir::exit(0); };' ===> hang | 00:17 | |
CokeGod | exit throws an exception... | 00:18 | |
I think austin has worked around that in nqp by setting a variable IFF in the catch block, and then having a subsequent check to control throwing the new exception. | |||
japhb | CokeGod, Sure ... but is a CATCH block supposed to catch exceptions thrown *from within that CATCH block*? | 00:19 | |
00:21
yinyin joined
|
|||
lichtkind | night | 00:24 | |
TimToady | o/ | ||
lue | o/ | ||
lichtkind | :) | ||
00:24
lichtkind left
00:25
wallberg left
|
|||
colomon | rakudo: my @a = 1..3; sub foo($a, $b, $c) { say $a; say $c; }; foo(@a) | 00:25 | |
p6eval | rakudo 5b81df: OUTPUT«Not enough positional parameters passed; got 1 but expected 3current instr.: 'foo' pc 242 (EVAL_1:91)» | 00:26 | |
colomon | rakudo: my @a = 1..3; sub foo($a, $b, $c) { say $a; say $c; }; foo(|@a) | ||
p6eval | rakudo 5b81df: OUTPUT«13» | ||
diakopter | O/ | 00:27 | |
pugssvn | r30017 | lwall++ | [external-aliasing.t] normal // regexen do not make a lexical scope, so no OUTER needed | 00:34 | |
lue | afk | 00:39 | |
00:40
zostay left,
zostay joined
00:49
Chillance left
01:04
chromatic left
01:12
lestrrat is now known as lest_away
01:15
xabbu42 left
01:17
justatheory_ joined
01:18
justatheory left,
justatheory_ is now known as justatheory
01:42
lest_away is now known as lestrrat
01:43
ShaneC1 joined
01:44
ShaneC left
01:59
am0c left
|
|||
colomon | rakudo: say 4 min 3 | 02:04 | |
p6eval | rakudo 5b81df: OUTPUT«3» | ||
colomon | rakudo: say 0 .. (4 min 3) | ||
p6eval | rakudo 5b81df: OUTPUT«0123» | ||
lue | oh hello minimum. Try and work right :) | 02:06 | |
colomon | I've got something bizarre going on here with my latest iteration of the series code, and of course the compile error message is completely freaking useless. | 02:08 | |
colomon now suspects the problem was .push ($j) instead of .push($j)... | 02:09 | ||
lue contemplates an electronic autograph book, where (maybe famous) people (like lwall) come and sign it... with their public key :D | 02:11 | ||
colomon | it compiled! | 02:20 | |
lue | *final fantasy victory cheer* | 02:21 | |
colomon | and I didn't even break the arity-1 case! \o/ | ||
lue | \o/ | 02:22 | |
TimToady | oh yesses | 02:23 | |
lue | cheeers from me would be more meaninful with a knowledge of arity-1 (to The Guide! er, Wikipedia) | ||
02:23
cdarroch left
|
|||
colomon | just means that series like 1, 3, { $^a + 2 } ... * work fine. | 02:24 | |
I'm trying to move to th... whoops, I fixed a "minor thing" and broke it completely. | 02:25 | ||
02:25
stephenlb left
|
|||
lue | The magic of 楽土 | 02:27 | |
02:33
perpetrator left
|
|||
lue | hooray! (oh wait, that's just a nickname) :) | 02:34 | |
colomon | > (1, 1, { $^a + $^b } ... *).batch(20).perl.say | 02:37 | |
(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765) | |||
lue | fibonnaci win! | 02:38 | |
colomon | lue: that there would be an arity-2 series that works! \o/ | ||
lue | \o/ | ||
pugssvn | r30018 | lwall++ | [STD] use Cursor to get ansi colors (hack) | 02:39 | |
r30018 | [STD] properly scope dynamic package names for {} packages | |||
r30018 | [STD] package_def of ; packages now eats statementlist itself to stay inside proper scope | |||
r30018 | [STD] correctly parse <> part of FOO::<$x> as part of variable name | |||
r30018 | [STD] correctly follow symbolically indirected OUTER:: links | |||
r30018 | [STD] find_top_pkg no longer cares if name ends in :: | |||
r30018 | [STD] figure out whether initial components lead to package or lexical scope | |||
r30018 | [STD] don't scan outer scopes on qualified names, duh | |||
r30018 | [STD] handle FOO::<$x> form in check_variable | |||
r30018 | [STD] don't check for @/% mistakes on qualified names | |||
lue | arity-n sounds like something you'd find said in the Death Star :) | ||
or Star Wars in general | |||
pugssvn | r30019 | colomon++ | [t/spec] Nine variants on the Fibonacci series. | ||
lue | "Arity-3 away" "Sir! We got a report that Arity-7 has suffered critical damage!" | 02:40 | |
colomon | arity-2 dee-2? | ||
lue | R2D2 = Rakudo Series 2 Death Star v2.0 :D | 02:42 | |
02:44
am0c joined
02:47
perpetrator joined
02:49
agentzh joined
|
|||
lue | Oh! [*]die(R) killed everyone, didn't it? If it missed, please speak up :) | 02:53 | |
I had to escape to the planet Metaop, but I can't see anyone else. | 02:54 | ||
02:54
wknight8111 left
02:56
snarkyboojum left
|
|||
lue | Oh darn. Lessee... O good, they somehow missed Earth. Coming back... | 03:00 | |
colomon | loliblogged: justrakudoit.wordpress.com/2010/03/...-progress/ | 03:04 | |
lue | lolireadblog | 03:05 | |
xkcd.com/545/ ha ha ha | 03:07 | ||
colomon | > (1, 1, 1, { $^a + $^b + $^c } ... *).batch(10).perl.say | 03:09 | |
(1, 1, 1, 3, 5, 9, 17, 31, 57, 105) | |||
I need to sleep.... | |||
lue | arity-3 sent? | 03:10 | |
03:13
jaldhar joined
|
|||
lue | night colomon (when you sleep that is) o/ | 03:14 | |
03:18
aesop left
|
|||
lue | .muse(writing a P6 interpreter for the TI-84 ought to be... difficult. Bloody difficult) | 03:19 | |
03:20
buu_ joined,
Lorn_ joined
03:21
buu_ left,
buu_ joined
|
|||
lue | .muse(I wish to create my own language just to get an ISO standard for it :P ) | 03:22 | |
03:25
xomas left,
CokeGod left,
dual left,
szbalint left,
charsbar left,
Lorn left,
buu left,
buubot left,
jjore left
|
|||
lue | aah | 03:26 | |
03:28
xomas joined,
CokeGod joined,
szbalint joined,
dual joined,
charsbar joined,
Lorn joined,
buubot joined,
jjore joined,
farmer.freenode.net sets mode: +v buubot,
CokeGod left,
szbalint left,
Lorn left
03:29
buu_ is now known as buu
|
|||
TimToady | std: my $x; { { { MY::OUTER::OUTER::OUTER::<$x> }}} | 03:30 | |
p6eval | std 30019: OUTPUT«ok 00:01 107m» | ||
TimToady | std: my $y; { { { MY::OUTER::OUTER::OUTER::<$x> }}} | ||
p6eval | std 30019: OUTPUT«===SORRY!===Variable MY::OUTER::OUTER::OUTER::<$x> is not predeclared at /tmp/bI7yKk2LJl line 1:------> $y; { { { MY::OUTER::OUTER::OUTER::<$x>⏏ }}} expecting any of: POST postfix postfix_prefix_meta_operatorFAILED 00:01 106m» | ||
03:32
snarkyboojum joined
03:33
aesop joined
|
|||
lue | xkcd.com/312/ say it isn't so! (just trying to block that draft :) ) | 03:35 | |
03:57
quietfanatic joined
|
|||
lue | afis (er, afk) | 03:58 | |
04:01
quester_ joined
04:06
JimmyZ joined
|
|||
JimmyZ | rakudo: (1, 1, { $^a + $^b }).perl.say | 04:08 | |
p6eval | rakudo 5b81df: OUTPUT«(1, 1, { ... })» | ||
JimmyZ | rakudo: (1, 1, { $^a + $^b } ... *).batch(20).perl.s | ||
p6eval | rakudo 5b81df: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
JimmyZ | rakudo: (1, 1, { $^a + $^b } ... *).batch(20).perl.say | ||
p6eval | rakudo 5b81df: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
JimmyZ | rakudo: ({ $^a + $^b }(1,1)).perl.say | 04:09 | |
p6eval | rakudo 5b81df: OUTPUT«2» | ||
japhb | phenny, tell PerlJam I'll be AFK for a while now, but please msg me if you manage to get NQP-rx to understand quoted strings on the LHS of => , and I'll take a look when I get back. Thanks! | 04:13 | |
phenny | japhb: I'll pass that on when PerlJam is around. | ||
04:17
jaldhar left,
jaldhar joined
04:19
IllvilJa joined
04:20
lestrrat is now known as lest_away
|
|||
quester_ | part | 04:21 | |
04:21
quester_ left
04:22
quester_ joined
04:32
estrabd joined,
quester_ left
04:33
ihrd joined,
ihrd left
04:36
quester_ joined
04:43
alester joined
04:53
nadim_ joined
04:54
nadim left
04:56
saleem joined
05:04
k23z__ joined,
k23z__ left,
k23z__ joined,
quietfanatic left,
bkeeler_ left
05:10
quietfanatic joined,
bkeeler_ joined
05:11
k23z__ left
05:17
Sarten-X left,
Sarten-X2 joined
05:30
mberends joined
|
|||
dalek | ok: b4c81d4 | moritz++ | src/grammars.pod: [grammars] grammero |
05:31 | |
ok: aed5553 | moritz++ | (2 files): [operators] precedence |
|||
05:34
saleem is now known as tuxdna
05:36
lest_away is now known as lestrrat
05:48
mberends left
05:49
snarkyboojum left
05:58
quester_ left
06:00
snarkyboojum joined
06:09
JimmyZ left
06:10
ShaneC1 left
06:16
sorear joined
06:24
gfx joined
06:29
z3ndrag0n left
06:31
z3ndrag0n joined
06:33
xomas left
06:38
alester left
07:01
mberends joined
|
|||
mberends | colomon++ for general series operator: "The trick was to keep an array storing the last N values generated in the series, where N is the number of arguments that the generator function takes". Brilliant! | 07:03 | |
07:05
agentzh left
|
|||
PerlJam | colomon++ indeed | 07:07 | |
phenny | PerlJam: 04:13Z <japhb> tell PerlJam I'll be AFK for a while now, but please msg me if you manage to get NQP-rx to understand quoted strings on the LHS of => , and I'll take a look when I get back. Thanks! | ||
07:08
rv2733 left
|
|||
PerlJam wonders if a bot is going to mention his recent push | 07:09 | ||
07:09
eternaleye left
|
|||
dalek | p-rx: 2d51ec9 | duff++ | t/nqp/47-fatarrow.t: Add some tests for the fat arrow |
07:13 | |
p-rx: c441ffc | duff++ | src/NQP/ (2 files): Make NQP understand single quoted strings on the LHS of => |
|||
mberends | PerlJam++ | 07:14 | |
07:16
eternaleye joined
07:17
uniejo joined
07:19
chromatic joined
07:20
Su-Shee joined
|
|||
Su-Shee | good morning | 07:20 | |
PerlJam | good evening | ||
mberends | hi Su-Shee | ||
PerlJam | (I'm trying to go to sleep and failing) | 07:21 | |
07:21
jlaire left,
jlaire joined
|
|||
Su-Shee | PerlJam: I've made a cron job during writing my thesis to plainly shut down the computer on time ;) | 07:21 | |
07:23
eternaleye left
07:27
fridim joined
07:28
kaare joined,
kaare is now known as Guest8746
|
|||
PerlJam | okay ... I'm going to make one more change (because the code I just pushed is bothering me) and then I'm going to sleep | 07:30 | |
and now it's time for sleep | 07:39 | ||
good night all | |||
mberends | good night | ||
07:42
eternaleye joined
|
|||
dalek | p-rx: f34ed51 | duff++ | (3 files): get rid of icky fatarrow2 rule and parse double quoted strings on the LHS of => |
07:43 | |
mberends | more PerlJam++ | ||
07:45
azawawi joined
|
|||
azawawi | good morning | 07:45 | |
rakudo: say 1; | |||
p6eval | rakudo 5b81df: OUTPUT«1» | ||
mberends | morning azawawi, you're very careful today ;) | 07:46 | |
(some days, the above test fails, admittedly) | 07:47 | ||
azawawi | mberends: ah on win32 | ||
mberends: mail.perlide.org/pipermail/padre-de...01632.html | 07:48 | ||
07:48
justatheory left
|
|||
mberends | azawawi: I'll look into it, but on a Linux box, so making no promises... | 07:49 | |
azawawi | mberends: actually the guy complaining is on a linux box... | 07:50 | |
mberends: but it happened to me on winxp box | |||
mberends | ok. first idea is to comment out the 'use v6;' line temporarily, because 'use' is undergoing a refactor | ||
azawawi | mberends: how do i make sure that my rakudo github repo is up2date? | 07:51 | |
mberends: i see | |||
mberends: thx | |||
mberends | 'git status' and 'git pull' I guess. I use gitready.com for more ideas | 07:52 | |
azawawi | mberends: ming32-make realclean and deleting parrot again just in case... | 07:53 | |
07:53
xabbu42 joined
|
|||
azawawi tries to rebuild again | 07:53 | ||
mberends | good idea. Also delete the parrot_install tree | ||
07:53
iblechbot joined
|
|||
azawawi | mberends: ofcourse :) | 07:54 | |
mberends | :) | ||
07:55
fglock left
|
|||
azawawi | mberends: im thinking of automating the git pull/build process via Padre::Plugin::Perl6 to build the latest rakudo or a certain release by name | 07:57 | |
mberends | excellent idea, because Padre will also be the recommended platform for beginners | 07:58 | |
azawawi | mberends: my earlier attempt at providing ready-made binary rakudo win32 builds didnt succeed a lot on 64-bit systems... | ||
mberends: ahmadzawawi.blogspot.com/2009/09/ne...dater.html | |||
mberends | azawawi: If you get that to work, I think we could add it to rakudo.org/how-to-get-rakudo | 07:59 | |
azawawi | mberends: do you know of a pure perl implementation of git? | ||
mberends | azawawi: definitely not | 08:00 | |
azawawi | mberends: or we could simplify a bit and let the user download the nightly builds... | ||
08:00
eternaleye left
|
|||
azawawi | mberends: that way no need for him/her to have git | 08:00 | |
mberends | azawawi: the only "safe" build is the monthly one | 08:01 | |
azawawi | mberends: ofcourse | ||
08:01
gfx left
|
|||
azawawi | mberends: so basically enumerate these: github.com/rakudo/rakudo/downloads | 08:01 | |
mberends | azawawi: yes. we could extend the monthly build process to include making a Windows compatible archive. zip is easier, msi a bit harder. | 08:02 | |
azawawi | mberends: not a good idea btw | ||
mberends: compiling on 32-bit does not guarantee it will work on 64-bit | 08:03 | ||
mberends | that's a pity. We have appealed for a hosting provider to loan us a Windows dev system online for the other devs to use, but no offers so far :-( | 08:05 | |
azawawi | mberends: so to build on win32 we need strawberry which has ming32-make/gcc and svn for the parrot | ||
mberends: that's easy ask adamk and he'll get you an account at msopensource :) | |||
mberends: adamk/alias | |||
mberends | azawawi: the other build system can use a free Microsoft C compiler and make utility, without Strawberry | 08:06 | |
azawawi | mberends: the problem is these vm servers are shared and hence could be restarted/rebuild without advanced notice | ||
mberends | azawawi: even an occasionally rebooting machine would be useful, we could schedule smoke tests on it for example | 08:07 | |
azawawi | mberends: if we can put parrot inside the 'released' monthly rakudo that would be great | ||
mberends: that way we do not need svn on the user's machine | 08:08 | ||
mberends | azawawi: there may be some reason why that is not currently being done, but it may be ok to do it in the Windows case | 08:09 | |
azawawi: It's good to throw these ideas around now, well in time for the Rakudo * release. The other interested members will follow up from the irclog. | 08:11 | ||
08:15
elmex left
08:16
eiro left,
elmex joined
|
|||
azawawi | mberends: cool on win32 instead of 'nice your-build-command', you can do 'start /b /low your-build-command' | 08:16 | |
08:17
_jaldhar joined
|
|||
azawawi | mberends: that way a build will be nice to the user's resources :) | 08:17 | |
Trashlord | how's it going | 08:18 | |
08:19
jaldhar left,
eiro_ joined
|
|||
azawawi | mberends: nice talking to you. I am taking notes... | 08:20 | |
08:22
azawawi left,
__rnddim__ joined
|
|||
mberends | azawawi: nice likewise. oh, he went :/ | 08:22 | |
08:24
lue left
08:25
snarkyboojum left,
azawawi joined
|
|||
azawawi | mberends: no worries i backlog :) | 08:25 | |
mberends | :) | ||
azawawi & | |||
08:26
azawawi left
08:36
hanekomu_ joined
08:40
pnu joined
08:43
xomas joined,
xomas left,
xomas joined
08:54
am0c left
08:57
agentzh joined
09:02
jonafk joined,
jonafk is now known as jonasbn
09:11
am0c joined,
dakkar joined
09:17
eternaleye joined
09:20
chromatic left
09:27
iblechbot_ joined
09:28
iblechbot left,
mssm joined
09:37
riffraff joined
09:43
pmurias left
|
|||
mberends | jonasbn++: Thanks for organizing an excellent Hackathon. You made a great contribution to Perl 6 :-) | 09:57 | |
jonasbn | mberends: thanks | 09:58 | |
I really enjoyed having you guys around, why don't you all move to scandinavia like jnthn? | 09:59 | ||
m6locks | haha | 10:00 | |
10:00
yinyin left
10:09
masak joined
|
|||
masak | oh hai, #perl6 | 10:09 | |
hejki | oh hai, masak | 10:11 | |
masak | hejki: how's things? | ||
hejki | busy @ work, really too busy | 10:12 | |
i feel like selling my soul every day | |||
masak hugs hejki | |||
hejki | aww.. | 10:13 | |
hejki feels the love | |||
masak | hejki: you should make up a plan to spend more time with Perl 6. you know, to compensate. | ||
that helps for me, at least. | |||
hejki | heh.. my freetime is also pretty 'booked up' :) | ||
maybe when summer comes rolling in | 10:14 | ||
masak | the nice thing about time is that there's always some more of it coming right up :) | ||
hejki | heh ye :p | ||
there just isn't enuff hours per day | |||
masak | yeah, but rumour is that we only ustilize about 60% of them... | 10:15 | |
10:16
estrabd_ joined
|
|||
hejki | i've heard something like that too, but well.. i like sleeping to a certain extents | 10:16 | |
s/s$$//; | |||
10:17
xabbu42 left
|
|||
masak | indeed. me too. | 10:17 | |
10:17
estrabd left
10:20
tlb joined
10:27
hanekomu_ left
10:28
sid_ joined
|
|||
masak | some short-term plans for Tardis: github.com/masak/tardis/blob/master/docs/plans | 10:29 | |
10:31
prism joined
10:32
lestrrat is now known as lest_away
10:33
iblechbot_ left
10:34
daemon left
10:35
payload left
10:36
agentzh left
|
|||
masak | pdcawley blogged: www.bofh.org.uk/2010/03/10/falling-...a-language | 10:42 | |
'If Perl 6 were declared a failure tomorrow by the people who are actually working on it (as opposed to the people who aren’t working on it, but bitch about it anyway – see some of chromatic’s more intemperate posts about those people), then it will still have had value for the way it’s inspired members of the Perl 5 community to nick the good bits and make them happen in Perl 5.' | |||
that's probably an accurate summary of how many vocal Perl5ists feel about Perl 6. | 10:43 | ||
10:45
estrabd joined
|
|||
hejki | i'm perl5ist, but i still think perl6 would be good | 10:46 | |
mathw | I think he's got a very good point | ||
hejki | also laziness can't be nicked :> | ||
mathw | Even if Perl 6 is a failure, Perl 5 has vastly improved under its loominess | 10:47 | |
10:47
estrabd_ left
|
|||
mathw | However, Perl 6 succeeding would, I am sure, exceed even the awesome new Perl 5 in awesomeness | 10:47 | |
masak | pervasive all-the-way-down grammars can't be nicked either. | ||
mathw | Due to these things you are mentioning | ||
Due to macros | 10:48 | ||
masak | mmm, macros. | ||
mathw | Due to static typing | ||
hejki | heh | ||
mathw | (if you want it) | ||
hejki | due to HYPERTITS! :> | ||
10:48
xinming_ joined
|
|||
masak | macros with cheese and a bit of thyme. | 10:48 | |
mathw | I like my macros with garlic | ||
m6locks | :3 | ||
masak | oooh | ||
hejki | perl5 would've been what perl6 should be if it were written on later time :) | 10:49 | |
at least that's how i see it | |||
masak | hejki: I wrote that in a tweet the other day: twitter.com/carlmasak/status/10222201257 | ||
hm. on second thought, those mean different things :) | 10:50 | ||
hejki | heh.. twitter-- | ||
mathw | I don't think we can blame twitter for masak's incoherence | 10:51 | |
That probably has something more to do with Copenhagen | |||
masak | :) | ||
Incopenhagenerence. | |||
10:51
xinming left
|
|||
m6locks | any wrap up on copenhagen accomplishments somewhere? | 10:52 | |
masak | logiclab.org/wordpress/2010/03/09/c...urce-days/ | 10:53 | |
m6locks | nice, thx | ||
masak | github.com/rakudo/rakudo/blob/maste...oposal.pod | ||
baest | and should be visible in spectest as well | 10:55 | |
masak | oh, definitely. | ||
10:55
tuxdna left
|
|||
masak | but that's harder to reify as a URL :) | 10:55 | |
10:56
eiro_ is now known as eiro
|
|||
baest | masak: well, it should be visible when rakudo.org/status gets updated | 10:56 | |
masak | aye. | ||
I'm actually not sure what prevents someone non-pmichaud-y from doing that, apart from the force of tradition. | 10:57 | ||
10:58
tuxdna joined
11:15
lest_away is now known as lestrrat
11:36
szbalint joined,
pmichaud2 joined
|
|||
pmichaud2 | good morning, #perl6 | 11:36 | |
mathw | lolitspmichaud...TWO! | 11:37 | |
pmichaud2 | quiet here this morning? I guess everyone is in hackathon-recovery-mode? | 11:44 | |
11:44
sid_ left
|
|||
colomon | o/ | 11:45 | |
masak | pmichaud2: yes, a bit like that. | 11:52 | |
colomon | pmichaud2: When you get a chance, I'd love to code review the !op metaop with you. I'm pretty sure I can churn out a few more of the things based on its approach, but I don't want to be cloning dodgy code. | 11:54 | |
11:57
iblechbot joined
|
|||
pmichaud2 | colomon: okay, I'll be glad to do that. At the moment my connectivity is extremely limited, though. | 11:57 | |
the wifi connection here has draconian security in place; traffic appears to be strictly limited to http connections | 11:58 | ||
colomon | thanks. | ||
ack, I hate that. | |||
(that's ack the random sound, not ack the program, which I love.) | 11:59 | ||
pmichaud2 | they even block access to sites that describe how to do http tunneling. :-\ | ||
colomon | may disappear for a few minutes here (sounds like someone in the nursery is waking up), but I'll still be "listening". | 12:01 | |
pmichaud2 | I probably won't be able to review much for another couple of hours. | 12:03 | |
(and perhaps not even then -- depends on what is going on around here) | 12:05 | ||
12:06
bluescreen joined
|
|||
pmichaud2 | afk | 12:13 | |
12:13
pmichaud2 left
12:15
k23z__ joined,
k23z__ left,
k23z__ joined
12:17
freshfish joined
|
|||
freshfish | 大家好啊 | 12:18 | |
12:19
freshfish left
12:25
z3ndrag0n left
|
|||
masak | freshfish: come back! I want to greet you in hanzi. :) | 12:37 | |
std: sub foo(%h{ $left }) {} | 12:47 | ||
p6eval | std 30019: OUTPUT«ok 00:01 108m» | 12:48 | |
masak | rakudo: sub foo(%h{ $left }) {} | ||
p6eval | rakudo 5b81df: OUTPUT«Confused at line 11, near "sub foo(%h"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
masak | NYI? | ||
12:54
riffraff left
|
|||
cognominal | TimToady, S02-bits.pod:1181: Slicel Arguments in a semicolon list (or equiv, like Z) | 12:58 | |
that should be Slice? | |||
colomon | don't think so. | 13:00 | |
cognominal | ok | ||
13:00
tlb left
|
|||
takadonet | morning all | 13:08 | |
13:08
fridim left
|
|||
jnthn | oh hai, #perl6 | 13:12 | |
takadonet | jnthn: morning | 13:14 | |
mathw | oh hai jnthn | 13:15 | |
colomon | \o | ||
jnthn | masak: what you trying to do? | ||
Unpack? | |||
masak | jnthn: yes. | ||
13:15
payload joined
|
|||
jnthn | Syntax is (%h (:$left)) | 13:15 | |
lisppaste3 | colomon pasted "!op issues (for pmichaud)" at paste.lisp.org/display/96205 | ||
masak | jnthn: ah. | 13:16 | |
13:16
MoC_ joined
|
|||
jnthn | And should work fine ;-) | 13:16 | |
13:16
MoC_ is now known as MoC`
|
|||
jnthn | Though you'll surely find some way to break it. :-P | 13:17 | |
13:17
riffraff joined
|
|||
masak | works fine. jnthn++ | 13:17 | |
jnthn | During my train journey I've been hacking :-) | ||
13:17
MoC` is now known as M_o_C
|
|||
jnthn | I've got a much-of-the-way-there patch for lexical import working. | 13:18 | |
masak | \o/ | 13:19 | |
rakudo: multi x(%h($a, $b)) {}; multi x(%h($a, $b)) {}; x({:a, :b}) | |||
p6eval | rakudo 5b81df: OUTPUT«Ambiguous dispatch to multi 'x'. Ambiguous candidates had signatures::(%h):(%h)current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | jnthn: it seems to me nested sigs don't get printed... | ||
jnthn | masak: Ah | 13:21 | |
Signature.perl probably needs a little tweak. | 13:22 | ||
masak submits rakudobug | |||
colomon | btw, masak, don't know if you saw this one yet or not: | 13:31 | |
13:31
pmurias joined
|
|||
colomon | rakudo: .say for "hello"; | 13:31 | |
p6eval | rakudo 5b81df: OUTPUT«hello» | ||
masak | saw it, but forgot to get back to it. | 13:32 | |
masak submits rakudobug | |||
I'd be very interested in how that occurs. | |||
colomon | masak++ | ||
yeah, me too. | |||
masak | are Str objects iterable now? | ||
colomon | and I've got the source code now... | ||
geez, I hope not! | |||
and | 13:33 | ||
masak | I mean accidentally. :) | ||
colomon | rakudo: for "hello" { .say } | ||
p6eval | rakudo 5b81df: OUTPUT«hello» | ||
masak | o.O | ||
curiouser and curiouser. | |||
13:34
rv2733 joined
13:36
tuxdna left,
ive joined
13:38
ive left
13:42
arthur-_ left
13:45
payload left
13:46
frettled sets mode: +ooo masak colomon cognominal,
payload joined
13:50
ive joined
|
|||
PerlJam | good morning. | 13:50 | |
takadonet | morning | 13:51 | |
dalek | kudo: a705b41 | jonathan++ | (6 files): Translate cheating use into NQP and split out need and import. Stubs for various things we'll need (tags, lexical import). |
13:59 | |
kudo: 5d6aba2 | jonathan++ | src/Perl6/Module/VersionDetectionActions.pm: Add some comment to say what a file is for. |
|||
kudo: a11211c | jonathan++ | src/Perl6/ (2 files): Switch symbol importation to lexical by default; actually load modules during the compile. Probably has quirks, but a step towards what we want. |
|||
kudo: 8d76887 | jonathan++ | src/Perl6/Grammar.pm: Actually parse a module_name, rather than cheating and parsing a longname, in use. |
|||
masak | jnthn: did you see github.com/masak/tardis/blob/master/docs/plans ? specifically, what do you think about the instruction code? | 14:07 | |
jnthn | masak: no, been away for meetings all morning | 14:08 | |
masak: will glance at it shortly | |||
Gotta do a couple of other bits here first. :-) | |||
colomon | masak: Does implementing Tardis involve completely reimplementing p6? | 14:12 | |
masak | colomon: more or less. | 14:13 | |
colomon | masak++ | ||
14:13
prism is now known as daemon
|
|||
masak | not sure I deserve karma for that... :P | 14:13 | |
jnthn: no sweat. | 14:15 | ||
rakudo: sub foo(%h($left)) {}; foo({ no => "left key" }) | |||
p6eval | rakudo 5b81df: OUTPUT«Not enough positional parameters passed; got 0 but expected 1current instr.: 'foo' pc 213 (EVAL_1:82)» | ||
masak | I guess that's a correct error message... wonder if it can be made awesomer, though... | 14:16 | |
does anyone have any suggestions? | |||
PerlJam isn't even sure what %h($left) is supposed to mean these days | 14:19 | ||
masak | PerlJam: 'a hash %h with a key named "left" and the value $left' | ||
PerlJam | Then an "awesomer" message would be "Hash %h has no key named 'left'" perhaps | 14:21 | |
masak | I really like that. | ||
it works for single dispatch. | |||
masak submits LTA rakudobug | 14:22 | ||
PerlJam | where you answering Mark Reed's query on p6l? | ||
masak | I was. | ||
PerlJam | ah. I just read it :) | ||
masak | :) | ||
14:23
pmurias left
|
|||
[particle] | Sub 'foo' expects a Hash with a required a key named 'left'. | 14:24 | |
jnthn | ugh, that will be *hard* to do. | 14:25 | |
masak | jnthn: but it will be *so* worth it. | 14:26 | |
PerlJam | jnthn: that's your job! :) | ||
jnthn | Can quite easily name the parameter that has being bound into a sub-signature though. | ||
[particle] | then that must be the correct error message :) | ||
14:27
CokeGod_ joined
|
|||
jnthn | Which is maybe semi-awesome-ish. :-) | 14:27 | |
14:27
CokeGod_ is now known as CokeGod
|
|||
[particle] | SAI is still LTA :) | 14:27 | |
PerlJam | CokeGod: have you attained some enlightenment of which I have not been aware? :) | ||
jnthn | Prague wasn't built in a day. | 14:28 | |
brb, errands | |||
masak | CokeGod: does a Coke God accept offerings in the form of sugar and caffeine? | ||
[particle] | that's not what they say in rome.... | ||
CokeGod | Splenda and caffeine. | 14:29 | |
The explanation of this nick is somewhere on the internet. It's really not worth the search. | 14:30 | ||
CokeGod enjoys his current offering which is hot and infused with faux hazelnut aroma. | 14:35 | ||
masak | so, Set and Bag, KeyHash/KeySet/KeyBag amd PairSet. does anyone have any good use cases which might shake out what default operators and methods we want for those? | 14:37 | |
hm. are .pickpairs and .grabpairs strictly necessary? couldn't one just do .pick and .grab (respectively) after an appropriate coercion? | 14:42 | ||
14:42
payload left
|
|||
jnthn | "Rakudos to the team!" :-D | 14:45 | |
masak | :) | ||
jnthn: was that a quote from somewhere? | |||
jnthn | masak: p6l | ||
PerlJam | masak: or just have $bag.pick return a pair and if you want the key, you say $bag.pick.key | ||
masak | PerlJam: hm. | 14:46 | |
PerlJam | masak: and the currently specced semantics could be gotten from $bag.pick(*).>>key or some such | ||
jnthn -> exploring the systembolaget | |||
masak again apologizes profusely for confusing p6l by actually running stuff :P | 14:47 | ||
jnthn | lol!! | ||
bbiab | |||
masak | jnthn: that's sort of a double definite you did there. '-et' translates as 'the'... | ||
jnthn | masak: oops | 14:48 | |
:-) | |||
masak | np, just wierdish. there are no real rules in context switching, I guess... | ||
jnthn | (I kinda knew that, but the double somehow falls out naturally when interpolating it into an English sentence. Maybe it'll feel wierder to me some day. :-)) | 14:49 | |
mathw reads the latest on the pattern matching thread and is astonished and overjoyed | |||
I didn't realise signature unpacking could do that! | |||
else I would've written about it in my reply, obviously | |||
mathw toasts... everyone | |||
PerlJam | mathw: jnthn++ | ||
jnthn | ouch...it burns! | ||
oh, other toast. | |||
[particle] | prost! | ||
masak | nazdarovie! | ||
jnthn | OK, really going...before it closes. :-) | 14:50 | |
masak extrapolates that jnthn will like Systembolaget | |||
14:50
arlinius left
|
|||
PerlJam | zdar! | 14:50 | |
(The one small bit of czech I learned from Sokol :) | 14:51 | ||
14:51
uniejo left
|
|||
mathw | cheers! | 14:52 | |
masak | sanon! | ||
14:54
ignacio_ joined
15:05
M_o_C left
15:09
payload joined
|
|||
masak | Perl 6 Advent page hits still average 120 +- 40 per day. the long tail seems to hold stable. | 15:10 | |
mathw | yay | 15:11 | |
I think we've got presence in Google and links from various places | |||
frettled | masak: that's nice. | ||
masak | Perl 6: not existing a little less every day. | 15:12 | |
frettled | frettleblog has 5-10, and that's pretty good, considering the rather narrow audience. | ||
mberends | masak: is it true that tardis is embarking on implementing Perl 6 in Perl 6? Was GGE not glacial enough? ;-) | ||
15:12
Psyche^ joined
|
|||
masak | mberends: the glaciality of GGE has in fact been greatly exaggerated... mostly by me. :P | 15:12 | |
mberends | phew :) | 15:13 | |
mathw | masak: I recognise sheer geeky cool in the idea... but what's the practical reason? | ||
masak | mberends: but yeah, Yapsi will be slow. | ||
PerlJam | "yapsi"? heh | ||
masak | mathw: I'm mostly toying around, but the three concrete products will be a time-travelling debugger, a code analysis tool, and a code coverage tool. | 15:14 | |
mathw | aaah | ||
masak | mathw: all three require a compiler frontend, and the debugger and the coverage tool require a compiler backend. | ||
PerlJam | masak: you'll have to hang out with Damian quite a bit more to get that time-travel thing down ;) | 15:15 | |
masak | PerlJam: I wouldn't mind that :) | ||
PerlJam: but you do know there's a plan already, don't you? :) | |||
plus some very simple already-working code. | |||
15:15
eternaleye left
|
|||
PerlJam | masak: I'm only peripherally aware of the plan. | 15:15 | |
masak | the plan is to have fun until we run out of memory. :P | 15:16 | |
15:16
Patterner left,
Psyche^ is now known as Patterner
|
|||
mathw | I used to do that in Epigram | 15:16 | |
the problem with that is that running out of memory took about half an hour and two screenfuls of code | |||
masak | that sounds like a problem Tardis might run into as well. | 15:17 | |
PerlJam | I was just looking at Python 3's grammar and find it incredibly icky to read. Now I know I'm too used to Perl 6 regex :) | 15:19 | |
masak | STD.pm actually gives Perl 6 grammar an extremely pure feel. | 15:20 | |
it's as if its author wanted to atone for some previous heinous parsing sins... :P | 15:21 | ||
PerlJam | What really grates on my mind are constructions like this: [tfpdef] (',' tfpdef ['=' test])* | ||
where the stuff in [] is meant to be optional | |||
masak | that's some form of EBNF, is it not? | 15:22 | |
PerlJam | yes | ||
[particle] | everything is some form of ebnf, it seems | ||
nobody bothered to standardize the 'e' | 15:23 | ||
PerlJam | indeed | ||
[particle] | it's as bad as makefile syntax | ||
masak | embrace-and-extended BNF :) | ||
[particle] | i got stopped dead in my tracks writing an ebnf front end for pge years ago | 15:24 | |
PerlJam | maybe someone could make a universal translator from EBNF to Perl 6 | ||
[particle] | which e? | ||
PerlJam | all of them | ||
jnthn back | |||
15:24
cls_bsd left
|
|||
masak | jnthn: how was Systemet? | 15:24 | |
15:25
am0c left
|
|||
jnthn | masak: Win. | 15:25 | |
masak thought so | |||
jnthn | masak: Nice range. :-) | ||
And prices akshually not as terrifying as first expected. | |||
masak | jnthn: and late-bindably extendable :) | ||
jnthn | Yes. :-) | ||
mathw | Is jnthn now located in his new town? | 15:26 | |
jnthn | He is. | 15:27 | |
15:27
Guest8746 left
|
|||
mathw | \o/ | 15:28 | |
jnthn | Also on my walk spotted a curry house. :-) | 15:29 | |
masak | excellent. | 15:30 | |
masak now hopefully glances first at jnthn and then at github.com/masak/tardis/blob/master/docs/plans | 15:32 | ||
jnthn | :-) | 15:35 | |
15:35
estrabd left
|
|||
jnthn | Any particular bit you want me to look at, or all of it? | 15:35 | |
masak | the latter, more insane parts. | 15:36 | |
specifically, obvious reasons the SIC idea won't fly. | |||
15:36
nihiliad joined
15:40
am0c joined,
estrabd joined
|
|||
jnthn | "Figure out a way to encode which AST nodes correspond to which substrings of a program. | 15:40 | |
" | |||
That is probably do-able by attaching info from the parse node, or the parse node itself, to the AST. | 15:41 | ||
masak | nod. | 15:42 | |
the trick is to have info flow all the way through from program via AST to SIC. | |||
jnthn | The instruction code looks...odd. | ||
masak | :) | ||
I'm on thin ice there. | |||
jnthn | It looks like post-optimized output. :-) | 15:43 | |
Or some such. | |||
It feels awkward that you need to know if you have a container or not. | |||
It's possible a value can be bound straight into the lexpad | |||
masak | oh right. | ||
I obviously need to do some more thinking on this. | 15:44 | ||
jnthn | Also I'd kinda expect calls to multi-dispatch routines. | ||
masak | yes. | ||
jnthn | for infix:<=> and postfix:<++> | ||
But of coruse that needs multi dispatch and... :-) | |||
You gotta start somewhere I guess. | |||
masak | :) | ||
yes. | |||
jnthn | I guess I can only sum up with, implemetning a Perl 6 compiler is Really Really Hard. :-) | ||
masak | gotcha. | 15:45 | |
jnthn | (Which isn't a reason not to do it. :-)) | ||
mberends | masak: don't spend too long on this, you could just dispatch lue++ to the future in his quantum-mobile to get the resulting source code. He's up for a bit of time travel. As long as he doesn't forget it all on the way back to here and now... | 15:47 | |
masak | mberends: I willen haben shallum asken him. | 15:48 | |
mberends | masak: talk about all over the tenses ;) | 15:49 | |
masak | mberends: "If you've done six impossible things this morning, why not round it off with breakfast at Milliways—the Restaurant at the End of the Universe!" | 15:51 | |
mberends | once you start doing impossible things, the sky isn't the limit. hmm, maybe time travel is harder for programmers than for programs (and debuggers) | 15:52 | |
15:57
jonasbn left
|
|||
mberends de-commutes | 15:59 | ||
15:59
mberends left
16:04
_jaldhar left
16:08
MoC_ joined
16:09
masak left,
MoC_ left,
M_o_C joined
16:33
pmurias joined
16:51
WNz joined
|
|||
WNz | Hey all | 16:52 | |
What's the best tutorial to follow for a newcomer to perl and going straight to perl6? | |||
takadonet | hey WNz | 16:53 | |
WNz | Hey | ||
Also anyone here on gentoo? | |||
takadonet | <-- ubuntu sorry | ||
WNz | Heh | ||
I'm wondering what all i need to emerge | |||
emerging rakudo seems to be all i need, although i'm not sure | 16:54 | ||
arnsholt | WNz: If you want the latest-greatest you'll git and svn | ||
I think all the other build deps should be there already on Gentoo | |||
WNz | Doesn't portage stay pretty up-to-date? | 16:55 | |
arnsholt | I'm not on Gentoo anymore, but used to | ||
takadonet | Wnz: perl6advent.wordpress.com/2009/12/0...ng-rakudo/ | ||
Advent calendar is a great place for an overview of Rakudo | 16:56 | ||
Su-Shee | it is indeed and one should consider a 40 day pre-easter calendar :) | ||
arnsholt | There was talk of an article series in connection with Rakudo * in CPH | 16:58 | |
japhb | Would one of the nqp-rx hackers mind updating parrot's snapshot, please? I'm anxious to start using the fine hackage from the last few hours in Plumage. :-) | ||
pmichaud, jnthn, Tene, PerlJam, ^ | |||
16:59
ignacio_ left
|
|||
WNz | I'm looking for more of a structured howto | 17:00 | |
For learning | |||
Not random bits | |||
m6locks | learning what? | 17:02 | |
oh the language | 17:03 | ||
i found moritz_'s tutorial handy perlgeek.de/en/article/5-to-6 | |||
before that, i read some introductory text in perl5 | 17:04 | ||
17:06
justatheory joined
|
|||
WNz | ok so it's not working for me | 17:10 | |
17:10
ignacio_ joined
|
|||
WNz | I'm trying to run commands in the terminal using `perl6` | 17:10 | |
i tried something as simple as `my $num = 6;` and `say "$num";` | |||
with an error | |||
colomon | rakudo: my $num = 6; say "$num"; | 17:11 | |
p6eval | rakudo a11211: OUTPUT«6» | ||
m6locks | did you write them on the same line? | ||
like that | |||
WNz | no | ||
17:12
ignacio_ left
|
|||
m6locks | if you hit enter between the commands, youäll get an error because it needs to be inputted on a single line if you're using repl | 17:12 | |
WNz | ah i see | ||
what's the crunchbang for using perl6? | |||
m6locks | what would you like it to be?-) | 17:13 | |
WNz | i'm assuming #!/usr/bin/perl6? | 17:14 | |
yep | |||
cool | |||
17:18
PacoLinux left,
PacoLinux joined
|
|||
colomon | hey, we're over 27,000 passing tests now! | 17:23 | |
jnthn | :-D | 17:24 | |
Nice work everyone! | |||
WNz | is multi sub new? | ||
jnthn | WNz: Yes; Perl 5 doesn't have those. | 17:25 | |
WNz | interesting | ||
jnthn | They're very useful and quite important in Perl 6 though. :-) | ||
WNz | quite cool | ||
m6locks | what's the test count gonna be when rakudo * is released | ||
arnsholt | Who knows. More than today =) | 17:26 | |
m6locks | ;) | ||
jnthn | m6locks: It's not a great indicator of progress in some senses, since different features have widely varying numbers of tests. | ||
17:26
nihiliad left,
ignacio_ joined
|
|||
m6locks | yes, i noticed that with the trig. functions | 17:27 | |
takadonet | well that's colomon fault for that | 17:28 | |
colomon | sorry! | ||
;) | |||
BTW, I'm hoping for about 33,000 passing tests for Rakudo *. (And not just by generating 6,000 new trig tests. :) | 17:29 | ||
jnthn | I think that's achievable with continued graft. :-) | ||
WNz | what's the difference between sub and method? | 17:30 | |
colomon | It's just 1,000 tests a week, and we actually got 2,000 back this week. (hackathon++) | 17:31 | |
jnthn | WNz: A method expects to be able to install itself in some class/role/grammar, and also handles taking the invocant for you, so you needn't list it explicitly in the argument list. | ||
WNz | ok | 17:32 | |
I figured it was just the class context | |||
PerlJam | WNz: but you didn't ask about submethods :) | 17:34 | |
WNz | ha haven't heard of them yet | ||
17:38
bkeeler_ left
|
|||
WNz | yay! finally chained comparrisons | 17:41 | |
I've been waiting to finally be able to do that in a lang | |||
PerlJam | WNz: you can do it in python | 17:42 | |
WNz | really? | ||
Didn't know that | |||
PerlJam | WNz: docs.python.org/reference/expressions.html#notin | 17:43 | |
WNz | well that's good to know | ||
is that new in python? | |||
i haven't used it in a while | 17:44 | ||
PerlJam | WNz: no, it's been in python quite some time. | ||
17:44
steffan joined
|
|||
PerlJam | WNz: but that's not even the neatest thing in Perl 6 ;) | 17:45 | |
17:45
nihiliad joined
|
|||
WNz | well yeah | 17:45 | |
how do you make executables in perl? | |||
PerlJam | WNz: Here's one that just tickles me to this day: if [<] @stuff { say "the stuff is ordered least to greatest" } | ||
WNz | wow that's cool | 17:46 | |
17:47
steffan left
|
|||
colomon | though it isn't actually implemented in current Rakudo. | 17:51 | |
arnsholt | Are phasers supposed to work in master? | 17:52 | |
17:53
mberends joined
|
|||
jnthn | arnsholt: Not entirely sure. Maybe depends on the phaser. | 17:59 | |
I'm sure I've seen some stuff in the actions that pertains to those. | |||
WNz | so how do you make an executable in perl6? | 18:01 | |
arnsholt | jnthn: BEGIN phaser in this case. Parses, but isn't executed | ||
rakudo: say "HELO"; BEGIN { say "EHLO"; } | |||
p6eval | rakudo a11211: OUTPUT«HELO» | ||
arnsholt | Was Nil the class that changed to Mu recently? | 18:03 | |
jnthn | Ah | ||
No, Object | |||
arnsholt | Okies | ||
18:03
astrojp joined
|
|||
jnthn | WNz: At the moment there's not a particularly easy way. | 18:03 | |
You can make a "fakeexecutable" that packages bytecode and a loader. | |||
Well, in theory at least :-) | 18:04 | ||
WNz | In what way is it fake? | ||
jnthn | It's not an actual compiling of Perl 6 to machine code, it just contains VM bytecode and something to load the vm and run it. | ||
WNz | Is the code visible? | 18:05 | |
I'm making a password storage db with encryption via rsa key | |||
but i don't want the algorithm viewable | 18:06 | ||
For obvious reasons | |||
PerlJam | security through obscurity is no security at all | ||
jnthn | RSA is a fairly well known algorithm. :-) But no, the source at present doesn't go into the executable. | ||
WNz | Meaning? | 18:07 | |
jnthn | You can still reverse engineer it from the bytecode, just as you could from native machien code. | ||
You're just making life a little harder rather than preventing anything. :-) | 18:08 | ||
WNz | So then how should I go about it? | ||
arnsholt | alpha: my Num $x = 1.1; | ||
p6eval | alpha 30e0ed: ( no output ) | ||
arnsholt | alpha: my Num $x = 1.1; say $x | ||
p6eval | alpha 30e0ed: OUTPUT«1.1» | ||
arnsholt | rakudo: my Num $x = 1.1; say $x | ||
p6eval | rakudo a11211: OUTPUT«Type check failed for assignmentcurrent instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)» | ||
arnsholt | Bug, or something I've missed? | ||
jnthn | Well, I'm not a cryptologist, but as far as I understand these things, using RSA is fine (in fact, it's best to use a well-known algorithm) and the more important issue is key management. | 18:09 | |
arnsholt: Something you missed. | |||
rakudo: say 1.1.WHAT | |||
p6eval | rakudo a11211: OUTPUT«Rat()» | ||
arnsholt | Ooooh, right | ||
WNz | Well seeing as i'm not planning on releasing the app, wouldn't I be fine by just using obscurity? | ||
arnsholt | Is there a way to force creation of a Num, rather than a Rat? | ||
WNz | It's more of a personal thing | 18:11 | |
A secure way of storing my passwords | |||
I made the app in ruby and it seemed to work pretty well | |||
you need the private key and the password to unlock the key | 18:12 | ||
and the app | |||
18:12
Chillance joined
|
|||
WNz | is that not enough for my purposes? | 18:12 | |
and the sqlite db | |||
PerlJam | arnsholt: (1/2).Num :) | ||
arnsholt | True dat | 18:13 | |
I went with 1.1e1 =) | |||
18:14
ruoso joined
|
|||
arnsholt | rakudo: my Callable $x; say $x.isa(Callable); # known issue? | 18:15 | |
p6eval | rakudo a11211: OUTPUT«Method 'isa' not found for invocant of class 'RoleHOW'current instr.: 'perl6;Any;isa' pc 9666 (src/gen/RoleToClassApplier.pir:540)» | ||
18:18
dakkar left
|
|||
PerlJam | rakudo: (1/2).WHAT.say | 18:21 | |
p6eval | rakudo a11211: OUTPUT«Rat()» | ||
PerlJam | rakudo: (1.0/2).WHAT.say | ||
p6eval | rakudo a11211: OUTPUT«Rat()» | ||
colomon | rakudo: (1.0).WHAT.say | ||
p6eval | rakudo a11211: OUTPUT«Rat()» | 18:22 | |
PerlJam | That should be Num, shouldn't it? | ||
colomon | npe | ||
nope | |||
PerlJam | how do I get a Num literal? | 18:23 | |
Or can I/ | |||
? | |||
colomon | rakudo: say (1.0e0).WHAT | ||
arnsholt | Scientific notation | ||
p6eval | rakudo a11211: OUTPUT«Num()» | ||
PerlJam | arnsholt: yes, of course. But is that the only way? | ||
arnsholt | No idea. TMTOWTDI usually applies =) | 18:24 | |
colomon | normally I prefer | ||
arnsholt | rakudo: say (1/2).Num.WHAT | ||
p6eval | rakudo a11211: OUTPUT«Num()» | ||
colomon | rakudo: say (1.0.Num).WHAT | ||
p6eval | rakudo a11211: OUTPUT«Num()» | ||
colomon | which is a little wordier but more to the point. | ||
PerlJam | And is this a fossil: One consequence of all this is that you may no longer write a Num as C<42.> with just a trailing dot. You must instead say either C<42> or C<42.0>. | 18:25 | |
S02:400 | |||
colomon | PerlJam: true | ||
arnsholt | rakudo: my Array og Int $foo | 18:27 | |
p6eval | rakudo a11211: OUTPUT«In "my" declaration, typename Array must be predeclared (or marked as declarative with :: prefix) at line 11, near " og Int $f"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
PerlJam | og! | 18:28 | |
:) | |||
arnsholt | rakudo: my Array of Int $foo | ||
p6eval | rakudo a11211: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
arnsholt | There. What happen? | ||
18:29
cls_bsd joined
18:30
riffraff left
|
|||
PerlJam | rakudo thinks it's a parametric type | 18:31 | |
arnsholt | my Int @array; say "alive"; | 18:32 | |
rakudo: my Int @array; say "alive"; | |||
p6eval | rakudo a11211: OUTPUT«alive» | ||
arnsholt | Isn't that the same as "my Array of Int $x"? | ||
18:35
iblechbot left
18:36
meppl joined,
rindolf joined
|
|||
rindolf | Hi all. | 18:36 | |
colomon | o/ | ||
PerlJam | hello rindolf | ||
18:46
cosimo left
18:49
quietfanatic left
18:53
M_o_C_ joined
18:56
justatheory left
18:57
M_o_C left
18:59
bkeeler_ joined,
WNz left,
rindolf left
19:00
justatheory joined
19:04
ruoso left
19:05
ive left,
ive joined,
ive left,
payload left
19:06
ive joined
19:14
M_o_C_ is now known as M_o_C
19:19
mantovani left
19:24
justatheory left
19:26
justatheory joined
19:29
ruoso joined
19:37
mantovani joined
19:38
mantovani left
19:39
mantovani joined
19:40
mantovani left
19:41
mantovani joined
19:42
ash_ joined
19:43
mantovani left,
mantovani joined
|
|||
PerlJam | What kind of introspection is available on PAST::Val nodes? | 19:43 | |
19:44
mantovani left
19:45
mantovani joined
19:49
ShaneC joined,
mantovani left
19:50
mantovani joined
|
|||
pmichaud | good afternoon, #perl6 | 19:51 | |
mberends | hi pmichaud | 19:52 | |
PerlJam | hello pm. how goes? | ||
pmichaud | it's been an interesting week. | ||
colomon | o/ | ||
19:52
jonasbn joined
|
|||
bkeeler_ | Mornin, sir | 19:52 | |
pmichaud | ("interesting" in the chinese proverb sense, alas) | ||
I've finally been able to break out of the wifi jail here, though, so I can at least get back to hacking sorts of things. | 19:54 | ||
PerlJam | rakudo: my @a = "greeble"; .say for @a; | ||
p6eval | rakudo a11211: OUTPUT«greeble» | ||
PerlJam | rakudo: .say for "greeble" | ||
p6eval | rakudo a11211: OUTPUT«greeble» | ||
PerlJam | rakudo: .say for "greeble",; | ||
p6eval | rakudo a11211: OUTPUT«greeble» | ||
bkeeler_ | wow | ||
pmichaud | Parrot thinks that strings iterate as individual characters. | ||
probably need to evaluate the for argument in list context. | 19:55 | ||
[particle] | that's what makes parrot better than c :) | ||
PerlJam | pmichaud: I have no idea how to do that in Actions.pm | 19:57 | |
pmichaud | see the way that the statement_control:sym<for> does it. | ||
PerlJam | Hmm | 19:58 | |
pmichaud | ultimately statement_control:sym<for> will translate into a call to map^H^H^H.map() | ||
er, .map() | |||
colomon | that's "ultimately" as in "when we get around to programming it that way", not "if you trace it far enough down in the code", right? | 19:59 | |
pmichaud | thus for XYZ { ABC }; is translated into something like list(XYZ).map({ ABC }) | ||
"when we get around to programming it that way" | |||
we can't really do it until we have sink context in place | |||
TimToady | phone | 20:00 | |
pmichaud | I'll be delayed. | ||
(approx 5-10 mins) | |||
20:17
justatheory left
20:25
meppl left
20:33
am0c left
20:34
payload joined
20:35
payload left,
payload joined
20:39
uniejo joined
|
|||
jnthn is about for a bit. | 20:48 | ||
20:49
M_o_C left,
aindilis joined,
M_o_C joined
20:52
M_o_C left,
M_o_C joined
20:56
justatheory joined
21:02
bbkr joined
21:08
uniejo left
21:09
Chillance left,
buchi_ joined
21:11
bbkr left
|
|||
sjohnson | TimToady: long time no chat. may i ask a p5 question? i was wondering if Perl 5 is high-level enough in the way that you can store BIG numbers, like beyond 32-bit etc as integers, and do math on them etc | 21:12 | |
21:13
bbkr joined
|
|||
buchi_ | how to write binary values to a file using perl? | 21:13 | |
sjohnson | open the file as a binary file | 21:14 | |
print HANDLER $bindata; | |||
M_o_C | sjohnson: I don't know if this also covers what you consider "storing", but: perldoc.perl.org/bigint.html Though last time I tried it was considered inappropriate to ask Perl 5 Questions in #perl6. | 21:15 | |
21:17
masak joined
|
|||
masak has watched a movie, eaten dinner, and is generally happy with life | 21:17 | ||
pugssvn | r30020 | duff++ | [t/spec] Add a couple of tests for the one-arg statement modifier for loop | 21:18 | |
bkeeler_ | Howdy masak | 21:19 | |
PerlJam | buchi_: This channel is about Perl 6 and it sounds like you're asking a Perl 5 question. Try #perl or #perlhelp | ||
sjohnson: perldoc bigint | 21:20 | ||
buchi_ | Thank you!! | ||
PerlJam | sjohnson: you can try #perl or #perlhelp too :) | ||
21:20
iblechbot joined
|
|||
sjohnson | perl6 guys aren't too nice, so i ask a perl 5 question on my once-a-month quota here. plus i get the answers straight from the camel's mouth! | 21:21 | |
errl.. perl5 guys i mean | |||
PerlJam | sjohnson: Are you saying I'm not nice? | ||
PerlJam is a Perl 5 guy | |||
masak | bkeeler_: hi there! | ||
PerlJam | and a Perl 6 guy | ||
and a Ruby guy | |||
bkeeler_ | don't camels tend to spit? | ||
21:21
ruoso left
|
|||
PerlJam | and rarely a python guy | 21:21 | |
sjohnson | i meant #perl | 21:22 | |
guys | |||
bkeeler_ | or is that just llamas? | ||
21:22
ignacio_ left
|
|||
sjohnson | PerlJam: nope you're a pretty nice guy | 21:23 | |
21:24
nihiliad left,
nihiliad joined
|
|||
mberends | sjohnson: have you tried any of search.cpan.org/search?query=BigInt...ode=module ? | 21:24 | |
sjohnson | no.. but i am now. i wasn't sure if it was natively supported, or you needed to import a pragma | 21:26 | |
it all started when my brother said "ya can't do it in perl 5" and i was skeptical of that claim | |||
mberends | it's not natively supported | ||
21:26
masak left
|
|||
PerlJam | sjohnson: you can do anything in Perl 5 ... it's all a question of how hard it is to do. | 21:26 | |
sjohnson | mberends: 5.10.0 has it as a core pragma though | 21:27 | |
maybe even earlier stuff | 21:28 | ||
m6locks | binmode INF; binmode OUTF; | 21:29 | |
21:30
snarkyboojum joined
|
|||
mberends | sjohnson: which pragma do you mean? | 21:30 | |
sjohnson | use bigint; | ||
21:31
M_o_C left
|
|||
mberends | sjohnson: thanks, I did not know that, and you have answered your own question. | 21:31 | |
sjohnson | well... it was the collective wisdom of #perl6 to the rescue once again | 21:33 | |
m6locks | :3 | ||
21:34
kst left
|
|||
mberends | 'perldoc bigint' says the pragma is a thin wrapper for Math::BigInt, so you still need to ensure that is installed | 21:34 | |
21:34
lichtkind joined,
kst joined
|
|||
sjohnson | good tip | 21:35 | |
21:36
masak joined,
justatheory left
|
|||
mberends | \o masak | 21:36 | |
masak | mberends: o/ | ||
CokeGod | (bigint) or just use a perl > 5.8, neh? | ||
masak | <jnthn> It feels awkward that you need to know if you have a container or not. | ||
CokeGod | er, >= | 21:37 | |
masak | jnthn: by that logic, I'd be better off just having something like 'assign "$a", 42'... | ||
(as the SICification of '$a = 42') | 21:38 | ||
and then something like 'bind "$a", "$b"' for '$a := $b'. | |||
hm, that sounds simple enough to actually work. | 21:39 | ||
lichtkind | oh coke became god | 21:40 | |
CokeGod | I blame freenode. | ||
masak | rakudo: sub infix:<=>($a is rw, $b) { warn "This operator has been overridden by the FBI for your safety" }; my $a = 42; say $a | 21:42 | |
p6eval | rakudo a11211: OUTPUT«This operator has been overridden by the FBI for your safetyThis operator has been overridden by the FBI for your safetyAny()» | ||
masak | hm. locally, I got only one warning, not two. | ||
21:43
buchi_ left
|
|||
masak | maybe the Safe prelude does some assignment. | 21:43 | |
hm... :> | |||
PerlJam | rakudo: sub infix:<=>($a is rw, $b) { warn "BLAH" } say "hi" | ||
21:43
am0c joined
|
|||
p6eval | rakudo a11211: OUTPUT«Confused at line 11, near "sub infix:"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | 21:43 | |
masak | rakudo: sub infix:<=>($a is rw, $b) {}; say run('ls') | ||
p6eval | rakudo a11211: OUTPUT«buildConfigure.plCREDITSdocsdynextlibLICENSEMakefileparrotparrot_installperl6_group.cperl6_group.hperl6_group.operl6.pirREADMEsrctTest.pmtools0» | ||
masak figgered out a way to disable Safe.pm | |||
may I advise all potential trolls on the channel to exercise a measure of restraint until we fix that? :) | 21:44 | ||
jnthn | lol | ||
m6locks | haha | 21:45 | |
21:46
Su-Shee left
|
|||
Tene | masak: Aw, but I don't *like* restraint! | 21:47 | |
masak | Tene: it was just a suggestion. as was pointed out a few days ago, 'nice' and 'good' don't always coincide. | 21:48 | |
Tene | Setting up a bot to run inside an selinux sandbox has been on my "interesting afternoon activities" list for months. | 21:49 | |
Then we wouldn't need to use Safe.pm to restrict it, and we could let scripts play with the fs. | |||
masak | ++Tene | 21:51 | |
CokeGod | -> | ||
Tene | → | 21:52 | |
masak | ⽮ | ||
Tene | .u ⽮ | ||
phenny | U+2F6E KANGXI RADICAL ARROW (⽮) | ||
masak | :) | ||
pmichaud | -=»>> | 21:53 | |
pmichaud can't wait to define that operator :-) | |||
masak | std: -=»>> | ||
p6eval | std 30020: OUTPUT«===SORRY!===Preceding context expects a term, but found infix = instead at /tmp/woLgQzWpBB line 1:------> -⏏=»>> expecting any of: prefix or meta-prefix prefix_postfix_meta_operator termFAILED 00:01 107m» | ||
jnthn | pmichaud: Heh, amusingly enough I just decided to try and parse hypers :-) | ||
21:54
ShaneC left
|
|||
mberends | what would a harpoon operator do? | 21:54 | |
masak | mberends: finally catch that great white whale. | 21:55 | |
21:55
frettled sets mode: +oo masak mberends
|
|||
frettled | look, you caught a white cinnamon bun instead | 21:55 | |
masak | mmm. | ||
jnthn | pmichaud: Didn't exactly succeed though. | ||
mberends | ah, there must be frettles about :) | ||
jnthn | mmm...kamelbullar | 21:56 | |
frettled | ←↓↑→ | ||
jnthn: camel testicles? | |||
jnthn | ...oops. :-) | ||
.oO( don't make puns in languages you don't know ) |
|||
frettled | they're probably tasty testies | ||
21:57
justatheory joined
|
|||
masak | jnthn: for what it's worth, I wouldn't have made that association. YMMV, I guess. :) | 21:58 | |
Tene | ↑↑↓↓←→←→ | ||
frettled | jnthn: do you feel your leg stretching yet? | ||
Tene: ←-→ | 21:59 | ||
diakopter | masak: run() shouldn't be defined.. | 22:00 | |
Tene | ↔ | ||
»≫⋙ | |||
masak | diakopter: your utterance is a case where I feel that 'should' should have a context bound to it. :) | ||
diakopter | I mean | 22:01 | |
oh, interesting | |||
you killed assignment? | |||
masak | :D | ||
I found a security hole. | 22:02 | ||
frettled | oooh | 22:03 | |
diakopter | that's weird; it does it in PIR I thought | ||
frettled | masak: that's cool, is it exploitable? | ||
PerlJam | rakudo: run('ls'); | ||
masak | frettled: did you see where I did `ls` above? | ||
p6eval | rakudo a11211: OUTPUT«buildConfigure.plCREDITSdocsdynextlibLICENSEMakefileparrotparrot_installperl6_group.cperl6_group.hperl6_group.operl6.pirREADMEsrctTest.pmtools» | ||
frettled | masak: argh, sorry, lost the pun. Rewind. «is it even remotely exploitable?» | ||
masak | :) | ||
oh hm. | |||
diakopter | :/ | 22:04 | |
masak | PerlJam: seems Safe.pm isn't actually very safe. | ||
frettled | masak: ahaha | ||
PerlJam | alpha: run('ls') | ||
p6eval | alpha 30e0ed: OUTPUT«operation not permitted in safe modein Main (file /tmp/3BGLnFQ04Z, line 1)» | ||
diakopter | p6eval doesn't use Safe.pm | 22:05 | |
frettled | is someone reinventing PHP's safemode? | ||
diakopter | ooo masakbug | ||
I mean | |||
masak | diakopter: then what's all the program_prefix crap in evalbot.pl? | ||
frettled | object-oriented osbtructive masakbug? | 22:06 | |
diakopter | it's the contents of Safe.pm | ||
it doesn't "use Safe;" | |||
masak | right. | ||
how come it doesn't work? | |||
diakopter | get_hll_namespace or find_lex must do something different | ||
PerlJam | It works for alpha, so just run all unsafe operations through there ;) | 22:07 | |
masak | anyway, I don't see a rakudobug in it, since the safemode thing is related to the evalbot, not to rakudo as such. | 22:08 | |
diakopter | Safe.pm is in git | ||
22:10
bluescreen left
|
|||
dalek | kudo: d0a4488 | duff++ | src/Perl6/Actions.pm: Use &eager to Parcelize the statement modifier for loop |
22:13 | |
22:16
jonasbn left
|
|||
colomon | > .say for "hello"; | 22:19 | |
hello | |||
\o/ | |||
PerlJam | rakudo: .say for "greeble"; | 22:20 | |
jnthn | :-) | ||
p6eval | rakudo a11211: OUTPUT«greeble» | ||
PerlJam | I guess it does update every 30 minutes | ||
jnthn | :-/ | 22:21 | |
S11's description of import is...confusing. | |||
masak | is it at least deconfusable? | ||
jnthn | I dunno. | ||
It's changed since I last implemented tagging. | 22:22 | ||
You can do stuff like: | |||
sub foo is export(:tag1, :tag2) { ... } | |||
Presumably so you can then import interesting groups of methods | |||
masak | nod. | ||
mberends | jnthn: when you work on 'use', could you work on 'require' (run time loading) as well, or is that too big an ask? | ||
jnthn | iirc you can then do like: | 22:23 | |
use ModuleWithFoo :tag1; | |||
But I don't spot that in S11 now? | |||
PerlJam | std; need Foo; | ||
std: need Foo; | 22:24 | ||
p6eval | std 30020: OUTPUT«Potential difficulties: Can't locate module Foo at /tmp/Qx74YuKx3K line 1:------> need Foo⏏;ok 00:01 106m» | ||
jnthn | mberends: require's spec looks curious too :-) | ||
mberends | :-/ | ||
masak | jnthn: I've been thinking a bit more about assignment and binding. would it be reasonable to describe these two operations as implicitly accessing some variable %pad in the runtime? | ||
pugssvn | r30021 | colomon++ | [t/spec] Unfudge test that now works, duff++. | ||
jnthn | "Importing via C<require> also installs names into the current lexical scope by | ||
default, but delays the actual binding till runtime: | |||
" | |||
mberends: That is, it does a need at compile time but does binding into the lexpad a bit later, but still needs to know the symbols it will import ahead of time. | 22:25 | ||
mberends saw that too | |||
jnthn | That's kinda...not what I expected. | ||
masak: I guess in binding, you're modifying the pad. In assignment, you're using the pad to look up some container, and then changing what's in the container. | 22:26 | ||
masak | right. | ||
jnthn | mberends: Is it what you expected? | ||
masak | rakudo: my $a := 42; say 42; $a = 5 | ||
22:26
wknight8111 joined
|
|||
p6eval | rakudo a11211: OUTPUT«:= binding of variables not yet implementedcurrent instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)» | 22:26 | |
masak | alpha: my $a := 42; say 42; $a = 5 | ||
p6eval | alpha 30e0ed: OUTPUT«42» | ||
masak | ah, good old alpha. | 22:27 | |
alpha: my $a := 42; say $a; $a = 5; say $a | |||
p6eval | alpha 30e0ed: OUTPUT«425» | ||
jnthn | I accidentally the assignment. | ||
masak | that's wrong, innit? | ||
jnthn | Yes. | ||
masak | good. | ||
mberends | jnthn: no. I expected something like 'use "$module";' to do DWIM at run time, somehow :-/ | 22:28 | |
22:28
ive left
|
|||
Tene | mberends: not in master, unless that's been changed recently. | 22:29 | |
jnthn | mberends: I don't see that working. | ||
It won't even parse. | |||
std: use "$module"; | |||
Tene | std: my $foo = "Test"; use "$foo"; | ||
p6eval | std 30020: OUTPUT«Undeclared routine: 'use' used at line 1ok 00:01 107m» | ||
std 30020: OUTPUT«Undeclared routine: 'use' used at line 1ok 00:01 106m» | |||
jnthn | ...erm. | 22:30 | |
mberends | indeed :-( | ||
jnthn | lta. | ||
But I thought require could do that. | |||
But as spec'd it...can't. | |||
:-/ | |||
Well | |||
We have commit bits. | |||
mberends | there goes my FakeDBI dream... | ||
jnthn | mberends: Change the require spec to something that does what you want, then I'll implement it. | ||
The import syntax seems to be f**ked too. :-/ | 22:31 | ||
mberends | I wish I knew how to spec it responsibly | ||
jnthn | That bit made some sense once. | ||
I see just about zero use case for the way require is currently spec'd. | 22:32 | ||
You may as well just use "use" | |||
What is it you were particularly trying to do? | |||
Load an appropriate DBD? | |||
masak | rakudo: my $module = 'Test'; eval "use $module" | 22:33 | |
p6eval | rakudo a11211: ( no output ) | ||
jnthn | Well, there is that. :-) | ||
masak | rakudo: my $module = 'Test'; eval "use $module"; ok 1, "OH HAI" | ||
p6eval | rakudo a11211: OUTPUT«Could not find non-existent sub &okcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | hm. | ||
mberends | jnthn: exactly. eval( "use $module" ) runs, but probably does almost nothing. | ||
jnthn | masak: Lexical import. | ||
masak | ah. | ||
operative word being 'lexical' :) | |||
jnthn | mberends: Workaround: | 22:36 | |
Perl6::Module::Loader.need($name, {}); # XXX NON-SPEC HACK!!! | 22:37 | ||
mberends | heehee | ||
masak | rakudo: Perl6::Module::Loader | ||
p6eval | rakudo a11211: ( no output ) | ||
masak | ooh. :) | ||
jnthn | oh no | ||
:-) | |||
masak rubs hands | 22:38 | ||
what's the hash for? symbols? | |||
jnthn | Adverbs. | ||
masak | ah, 'course. | ||
jnthn | ver => 42 | ||
etc | |||
For anyone curious, src/Perl6/Module/ is the module location/loading implementation. | 22:39 | ||
It's in NQP | |||
masak | \o/ | ||
jnthn | Which means that it should be rather more accessible than if it was in, say, PIR. | ||
PerlJam | NQP doesn't do backtracking control with :, ::, :::, and <cut> yet does it? | 22:41 | |
jnthn | I don't think so | 22:42 | |
22:42
__rnddim__ is now known as lue
|
|||
mberends | jnthn: tried both modulename and modulename.pir, both give the error: | 22:42 | |
get_pmc_keyed() not implemented in class '' | 22:43 | ||
current instr.: 'perl6;Perl6;Module;Loader;need' | |||
jnthn | oh. :-( | ||
mberends | oh, perl6;Perl6; | ||
jnthn | That's OK. | ||
oh | |||
I bet it's that adverbial hash. | |||
22:43
pmurias left
|
|||
jnthn | Trouble is, it wants something Parrot-hashish | 22:44 | |
And our Perl 6 ones don't look like that yet. | |||
mberends | it's a pointer in the right hacky direction | ||
jnthn | If you change | ||
method need($name, %name_adverbs) { | |||
to | |||
method need($name, %name_adverbs?) { | |||
In Perl6/Module/Loader.pm | 22:45 | ||
You may get away with that. | |||
mberends goes for it | |||
jnthn | It's all guts, so the interface is only sorta important. | ||
(as in, we can revise it at will) | |||
masak | jnthn: containers (in the sense "a variable usually has one of those") can't be created in isolation, can they? | 22:46 | |
jnthn | "in isolation"? | 22:47 | |
Array.new # omg container! | |||
masak | something like 'my $c = lol-create-container(); my $var := $c; # $var now points to the new container $x' | 22:48 | |
jnthn: no, I think I mean a scalar container. | |||
jnthn | my $c := omg-awesome-a-container-maker(); # may well work I guess. | ||
masak | ok. | ||
feels like there's some sort of oddity there. | 22:49 | ||
something in the area of the $b in '$a := $b' meaning 'the container in $b', not 'the symbol $b itself'. | |||
jnthn | Yes | 22:50 | |
masak | just like the $b in '$a = $b' means 'the value in [the container in]? $b', rather than 'the symbol $b itself'. | ||
jnthn | In Rakudo $a = $b; really desugars to $a!STORE($b!FETCH) | ||
masak | oh, nice. | ||
but both $a and $b are entries in some pad somewhere, no? | 22:51 | ||
PerlJam | Should we have Scalar just like we have Array anyway though? | ||
er, s/Should/Shouldn't/ | |||
masak | PerlJam: we do. | 22:52 | |
PerlJam | rakudo: Scalar.new | ||
p6eval | rakudo d0a448: OUTPUT«Could not find non-existent sub &Scalarcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
PerlJam | rakudo: Array.new | ||
p6eval | rakudo d0a448: ( no output ) | ||
masak | PerlJam: the spec mentions it liberally. | ||
22:52
lichtkind left
|
|||
PerlJam | it's specced but not rakudoed | 22:52 | |
masak | PerlJam: the type always seemed slightly odd to me, but people on a higher resonance plane assuer me that it's very important. | ||
s/assuer/assure/ | 22:53 | ||
dalek | kudo: 0a0469e | duff++ | src/Perl6/Grammar.pm: parse version and need |
||
PerlJam | I've got to go. Talk to you guys later. | ||
PerlJam & | |||
22:54
am0c left
|
|||
masak | snarkyboojum: ping | 22:55 | |
snarkyboojum | masak: pong :) | ||
phenny | snarkyboojum: 09 Mar 21:32Z <masak> tell snarkyboojum that all tests in Tardis pass now. \o/ -- time for the next iteration of spec/test/implementation... :) | ||
masak | snarkyboojum: what phenny said :) | ||
snarkyboojum | masak: you're too fast :) I've been checking your changes out - but haven't played with it much | ||
masak: life getting in the way ;) | 22:56 | ||
masak | snarkyboojum: I mostly need someone to bounce ideas with again. but I no rush -- let me know when it's convenient for you. | ||
we prefer to push people to less than their breaking point here on #perl6 :) | 22:57 | ||
snarkyboojum | masak: sure thing.. I want to get my hands dirty as well tho :) | ||
masak | snarkyboojum: if you mean implementation, we'd need more tests first. I maded 10 tests, but I implemented them. :P | 22:58 | |
snarkyboojum | masak: okydoke | ||
22:58
rv2733 left
|
|||
masak | snarkyboojum: I thought about maybe letting you do the interactive debugger part, the one where one actually queries the ticks and gets information about the variables. I think that might be quite a pleasant task. | 22:59 | |
snarkyboojum | masak: I see - sounds juicy | ||
masak: off to the accountant - bb in a couple of hours if you're around | 23:01 | ||
23:01
iblechbot left
|
|||
lue | masak: if you need _ideas_ bounced around, that's me :D | 23:01 | |
masak | snarkyboojum: I'll try to be back in eight hours or so. | ||
snarkyboojum | masak: excellent - speak to you later then | 23:02 | |
mberends | jnthn: same error, need sleep srsly. goodnight & | ||
23:02
TiMBuS joined
|
|||
masak | lue: great! I could outline an idea for a blog post about assignment and binding for you. | 23:02 | |
lue | sure. I can do that. Just... where? :D | 23:03 | |
jnthn | mberends: OK, catch me tomorrow | ||
We;ll try and hunt it down. | |||
Sleep well o/ | |||
masak | lue: either here on-channel or in a privmsg booth. | ||
mberends | o/ | ||
23:03
mberends left
|
|||
masak | mberends: 'night! | 23:03 | |
jnthn | ETOOLATE | ||
masak | I happen to know mberends backlogs :) | 23:04 | |
lue | ETOOMUCHKNOWLEDGE | ||
EBACKLOGGING | |||
jnthn | ENEEDPIVO | ||
masak | :) | ||
m6locks | ELOL | 23:05 | |
arnsholt | jnthn: Enjoying state monopoly on alcohol yet? =) | ||
jnthn | arnsholt: It seems to have its good points. | ||
masak | rakudo: my $a = 42; my $b = $a; say $b | 23:06 | |
p6eval | rakudo d0a448: OUTPUT«42» | ||
jnthn | A whole wall of beer immaculately catergorized by type isn't something to complain about. :-) | ||
masak | lue: ok, so the above program is very simple. it's expressible in most programming languages. | ||
23:06
nihiliad left
|
|||
lue | a=b. Got It! ō\ | 23:07 | |
masak | lue: we can say something like "oh, there are two symbols called '$a' and '$b'. when we do '$b = $a;' we take the value associated with the symbol $a and assign the same value with the symbol $b." | ||
lue: a bit dry, but a description that explains what's going on. | 23:08 | ||
now, let's make that description collapse. :) | |||
lue | and a:=b would assign the same address in memory, correct? | ||
masak | I'm getting to that. | 23:09 | |
you have the right idea. | |||
alpha: my $a; my $b := $a; $a = 42; say $b | |||
p6eval | alpha 30e0ed: OUTPUT«42» | ||
masak | note how we associate $b with $a before assigning 42 to $a. | ||
note also the ':=' for binding and the '=' for assignment. | 23:10 | ||
so the inevitable conclusion is that there are not TWO levels of abstraction -- symbols and their values -- but THREE levels: symbols, containers and values. | |||
assignment, '=', digs down and assigns a new value to a container. | 23:11 | ||
binding, ':=', digs down and assigns a new container to a symbol. | |||
er, 'binds a new container to a symbol', I should say. | |||
23:12
ShaneC joined
|
|||
lue | Alright. I'm wondering where to post this though (probably not my blog... :) ) | 23:12 | |
masak | oh, I meant that I'm planning a post. :) | ||
lue | ah :) | ||
masak | but if you want to post it, feel free. | ||
then there's the little detail of some symbols binding directly to a value, skipping the container altogether. | |||
rakudo: my $a := 42 | |||
p6eval | rakudo 0a0469: OUTPUT«:= binding of variables not yet implementedcurrent instr.: '&die' pc 16804 (src/builtins/Junction.pir:373)» | ||
japhb | pmichaud, ping | ||
masak | alpha: my $a := 42; say $a | 23:13 | |
p6eval | alpha 30e0ed: OUTPUT«42» | ||
lue | I can draw some fancy diagrammy things :D | ||
masak | lue: aye, I had the same notion :) | ||
containers are definitely small boxy thingies. | |||
lue: anyway, binding may seem quirky and slightly unnecessary at first, until one realizes that that's exactly how arguments and parameters work. | 23:14 | ||
alpha: sub foo($b is rw) { $b = 5 }; my $a = 42; foo($a); say $a | |||
p6eval | alpha 30e0ed: OUTPUT«5» | ||
lue | seemed perfectly normal to me :D | ||
masak | lue: yes, but you're notoriously used to Douglas Adams-like concepts already :P | 23:15 | |
binding essentially introduces action-at-a-distance. | |||
also, there are a few things to say about typed variables. | 23:18 | ||
one does typing on the symbol, but the checks are done against the container. | |||
alpha: my Int $a = 5; my $b := $a; $b = 'OH HAI' | 23:19 | ||
p6eval | alpha 30e0ed: OUTPUT«Assignment type check failed; expected Int, but got Strin Main (file <unknown>, line <unknown>)» | ||
masak | that's the type constraint of $a giving an error for an assignment to $b, since they both share the same container. | ||
in other words, when assigned to, a container must do a | 23:20 | ||
number of checks 'inherited' from the symbols associated with it. | |||
lue | = is a copy machine, := is a sharer. That good enough of a description? :D | 23:22 | |
masak | it's very pretty. | ||
there are some subleties having to do with scalars which make the 'copy machine' part a simplification. but you definitely got the right idea. | 23:23 | ||
lue | It's a lead-in, at least :) | ||
23:23
ShaneC left
|
|||
masak | also, I found a bug in alpha's treatment of binding and types. | 23:23 | |
alpha: my Str $a; my Int $b := $a; my $c := $b; $c = "HAI"; say $b | |||
p6eval | alpha 30e0ed: OUTPUT«HAI» | ||
23:24
am0c joined,
ShaneC joined
|
|||
masak | since $a, $b, and $c all point to the same container, it shouldn't be able to contain a non-Int. | 23:24 | |
skipping the $c makes the error show up. | |||
alpha: my Str $a; my Int $b := $a; $a = "HAI"; say $b | 23:25 | ||
p6eval | alpha 30e0ed: OUTPUT«HAI» | ||
23:25
ShaneC left
|
|||
masak | hm. or not. | 23:25 | |
lue | nope :D | ||
masak | it's simply broken. | ||
lue | Maybe alpha gets messed up and $c is bound to $b, and not going further along the chain to $a | ||
jnthn | I could argue it's complicatedly broken. | ||
masak | jnthn: :) | ||
unfortunately, I have to wait for rakudo master to implement binding before I can submit this bug. :) | 23:26 | ||
jnthn | \o/ | 23:27 | |
guess what I haz? | |||
> module Foo { sub bar() is export { say "beer" } } | |||
> { import Foo; say "inner"; bar(); }; say "outer"; bar(); | |||
inner | |||
beer | |||
outer | |||
Could not find non-existent sub &bar | |||
lue | what, you can't submit a future potential bug!? O.o | ||
23:27
patspam joined
|
|||
masak | jnthn: \o/ | 23:27 | |
jnthn | need also works. :-) | ||
masak | lue: no, not without a time-travelling bug tracker :) | 23:28 | |
rakudo: class Foo { has %.bar; }; my $f = Foo.new; say $f.bar.WHAT | |||
p6eval | rakudo 0a0469: OUTPUT«Hash()» | ||
jnthn | I fixed that one. :-) | ||
masak | oh cool, that was a bug a day or so ago. :) | ||
jnthn++ | |||
jnthn | I *think* we got a test for it too. | ||
masak | rakudo: @_.=[3] | ||
p6eval | rakudo 0a0469: OUTPUT«Method '!postcircumfix:<[ ]>' not found for invocant of class 'ResizablePMCArray'current instr.: '!dispatch_.=' pc 440 (src/glue/dispatch.pir:118)» | ||
masak | was that one submitted? | ||
it's a diakopterbug. | 23:29 | ||
lue | it can't be! (horrid pun, I know) | ||
masak | maybe I'm slow, but I don't immediately see the pun... | 23:30 | |
jnthn | Not sure on submitted, but it looks familiar. | ||
masak submits rakudobug | |||
jnthn spectests. | |||
lue | it=@_ (very obsure i must say) | ||
23:30
jferrero joined
|
|||
jnthn | OK, so today I got employed and beer, and Rakudo got lexical import and need and initial import keyword support. | 23:31 | |
A good day all in all. | |||
masak | lue: yes, I'd probably associate '$_' with 'it', but not '@_'... | ||
jnthn: yay! | 23:32 | ||
lue | isn't @_ it as well, but in array format? | ||
masak | well, @_'d have to be 'them' :) | ||
and it's not really as topical-y as $_ is. | |||
lue | jnthn: we salute ye! ō\ (this is why you get an omnisub jnthn :) ) | ||
how's about @_ apples? :P | |||
masak | :D | 23:33 | |
lue | then what's %_ | ||
jnthn | OH, just take "it" and pluralize to get "its". :-) | ||
masak | that's 'named them'. | ||
jnthn | oh yeah | ||
masak | jnthn: you're evil :) | ||
jnthn | :-) | ||
Tomorrow I'll try and get us not to have to pre-compile to PIR. | 23:34 | ||
masak | rakudo: @_[3] | ||
p6eval | rakudo 0a0469: ( no output ) | ||
jnthn | I'm pondering going the whole hog and checking the modification times and ignoring the .pir if the .pm is newer. | ||
23:34
ShaneC joined
|
|||
masak | jnthn: that would save a lot of masak confusion in the heat of coding. | 23:34 | |
jnthn | Then some enterprising soul (Friday jnthn?) just gotta implement the automatic re-compilation to PIR. | ||
23:35
snarkyboojum left
|
|||
jnthn | If anyone fancies writing a few tests for need and import, that would be cool. | 23:35 | |
masak | I'm still a tad uneasy about automatic (re-)compilation, for some reason. | ||
can't really put my finger on it, so I'll pipe down. | |||
jnthn | In that case, maybe it's important we do have an implementation, so your finger can find its place. :-) | 23:36 | |
CokeGod | we're going to have to recompile it anyway. | ||
yes? just a question of whether or not to render it on disk? | |||
masak | jnthn: aye, I think so. maybe I'm just superstitious in this case. | ||
lue | .oO(I defy CokeGod! I only trust PepsiGod!) |
||
jnthn | masak: I'll suppress the feature on Friday 13th and we'll write the file in the color red. | 23:37 | |
lue | I've written things in the color bitter before :) | ||
23:37
rgrau left
|
|||
jnthn | CokeGod: Yeah, with the slight issue that we may not have the ability to write, so need to be ready to fail. | 23:37 | |
masak | CokeGod: I'm thinking more something along the lines of a module being loaded at runtime in a directory where there are no write permissions, and the program failing because it can't write the .pir file to disk. or something. | ||
jnthn | Well, not to fail. | 23:38 | |
masak | jnthn: ColorPerl6. :) | ||
jnthn | But to just work anyway. | ||
I figure if we compile to PIR, we can then try and write to disk regardless, and then eval it and run it. | |||
And if the write fails, it's no real waste. | 23:39 | ||
masak | nod. | ||
jnthn | I expect the installer will pre-compile modules in read-only locations. | ||
masak | I'm less worried now. | ||
jnthn | :-) | ||
jnthn is enjoying hacking on Rakudo :-) | 23:41 | ||
lue | jnthn: that was a few days ago :) | 23:42 | |
jnthn | No no, I'm still enjoying it. :-) | ||
lue ought to code that converter to find out when jnthn day is :) | 23:43 | ||
23:47
eternaleye joined
23:48
alester joined
|
|||
lue | .oO(We are now at arity-2 activity levels :) ) |
23:50 | |
masak | ok, I decided to simplify the SIC code somewhat. | 23:52 | |
now it's just 'fetch' and 'store' instructions. | 23:53 | ||
github.com/masak/tardis/blob/master/docs/plans | |||
jnthn | The errors in that document make me [SIC] | ||
masak | that should take care of the "don't know whether there's a container in there" problem. | ||
yay, the first SIC pun! :) | |||
was looking forward to that. | |||
lue | s/[SIC]/\u0000/ #I sed not to use puns :) | 23:56 | |
jnthn | That was a bit of an awkward pun. | ||
lue | don't you mean AWKward? (oh man, raocowing the puns like it was no thing!) | 23:57 | |
masak | also, 'sed' is Latin for 'but', which is mildly appropriate. | 23:59 | |
jnthn | oh, cute. |