»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
sorear | what? | 00:08 | |
Util: curses. I thought that was an impossible error. | 00:09 | ||
dalek | nda: 214b05b | dukeleto++ | README.md: Add a panda icon to our readme |
||
Util | sorear: I guess I just bring out the worst in compilers. | 00:10 | |
00:11
bluescreen10 left
00:13
bbkr1 joined,
Holy_Cow joined,
bbkr1 left
00:14
lichtkind_ joined
00:15
lichtkind left,
lichtkind_ is now known as lichtkind
00:21
lichtkind left
00:23
woosley joined
00:27
lichtkind joined
00:28
woosley left
00:31
[particle] left
00:42
[particle] joined
00:43
Holy_Cow left,
Holy_Cow joined
00:49
fhelmberger left
01:00
whiteknight left,
noganex_ joined
01:04
noganex left
01:10
tokuhirom left
01:11
lichtkind left
01:40
[particle]1 joined
01:42
[particle] left
01:47
Holy_Cow left
01:59
beek_ is now known as beekor
02:14
cooper left
02:16
cooper joined
|
|||
Util | perl6: my @a = ^2; say @a X @a; | 02:49 | |
p6eval | rakudo b4486e, niecza v7-30-gaf607ad: OUTPUT«00011011» | ||
..pugs: OUTPUT«01» | |||
Util | perl6: say ^2 X ^2; | ||
p6eval | rakudo b4486e: OUTPUT«00011011» | ||
..pugs: OUTPUT«01» | |||
..niecza v7-30-gaf607ad: OUTPUT«WRONG ExitRunloop TAKEN: at line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 1165 (CORE infix:<X> @ 2)  at /tmp/WXzgkgBY6u line 1 (MAIN mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 1890 (CORE C885_ANON @ 2)  a… | |||
Util | Odd that Niecza would fail there. | ||
03:09
f00li5h left
03:15
cooper left
03:23
Su-Shee_ joined
03:26
xinming left,
am0c left
03:27
Su-Shee left
03:31
jaldhar joined
03:39
Holy_Cow joined
03:43
am0c joined
03:44
Holy_Cow left
03:48
molaf joined
|
|||
sorear | yes, odd. | 03:50 | |
04:01
woosley joined
04:08
satyavvd joined
04:15
karb joined,
shinobicl joined
04:19
karb left
|
|||
sorear | ...weird. 1 X gather... is fine, but 1 X ^2 fails | 04:21 | |
04:23
cooper joined
04:25
[particle]1 left
04:26
drbean left
04:31
satyavvd left,
molaf left
04:34
kaare__ joined
04:35
f00li5h joined
|
|||
dalek | p: abdf378 | pmichaud++ | src/ (2 files): Refactor building of match object. |
04:37 | |
p: 985fd7d | pmichaud++ | src/QRegex/Cursor.nqp: Cache a match object once we've built it. |
|||
04:39
thou joined
04:44
shinobicl left
|
|||
dalek | kudo/nom: 5aecd55 | pmichaud++ | / (10 files): Merge branch 'nom' of github.com:rakudo/rakudo into nom |
04:45 | |
kudo/nom: d5a8c7e | pmichaud++ | / (4 files): Update Match, Cursor, and Capture objects. Indexed access to |
|||
sorear | pmichaud: every time I see "Merge branch 'nom' of ... into ..." I get falsely excited :/ | 04:47 | |
04:48
drbean joined
04:52
sivoais joined
05:02
satyavvd joined
05:03
mberends left
05:11
donri joined
05:13
Enzo_ joined
05:17
birdwindupbird joined
05:22
Enzo_ left
05:46
wtw joined
06:01
[particle] joined
|
|||
dalek | ecza: 212ba5b | sorear++ | / (2 files): Fix ^2 X ^2 (Util) |
06:03 | |
06:04
jaldhar left,
jaldhar joined
06:05
beekor left
06:06
aindilis left,
jaldhar left,
beekor joined
06:07
jaldhar joined
06:11
odoacre joined
|
|||
moritz | sorear: the siwtchover from nom to master probably won't be a merge commit | 06:11 | |
06:23
soh_cah_toa left
06:30
daniel-s joined,
Su-Shee_ is now known as Su-Shee
06:31
thou left
06:32
cooper left
06:35
noganex_ is now known as noganex
|
|||
TimToady | rosettacode.org/wiki/Undefined_values#Perl_6 | 06:42 | |
pmichaud | blog post! pmthium.com/2011/07/14/new-regex-en...spectests/ | 06:46 | |
sleep time! bbiaw | 06:47 | ||
TimToady | o/ | 06:48 | |
TimToady always wonders what G Cables are, though... :) | 06:51 | ||
06:55
wamba joined
07:04
mberends joined
07:10
mj41 joined,
Jackneill joined,
Jackneill left,
Jackneill joined
07:23
fhelmberger joined
07:24
fhelmberger left
07:25
fhelmberger joined
07:27
Trashlord left
07:37
im2ee joined
07:40
Mowah joined
07:52
cipherte1t left
07:53
Trashlord joined
07:56
wamba left
07:57
ciphertext joined
|
|||
dalek | ecza: 355a78a | sorear++ | lib/ (2 files): Simplify RUN_ONCE handling a bit, fixes $_ assignment at top level |
08:00 | |
sorear otu | |||
tadzik | good morning | 08:27 | |
is nom now on qregex, completely? | |||
TimToady | no, only the regexes in nom, not the grammars, according to the blog | 08:29 | |
moritz | nom: say 'abc' ~~ /abc/ | 08:32 | |
p6eval | nom: OUTPUT«abc» | ||
tadzik | cool | ||
moritz | nom: say 'abc' ~~ /(a)b(c)/ | ||
p6eval | nom: OUTPUT«abc» | ||
moritz | nom: say ('abc' ~~ /(a)b(c)/)[0] | ||
p6eval | nom: OUTPUT«a» | ||
moritz | nom: say ('abc' ~~ /(a)b(c)/)[0].WHAT; say $1 | ||
p6eval | nom: OUTPUT«Match()Could not find sub !postcircumfix:<[ ]>current instr.: '_block1002' pc 158 ((file unknown):157) (/tmp/8M0fEPtcDS:1)» | ||
moritz | nom: say ('abc' ~~ /(a)b(c)/)[0].WHAT | ||
p6eval | nom: OUTPUT«Match()» | ||
tadzik | nom: say ('abc' ~~ /(a)b(c)/).list[0].WHAT; say $1 | 08:33 | |
p6eval | nom: OUTPUT«Match()Could not find sub !postcircumfix:<[ ]>current instr.: '_block1002' pc 170 ((file unknown):29621359) (/tmp/ifpD8IAbEv:1)» | ||
moritz | it's the $1 the causes problems | ||
not the .WHAT | |||
jlaire | nom: 'a' ~~ /(a)/; say $/ | ||
p6eval | nom: OUTPUT«a» | ||
jlaire | nom: 'abc' ~~ /(a)b(c)/; say $/.perl | 08:34 | |
p6eval | nom: OUTPUT«abc» | ||
08:34
betterworld left
|
|||
jlaire | nom: 'abc' ~~ /(a)b(c)/; say $/.WHAT | 08:35 | |
p6eval | nom: OUTPUT«Match()» | ||
moritz | I might be able to fix $1 etc. | 08:37 | |
nom: say 'abc' ~~ /<alpha>/; say $<alpha> | 08:38 | ||
p6eval | nom: OUTPUT«aa» | ||
moritz | nom: say 'abc' ~~ /<alpha>../; say $<alpha> | 08:39 | |
p6eval | nom: OUTPUT«abca» | ||
08:42
dakkar joined
08:43
betterworld joined
|
|||
TimToady | rosettacode.org/wiki/Pythagorean_triples#Perl_6 <-- added fast algorithm with several nifty p6 idioms | 08:52 | |
moritz | rakudo: say +{a => 1, b => 2} | 08:53 | |
p6eval | rakudo b4486e: OUTPUT«2» | ||
moritz | no need for the .keys in +%trips.keys | ||
that's p5 think :-) | 08:54 | ||
08:55
am0c left
|
|||
TimToady | eep, 2am, almost | 08:56 | |
RC is addictive... | |||
moritz | oh, that's the old solution | ||
TimToady | don't remember who added the slow one... | ||
moritz | I'll change it | ||
TimToady | thanks | 08:57 | |
dalek | kudo/nom: 88f4119 | moritz++ | src/Perl6/Actions.pm: fix $0, $1 etc. |
||
TimToady | .zZ(...) | 08:59 | |
09:00
birdwindupbird left
|
|||
jnthn | morning o/ | 09:00 | |
moritz | \o | ||
felher | TimToady++ for Rosetta-Codes | 09:02 | |
pmichaud++ for blogpost (and hacking of course) | |||
moritz | indeed, pmichaud++ TimToady++ jnthn++ | 09:04 | |
jnthn reads the pmichaud++ blog post while having is mornin' coffee | 09:05 | ||
Gotta do a little $dayjob and pack for vacation, but hope to sneak another hour or so in on enums too :) | |||
tadzik | why doesn't that work on Rakudo? | 09:06 | |
it works | 09:07 | ||
09:07
drbean left
|
|||
moritz | then comment on it :-) | 09:07 | |
09:07
Chillance joined,
am0c joined
|
|||
tadzik | I'm trying to understand this RC markup | 09:08 | |
09:09
birdwindupbird joined
|
|||
moritz | good news, enabling regexes in nom wins us back quite a few test files | 09:10 | |
a few directly related to regexes | |||
and others that use regexes to verify some data | |||
jnthn | nice | ||
09:10
birdwindupbird left
|
|||
moritz | currently +6 test files, and counting | 09:11 | |
09:12
Jackneill left
|
|||
moritz | most of them aren't huge, but it still looks like a win | 09:14 | |
09:14
birdwindupbird joined
|
|||
jnthn | Guess the regex engine needs more features before we can get S05-regex/maß.t back | 09:15 | |
moritz | mass with sharp s? :-) | 09:16 | |
jnthn is just thinking of beer as usual :) | |||
moritz | :: not yet implemented at line 37, near " not | ify" | 09:17 | |
is the error it produces right now | |||
wait, that wasn't implement in master eitehr | 09:18 | ||
moritz should run the fudged version | |||
jnthn | :) | ||
jnthn hopes that one gets a bit further | |||
moritz | aliasing to key | ||
Null PMC access in invoke() | |||
current instr.: 'nqp;Perl6;RegexActions;codeblock' pc 82792 (src/gen/perl6-actions.pir:0) (src/Perl6/Actions.pm:3597) | |||
called from Sub 'nqp;Regex;Cursor;!reduce' pc 2703 (src/Regex/Cursor.pir:1023) | |||
called from Sub 'nqp;Regex;Cursor;!cursor_pass' pc 2116 (src/Regex/Cursor.pir:660) | |||
the "aliasing to key" looks like debugging output left over | 09:19 | ||
jnthn | yeah, compile time | ||
09:25
im2ee left
09:26
im2ee joined
|
|||
dalek | kudo/nom: 45c0697 | moritz++ | t/spectest.data: 6 more passing test files |
09:27 | |
09:35
wamba joined
09:41
wamba left
|
|||
tadzik | rakudo: say (1000/1).WHAT | 09:59 | |
p6eval | rakudo b4486e: OUTPUT«Rat()» | ||
tadzik | rakudo say (1000/1) div 5 | ||
rakudo: say (1000/1) div 5 | |||
p6eval | rakudo b4486e: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are::(Int $a, Int $b) in main program body at line 22:/tmp/V2HsXfFJXD» | ||
tadzik | nom: (10, 100, 1000 ... *)[3].WHAT.say | 10:00 | |
p6eval | nom: OUTPUT«Rat()» | ||
tadzik | a-ha | ||
moritz | yep, known bug | ||
tadzik | okay | ||
moritz | fixing it should be quite possible - it's all Perl 6 code | 10:01 | |
(note that master special-cases that; I fear you need to do that) | |||
tadzik | oh, looks like I volunteered to fix it :) | 10:02 | |
jnthn | tadzik++ ;) | ||
tadzik | damn :) | ||
I mean, yay! | 10:03 | ||
where is it implemented? | |||
moritz | operators.pm sub SERIES iirc | ||
10:08
Kivutarrr joined
10:09
woosley left
10:10
MayDaniel joined
10:14
mberends left,
Jackneill joined
10:16
mberends joined
|
|||
moritz | rakudo: my $a = 5; say "yes" if 3 <= $a <= 10; | 10:20 | |
p6eval | rakudo b4486e: OUTPUT«yes» | ||
moritz | perl6: my $a = 5; say "yes" if 3 <= $a <= 10; | 10:21 | |
p6eval | pugs, rakudo b4486e, niecza v7-32-g355a78a: OUTPUT«yes» | ||
moritz | seems like all major compilers get chained operators right | ||
jlaire | nom: my $a = 5; say "yes" if 3 <= $a <= 10; | 10:23 | |
p6eval | nom: OUTPUT«yes» | ||
10:24
JimmyZ joined,
drbean joined
10:25
am0c left
|
|||
JimmyZ | rakudo: class pmichaud { }; say \pmichaud; my $a = \pmichaud++; say $a; | 10:27 | |
p6eval | rakudo b4486e: OUTPUT«Capture()<0x67b3980>Capture()<0x66daa10>» | ||
JimmyZ | rakudo: class Foo { }; say \Foo ; say \Foo; | 10:29 | |
p6eval | rakudo b4486e: OUTPUT«Capture()<0x58f2ea0>Capture()<0x5bdf980>» | ||
10:29
wamba joined
|
|||
jnthn | \ forms capture :) | 10:29 | |
10:30
odoacre left
|
|||
moritz | JimmyZ has captured pmichaud and pmichaud++ :-) | 10:30 | |
moritz has the feeling that at least half of the tests involving + variable or literal are bogus | 10:31 | ||
JimmyZ | rakudo: sub postfix:<++>($a) { }; sub pmichaud { }; pmichaud++; # ++ with no errors :) | 10:32 | |
p6eval | rakudo b4486e: ( no output ) | ||
JimmyZ | rakudo: sub postfix:<++>($a) { }; class pmichaud { }; class jnthn { }; loop { pmichaud++; jnthn++ } # another one | 10:36 | |
p6eval | rakudo b4486e: OUTPUT«(timeout)» | 10:37 | |
JimmyZ | so, can class++ ? | ||
10:37
am0c joined,
MayDaniel left
|
|||
moritz | if you define a postifix:<++> that can, why not? | 10:38 | |
JimmyZ | well, I thought postfix only is used by $var or sub is rw | 10:39 | |
jnthn | It's just an operator. | ||
It does whatever you tell it to :) | |||
The thing that demands something rw is inside of the default postfix:<++> implementations. | 10:40 | ||
JimmyZ | rakudo: grammer foo {}; foo++; | ||
p6eval | rakudo b4486e: OUTPUT«Could not find sub &foo in main program body at line 22:/tmp/7QoZnZ8qAc» | ||
JimmyZ | grammer can't ++ | ||
jlaire | s/grammer/grammar/ # :) | ||
jnthn | JimmyZ: No, you spelt grammar wrong :) | 10:41 | |
Common mistake. :) | |||
JimmyZ | oh | ||
jnthn | (english spelling)-- :) | ||
nom: grammar foo {}; foo++; | 10:42 | ||
p6eval | nom: OUTPUT«Cannot assign to a non-containercurrent instr.: 'postfix:<++>' pc 417673 (src/gen/CORE.setting.pir:100247) (src/gen/CORE.setting:671)» | ||
10:46
kaare__ left,
JimmyZ left
10:47
im2ee left
10:48
im2ee joined
11:01
Jackneill left
|
|||
dalek | kudo/nom: 064bcc4 | jonathan++ | src/Perl6/ (2 files): Flesh out actions a bit for enumerations. Very much a first cut - only handles a few simple cases. |
11:01 | |
kudo/nom: fed99c4 | jonathan++ | src/Perl6/Metamodel/BaseType.pm: Need .^parents in BaseType role. |
|||
kudo/nom: 74c67f8 | jonathan++ | src/core/Enumeration.pm: Sketch out a few bits in the Enumeration role. |
|||
kudo/nom: 9c760e1 | jonathan++ | src/Perl6/Metamodel/EnumHOW.pm: Create enumeration values at enum compose times, and include the key. |
|||
11:04
daxim joined
11:05
Holy_Cow joined
|
|||
mberends | tadzik: when earlier I could not reproduce your Zavolaj test failures, I must have been running and older Rakudo or Parrot, because I now do get the same failures. No idea what to do about them, and I don't want to ask other devs to steal tuits from nom. | 11:06 | |
I guess I'll turn the tests into todo's, that way the failures will be expected | 11:08 | ||
tadzik | okay, I fixed that :) | 11:15 | |
dalek | kudo/nom: ef31cef | tadzik++ | src/core/operators.pm: Make n/1 Rats be Ints in sequence generation |
11:17 | |
tadzik | nom: my $a = 5; my $b = 5/1; say $a.?denominator; say $b.?denominator | ||
p6eval | nom: OUTPUT«Nil1» | ||
tadzik | hmm | ||
should I go for that approach in the patch? | |||
maybe not, someone can create a class that is not a Rat but has a .denominator | 11:18 | ||
11:18
wamba left
11:19
wamba joined
|
|||
jnthn | mberends: Zavolaj will also need a good looking at for nom. | 11:21 | |
mberends: I suspect it may make some master-y assumptions. It is quite a gutsy module. | |||
11:22
im2ee left
11:27
im2ee joined
11:28
slavik1 left
|
|||
moritz | nqp: say(nqp::substr("abc", -1)) | 11:31 | |
p6eval | nqp: OUTPUT«c» | ||
moritz | nqp: say(nqp::substr("abc", 0, -1)) | 11:36 | |
p6eval | nqp: OUTPUT«» | ||
moritz | nqp: say(pir::chop__Ssi("abc", 1)) | ||
p6eval | nqp: OUTPUT«error:imcc:syntax error, unexpected SREG, expecting '(' ('$S100') in file '(file unknown)' line 33error:imcc:syntax error ... somewhere in file '(file unknown)' line 103syntax error ... somewhere» | ||
moritz | nqp: say(pir::chopn__Ssi("abc", 1)) | ||
p6eval | nqp: OUTPUT«ab» | ||
11:41
Holy_Cow left
11:50
tokuhir__ joined
11:51
satyavvd left
12:08
Gambit joined
12:10
Gambit left
12:14
pnu left
12:15
JimmyZ_ joined
12:16
pnu joined
|
|||
JimmyZ_ | good evening, #perl6 | 12:16 | |
takadonet | JimmyZ_: yo | ||
JimmyZ_ | takadonet: aloha | ||
12:18
im2ee left
12:19
bluescreen10 joined
|
|||
[Coke] | Wanshang hao, JimmyZ_. | 12:19 | |
JimmyZ_ | Coke 好 | 12:20 | |
12:21
Jackneill joined
|
|||
[Coke] | xiexiene | 12:21 | |
moritz | perl6: say :16<DEAD_BEEF>; | 12:26 | |
p6eval | niecza v7-32-g355a78a: OUTPUT«===SORRY!===Action method alnumint not yet implemented at /tmp/QInlPTRzD3 line 1:------> say :16<DEAD_BEEF⏏>;Action method rad_number not yet implemented at /tmp/QInlPTRzD3 line 1:------> say :16<DEAD_BEEF>[3… | ||
..pugs, rakudo b4486e: OUTPUT«3735928559» | |||
[Coke] | aluminum integers. | 12:27 | |
dalek | kudo/nom-num: f7e4cec | moritz++ | src/Perl6/Actions.pm: (re-)introduce radcalc, but smarter than before |
||
kudo/nom-num: 64fe676 | moritz++ | src/Perl6/Actions.pm: allow arbirary number of trailing zeros. Wins back the few tests that the previous commit regressed |
|||
kudo/nom-num: 8097419 | moritz++ | src/Perl6/Actions.pm: hopefully speed up stripping of trailing zeros |
|||
kudo/nom-num: 09a43b7 | moritz++ | src/Perl6/Actions.pm: remove (mostly PIR) functions that are now mostly unused |
|||
kudo/nom-num: e939a8b | moritz++ | src/Perl6/Actions.pm: get :16<DEAD_BEEF> style literals working |
|||
moritz | rakudo: say :16('a0') | 12:29 | |
p6eval | rakudo b4486e: OUTPUT«160» | ||
moritz | perl6: say :16('a0') | ||
p6eval | niecza v7-32-g355a78a: OUTPUT«===SORRY!===Action method rad_number not yet implemented at /tmp/a8jEZIQryt line 1 (EOF):------> say :16('a0')⏏<EOL>Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 570 (CORE di… | ||
..pugs, rakudo b4486e: OUTPUT«160» | |||
[Coke] | moritz++ | 12:35 | |
jnthn | nom-num :) | ||
moritz gets better at branch naming :-) | 12:37 | ||
[Coke] | oh, those aren't in nom proper!? | ||
[Coke] sighs. | |||
jnthn: aren't you off being a redneck this week? | |||
jnthn | ...a redneck? :) | 12:38 | |
[Coke]: Only if I get sunburnt while hiking :) | |||
[Coke] | er, off in the woods, away from technology... | ||
jnthn | ah :) | ||
Yeah | |||
Going to the alps. | |||
[Coke] | when do you leave? | ||
jnthn | Just packing stuff at the moment | ||
Should probably leave in about 2.5 hours | 12:39 | ||
(Taking sleeper train from CPH, but gotta get over there first...and I don't trust the local trains to be on time when it matters...) | 12:40 | ||
moritz | where is our action method for circumfix:<( )> defined? | 12:45 | |
12:45
smash joined
|
|||
smash | hello everyone | 12:45 | |
moritz | I see one in NQP::Actions, but I don't know if rakudo actually picks it up | ||
\o smash | 12:46 | ||
never mind, found it | 12:48 | ||
jnthn | I thought Rakudo had one... | 12:49 | |
ah, good | |||
jnthn was sure he saw it yesterday :) | |||
moritz | jnthn: when we parse thing like :16('123'), there probably isn't a good way to see if the contents of that circumfix is a single constant known at compile time, is there? | 12:50 | |
12:50
_twitch joined
|
|||
jnthn | moritz: On any past node you can try $node<has_compile_time_value> | 12:51 | |
moritz tries | |||
jnthn | If that is true, you may safely use $node<compile_time_value> | ||
Which will be the actual object, not a PAST node. | |||
The enum action method uses it, amongst other places. | 12:52 | ||
constant also, iirc | |||
12:58
xinming joined
|
|||
moritz | doesn't seem to work the way I tried, I guess there are more levels of indirection involved | 13:00 | |
jnthn | Mebbe | ||
May be wrapped up in a PAST::Stmts for example | 13:01 | ||
I foudn that yesterday with enum. | |||
13:02
Holy_Cow joined
|
|||
moritz | I'd love to see a mechanism that automatically strips unnecessary wrappings, and/or propagates information known at compile time up in the tree (towards the root) | 13:03 | |
[Coke] | ISTR someone was working on such a past filter for parrot. | 13:05 | |
moritz | I tried that back in the days when tcurtis was still working on his tree-optimizations lib | ||
pmichaud | good morning, #perl6 | 13:09 | |
moritz | good morning, pmichaud | ||
13:12
pochi left
|
|||
jnthn | morning, pmichaud | 13:12 | |
13:12
pochi joined
|
|||
moritz | in the nom-num branch, I have some cases where I construct Int and Num literals inside radcalc() | 13:15 | |
should I apply the same PAST::Want magic there as method numish() does? | 13:16 | ||
pmichaud | if it's not painful, yes. | ||
moritz | it would be less painful if I refactored it into and add_numeric_constant | ||
s/and/an/ | 13:17 | ||
13:31
drbean left,
[Coke] left
13:33
[Coke] joined
13:38
[Coke] left
13:40
[Coke] joined
13:41
molaf joined
13:43
Holy_Cow left
13:44
pedram joined
13:45
pedram left
|
|||
dalek | kudo/nom-num: 01df600 | moritz++ | src/Perl6/ (2 files): refactor numeric constants to do the PAST::Want magic in a single place |
13:50 | |
moritz | pmichaud: at your convience I'd like to hear your opinion on the nom-num branch | ||
*convenience | |||
moritz can't type | |||
pmichaud: it mostly tries to unify compile time number handling, eliminates PIR code, and adds back :16<DEAD_BEEF> style literals | 13:51 | ||
13:52
[Coke] left
13:53
mtk joined,
[Coke] joined
13:55
Chillance left
|
|||
pmichaud | moritz: definitely planning to review it here in a bit | 13:57 | |
for the tests in S05-mass/rx.t, are we making any attempt to autogen that file (or otherwise synchronize it) with the rx tests in nqp, or are they basically separate? | 14:08 | ||
(I'm fine with any answer.. just want to know if it's okay for me to be editing rx.t directly :) | 14:09 | ||
jnthn | OK, time for me to be leaving. | ||
Happy hacking! I look forward to seeing how awesome nom is by the time I get back. :) | 14:10 | ||
moritz | jnthn: have fun! | ||
pmichaud | jnthn: happy travels! | ||
moritz | pmichaud: it was originally autogenerated, and then edited by hand | ||
pmichaud: so it's fine to edit it directly | 14:11 | ||
pmichaud | moritz: perfect, thanks. | ||
jnthn | Thanks! Bye o/ | ||
moritz | ~o~ | 14:12 | |
14:12
Chillance joined
|
|||
JimmyZ_ | jnthn: bye | 14:12 | |
14:18
woosley joined
|
|||
pmichaud | is it okay for me to split rx.t into smaller files? | 14:20 | |
moritz | yes | 14:21 | |
you're also welcome to move the chunks to the correct sections | 14:22 | ||
pmichaud | should I leave rx.t as-is and just create the new files, or should I remove things from rx.t also? | ||
moritz | the latter | ||
pmichaud | okay, will do | ||
thanks | |||
moritz | I don't want duplicate tests sprinkled around roast | ||
pmichaud | first, a short break, then nom-num code review | ||
PerlJam | moritz: since my ADD made me look at your code, when would you have .add_constant with differing $type and $primitive? | 14:24 | |
(technically that's not your code, but you used it so I figured the odds are good that you'd know the answer) | 14:25 | ||
moritz | PerlJam: it allows you to create other wrapper types for same storage type | 14:26 | |
PerlJam: for example you might want to serialize List, Array and Parcel both with ResizablePMCArray as storage | 14:27 | ||
PerlJam: or Int and Bool both as int | |||
PerlJam | moritz: thanks, I just needed a good example. | ||
pmichaud | hrm | ||
this is going to be expensive, at least initially :-( | |||
moritz | a more advanced serializer would figure that out by looking at the class | ||
PerlJam | moritz: yeah, I was contemplating something "more advanced" and that's what led me to ask. | 14:28 | |
moritz | PerlJam: actually there's one example that uses different primitives/types already | ||
PerlJam: Rat and Complex both use type_new and primitive | |||
s/and/as/ | 14:29 | ||
pmichaud | moritz: be aware that (iiuc) nqp doesn't do anything special with "my int $i". I.e., it's still a Parrot PMC. | 14:32 | |
moritz | ouch | ||
pmichaud | jnthn has plans to fix this... (as it works in nom), but I don't think it's been done for nqp yet. | 14:33 | |
moritz | it explains why I had to (partially) use nqp::mul_n instead of * | ||
ingy | greetings | 14:34 | |
pmichaud | even assuming it does work, won't radcalc quickly go out of the range of integers for nums and stuff like that? | ||
PerlJam | hello ingy | 14:35 | |
moritz | pmichaud: not quicker than the current solution, if we can trust roast | ||
pmichaud | current solution being... ? | ||
moritz | the code in nom | 14:36 | |
pmichaud | yes, it's wrong also. | ||
I did say that the existing solutions all have something wrong with them. | |||
moritz | I know | ||
pmichaud | better might be to follow something closer to what master does | ||
moritz | what I tried to do was to put it all into one place, so that it's easier to fix eventually | ||
pmichaud | okay, the question I have at this point becomes -- how does Str.Numeric ultimately access this code? | 14:37 | |
moritz | how smart is Str.Numeric supposed to be? | 14:38 | |
pmichaud | almost as smart as the compiler, iiuc. | ||
it certainly has to be able to handle radix conversions. | |||
moritz | then it needs to call back into the compiler | ||
pmichaud | call back into the compiler is probably too inefficient. | ||
string-to-number conversion is too common an operation for that. | |||
moritz | and reimplementing parsing of all possible number formats is insane | 14:39 | |
pmichaud | I don't think we have to do it for all number forms | ||
moritz | so, optimize for the common case, and detect when to call back into the compiler? | ||
pmichaud | yes | ||
moritz | for example radcalc is capable for handling things of the form '0xAB' | ||
pmichaud | but it should be the same code for both runtime and compile time conversions | 14:40 | |
moritz | that would involve reparsing | ||
pmichaud | well, except that radcalc seems to return PAST trees | ||
moritz | which we also avoid | ||
pmichaud | ...reparsing? | ||
why so? | |||
moritz | currently the grammar handles cases like :16<DEADBEEF> | ||
oh, never mind | 14:41 | ||
I had a logic error | |||
the only thing where we can't take the same code path is when deciding whether to call back into the compiler or not | 14:42 | ||
beccause the compiler will never do that | |||
14:42
envi left
|
|||
pmichaud | that's a good point | 14:42 | |
moritz | re returns PAST: that's easy-ish to fix | ||
what I'm a bit worried about | |||
is '3+4i'.Numeric | |||
pmichaud | is that supposed to become a complex number? | 14:43 | |
moritz | I fear so | ||
note sure, we should ask TimToady++ | 14:44 | ||
pmichaud | it is. | ||
moritz | but since we don't have a rule to parse it as a literal in the grammar, we need diverting code paths | 14:45 | |
pmichaud | S02:3325 | ||
not necessarily. the string-to-number converter can have an option for converting complexes that the grammar never calls. | |||
moritz | so, different code paths | 14:46 | |
pmichaud | how many different forms of numbers do we have? | ||
let's make a list. | |||
moritz | plain integers: 1234 | ||
rationals: 123.56 | |||
nums: 123.45e6 | 14:47 | ||
radixed numbers: :16<DEAD.BEEF> # I think also allows exponents somehow | |||
complex/imag: 3+4i, or just 4i | 14:48 | ||
autobase: 0xBEEF | |||
14:48
kaare__ joined
|
|||
moritz | other nums: Inf, NaN, +-Inf | 14:49 | |
maybe complex inf? Inf\i | |||
I think :16($thing) doesn't count, because it's not a real literal | 14:50 | ||
pmichaud | correct, that's runtime. | ||
so, is that about it? | |||
moritz | unless I forgot something | 14:51 | |
pmichaud | that's all I see. | ||
moritz | (was from memory here :-) | ||
pmichaud | It doesn't seem like it would be too hard to write a string-to-number conversion that could handle all of the above cases. | ||
moritz | well, to me it seems we need two functions: | 14:52 | |
1) a string-tokens-to-number convert, used both in Str.Numeric and at compile time | |||
2) a parser for strings that is only used in Str.Numeric | 14:53 | ||
pmichaud | I don't understand why we need #2. | ||
wait, rephrase. | |||
I don't understand why #2 can't be just part of #1. | |||
and by "parser" I'm specifically thinking "not regexes" | 14:54 | ||
moritz | a parsers is not the same as a converter. By separating the two, we probably get cleaner code, and it will be easier to see which parts are reused by both compile time and run time | ||
s/parsers/parser/ | 14:55 | ||
pmichaud | let's assume I have a string-to-number converter that can handle all of the cases we identified. Why can't the compiler use that? | ||
moritz | it can, but then we get reparsing | 14:56 | |
pmichaud | if the "reparsing" in the string-to-number converter is fast, why is that a problem? | ||
and it's at compile time... so why is that an issue? | |||
moritz | maintenance | 14:57 | |
pmichaud | technically radcalc is even now doing "reparsing" | ||
moritz | what if you change the number formats in one of the parsers? | ||
pmichaud | we update the string to number converter... but we'd have to do that anyway. | 14:58 | |
moritz | pmichaud: it does probably too much | ||
perl6: say +' 5' | |||
p6eval | pugs, rakudo b4486e, niecza v7-32-g355a78a: OUTPUT«5» | ||
moritz | pmichaud: so, do you want me to merge nom-num for now, as an incremental improvement, and continue working on the more general parser? | 15:03 | |
pmichaud | +1 | ||
moritz | (though I'm not sure I have enough experience with non-regex based parsers to come up with a good one) | ||
what I at least can do is to collect test cases | 15:04 | ||
perl6: say +'1.4e5x' | |||
p6eval | pugs, rakudo b4486e: OUTPUT«140000» | ||
..niecza v7-32-g355a78a: OUTPUT«Unhandled exception: System.FormatException: Unknown char: x at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0  at System.Double.Parse (System.String s, IFormatProvider provider) [0x… | |||
pmichaud | for numbers, a dfa-based solution tends to work well | ||
number parsing rarely involves backtracking | |||
moritz | so, write a big regex, and hand-translate to a DFA? | 15:05 | |
pmichaud | we have a big regex already | ||
it's in the grammar :) | |||
moritz | that's not complete (see the 3+4i case) | ||
pmichaud | so, add that case | ||
(mentally, not actually into std.pm) | 15:06 | ||
moritz is a bit scared :-) | |||
pmichaud | maybe I can prototype the parsing bit in nqp | ||
that will at least let us both see what I'm aiming at, and then maybe you can work on integrating it into rakudo | 15:07 | ||
sorear | good * #perl6 | 15:09 | |
pmichaud: did studying niecza help at all with qregex? | |||
pmichaud | sorear: it helped a ton. thanks. | ||
the ltm stuff was a lot easier to follow in niecza than in Cursor.pmc | 15:10 | ||
TimToady | someday soon LTM dfa will hopefully be fast enough to do number parsing, and then we'll want extensible number literals | ||
pmichaud | TimToady: yes, I'm thinking that as well. the slowdown (for Rakudo at least) is in the captures. | 15:11 | |
TimToady | might be an appropriate spot to throw in a tagged DFA instead, so that captures are just offsets into the string | 15:12 | |
not expecting that right away though | |||
pmichaud | right | ||
I think a fully-grammar based solution is ultimately possible... just not likely in the near future. | |||
(where "near future" means "2011") | 15:13 | ||
sorear | pmichaud: STD.pm6 has a rule 'strtonum' with a comment that suggests it's intended to be the definition of Str.Numeric | ||
TimToady | also, we might have an arrangement whereby, instead of actually using LTM for everything, we just notice that something looks funny about a normal number, and only invoke the grammar when we're not sure | ||
yeah, we had some stuff in there, but it's likely bitrotted | |||
pmichaud | sorear++ # excellent catch, thanks! | ||
moritz: I need to take a short walk, then I'll come back and see what I can put together for a parser | 15:14 | ||
TimToady | you'll note that strtonum is still not handling whitespace | 15:15 | |
sorear | should it? | 15:16 | |
TimToady | probably not | ||
but there should be some other rule that does | |||
pmichaud | we allow leading whitespace in strings but not in the middle of the constant, yes? | ||
moritz | so should +' 5' be 0? | ||
TimToady | or the conversion routine does | ||
moritz: certainly not | 15:17 | ||
sorear | another question....should Perl6 keep the "silently ignore trailing garbage" that Perl5 does? | ||
pmichaud | +' 5+4i' # complex | ||
+' 5 + 4i' # int with warning about extra stuff | |||
in a sixperl call long ago, I think we leaned away from "silently ignore trailing garbage" | |||
moritz | sorear: I'd say we should require a word boundary at least | ||
sorear | I'm inclined to call +' 5' an error, but I'm biased to strictness like that | ||
TimToady | thinking of the <5+4i> case, yes, I think we should be picky about wordiness | ||
15:17
am0c left
|
|||
TimToady | but not about leading trailing | 15:18 | |
(whitespace) | |||
moritz | +'5isnotgood' # 0, 5 or 5i? | ||
sorear | or exception? | ||
Failure | |||
pmichaud | at least a warning. | ||
failure is fine with me. | |||
TimToady | hmm, .comb(/<strtonum>/) :) | 15:19 | |
that expresses the intent to ignore garbage | |||
pmichaud | afk for a bit | ||
PerlJam | +'5e3' and +'5e3blah' # ? | 15:20 | |
TimToady | as long as the user can invoke strtonum directly, there's no reason to allow trailing garbage by default | 15:21 | |
other than ws | |||
moritz | so no Inf\i in strtonum | ||
TimToady | after all, trailing garbage may indicate a number conversion that they thought they were importing but didn't | ||
moritz can live with that | |||
sorear | How should strtonum be exposed to the user? | 15:22 | |
flussence | Str.parseInt? :) /me ducks | ||
sorear | Should +~(Inf\i) be made to work? | ||
flussence: ITYM int.Parse :p | 15:23 | ||
TimToady | why shouldn't 'Inf\i' parse? | ||
15:23
thou joined
|
|||
moritz | which subrule would match the \ ? | 15:23 | |
TimToady | nobody has claimed that strtonum is correct yet :) | 15:24 | |
moritz | oh wait, it's even in there | ||
sorear | let's work out a working strtonum *today* | ||
TimToady | if we can allow "prefix" +/- on the front, we can all "postfix" \i on the back | ||
moritz is just too blind | |||
TimToady | *allow | 15:25 | |
why, so it is...fancy that... | 15:27 | ||
moritz | sorry for being rash | 15:28 | |
TimToady is never rash, except when he is | 15:29 | ||
15:30
am0c joined,
thou_ joined
|
|||
moritz | S02-builtin_data_types.t has isa_ok(+"0b0101", Rat) | 15:30 | |
that's wrong, should be an Int, right? | |||
TimToady | das ist richtig | ||
moritz | erm, s/b/d/ (but doesn't really matter here) | 15:31 | |
es ist richtig, dass es falsch ist? :-) | |||
TimToady | Hai, sou desu! | ||
15:33
thou left
|
|||
TimToady | now if it were Real, that would be okay | 15:33 | |
maybe that's what they were thinking | 15:34 | ||
except for the 'isa' part | |||
I don't suppose we have a does_ok... | |||
pmichaud | back again | 15:35 | |
15:36
woosley left
|
|||
pmichaud | TimToady: are you suggesting that <strtonum> is a standard rule, like <alpha> or <digit>? | 15:36 | |
TimToady | possibly | ||
pmichaud | or is that just a place holder for something like <Perl6::strtonum> ? | ||
TimToady | or something | ||
pmichaud | I vote for <number> instead of <strtonum>, if we do that. | 15:37 | |
TimToady | that's taken | ||
pmichaud | we can change the existing <number> :-) | ||
<strtonum> as a name probably doesn't quite work. | |||
TimToady | yes, we could | ||
pmichaud | maybe <stdnum> | 15:38 | |
TimToady | <numeric> | ||
pmichaud | <numeric> works for me. | ||
[Coke] | Whenever TimToady says "possibly", I hear it as "mayyyyyyyyyyyyyyyyyyyyyybe". | ||
pmichaud | [Coke]: you are perceptive. :) | ||
[Coke] | ah, I was going for silly. ;) | 15:39 | |
TimToady | possibly means possibly <mutter>not</mutter> | ||
pmichaud | <numeric> is the set of things that Str.Numeric recognizes | ||
TimToady | that's why I suggested it :) | ||
pmichaud | you gave the name but not the reason :) | ||
TimToady | okay, then pmichaud++ gets the credit :) | 15:40 | |
pmichaud | not all of us automatically see the connections in your brane :) | ||
TimToady | you and me both | ||
15:41
_twitch left
|
|||
dalek | d: 516268a | larry++ | STD.pm6: s/strtonum/numeric/ |
15:43 | |
15:43
mj41 left
15:45
wtw left
15:49
mberends left
|
|||
pmichaud | do we expect this to work? say +":16< ffff #`(hah!) >" | 15:51 | |
15:51
molaf left
|
|||
pmichaud | moritz: okay, I'm convinced we need two codepaths. Str.Numeric will use a fast converter when it recognizes the string, and fall back to eval(self) when it doesn't. | 15:53 | |
it would be nice if the compiler could also use the fast converter, but that's not necessary. | 15:54 | ||
15:54
jferrero left
15:55
jferrero joined
|
|||
pmichaud | or, more likely, eval(self) if $_ ~~ /<numeric>/ | 15:56 | |
or something like that <waves hands about in a TimToady++ like fashion> | |||
for me, "fast converter" should handle decimal ints, rats, and nums. If it can easily handle the predefined radix forms ('0x', '0o, ...) that's fine too, but I'm not as picky about that. | 16:02 | ||
TimToady | obviously you don't want to set up for a code injection | ||
pmichaud | right, that's why we need the <numeric> test. | ||
and eval(...) doesn't have to be a real eval -- it just needs to get into the current parser and compiler somehow. | 16:03 | ||
TimToady | if we're doing constant folding right, the .ast should be easily foldable | ||
if not prefolded by the parser | 16:04 | ||
pmichaud | yes, I suppose we could do some variation of (self ~~ /<numeric>/).ast | ||
16:05
cognominal_ joined
|
|||
pmichaud | that makes a lot more sense | 16:05 | |
TimToady | and if a number doesnt fold itself, then there's an indication of a security hole, or something marked impure that shouldn't be | ||
sorear | TimToady: If I put "say 2" in CORE.setting and then ran a program consisting of "use Test;", how many times would you expect 2 to be printed? | 16:07 | |
pmichaud | need lunch.. bbiah | ||
16:08
cognominal left,
benabik left
|
|||
cbk | How can I push|access|update the last element in an muti-dimensional hash of arrays? I have tried everything and completely at a lost here. | 16:10 | |
so far i have %materialPriceHistory = ( XFine => [40], Fine => [30], Std => [20], ); | 16:11 | ||
sorear | cbk: Hashes are unordered, they don't have last elements. | ||
PerlJam | cbk: perhaps you wanted to use an array instead of a hash? | 16:12 | |
cbk | I want a hash of arrays, and need to update/push a value to the last elem | ||
moritz | %hash.values>>.push($new_elem) | ||
%hash.values>>.[*-1] = $new_elem xx * | 16:13 | ||
PerlJam | cbk: the last element of all of the arrays? | ||
16:13
al_form joined
|
|||
moritz | that would be %hash.values>>.[*-1] | 16:14 | |
cbk | PerlJam no each key will have different value in its array (this reps. price history) | ||
so each month I will update the current price for each key in the hash | 16:15 | ||
16:15
al_form left
16:16
donri left
|
|||
moritz | so you have a list of new prices? | 16:16 | |
16:16
donri joined
|
|||
cbk | moritz that gets calc. based on other values | 16:17 | |
PerlJam | cbk: do you have the list of values all at once (like in an array or an analogous hash structure) ? | 16:18 | |
16:18
cognominal_ left,
cognominal_ joined
|
|||
moritz | so something like for %hash.kv -> $k, $v { %hash{$k}.push: calculate_new_price($v) } ? | 16:19 | |
cbk | PerlJam I have the values all at once | ||
moritz, yes i think | |||
PerlJam | moritz++ your ESP-fu is great today :) | 16:20 | |
cbk | moritz so is there a space between .push: calculate...? | ||
moritz | cbk: yes | 16:22 | |
16:22
ab5tract joined
|
|||
cbk | moritz, ok | 16:22 | |
16:24
jerome joined
|
|||
JimmyZ_ | rakudo: my %hash9; %hash9{1} = 2; for %hash9 -> $k, $v { say $k; $v; } # why it doesn't work? | 16:24 | |
p6eval | rakudo b4486e: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in <anon> at line 22:/tmp/YvaoJ_kUBR in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp» | ||
16:25
JimmyZ_ left
|
|||
jlaire | because of missing .kv, but that's LTA | 16:28 | |
cbk | moritz, Thank you! that worked flawless: output form say %history.perl {"xFine" => [40, 50, 9999], "fine" => [30, 9999], "std" => [20, 9999]} | 16:29 | |
someone should give you that ++ thingy! | |||
TimToady | sorear: the setting is intended to provide only a lexical context, not a dynamic context. I'd not expect a say to do anything except when actually compiling the setting | ||
16:29
zby_home_ joined
|
|||
moritz | cbk: you do it :-) | 16:29 | |
cbk | moritz++ | 16:30 | |
moritz | cbk: and wow, you're prices are sure going up :-) | ||
TimToady | sorear: the specced way to get the setting to do dynamic stuff is by defining (lexically) a MAIN | ||
cbk | moritz thats just testing code | ||
16:42
masak joined
|
|||
masak | greetings, pandas. | 16:42 | |
16:43
daxim left,
lichtkind joined
16:45
daniel-s left
16:53
envi joined
|
|||
dukeleto | tadzik: ping | 16:55 | |
sorear | o/ masak | 16:59 | |
masak | \o | 17:01 | |
thou_ | masak: have you looked at plackdo? at first blush, it looks nicely coded and like a lot of work has been done already; it's more complete than Web.pm + HTTP::Server::Simple combined, at this point. | ||
dalek | ecza: 02fae77 | sorear++ | / (4 files): eval code runs with eval caller as root of protopads, not just runtime |
17:02 | |
masak | thou_: I'm not sure I've even heard of it, but the news makes me happy. who is coding it? | ||
thou_ | is lopnor (plackdo author) on irc? i saw a talk from him about plackdo on the 'net. | ||
masak | ah ,lopnor. | 17:03 | |
s/ ,/, / | |||
I think I've seen em around, yes. | |||
thou_ | you've been hanging around with Moukkedar too much | ||
masak | :P | ||
17:03
dakkar left
|
|||
masak | (sorry, moritz) :/ | 17:03 | |
masak learns the appropriate spelling of 'pedestal' | 17:04 | ||
thou_ | github.com/lopnor/p6-plackdo | ||
17:04
thou_ is now known as thou
|
|||
dukeleto likes plack for perl 6. Somebody asked me if it existed at my perl 6 talk yesterday | 17:06 | ||
eiro | /plack/ and wake-up($eiro) | ||
thou | re: plackdo, all the tests pass with current rakudo-master | ||
eiro | thou, is there a plack version of perl6 ? | ||
OMG awesome! | |||
thou | eiro: that's what plackdo seems to be going for -- it's pretty much a straight port | ||
17:07
ab5tract left,
jevin left
17:09
jevin joined
|
|||
thou | imo it makes sense to put effort into that project (add more Plackdo::Handler::*, Middleware, etc.). from what i could tell from lopnar's talk in taipei, i think he'd be open to contributions and making it a community project. | 17:09 | |
i'd like to see some modules moved up a level (Plackdo::HTTP::* -> HTTP::*, for example) | |||
pmichaud | moritz: I'm going to create a nqp opcode that will do basic radix conversions for us as a primitive. We can then build up more complex sequences from that. | 17:11 | |
moritz | pmichaud: where "basic radix conversion" means (str, base) -> int ? | ||
masak | a Container has @.contents, but what does a Platform have? | 17:12 | |
pmichaud | (str, base) -> (value, denominator, pos) | ||
moritz | @.rails | ||
masak | (i.e. a thing which you can put things "on", not "in".) | ||
moritz | @.parking-lots | ||
pmichaud | "denominator" is basically radix ** number of digits in the str | ||
(excluding trailing zeroes) | |||
masak | maybe I should call it Base, but that's a bit OO-overloaded too. | ||
moritz | and pos? | 17:13 | |
pmichaud | pos is the number of characters it consumed | ||
moritz | ok | ||
pmichaud | or, more accurately, it's the position at which it stopped consuming | ||
masak goes with @.things for the now | |||
thou | eiro: i think it'd be awesome to have a solid, community-supported implementation that is basically Plackdo + LWP on perl6, to cover the complete web development space from server > middleware > web app + user-agent/foo; i think it's pretty attainable right now with a bit of organization | ||
moritz | where should tests for the Str.Numeric conversion go? | 17:14 | |
17:14
jferrero left
|
|||
pmichaud | make a new test file, perhaps? | 17:14 | |
17:14
MayDaniel joined
|
|||
moritz | probably best | 17:14 | |
pmichaud | basic_data_types/str-something | ||
02-basic_data_types/str-numeric.t | |||
moritz | or maybe S32-str/numeric.t ? | ||
pmichaud | could go there too, I suppose. | 17:15 | |
moritz doesn't like the proliferation of S02-builtin_data_types tests | |||
pmichaud | there's not a clear line between what goes into 02-basic_data_types and S32-* | ||
17:15
jferrero joined
|
|||
pmichaud | and I absolutely abhor the name "S02-basic_data_types", especially the mixing of hyphen and underscores part | 17:15 | |
plus it's so long for something so... basic | |||
it's improperly huffmanized | |||
if the S02-basic_data_types found their way into S32-* equivalents, I think I'd be pretty happy. :) | 17:16 | ||
thou | eiro: i've never used plack/rack/wsgi for anything serious, but i'm hacking on November wiki as a way to deepen my perl6 knowledge (and contribute to the community), so i've got some motivation for being part of such an effort. are you involved in porting Dancer to perl6? or do i mis-remember? | ||
sorear | dukeleto: perl 6 talk yesterday, where? | 17:20 | |
thou | moritz, pmichaud: imo S02 is too big already, so i'm +1 on the idea of moving at least whatever tests make sense in a different section out of the S02-* namespace | 17:21 | |
masak | alpha: class C { has $.name = self.WHAT.perl }; say C.new.name | ||
p6eval | alpha : OUTPUT«C» | ||
masak | rakudo: class C { has $.name = self.WHAT.perl }; say C.new.name | ||
p6eval | rakudo b4486e: OUTPUT«C» | ||
masak | nom: class C { has $.name = self.WHAT.perl }; say C.new.name | ||
p6eval | nom: OUTPUT«Symbol 'self' not predeclared in <anonymous> (/tmp/EUlC244vWj:1)current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (compilers/pct/src/PCT/HLLCompiler.pir:107)» | ||
masak | awww | ||
eiro | thou, i'm just a plack user. i never developped anything for plack | ||
masak | eiro: salut! \o | ||
thou | eiro: ok. maybe you can check out plackdo's current state, and see what things you're used to in plack that are missing there, to set some priorities on what to implement next | 17:22 | |
eiro | but basically, i'm playing with tatsumaki, Template::Declare and MooseX::Declare to make long-polled powered webapp. perl6 version would be awesome | ||
17:22
mj41 joined
|
|||
eiro | hello masak! i oversold nom at #rmll so i expect it to be the next rakudo star :) | 17:23 | |
masak | eiro: :) | ||
thou | hmmm, i bet tatsumaki-style backend for perl6 would be pretty hard to implement at the moment | ||
masak kinda liked the name "Rakudo Moon" | |||
eiro | ok | ||
thou, it's just an idea. i don't think i will have time to play with it actually (i have stuff to do and i'm stuck with perl5) | 17:24 | ||
but i'll watch your work :) | |||
thou | eiro: ok, that's good :-) | ||
masak | eiro: Rakudo on nom will be great -- but it probably won't astonish until the optimizer lands a few months later. | 17:25 | |
17:26
patrickas joined
|
|||
patrickas | o/ | 17:26 | |
masak | patrickas! \o | ||
17:26
perlhack joined
|
|||
masak | perlhack! \o/ | 17:26 | |
perlhack | long time no see | ||
masak | |||
thou is excited about the non-optimization things it'll open up, too; consistent underlying object model should make it eas<y ier> to implement some of perl6's more esoteric introspection and other features | |||
masak | 还久不见了 | ||
thou | ni hao, perlhack! | ||
patrickas | I am trying to build nom on win32 (for the first time) and getting an error : opcode index out of bounds on library `core_ops'. Found 1084, expected 0 to 1070. | 17:27 | |
dalek | ast: b32ed21 | moritz++ | S03-operators/boolean-bitwise.t: fudge boolean-bitwise.t for rakudo |
||
ast: 0fd99d3 | moritz++ | S (2 files): start to systematically test string numification Also corrects a test in num.t, and removes another wrong test |
|||
perlhack | thou: ni hao | ||
moritz | patrickas: sounds like an outdated parrot or rakudo build interfering | 17:28 | |
patrickas | am I out of luck since jnthn++ is on vacation ? | ||
perlhack | it's a nice day | ||
masak | |||
patrickas | I'll make clean | ||
masak | perlhack: yes, it is. :) | ||
patrickas | maybe even realclean | ||
moritz | patrickas: and don't forget to delete the installation folder too | 17:29 | |
patrickas | which folder ? | ||
17:30
Jackneill left
|
|||
moritz | the 'isntall' subfolder of rakudo | 17:30 | |
erm, install | |||
minus typos :-) | |||
17:30
Jackneill joined
|
|||
flussence | if you're using a git checkout the easiest way is git clean -xdf | 17:30 | |
(and the same in ./parrot if you do it that way) | |||
perlhack | i'm still sleepy. | ||
moritz | perl6: say 0x123 | ||
p6eval | pugs, rakudo b4486e, niecza v7-33-g02fae77: OUTPUT«291» | 17:31 | |
perlhack | pugs Audrey Tang | ||
sorear | huh. | 17:32 | |
17:32
mj41 left
|
|||
sorear | use Test; $_ = 5 dies | 17:32 | |
remove use Test and it works | |||
moritz | where? niecza? | ||
sorear | ya | ||
patrickas | sorear you have to contact the guy who wrote niecza for help with that :-p | 17:33 | |
17:35
perlhack left
|
|||
dukeleto | phenny: tell tadzik panda error gist.github.com/1081878 | 17:39 | |
phenny | dukeleto: I'll pass that on when tadzik is around. | ||
17:40
perlhack joined
|
|||
perlhack | I share with you how much vocabulary | 17:40 | |
17:40
jaldhar left
|
|||
masak | perlhack: "How much vocabulary do I share with you?" | 17:41 | |
perlhack: note the reversed word order, and the word "do" because of it. | 17:42 | ||
perlhack: that's common for questions in English. | |||
perlhack | yes. thanks . | ||
17:43
mberends joined
|
|||
perlhack | masak, how much vocabulary ?? | 17:43 | |
17:43
MayDaniel left
|
|||
masak | perlhack: I am not sure how to answer that question. | 17:43 | |
17:43
benabik joined
|
|||
masak | perlhack: you seem to be picking up English fairly quickly, though. | 17:44 | |
patrickas | same error after cleaning / deleting / re making ! | ||
perlhack | thinks .4000 can do ? | 17:45 | |
masak | |||
masak | perlhack: I always find such measures more or less meaningless. | ||
perlhack: are you asking because you refuse to learn word 4001? or because you won't do it if it turns out you need 5000 words to get by? | 17:46 | ||
perlhack: or because you think word 4000 is really good to know, but word 4001 is useless? | |||
lucs | About 500 words can be enough for everyday conversation. | 17:47 | |
perlhack | it 's useful. | ||
masak | |||
a !!!! 500? | |||
masak | perlhack: if you say so :P | ||
perlhack: but I can't answer it for you, I'm afraid. | 17:48 | ||
lucs | perlhack: Sure. Not too many technical terms in those, but still :) | ||
perlhack | haha | ||
moritz | perl6: say 0o77 | ||
p6eval | pugs, rakudo b4486e, niecza v7-33-g02fae77: OUTPUT«63» | 17:49 | |
perlhack | masak, thanks | ||
lucs, thanks | 17:50 | ||
:-) i often exchange and Audrey Tang. | 17:53 | ||
masak | & | 17:56 | |
perlhack | masak, what mean "&" ? | 17:57 | |
opreator ? | |||
lucs | It means he is now in the "background" (like when it's used in a shell command). | 17:58 | |
17:58
[Coke] left
18:00
[Coke] joined
|
|||
perlhack | ouch! i am a Linux administrator.i see it | 18:00 | |
lucs | |||
lucs | :) | ||
18:00
mberends left
|
|||
perlhack | i would like to exchange with you for 10 years | 18:00 | |
lucs | One day at a time :) | 18:01 | |
18:01
awwaiid joined
|
|||
perlhack | yes.haha | 18:01 | |
i will be very good native english speaker. | 18:02 | ||
18:02
tokuhir__ left
|
|||
moritz | perl6: say :36<az> | 18:10 | |
p6eval | pugs, rakudo b4486e: OUTPUT«395» | ||
..niecza v7-33-g02fae77: OUTPUT«===SORRY!===Action method alnumint not yet implemented at /tmp/wl6rxRQx1R line 1:------> say :36<az⏏>Action method rad_number not yet implemented at /tmp/wl6rxRQx1R line 1 (EOF):------> say :36<az>⏏<… | |||
dalek | ast: a207da9 | moritz++ | S32-str/numeric.t: more numification tests |
18:13 | |
18:14
mberends joined,
[Coke] left,
perlhack left
|
|||
moritz | std: 1e1_0 | 18:17 | |
p6eval | std 516268a: OUTPUT«ok 00:01 118m» | ||
18:18
[Coke] joined
|
|||
dalek | ast: cbe385a | moritz++ | S32-str/numeric.t: more numification tests |
18:20 | |
18:23
birdwindupbird left
18:26
impious joined
|
|||
dalek | ecza: 8d724eb | sorear++ | lib/ (2 files): Fix use Test; $_ = 5 |
18:30 | |
18:30
mberends left
18:33
patrickas left
|
|||
moritz | std: :1_0<34> | 18:36 | |
p6eval | std 516268a: OUTPUT«===SORRY!===Extra argument not allowed; pair already has argument of 1 at /tmp/X43Gsgk2SH line 1:------> :1_0⏏<34>Check failedFAILED 00:01 118m» | ||
moritz | pugs: :8<42.35> | 18:37 | |
p6eval | pugs: ( no output ) | ||
moritz | pugs: say :8<42.35> | ||
p6eval | pugs: OUTPUT«34.453125» | ||
18:38
im2ee joined
|
|||
pmichaud | moritz: are you working on string literals or also on Str.Numeric ? | 18:43 | |
wait | |||
are you working on numeric literals (compile time) or also on Str.Numeric (run time)? | |||
I'll have some code together for the "fast converter" of runtime strings in a couple of hours ($otherjob is in the way) | 18:44 | ||
18:44
envi left
|
|||
tadzik | dukeleto: pong | 18:46 | |
phenny | tadzik: 17:39Z <dukeleto> tell tadzik panda error gist.github.com/1081878 | ||
tadzik | phenny: tell dukeleto that's because of too old prove, no -e switch in it | 18:47 | |
phenny | tadzik: I'll pass that on when dukeleto is around. | ||
tadzik | phenny: thank you darling | ||
TimToady | sorear: the new 2nd entry for rosettacode.org/wiki/Pythagorean_triples#Perl_6 shows that niecza can be pretty fast at some things :) | 18:48 | |
it can count all pythagorean triples with perimeter less than a billion | 18:49 | ||
mikemol | Some of p6eval's output is really screwing with irssi->screen->PuTTY. Weird. | ||
[Coke] | can you see the butterfly in the topic? | 18:52 | |
mikemol | Yeah | ||
[Coke] | (that'll rule out generic utf8 issues) | ||
mikemol | img219.imageshack.us/img219/5812/p6...nputty.png | ||
TimToady | sorear: mind you, it heated up my laptop for an hour or so to get the last line, so it'd take longer on your machine... | 18:53 | |
pmichaud | I remember when Juerd++ once reported that an early version of PGE was able to handle a regex that choked P5 (although it took a really time to do it) :) | 18:54 | |
anyway, niecza++, as always | |||
TimToady | your long is too short | ||
18:54
ng1962 joined
|
|||
TimToady | I think rakudo could run it too if it didn't die on the recursion limit | 18:55 | |
pmichaud | indeed, it is. | ||
(my long is too short, that is) | |||
PerlJam | he accidentally his long. | ||
pmichaud | oh, we could probably bump the recursion limit in Rakudo. | ||
tadzik | oh, you stumbled upon that too? :) | 18:57 | |
mikemol | I wonder if it would be possible to detect cycles(infinite recursion) in recursive algorithms, and have that as a useful means of triggering a stack-overflow-like exception. | ||
With detection of cycles, it might be generally acceptable to otherwise bump recursion limits. | |||
dukeleto | tadzik: ok, I will let my buddy know. I gues we need a newer TAP::Harness | ||
phenny | dukeleto: 18:47Z <tadzik> tell dukeleto that's because of too old prove, no -e switch in it | ||
tadzik | dukeleto: I was considering defaulting to parrot_prove in panda, but never tried that in action | 18:58 | |
18:58
skangas left
|
|||
dukeleto | tadzik: also, some people from PDX.pm that a switch be added to prove to tell it we are running perl 6 tests | 18:59 | |
tadzik: i.e. making -l work for perl 6 stuff | |||
dukeleto dreams of typing prove -6 -rv t/ | |||
tadzik | dukeleto: you remember the first thing I mentioned as a desired feature for panda? :) | 19:00 | |
19:01
wamba left
|
|||
dukeleto | tadzik: indeed. | 19:01 | |
tadzik: that panda should be able to run tests? or just removing the prove dependency? | 19:02 | ||
tadzik | removing the prove dependency. It can run tests now, it does :) | ||
dukeleto | tadzik: yes, but you need Makefiles to run tests. Yuck. | 19:03 | |
tadzik | why so? | ||
I don't | |||
dukeleto | tadzik: ufo && make test ? | ||
tadzik: it requires makefiles, no? | |||
tadzik | dukeleto: why would you need to use ufo? | ||
panda does not depend on ufo nor make | 19:04 | ||
dukeleto | tadzik: how does one run panda tests without ufo, make or prove? | ||
tadzik | ha, one doesn't. You need prove | 19:05 | |
in a dreamworld you don't | |||
dalek | ast: 270340f | moritz++ | S32-str/numeric.t: more Str -> Rat,Complex tests |
||
p: 6a6285f | pmichaud++ | src/QRegex/P6Regex/Actions.nqp: Remove some debugging output. |
|||
p: 30ed7ec | pmichaud++ | src/ops/nqp.ops: Add nqp_radix opcode for simplifying string->number conversions. |
|||
p: 0eea302 | pmichaud++ | src/ops/nqp.ops: Fix underscore bug in nqp_radix opcode. |
|||
dukeleto | tadzik: sure. So if you want to remove the prove dependency, what do you replace it with? It seems like a TAP::Harness for Perl 6 is needed | ||
tadzik | aye | ||
dukeleto | tadzik: we have a TAP::Harness in parrot, so rakudo benefits from that, but other Perl 6 implementations don't | 19:06 | |
tadzik | maybe we could reuse parrot's TAP::Harness | ||
or we may want a pureperl6 harness | |||
19:06
ng1962 left
|
|||
[Coke] | pmichaud: something like github.com/partcl/partcl/blob/mast...b.pir#L338 will work. | 19:06 | |
dukeleto | tadzik: sure. that would be much nicer. It feels wrong to know that we have TAP::Harness implemented at the VM level, but it would need to be rewritten at a higher level to be useful for Perl 6 implementation other than Rakudo | ||
tadzik | that doesn't sound too hard to do | 19:07 | |
19:07
cipherte1t joined,
Jackneill left
|
|||
pmichaud | [Coke]++ # thanks | 19:07 | |
dukeleto | tadzik: here is my version of TAP::Harness in PIR: github.com/leto/tapir | ||
19:07
ciphertext left
|
|||
dukeleto | tadzik: it at least has some tests that you can steal | 19:07 | |
tadzik: beware, it was last developed on parrot 1.8.0, so it is composting | 19:08 | ||
dukeleto likes to say composting instead of bitrotting. It is closer to reality, where old code provides mental nutrients for coders to write new code | 19:09 | ||
tadzik | I'll cover me nose | ||
but for now, I'm gone :) see you later | |||
19:14
cooper joined,
cooper left,
cooper joined
|
|||
[Coke] | in general, I can't see perl6 really taking advantange of things written in PIR. | 19:15 | |
slavik | I agree | ||
wait, [Coke], what do you mean? | |||
dalek | ast: 0aa6858 | moritz++ | S32-str/numeric.t: more Str -> Complex conversion tests |
19:18 | |
19:19
Trashlord left
|
|||
moritz | 131 tests for Str.Numeric | 19:19 | |
pmichaud | cool, I'm writing up a version now. | 19:20 | |
19:20
Trashlord joined
|
|||
moritz | ok, what type should +'Inf' return? | 19:20 | |
Num? Int? | |||
TimToady | er...Cool? | ||
moritz | then Cool would need storage | 19:21 | |
pmichaud | It could just be a defined type. | ||
TimToady thinks about Inf as a role | 19:22 | ||
moritz | should +'' also fail? (just to be sure) | 19:23 | |
[Coke] | slavik: well, rakudo, specifically, obviously; but I don't think the perl6 community gets a lot of bang using .net or parrot specific functionality. Seems like it would have to be something pretty specific to the machine to make it worthwhile. | ||
TimToady | moritz: we don't require a leading 0 on any other number, so why do we require one on '0'? :) | 19:24 | |
dalek | ecza: 4fc3649 | sorear++ | lib/CLRBackend.cs: Implement labels and multisubs for protopad use |
19:25 | |
moritz | TimToady: because we don't parse + as +0 :-) | ||
[Coke] | ... ew. | ||
moritz | TimToady: I'd be fine with numifying the empty string to 0, just want to know | ||
sorear | TimToady: I think Inf is an antirole | 19:26 | |
TimToady | it's more of a failure | ||
sorear | TimToady: Int ~~ Numeric but Inf ~~ Int | ||
the order of subtyping is reversed from the regular roles | |||
TimToady | .o(interesting values of 'bottom') | ||
sorear | I imagine you've already thought about this, since you talked about "Failure roles" | 19:27 | |
how does Failure ~~ Int come to be true, implementationally speaking? | |||
TimToady | I think of it as Failure getting mixed in, so Int is a parent | 19:29 | |
masak | pmichaud: I once found a million-character string that Perl 5 choked on but Rakudo/PGE could handle just fine (but slowly). | ||
sorear | how does Failure know to do that? | ||
masak | Failure but Int but Num but Rat but Str... # p'haps not... | 19:30 | |
sorear: could you say a bit more about the concept of an 'antirole'? | 19:31 | ||
TimToady | that's backwards, it'd be Int but Failure | 19:32 | |
masak | ah, but of course. | ||
TimToady | like the typical jazz musician: Cool but Failure | ||
masak | :P | ||
sorear | masak: my Numeric $x = Int works because Numeric is a role. my Int $x = Failure is required to work, so Failure must be the opposite of a role | 19:33 | |
19:33
wamba joined
|
|||
sorear | I don't actually know how this is supposed to work | 19:33 | |
it might not even make any sense | |||
TimToady | what about Int but Failure doesn't make sense? | ||
masak | seems Failure would be the only such entity, though. | ||
slavik | [Coke]: rakudo can't load .pir at the moment :( | 19:34 | |
TimToady | Failure would just be 'bottom'-colored paint | ||
sorear | masak: my Int $x = Inf; my Num $x = Inf | ||
masak: NaN, too | |||
masak | sorear: oh! true! they're like "small bottoms". | ||
local bottoms. | |||
TimToady | Inf and NaN would likely be considered defined bottoms | ||
perl6: say Inf.defined | 19:35 | ||
sorear | TimToady: the process by which "Failure" promotes itself to "Int but Failure" is ill-defined and might turn out to be undefinable | ||
p6eval | rakudo b4486e, niecza v7-35-g4fc3649: OUTPUT«Bool::True» | ||
..pugs: OUTPUT«1» | |||
dalek | ast: b29fccf | sorear++ | S (2 files): S32-num/power, S12-class/lexical: refudge tests for niecza |
||
moritz | TimToady: so, +'' == 0 ? | ||
TimToady | I think that's probably relatively harmless, and likely to be the proper degenerate case for certain algorithms | 19:36 | |
PerlJam | Also very Perl5y | ||
(in a good way IMHO) | 19:37 | ||
TimToady | I was somewhat serious about the funny exception that 0 requires a leading 0 | ||
masak .oO( if there were a prefix:<*>, *'' would be 1... ) | |||
TimToady | perl6: say [*] ''.comb | 19:38 | |
19:38
Holy_Cow joined
|
|||
p6eval | pugs, rakudo b4486e: OUTPUT«1» | 19:38 | |
..niecza v7-35-g4fc3649: OUTPUT«0» | |||
TimToady | ooh, nieczabug | ||
sorear | (niecza is broken here, not making a statement) | ||
dalek | ast: 220b45a | moritz++ | S (2 files): shuffle numification tests, and move one to S32-str/numeric.t |
19:39 | |
ast: 2a981f3 | moritz++ | S (2 files): remove duplicate Str -> Numeric tests, move others to numeric.t |
|||
19:39
felliott joined
|
|||
masak | rakudo: our sub prefix:<*>($n) { [*] $n }; say *'' | 19:39 | |
p6eval | rakudo b4486e: OUTPUT«0» | ||
masak | rakudo: our sub prefix:<*>($n) { $n || 1 }; say *'' | 19:40 | |
p6eval | rakudo b4486e: OUTPUT«1» | ||
felliott | Good aftersomething, #perl6! | 19:41 | |
masak | felliott, happy greetings! | ||
felliott | hey, masak! | ||
TimToady | Good beforechristmas! | ||
masak | enjoy your afternovember! | ||
felliott | Have a nice betwixtevents! | 19:42 | |
masak | :P | ||
felliott | rakudo: ?{say "mooo";}; | ||
masak .oO( between transitions ) | |||
p6eval | rakudo b4486e: ( no output ) | ||
masak | felliott: not an immediate block. | ||
felliott | Should blocks be eval'd in boolean context? | 19:43 | |
masak | nope. | ||
felliott | ah-ha! | ||
masak | rakudo: ?{say "mooo"}() | ||
p6eval | rakudo b4486e: OUTPUT«mooo» | ||
masak | rakudo: say ?{say "mooo"}() | ||
p6eval | rakudo b4486e: OUTPUT«moooBool::True» | ||
felliott | rakudo: if {say "moo"; 0;}() && {say "grr";}() { say "yay"; } else { say "boo"; } | 19:44 | |
p6eval | rakudo b4486e: OUTPUT«mooboo» | ||
felliott | cool. | 19:45 | |
TimToady | nom: my $x = 42; $x //= say "oops, didn't short circuit" | 19:46 | |
p6eval | nom: OUTPUT«oops, didn't short circuit» | ||
TimToady | nom: my $x = 42; $x = $x // say "oops, didn't short circuit" | ||
p6eval | nom: ( no output ) | ||
dalek | ast: 9dc48a0 | moritz++ | S (2 files): move tests for Inf and NaN Str.Numeric |
||
ast: e49f7bb | moritz++ | S03-operators/context-forcers.t: fix plan |
19:47 | ||
TimToady | assign metaop needs to be transparent to thunkification | ||
moritz | it's sentences like that that make me think I never learned English :-) | 19:49 | |
19:51
spq1 joined
|
|||
PerlJam | moritz: it's just jargon. Words like "transparent" suddenly become highly specialized and when mixed with made-up words like "thunkification", you suddenly don't know what anyone is saying :-) | 19:51 | |
19:52
mtk left
19:53
bluescreen10 left
|
|||
felliott | I'm still working on flipflop, and I've updated flip-flop.t. Can I push to roast or will that goof up nom? | 19:53 | |
moritz | felliott: you can | 19:54 | |
felliott | flipflop.t is still commented out in spectest.data | ||
thanks, moritz | |||
moritz | felliott: I hope you're working on the flipflop implementation in nom? | ||
felliott | no, currently in master. | ||
After I get master done, I'd update it to nom, | 19:55 | ||
TimToady | I don't believe there's anything in the test suite that actually checks that //= short circuits | ||
that's LHF for someone | |||
moritz | 244: for @array1 { .key //= ++$i } | ||
in S04-statements/for.t | |||
TimToady | in a comment | ||
or a string | |||
unless I'm out of date | 19:56 | ||
moritz just ack'ed, could very well be in a comment | |||
TimToady | oh, okay, new version is different | 19:57 | |
19:57
mtk joined
|
|||
sorear | how many spectests does nom currently pass? | 19:58 | |
moritz | ~7k | ||
TimToady | funny it says rakudo doesn't implement [+] | ||
19:59
mj41 joined
|
|||
dalek | ast: 4213c39 | moritz++ | S (2 files): move some tests out of numeric-context.t, and delete the file (the tests are now in S32-str/numeric.t |
19:59 | |
TimToady | still, that's not the right file to be testing //= in | 20:00 | |
moritz | agreed | ||
dalek | ast: 3f8b669 | (Fitz Elliott)++ | S03-operators/flip-flop.t: [S03/flip-flop] rewrite flip-flop tests |
20:01 | |
TimToady | nap & | ||
dalek | kudo/nom: f7e4cec | moritz++ | src/Perl6/Actions.pm: (re-)introduce radcalc, but smarter than before |
20:04 | |
kudo/nom: 64fe676 | moritz++ | src/Perl6/Actions.pm: allow arbirary number of trailing zeros. Wins back the few tests that the previous commit regressed |
|||
kudo/nom: 8097419 | moritz++ | src/Perl6/Actions.pm: hopefully speed up stripping of trailing zeros |
|||
kudo/nom: 09a43b7 | moritz++ | src/Perl6/Actions.pm: remove (mostly PIR) functions that are now mostly unused |
|||
kudo/nom: e939a8b | moritz++ | src/Perl6/Actions.pm: get :16<DEAD_BEEF> style literals working |
|||
kudo/nom: 01df600 | moritz++ | src/Perl6/ (2 files): refactor numeric constants to do the PAST::Want magic in a single place |
|||
kudo/nom: 9c93942 | moritz++ | src/Perl6/ (2 files): Merge branch 'nom-num' into nom |
|||
kudo/nom: 76d6591 | moritz++ | t/spectest.data: remove testfile from spectest.data, because it is gone from roast |
|||
20:05
bluescreen10 joined
|
|||
dalek | ast: 881b41e | moritz++ | S03-operators/short-circuit.t: test that //= and ||= short-circuit, TiimToady++ |
20:05 | |
20:06
mtk left
|
|||
moritz | felliott: fwiw, currently rakudo master currently checks out a specific revision of the tests | 20:07 | |
20:07
y3llow left,
pothos left
|
|||
moritz | felliott: I guess the easist way to get new tests into master is to make a branch is roast, and use that | 20:08 | |
20:09
mtk joined
|
|||
moritz does that | 20:09 | ||
20:09
y3llow joined,
pothos_ joined
|
|||
dalek | ast/rakudo-master: eb0e2b9 | (Fitz Elliott)++ | S03-operators/flip-flop.t: [S03/flip-flop] rewrite flip-flop tests |
20:10 | |
20:10
pothos_ is now known as pothos
|
|||
felliott | Nice! Thanks, moritz++! | 20:12 | |
moritz | there you go... | 20:14 | |
dalek | kudo: 1ddda5e | moritz++ | build/Makefile.in: track branch rakudo-master of the roast repository |
||
20:20
Holy_Cow left
|
|||
moritz | enough test hacking for now | 20:21 | |
felliott | Here is my second take at flipflop-as-macro, built off of pmichaud++'s code from 2011-07-04 | ||
20:21
Vlavv` left
|
|||
felliott | github.com/felliott/rakudo/commit/b4ce84a00c8 | 20:21 | |
I had to complicate it a lot to get all the cases to work, but it's still about 40 lines shorter than my original version. | |||
Plus, it's a lot more correct! | |||
20:22
kaare__ left
|
|||
felliott | I wrote some pir (line 2486) to save the state, but I'm not confident in it. Does it look reasonable? | 20:27 | |
sorear | felliott: does it work? | 20:28 | |
felliott | yep. | 20:29 | |
sorear | felliott: I'm suprised you have so much code in the actions there. | ||
20:29
impious left
|
|||
sorear | I would have expected most of the logic to be in src/builtins somewhere | 20:29 | |
felliott | handling the excluders and the sedlike flags complicate things a bunch. | 20:30 | |
PerlJam | sedlike? | ||
felliott | fff won't flip and flop on the same input (like sed) | 20:31 | |
PerlJam | oh | ||
felliott | sorear: src/builtins are for classes, right? | 20:32 | |
20:32
Vlavv` joined
|
|||
PerlJam | felliott: you're checking the symbol twice as much, once to call make_flipflop and then once again inside make_flipflop | 20:33 | |
felliott: perhaps you could pass $excl_lhs, $excl_rhs, $sedlike as parameters to make_flipflop ? | 20:34 | ||
felliott | ooh, good point. I can compress that. | ||
20:37
Vlavv` left
|
|||
felliott | hmm, that would mean 8 elsifs inside method EXPR($/). Wouldn't it be better to keep the EXPR logic shorter and accept the repeated eqs? | 20:38 | |
20:40
Mowah left
|
|||
sorear | felliott: what will your code do with, say, [ff]? | 20:40 | |
dalek | nda: ae46ebc | dukeleto++ | README.md: Add a note to the readme about needing a recent TAP::Harness |
20:41 | |
20:41
tokuhir__ joined
|
|||
felliott | Not sure. | 20:41 | |
I just realcleaned, rebuilding now. | |||
pmichaud | we'll need an &infix:<ff> sub as well. | ||
to handle the reduction cases. | 20:42 | ||
same as we do for [||] and [&&] | |||
felliott | Ah, I hadn't considered that at all. Let me give it a whack. | 20:44 | |
moritz doesn't think that's important at all for now | 20:45 | ||
pmichaud | the &infix:<ff> sub ought to be as easy to do as the &infix:<||> and &infix:<&&> subs are. And I agree it's not important for the first cut. | ||
moritz | I'm not even sure that a reduction metaop makes sense for an operator that keeps state internally | ||
20:45
im2ee_ joined
|
|||
moritz | if you have [ff] @a inside a loop where the length of @a varies | 20:46 | |
sorear | felliott: for 0,1 { sub has_flop($x) { True ^ff False }; say has_flop() } | ||
# ? | |||
moritz | what happens? is a separate state kept for each position? | ||
sorear: signature binding error | 20:47 | ||
PerlJam | yeah, you'd need +@a - 1 state vars | ||
sorear | erp | ||
felliott: for 0,1 { sub has_flop() { True ^ff False }; say has_flop() } | |||
# ? | |||
moritz | PerlJam: but +@a isn't even constant | ||
PerlJam | for each iteration | ||
sorear | probably better to forbid ff-derived operatorsa | 20:48 | |
moritz | so... the state vanishes between iterations? then what's the point of having state inside the operator? | ||
moritz agrees with sorear | |||
felliott | not sure (and still building) | ||
20:49
im2ee left
|
|||
sorear | in Perl 5, the ff operator uses an ordinary lexical variable to track state | 20:50 | |
PerlJam | scoped to what? | ||
sorear | the sub | 20:51 | |
it might be closer to a state var | 20:52 | ||
20:52
Vlavv` joined
|
|||
sorear | but it probably doesn't share between recursive levels, and it definitely doesn't share between clones of a closure | 20:52 | |
20:52
LoRe left
|
|||
sorear | which is what I was showing felliott | 20:52 | |
felliott's implemention keeps state in GLOBAL:: | |||
which might be wrong | |||
S02 doesn't say a whole lot about fff | 20:53 | ||
looks like TimToady specified 'state' semantics in Nov05 | 20:54 | ||
felliott | sorear: my code uses the same state for both invocations | ||
wrt for 0,1 { sub has_flop() { True ^ff False }; say has_flop() } | 20:56 | ||
20:56
LoRe joined,
ng1962 joined
|
|||
moritz | pugs: say True ^ff False | 20:57 | |
p6eval | pugs: OUTPUT«*** No such subroutine: "&ff" at /tmp/fEeEw4N6QL line 1, column 5 - line 2, column 1» | ||
moritz | pugs: say True ff False | ||
p6eval | pugs: OUTPUT«*** No such subroutine: "&infix:ff" at /tmp/fpAbMDf4LH line 1, column 5 - line 2, column 1» | ||
sorear | pugs: say True till False | ||
p6eval | pugs: OUTPUT«***  Unexpected "till" expecting "=", "(", ":", operator or "," at /tmp/YZ2TOFnLrQ line 1, column 10» | ||
sorear | felliott: I'll add a test for that then | 20:58 | |
21:02
spq1 left
21:05
soh_cah_toa joined
|
|||
felliott | rakudo: for 0,1 { sub has_flop() { say "moo"; }; has_flop() }; | 21:05 | |
p6eval | rakudo 1ddda5: ( no output ) | ||
felliott | why doesn't it say moo? | ||
21:07
ng1962 left
|
|||
felliott | rakudo: for 0,1 { say "moo"; }; | 21:07 | |
p6eval | rakudo 1ddda5: OUTPUT«moomoo» | ||
felliott | rakudo: for 0,1 { say "moo"; sub hello() { say "hello"; }; }; | ||
p6eval | rakudo 1ddda5: ( no output ) | ||
moritz | rakudo: say 1 | 21:09 | |
p6eval | rakudo 1ddda5: OUTPUT«1» | ||
moritz | felliott: you need the colon after 'rakudo' | ||
felliott | ? | 21:10 | |
moritz | sorry, I can't read anymore | ||
I should go to bed | |||
rakudo: for 0, 1 { say $_ } | 21:11 | ||
p6eval | rakudo 1ddda5: OUTPUT«01» | ||
felliott | bed sounds nice. | ||
moritz | rakudo: for 0, 1 { say "moo"; sub hello() { say "hello"; }; } | ||
p6eval | rakudo 1ddda5: ( no output ) | ||
moritz | rakudo: for 0, 1 { say "moo"; } | ||
p6eval | rakudo 1ddda5: OUTPUT«moomoo» | ||
moritz wonders if he or rakudo is WTFy here | |||
felliott | any idea what x_enter_sublog is? It shows up in the pir. | 21:12 | |
PerlJam | looks like a rakudo context mishap | ||
felliott | I'm grepping through parrot now. | ||
pmichaud | x_enter_sublog is a rakudo opcode for keeping track of sub entry | ||
[Coke] | doesn't sound like a parrot thing. | ||
pmichaud++ | 21:13 | ||
pmichaud | it's been around for a while, so it's not likely the culprit | ||
sjn | moritz: did you intend to call hello() there? | ||
PerlJam | rakudo: for 0, 1 { sub hello() { say "hello"; }; say "moo" } | ||
p6eval | rakudo 1ddda5: ( no output ) | ||
felliott | curses. it had proximity in it's favor. | 21:14 | |
sorear | perl6: for 0, 1 { sub hello() { say "hello"; }; say "moo" } | ||
p6eval | niecza v7-35-g4fc3649: OUTPUT«Potential difficulties: &hello is declared but not used at /tmp/GdZNEUDP0V line 1:------> for 0, 1 { sub hello⏏() { say "hello"; }; say "moo" }moomoo» | ||
..rakudo 1ddda5: ( no output ) | |||
..pugs: OUTPUT«moomoo» | |||
dalek | ast: c1ee42c | sorear++ | S03-operators/flip-flop.t: Test "state" semantics of ff, $x ff * handling |
||
sorear | I think niecza's result is the most awesome one here. | 21:15 | |
PerlJam | niecza++ indeed :) | ||
pmichaud | I don't know why rakudo is having trouble with that. | ||
PerlJam | I bet --target=PAST would show it. | 21:16 | |
(or at least give good clue) | |||
pmichaud | clue: | ||
sjn neverminds | 21:17 | ||
lichtkind | TimToady: did you looked into the concept of a channel in Go ? | ||
pmichaud | rakudo: for 0,1 { sub hello() { say 'hello'; }; say 'moo'; }; say 'alive'; | ||
p6eval | rakudo 1ddda5: OUTPUT«alive» | ||
pmichaud | so, it's not dying. | ||
I'm guessing it's a problem with lexicals somewhere. | 21:18 | ||
PerlJam | lexicals? how so? | 21:20 | |
21:21
mkramer joined,
mkramer left
|
|||
felliott | How can I run the pir generated by target=pir? | 21:21 | |
I'd like to sprinkle some "say"s in there and rerun it. | |||
PerlJam | I was thinking it was a context problem. The sub declaration is in void (or whatever) context and that got mis-propagated to the for loop | ||
pmichaud | felliott: not currently possible in master, I don't think. | 21:24 | |
felliott | drat | 21:25 | |
nom: for 0,1 { sub hello() { say 'hello'; }; say 'moo'; }; say 'alive'; | 21:26 | ||
p6eval | nom: OUTPUT«Too many positional parameters passed; got 1 but expected 0current instr.: '_block1010' pc 433 ((file unknown):156) (/tmp/7D3BisFsrN:1)» | ||
21:29
mj41 left
21:38
wolfman2000 left
21:42
wamba left
21:43
Psyche^ joined
|
|||
felliott | rakudo: say "before"; my $a = 2; while $a-- { say "woof"; sub hello() { say "hello";}; }; say "alive"; | 21:46 | |
p6eval | rakudo 1ddda5: OUTPUT«beforewoofwoofalive» | ||
21:47
Patterner left,
Psyche^ is now known as Patterner
|
|||
felliott | rakudo: ./perl6 -e 'say "before"; for 0,1 -> $a { say "woof"; sub hello() { say "hello";}; }; say "alive";' | 21:49 | |
p6eval | rakudo 1ddda5: OUTPUT«===SORRY!===Confused at line 22, near "./perl6 -e"» | ||
felliott | rakudo: say "before"; for 0,1 -> $a { say "woof"; sub hello() { say "hello";}; }; say "alive"; | ||
p6eval | rakudo 1ddda5: OUTPUT«beforewoofwoofalive» | ||
21:50
drbean joined
|
|||
TimToady | std: [ff] 1,2,3 | 21:53 | |
p6eval | std 516268a: OUTPUT«===SORRY!===Can't reduce with ff because conditional operators are too fiddly at /tmp/_Q84S6lEPP line 1:------> [ff]⏏ 1,2,3Check failedFAILED 00:01 120m» | ||
TimToady | that's what I thought... | ||
lichtkind: yes, they're basically just named message queues | 21:56 | ||
lichtkind | TimToady: so far i undersand yes but i like the concept | ||
TimToady | it's not clear we want to tie message sending that closely with the function interface in p6 though | ||
much like we detangled coroutines from functions, I'd like to keep feeds separate too | |||
it's not clear whether ==> my @queue serves the same purpose | 21:57 | ||
or my @queue ==> | |||
lichtkind | hej i thought almost the same way about ===> :) | 21:58 | |
TimToady | we might want something a bit more declarey to create a "real" channel | ||
lichtkind | the syntax in go sucked a bit but the functional simplicity sttrikes | ||
TimToady | certainly we want to be able to end an event queue in a multi dispatch | 21:59 | |
also maybe need to think about how the endpoint of a feed can handle events serially or parallely | 22:00 | ||
the latter might just be a hyper feed | 22:01 | ||
the interesting thing about the typical feed op is that it turns a noun (the list) into a verb (the operator), which tends to make one think inside out | 22:03 | ||
lichtkind | they solved that my an additional keyword a kind of switch statemend which whom you knot these things together | ||
TimToady | I think we might just get it all to fall out of available concepts in p6 | 22:04 | |
lichtkind | im not shure i got the ladder half of the last sentence | ||
with the inside out | |||
so its no topic for perl 6? | 22:05 | ||
TimToady | ordinary you can't treat the @list of push @array, @list as a verb | ||
but with @list ==> push @array, the feed looks like an infix | 22:06 | ||
which, as an operator, is a kind of verb idea | |||
lichtkind | so far i got it :) | 22:07 | |
even at the first time :) | |||
22:07
cipherte1t left,
ciphertext joined,
mkramer joined
|
|||
TimToady | it's hard to say a concept like X==> when the lazy list remains simply an argument to push | 22:08 | |
22:08
masak left
|
|||
TimToady | though maybe X doens't make much sense, just as it doesn't with assignment | 22:08 | |
anyway, if { ... } ==> &eventloop | 22:10 | ||
then I suspect eventloop is dispatched each event | |||
and eventloop can be a multi | |||
eventloop functions something like a go routine here | 22:11 | ||
with lazy semantics, the feed doesn't run another instance of eventloop until the previous one finishes | 22:12 | ||
and requests a new one | |||
or may that's just eager | 22:13 | ||
sorear | should I be paying attention to this? | ||
TimToady | but hyper would fire off a bunch of eventloops in parallel | ||
sorear: maybe, it's just some longterm brainstorming | |||
that is, something I've been mulling for a long time | 22:14 | ||
anyway, I think firing off parallel event handlers probably falls out of hyper | 22:15 | ||
22:15
im2ee_ left,
felliott left
|
|||
TimToady | and named channels probably comes from naming ==> endpoints with functions | 22:16 | |
if that's not too confusing | |||
lichtkind | i was thinking about because i prepare a talk about new langs la go factor and rebol and how new there ideas really are and how it compares to perl 5/6 | ||
TimToady | there may be special status for block components of feeds too | 22:17 | |
22:17
mkramer left
|
|||
TimToady | {...} ==> {...} ==> {...} considered akin to a Unix shell pipeline | 22:17 | |
lichtkind | i would think so | ||
TimToady | esp with respect to not sharing innards easily | 22:18 | |
assumed async | |||
and private | |||
probably with a lexical barrier looking outward, in addition to the usual inward looking barrier | |||
sorear is dubious of anything that requires the compiler to modify variable lookup semanticx | |||
TimToady | async itself might need such discipline | 22:19 | |
sorear | runtime, I mean | ||
TimToady | "You used a lexical from outside this thread; please confirm." :) | ||
otherwise we probably have to slap locks around shared lexicals | 22:20 | ||
sorear | uh, &infix:<+> is a shared lexical | ||
and what about $GLOBAL::x? | 22:21 | ||
22:21
whiteknight joined
22:23
mkramer joined
22:25
cipherte1t joined
22:27
ciphertext left
|
|||
lichtkind | TimToady: thank you for the thought so far i might write when ideas should appears some about that :) | 22:27 | |
i just liked the concept to make it ease to write code thay runs if something happens or make it simple to ask a slot if a value arrived | 22:32 | ||
22:36
dual left,
dorlamm joined,
wolfman2000 joined
22:37
felliott joined
22:39
dual joined
22:40
masak joined
|
|||
felliott | sorear: I just tried your new flipflop test in p5 and got a different answer (xBCABC). | 22:44 | |
I think p5 is reusing the ff, too. | 22:45 | ||
masak | TimToady: re rosettacode.org/wiki/Pythagorean_triples#Perl_6 , I am happy to see you are also enjoying subs-in-subs and "passing" things through lexical scopes instead of as parameters. very Lisp-y, in a way. | 22:47 | |
22:47
am0c left
|
|||
lichtkind listens to www.youtube.com/watch?v=ju1IMxGSuNE...ure=relmfu :) | 22:48 | ||
felliott | sorear: nevermind, didn't realize p5 had different sub scoping rules. | ||
masak | OTOH, every time I see complex numbers being used as 2-tuples (as opposed to being used for their properties as complex numbers), I sigh inwards and wonder if a dedicated tuple type would not be preferable. | 22:51 | |
22:53
whiteknight left,
whiteknight joined
22:54
cognominal_ is now known as cognominal
|
|||
dukeleto | here are the slides from my talk about perl 6 modules yesterday : github.com/leto/presentations/blob...s/pres.pdf (click 'view raw' for the pdf) | 22:55 | |
pmichaud | > say (+"1.2").WHAT | 22:56 | |
Rat() | |||
> say (+'1').WHAT | |||
Int() | |||
masak | pmichaud: \\\ooo/// | ||
pmichaud | > say (+'1.25e4').WHAT | ||
Num() | |||
masak | how I've waited! :D | ||
pmichaud | > say (+'0xff').WHAT | 22:57 | |
Int() | |||
22:57
whiteknight left
|
|||
dalek | p: 134720b | pmichaud++ | src/ (2 files): Add a few more useful option flags to nqp_radix opcode. |
22:57 | |
22:57
whiteknight joined
|
|||
pmichaud | now let's see how many spectests break :) | 22:57 | |
masak | heh. :) | 22:58 | |
benabik | All of them. | ||
I meant none. Obviously. | |||
pmichaud | quite a lot, actually. | ||
sorear | What was the old semantics? | 22:59 | |
masak | I've been trying out what it's like to practice does-based OO in Perl 6. so far: it's working surprisingly well. the only thing I miss being able to do is override methods. but it's usually not necessary. | ||
pmichaud | the spec semantics haven't changed... rakudo has never gotten it right | ||
(until now :) | 23:00 | ||
masak | rakudo: say (+"42").WHAT | ||
p6eval | rakudo 1ddda5: OUTPUT«Num()» | ||
sorear | What were Rakudo's old semantics? | ||
pmichaud | ^^^^ | ||
masak | sorear: see above. | ||
sorear | rakudo: say (+"1/2").perl | ||
masak | sorear: (always Num) | ||
p6eval | rakudo 1ddda5: OUTPUT«1» | ||
pmichaud | I think I'll go ahead and commit this fix and then others can help me fix the spectest breakages | 23:01 | |
23:01
Kivutarrr left
|
|||
masak | +1 | 23:03 | |
pmichaud | especially since I'll likely have to leave in a few minutes | ||
I'm just verifying the build before pushing the commits. | |||
(don't want to push a broken build :) | 23:04 | ||
23:05
soh_cah_toa left
|
|||
dalek | kudo/nom: 3cf23af | pmichaud++ | / (3 files): Update Str.Numeric to be a lot more correct. Numifying strings now code is intended to handle the common cases; uncommon cases are likely to ultimately be handled by the compiler somehow. |
23:08 | |
pmichaud | also: | ||
> say +"1 and other stuff besides" | |||
trailing characters after number | |||
masak | std: if 42 {} elsif {} | 23:09 | |
p6eval | std 516268a: OUTPUT«===SORRY!===Expression needs parens to avoid gobbling block at /tmp/Lu6hwCU9bE line 1:------> if 42 {} elsif ⏏{}Missing block (apparently gobbled by expression) at /tmp/Lu6hwCU9bE line 1:------> if 42 {} elsif {}⏏[3… | ||
masak | pmichaud: nice! | ||
pmichaud | please feel free to start cleaning up spectests and/or reporting bugs. I'll be back in a couple of hours. | 23:10 | |
TimToady | wow, the block was gobbled by the expression that isn't there :) | 23:11 | |
masak | yeah :) | ||
rakudo has the worse error, though: | |||
rakudo: if 42 {} elsif {} | |||
p6eval | rakudo 1ddda5: OUTPUT«===SORRY!===Missing block at line 22, near ""» | ||
masak | that is, "missing block" right after the block :( | ||
TimToady | yes, STD used to produce that error too :) | 23:12 | |
but missing blocks have to be reanalyzed just like ttiar | 23:13 | ||
std: if 42 {} elsif 43 | |||
p6eval | std 516268a: OUTPUT«===SORRY!===Missing block at /tmp/hW3vi6nsuA line 1 (EOF):------> if 42 {} elsif 43⏏<EOL>Parse failedFAILED 00:01 118m» | ||
TimToady | but sometimes it's just a missing block... | ||
sorear | std: if 1 2 | 23:14 | |
p6eval | std 516268a: OUTPUT«===SORRY!===Missing block at /tmp/WpnMGSJfGY line 1:------> if 1 ⏏2 expecting any of: bracketed infix infix or meta-infixParse failedFAILED 00:01 120m» | ||
TimToady | std: if 1{} | ||
p6eval | std 516268a: OUTPUT«===SORRY!===Missing block at /tmp/qqxdqCdS12 line 1 (EOF):------> if 1{}⏏<EOL>Parse failedFAILED 00:01 119m» | ||
TimToady | std: if 1{} else {} | 23:15 | |
p6eval | std 516268a: OUTPUT«===SORRY!===Missing block at /tmp/dU505SmdBo line 1:------> if 1{} ⏏else {} expecting any of: bracketed infix infix or meta-infixParse failedFAILED 00:01 121m» | ||
TimToady | ah well | ||
flussence | just curious, if anyone knows: what's the correct way to write «perl Configure.pl --parrot-option=--ccflags="$CFLAGS -g"»? Everything I've tried mangles it. | 23:16 | |
23:21
zby_home_ left
23:22
soh_cah_toa joined
23:25
dorlamm left
23:28
whiteknight left
23:29
orafu left,
orafu joined
23:32
bluescreen10 left
|
|||
masak | the adventure game, now at 944 LoC, is now playable from beginning to end. | 23:34 | |
I expect to write all the scene and object descriptions tomorrow, and make a few subsequent improvements to game "look and feel". | 23:35 | ||
after that, it would be nice to get a number of volunteers to play the game and give a few comments about it. | |||
felliott | \o/ | 23:36 | |
I'll give it a try, masak. | |||
masak++, that is. | |||
masak | yay | ||
github.com/masak/crypt | 23:37 | ||
due to the above, there are still lots of [Description of X] scattered everywhere. please disregard those. | |||
I'll be especially interested in commands you tried and expected to work. | 23:38 | ||
felliott | you are eaten by a bug :) : gist.github.com/1083733 | 23:40 | |
masak looks | |||
felliott | is this for nom or master? | 23:41 | |
masak | master. | ||
felliott | good, that was master | 23:42 | |
masak | felliott: all of those are reasonable and should work. I'll make sure they do in the "next release" -- sometime tomorrow. | ||
thanks for the early feedback :) | |||
ooh, and then there's an actual bug! :) | |||
masak fixes that one immediately | |||
felliott | Also, I haven't played an adventure game in ~20 years, so my verb expectations may be off. | 23:43 | |
masak | no, I think not. | ||
fwiw, 'examine' and 'x' work for now. | |||
felliott | ah-ha! examine I shall. | 23:44 | |
masak | felliott: pushed bug fix. | 23:47 | |
felliott | gist.github.com/1083745 | ||
I took the rope, and ended up with the flashlight too? | |||
pulling... | |||
masak looks | |||
huh. | 23:48 | ||
felliott | ah. there are two flashlights. | 23:49 | |
(just figured out "i") | |||
masak | yeah. | ||
23:49
bluescreen10 joined
|
|||
felliott | one in inventory and one in the car. | 23:49 | |
masak | pushed removal of that, too. | ||
I used that for debugging. | |||
sorry 'bout that :/ | |||
felliott | No worries! | ||
This game comes with an adventure and a meta-adventure. | 23:50 | ||
masak | ;) | ||
felliott | how do I examine the tiny disk? | ||
x disk & x tiny disk don't work | |||
masak | good point -- will fix too. | ||
though it's not supposed to be with you now. | 23:51 | ||
23:51
jferrero left
|
|||
dalek | ecza: 49322b4 | sorear++ | lib/ (2 files): Use primitives for the other three ++-like cases |
23:53 | |
ecza: 20310bc | sorear++ | / (2 files): Implement flipflop operators |
|||
23:53
wolfman2000 left
|
|||
dalek | ast: f2fad85 | sorear++ | S03-operators/flip-flop.t: [S03-operators/flip-flop] Simplify and fix scoping |
23:54 | |
23:55
Trashlord left
|
|||
felliott | sorear++ | 23:56 | |
flip-flop-fury! | 23:57 | ||
masak: how many rooms are there? I made it to the chamber, but I'm stuck. | |||
masak | ooh, nice :) | ||
there are six rooms: clearing, hill, chamber, hall, cave, crypt. | 23:58 |