»ö« 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. |
|||
00:14
sji left
|
|||
sorear | phenny: tell jnthn Why do the type cache and method cache exist once per STable instead of per HOW? | 00:18 | |
phenny | sorear: I'll pass that on when jnthn is around. | ||
00:27
molaf_ joined
00:29
molaf left
01:01
[Coke] left,
kaydsoft left
01:03
kaydsoft joined
01:07
Trashlord left
01:10
orafu left
01:12
ryan_ joined,
orafu joined
01:18
aindilis left,
aindilis joined
01:19
leprevost joined
01:22
envi joined
01:51
leprevost left
01:52
am0c joined
01:56
awwaiid left
01:57
awwaiid joined
02:03
noganex left
02:05
noganex joined
02:07
RichiH_FOSDEM is now known as RichiH
02:33
whiteknight left
02:50
stifynsemons left
02:59
stifynsemons joined
|
|||
sorear | std: label: | 03:02 | |
p6eval | std 625303c: OUTPUT«===SORRY!===Bogus statement at /tmp/N546RUr3V3 line 1 (EOF):------> label:⏏<EOL>Parse failedFAILED 00:01 118m» | ||
sorear | LTA | ||
03:04
sftp left
03:34
envi left
03:40
satyavvd joined
|
|||
diakopter | std: label: ; | 03:41 | |
p6eval | std 625303c: OUTPUT«ok 00:01 117m» | ||
diakopter | std: label: # | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Bogus statement at /tmp/RnfAf4lTJQ line 1 (EOF):------> label: #⏏<EOL>Parse failedFAILED 00:01 118m» | ||
04:02
satyavvd left
04:13
satyavvd joined
04:23
Su-Shee_ joined,
stifynsemons left
|
|||
sorear | phenny: tell TimToady STD rejects A: ; { A: ; } Bug? | 04:24 | |
phenny | sorear: I'll pass that on when TimToady is around. | ||
04:27
Su-Shee left
|
|||
dalek | ecza: 8db375f | sorear++ | / (7 files): Implement label definitions |
04:31 | |
ecza: 4331572 | sorear++ | src/niecza: Implement loop labelling |
|||
ecza: a7c95bf | sorear++ | / (3 files): Implement lexotic control operators |
|||
sorear | std: loopy; | 04:32 | |
p6eval | std 625303c: OUTPUT«===SORRY!===Undeclared routine: 'loopy' used at line 1Check failedFAILED 00:01 117m» | ||
sorear | niecza: loopy; | 04:33 | |
p6eval | niecza v2-15-gf9417bc: OUTPUT«===SORRY!===Whitespace required after keyword at /tmp/GiomXa4mk0 line 1:------> loop⏏y;Parse failed» | ||
dalek | ecza: 9eaf007 | sorear++ | / (2 files): Fix keyspace LTM weirdness |
04:43 | |
04:50
rhr left
04:58
rhr joined
04:59
stifynsemons joined
05:03
ryan_ left
05:23
drbean left
05:24
arlinius left
05:28
arlinius joined
05:29
satyavvd left
05:31
felliott left
05:32
satyavvd joined
05:33
felliott joined
05:34
felliott left
05:36
satyavvd left
|
|||
sorear | niecza: にほんご: say "x"; goto にほんご; | 05:40 | |
p6eval | niecza v2-19-g9eaf007: | ||
..OUTPUT«(timeout)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE2 | |||
diakopter | kewl | ||
05:42
kaare_ joined
|
|||
sorear | diakopter: I was hoping you'd notice. | 05:43 | |
pugs: goto "A"; say "x"; A: ; | 05:44 | ||
p6eval | pugs: OUTPUT«***  Unexpected ";" expecting Doc block, block declaration, declaration, construct or expression at /tmp/U809Ecb414 line 1, column 23» | ||
sorear | pugs: goto "A"; say "x"; A: say "y"; | ||
p6eval | pugs: OUTPUT«*** No such subroutine: "&goto" at /tmp/FJsWXHGEg9 line 1, column 1-9» | ||
sorear | pugs: goto A; say "x"; A: say "y"; | ||
p6eval | pugs: OUTPUT«*** No such subroutine: "&goto" at /tmp/LO6NB_M1uF line 1, column 1-7» | ||
05:44
sftp joined
|
|||
diakopter | istr it didn't actually... | 05:45 | |
sorear | How many Perl 6 subset implementions currently offer goto? | ||
diakopter | :P | ||
sorear | I know of at least two | 05:46 | |
or labelled stuff in general | |||
diakopter | niecza: while (hi: say(3); 1 ) { goto hi } | 05:47 | |
p6eval | niecza v2-19-g9eaf007: | ||
..OUTPUT«(timeout)333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333xE2 | |||
diakopter | niecza: while (hi: say(3); 0 ) { }; goto hi | 05:48 | |
p6eval | niecza v2-19-g9eaf007: | ||
..OUTPUT«(timeout)333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333xE2 | |||
diakopter has no idea whether that's correct | |||
sorear | niecza: sub f1($f) { L: while True { $f(); say 1 }; }; sub f2() { L: while True { f1({ last L }); say 2 }; }; f2() | 05:49 | |
p6eval | niecza v2-19-g9eaf007: ( no output ) | ||
sorear | niecza: sub f1($f) { L: while True { $f(); say 1 }; }; sub f2() { L: while True { f1({ last "L" }); say 2 }; }; f2() | ||
p6eval | niecza v2-19-g9eaf007: | ||
..OUTPUT«(timeout)222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222xE2 | |||
sorear | notice the4 difference | ||
diakopter | hum | ||
sorear | I am not aware of any other implementaiton that offers lexotic control | 05:52 | |
diakopter | impressive :) | 05:53 | |
05:54
[particle] joined
|
|||
Tene | sorear: I had a patch to rakudo that mooooostly worked for next/last/redo on labels, but I abandoned it before I got it working well enough to commit. | 05:55 | |
05:57
justatheory left
|
|||
Tene | goto is certainly feasible in rakudo as well, for many cases at least. I'm not really sure of how restricted Perl 6's goto is. | 05:58 | |
perlcabal.org/syn/S04.html#The_goto_statement | |||
It's not obvious how I would implement goto into an inner scope. | 05:59 | ||
sorear | since labels require initialization, it's actually not possible to jump into inner scopes | 06:01 | |
06:01
drbean joined
|
|||
sorear | although the spec could be clearer on this | 06:01 | |
Tene | "As in Perl 5, it is possible to goto into a lexical scope, but only for lexical scopes that require no special initialization of parameters." | 06:02 | |
06:07
satyavvd joined
|
|||
diakopter | TimToady (here) speculated at one time that forward-gotos are feasible | 06:07 | |
but std doesn't seem to allow it | 06:08 | ||
sorear | niecza: say 1; goto "A"; say 2; A: say 3 | ||
p6eval | niecza v2-19-g9eaf007: OUTPUT«13» | ||
diakopter | oh | ||
niecza: say 1; my $a = "A"; goto $a; say 2; A: say 3 | 06:09 | ||
p6eval | niecza v2-19-g9eaf007: OUTPUT«13» | ||
diakopter | niecza: say 1; my $a = "Z"; goto $a; say 2; A: say 3 | ||
p6eval | niecza v2-19-g9eaf007: OUTPUT«1Unhandled exception: Illegal control operator: goto(Z, dynamic) at /home/p6eval/niecza/lib/SAFE.setting line 397 (SAFE _lexotic @ 2) at /home/p6eval/niecza/lib/SAFE.setting line 402 (SAFE goto @ 2) at /tmp/2J7yDzWoSq line 1 (MAIN mainline @ 4) at | ||
../home/p6eval/niecza/lib/S… | |||
diakopter | Illegal control operator :) | 06:13 | |
06:13
Mowah joined
06:14
kst left
|
|||
sorear | diakopter: What about it? | 06:27 | |
diakopter | nothing really | 06:39 | |
06:41
cjk101010 joined
06:45
srbio joined
06:46
srbio left,
Mowah left
|
|||
dalek | rixel: b404c4e | diakopter++ | sprixel/ (5 files): a buncha crazy hacks to see about a new execution mode for p6eval |
06:51 | |
06:53
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
dalek | rixel: 404c893 | diakopter++ | sprixel/Program.cs: ok |
06:56 | |
rixel: 3dc0fc1 | diakopter++ | sprixel/sprixel.csproj: sigh2 |
06:58 | ||
sorear -> sleep | 07:01 | ||
dalek | rixel: 9c55e54 | diakopter++ | sprixel/Program.cs: sigh3 |
07:02 | |
07:12
wtw joined
|
|||
dalek | d: 7503e20 | larry++ | STD.pm6: reduce label redeclaration to a warning |
07:19 | |
07:20
veeru joined
07:33
p6eval left,
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
moritz_ | good mroning | 07:47 | |
rakudo: $_ = "foo"; s[] = 'bar'; .say | 07:49 | ||
p6eval | rakudo 989883: OUTPUT«Could not find sub &s in main program body at line 22:/tmp/b7_gMKxUFS» | 07:50 | |
moritz_ | rakudo: $_ = "foo"; s[f] = 'bar'; .say | 07:51 | |
p6eval | rakudo 989883: OUTPUT«baroo» | ||
moritz_ | so it doesn't commit to the [ | ||
TimToady | std: $_ = "foo"; s[] = 'bar'; .say | 07:54 | |
phenny | TimToady: 04:24Z <sorear> tell TimToady STD rejects A: ; { A: ; } Bug? | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/zVvv5rwrey line 1:------> $_ = "foo"; s[⏏] = 'bar'; .sayParse failedFAILED 00:01 121m» | ||
TimToady | std: $_ = "foo"; s[f] = 'bar'; .say | ||
p6eval | std 625303c: OUTPUT«ok 00:01 123m» | ||
TimToady | rakudo should not backtrack there | ||
08:10
Su-Shee_ is now known as Su-Shee
08:16
daxim joined
08:35
snearch joined
08:36
arlinius left
08:38
cosimo left
|
|||
moritz_ submits rakudobug, justin case | 08:51 | ||
08:54
mayuresh joined
09:01
shi joined
09:09
mayuresh left
09:14
Mowah joined
09:18
am0c left
09:19
snearch left
09:21
wiseguyxp left
09:27
Mowah left
09:30
arlinius joined
09:45
jerome left
|
|||
tadzik | Isn't that related to the bug that only the s/// form is allowed? | 09:52 | |
moritz_ | not really | ||
09:52
dakkar joined
|
|||
moritz_ | the real problem is that the check for null regexes are done at quote level, and not at regex parsing level | 09:53 | |
so each callback into the regex parser needs to do the null pattern check separately | |||
also note that s[nonnull] = "foo" works fine | 09:54 | ||
tadzik | I see | 09:59 | |
09:59
domidumont joined
|
|||
bacek | moritz_, aloha. | 09:59 | |
10:11
dip joined,
dip is now known as Guest78447
10:13
Guest78447 left,
charsbr__ joined
10:30
Trashlord joined
10:35
Mowah joined
|
|||
moritz_ | std: native foo is repr("bar"); | 10:51 | |
p6eval | std 625303c: OUTPUT«===SORRY!===Undeclared routines: 'foo' used at line 1 'is' used at line 1 'native' used at line 1 'repr' used at line 1Check failedFAILED 00:01 119m» | ||
moritz_ | nqp has a package_declarator:sym<native> | 10:52 | |
10:53
IllvilJa left
10:56
literal left
10:57
literal joined
|
|||
moritz_ | rakudo: say now.perl | 11:03 | |
p6eval | rakudo 989883: OUTPUT«(DateTime.new(year => 1970).Instant + 1297076638.05348)» | ||
11:06
mayuresh joined
|
|||
mayuresh | hello :) | 11:06 | |
moritz_ | good day mayuresh | ||
mayuresh | good day to you too moritz :) | 11:07 | |
it feels good to be here | |||
11:09
Mowah left
11:10
wolverian left
|
|||
moritz_ | it feels good to do Perl 6 programming :-) | 11:10 | |
mayuresh | :) | ||
any ideas when the concurrency model would get finalized? | 11:11 | ||
moritz_ | when it's implemented by two different compilers, and seems to work out fine | 11:12 | |
mayuresh | hmnnn | 11:15 | |
moritz_ | in general, parts of the specs are only considered stable if there are working implementations and user space programs | 11:17 | |
otherwise you can't know if it actually works, and works in a perlish way | |||
11:18
jaldhar left,
literal left,
jaldhar joined
11:19
literal joined
11:26
mayuresh left
11:29
coldhead left,
veeru left
11:31
literal left
11:34
literal joined
11:38
satyavvd left
|
|||
bbkr | hi. if I use "perl6 -n -e 'some code here' file_name" under which variable current line is available within oneliner? | 11:40 | |
tadzik | I don't think -n is implemented | 11:41 | |
bbkr | oh | ||
11:42
literal left
11:44
literal joined
|
|||
daxim | bbkr, github.com/masak/pun/ | 11:47 | |
bbkr | daxim: awesome, that's what I was looking for. thanks! | 11:48 | |
11:49
stifynsemons left
11:55
tzhs joined
11:59
Trashlord left
12:05
tzhs left
12:09
IllvilJa joined
|
|||
flussence | rakudogripe of the day: no destructors means every IO handle has to be closed manually | 12:10 | |
OTOH, "given open($file) { .write($stuff); .close }" isn't much extra effort, so it's not that bad once you figure out why your files are 0 bytes :) | 12:16 | ||
colomon | why that particular construct? | 12:29 | |
flussence | I already had open().write(), that seems to be the shortest thing that works. | 12:30 | |
colomon | ah. shouldn't you check .open for errors? :) | 12:34 | |
moritz_ | you should open(:w), fwiw | ||
12:36
bluescreen joined
12:40
pmurias joined
|
|||
flussence | moritz_: I did, guess I shouldn't be so lazy in paraphrasing... | 12:41 | |
12:42
Trashlord joined
|
|||
flussence | if anyone's curious, this was a one-line hack to dump the input data from Text-Tabs-Wrap tests into separate files. I'm trying to separate the data from the code, because it's a maintenance nightmare the way it is now. | 12:44 | |
colomon | flussence++ | 12:50 | |
dalek | kudo: a376406 | moritz++ | src/glue/enum.pm: Add .invert method to enums. We need a better way to reuse the methods from EnumMap. |
12:51 | |
12:56
[Coke] joined
|
|||
takadonet | ,prmomg a;; | 12:57 | |
... | |||
morning all | 12:58 | ||
colomon | \o | ||
moritz_ | o/ | ||
moritz_ tired | |||
[Coke] | */ | 13:00 | |
13:03
tzhs joined
13:08
MayDaniel joined
|
|||
colomon tired too. though at least this time it's mostly his own fault. overindulged last night during the big game... | 13:09 | ||
moritz_ | the small one only woke me up twice this night, so in comparison not too bad :-) | 13:13 | |
colomon | :) | 13:15 | |
13:16
PacoLinux joined
13:18
cognominal left
13:20
cognominal joined
13:23
cibs left
|
|||
moritz_ | fwiw I sometimes get a failure in test 13 in t/spec/S02-builtin_data_types/instants-and-durations.t | 13:25 | |
but only very rarely | |||
somehow comparing .perl's seems wrong to me, but I'm not sure if that's the source of the trouble | 13:26 | ||
rakudo: say now == now | |||
p6eval | rakudo 989883: OUTPUT«Bool::False» | ||
moritz_ | rakudo: given now { say $_ == $_ } | ||
p6eval | rakudo 989883: OUTPUT«Bool::True» | ||
moritz_ | rakudo: given now { say $_ eq $_ } | 13:27 | |
p6eval | rakudo 989883: OUTPUT«Bool::True» | ||
moritz_ | rakudo: say now eq now | ||
13:27
bluescreen left
|
|||
p6eval | rakudo 989883: OUTPUT«Bool::False» | 13:27 | |
colomon | why not just use == in the test? | 13:29 | |
moritz_ | or just use is(), which does string comparison | ||
colomon | I mean, if $t0 < $t1 is valid, then $t0 == $t1 should be too | ||
moritz_ | rakudo: say now | 13:30 | |
p6eval | rakudo 989883: OUTPUT«Instant:2011-02-07T13:30:06.214942Z» | ||
moritz_ | both string and number should be fine | ||
is() has the advantage of better diagnostics | |||
dalek | ast: b3ef08d | moritz++ | S02-builtin_data_types/instants-and-durations.t: get rid of .perl for Instant comparison |
13:32 | |
13:36
kaare_ left
|
|||
dalek | ecza: ae495d6 | pmurias++ | cl-backend/backend.lisp: methods |
13:36 | |
ecza: 0c99b29 | pmurias++ | docs/nam.pod: [docs/nam.pod] fix the order of arguments in serialised signatures |
|||
ecza: c12c681 | pmurias++ | cl-backend/backend.lisp: [cl-backend] handle arguments to subs |
|||
13:39
drbean left
13:42
MayDaniel left,
bluescreen joined
13:43
felliott joined
14:00
domidumont left
14:04
am0c joined,
kaare_ joined
14:08
stifynsemons joined
14:11
ivacklin joined
14:13
ivacklin is now known as wolverian
14:14
envi joined,
stifynsemons left
14:15
plobsing left
14:20
Mowah joined
14:22
mtk joined
14:25
bluescreen left
14:26
kjeldahlw joined
14:27
domidumont joined
|
|||
dalek | ecza: 48b74aa | pmurias++ | simple-tests/ (9 files): [cl-backend] added simple tests for testing the cl-backend |
14:35 | |
14:40
plainhao joined,
stifynsemons joined
|
|||
takadonet | flussence: how's your text-tab-wraps hacking going? | 14:40 | |
flussence | it's starting to look readable :) | 14:41 | |
14:42
stifynsemons left
|
|||
flussence | one thing I need to figure out is what the commented-out tests are *supposed* to do | 14:42 | |
takadonet | which ones? | ||
flussence | there's 4 files that fail with "bad plan", they're commented out completely at the moment | 14:44 | |
takadonet | some still have not been changed since the initial port from the p5 version | 14:47 | |
14:55
shi left
15:03
tzhs left
15:05
masak joined
|
|||
masak | hola, zebras. | 15:06 | |
moritz_ | lolitsmasak! | ||
masak is having a good day today :) | 15:10 | ||
moritz_ is glad to hear that | |||
15:10
Sarten-X left
|
|||
flussence | is there a way to construct a regex object from a string, javascript-style? | 15:12 | |
pmurias | masak: what's so special about today? | 15:13 | |
moritz_ | flussence: there is, but I have to look up which quoting constructs interpolates the way you want it... | 15:14 | |
masak | pmurias: had an interview. they were like "yeah, we know who you are". :) I'm currently trying to re-shrink my head to its original size. | ||
[Coke] | flussence: I would imagine eval works. | ||
flussence | yeah, I was looking for anything nicer than eval :) | ||
pmurias | masak: did you get the job? | ||
arnsholt | masak: Cool! | ||
masak | pmurias: don't know, but it felt promising. | 15:15 | |
arnsholt | What kind of position did you interview for? | ||
15:15
justatheory joined
|
|||
masak | arnsholt: [NDA] | 15:15 | |
arnsholt | Oh right, one of those =) | ||
moritz_ | flussence: my $regex = rx/<$string>/; | ||
maybe we should have a Regex.compile($string) API too | 15:16 | ||
masak | moritz_: if we do, we should go further and expose combining constructs like Alt and Conj. | 15:17 | |
flussence | looks like it does what I want, thanks moritz_ | ||
15:17
Sarten-X joined
|
|||
moritz_ | masak: in the long run there are also quasi quotes for generating objects that are only available via syntax | 15:18 | |
[Coke] | masak: break a leg. | ||
15:19
v15170r joined
|
|||
masak | thanks. | 15:19 | |
moritz_: ooh, indeed. | 15:20 | ||
would like to explore that area more. | |||
bbkr | rakudo: CATCH { say 1 }; CATCH { say 2 }; die; # is this correct output? despite lack of warning on redeclaration... one may expect that it is natural for 2nd CATCH to owerwrite first one. | 15:21 | |
p6eval | rakudo a37640: OUTPUT«1» | ||
15:21
hanekomu joined
|
|||
bbkr | compare to P5ism: perl -e 'sub foo {print 1} ; sub foo { print 2}; foo()' - prints 2 | 15:21 | |
15:22
am0c left
|
|||
masak | bbkr: what does S04 say about redeclared CATCH blocks? | 15:22 | |
15:22
stifynsemons joined
|
|||
masak | bbkr: are they erroneous, or do they just warn? if the former, talking about desired behavior isn't very meaningful. | 15:23 | |
sorear | good * #perl6 | ||
masak | o/ sorear | 15:24 | |
sorear | std: A: ; A: ; | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Illegal redeclaration of 'A' at /tmp/NPbqXKwJpG line 1:------> A: ; A: ⏏;Illegal redeclaration of symbol 'A' (see line 1) at /tmp/NPbqXKwJpG line 1:------> A: ; A: ⏏;Check failedFAILED 00:01 117m» | ||
pmurias | sorear: hi | ||
15:25
v15170r left
15:26
mtk left
15:28
Sarten-X left
|
|||
bbkr | masak: i've checked and S04 says nothing about redeclaration of CATCH. STD accepts such redeclaration as valid syntax. | 15:29 | |
moritz_ | silently dropping one doesn't seem to be a very good idea | 15:30 | |
I'd rather have it die() than not executing any code that looks like it would be executed | |||
or execute both | 15:31 | ||
15:31
wamba joined
|
|||
flussence | grr. open(:r) is returning Bufs for plain text and :enc<utf-8> doesn't work at all. | 15:32 | |
masak | I think it should be a parsefail at compile time. | ||
bbkr: no, I'm pretty sure S04 mentions it; I've submitted a ticket about it once. | |||
moritz_ | flussence: then rakudo should be patched | 15:33 | |
so long you might call .decode('UTF-8') on the bufs | |||
bbkr | moritz_: indeed. considering the fact that you can define phaser wherever in the block: "{ die; CATCH {};}" or "{CATCH {}; die;}" it may be easy to redeclare by mistake in large blocks and never notice that :) | ||
masak: on i'll recheck... | 15:34 | ||
masak | bbkr: found this so far: | ||
"A C<CATCH> block is just a trait of the closure containing it, and is automatically called at the appropriate moment." | |||
flussence | I should probably update the rakudo on here - it's still on 2010.12-48-ga23255a | ||
masak | that (kinda) means there can't be more than one. | ||
bbkr: found it. S04:1371 | 15:35 | ||
15:35
kjeldahlw left
|
|||
masak | bbkr: so, it's a parse-time error, Rakudo should die at comile time, and it's in RT. | 15:35 | |
bbkr | masak: thanks | 15:37 | |
15:38
Sarten-X joined
15:39
alester joined
15:41
Chillance joined
|
|||
sorear | masak: did you see what I did yesterday? :) | 15:41 | |
masak | sorear: labels and gotos! \o/ | 15:42 | |
sorear++ | |||
sorear | also labelled last, etc. And s///. | ||
masak | sorear: that's awesome. | ||
tadzik | I'd rather have multiple CATCH working, getting executed after the error occuring, like try { die 1; CATCH { say 1 }; die 2; CATCH { say 2 }; } | ||
15:43
stkowski joined,
vmspb joined
15:45
orafu left
15:46
florz left,
fIorz joined,
orafu joined
15:48
wtw left
|
|||
vmspb | hi | 15:49 | |
masak | hi, vmspb | ||
vmspb | rakudo: my $x=1; say ++ + $x | ||
p6eval | rakudo a37640: OUTPUT«2» | ||
vmspb | rakudo: my $x=1; say -- - $x | ||
p6eval | rakudo a37640: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/Iiu6LZgySi» | ||
vmspb | It corresponds to spec Perl6? | 15:50 | |
masak | yes. | ||
-$x is the readonly value. | |||
+$x gives you $x since it already contains a number. | |||
15:50
wamba left
15:53
noganex left
15:55
noganex joined
|
|||
pmurias | sorear: why does ehspan take labels? | 15:56 | |
instead of it taking an op? | |||
dalek | ecza: 522c862 | pmurias++ | / (5 files): [cl-backend] fake ehspan and span, fix methods and subs with no |
15:58 | |
pmurias | sorear: i'll be hacking on the cl-backend much more regularly till the 11th as i've to hand in my lisp project till then | 15:59 | |
16:01
eternaleye left,
stifynsemons left
16:06
vmspb left
16:08
masonkramer joined
16:11
cjk101010 left
|
|||
flussence facepalm | 16:13 | ||
open() was working fine. The file itself contained Buf(...) | 16:14 | ||
arnsholt | Insidious bug =D | ||
16:14
Patterner left
16:15
risou joined,
felliott left
16:16
kfo joined
16:17
Psyche^ joined,
Psyche^ is now known as Patterner
16:19
kfo_ left
|
|||
moritz_ | wiki.mozilla.org/Firefox/Roadmap so, FF 7 to be shipped this year... | 16:23 | |
I kinda think that means their major version numbers mean less | 16:24 | ||
moritz_ is glad about rakudo's version numbers | |||
16:25
thepler joined,
alester left,
benabik_away is now known as benabik
|
|||
dalek | ecza: 51300e9 | pmurias++ | / (3 files): [cl-backends] ignore any empty list which accidently gets into the xref |
16:27 | |
flussence | 7? wtf, mozilla. | 16:28 | |
masak | rakudo: /[]/; say 'alive' | 16:29 | |
moritz_ | well, IE and Chrome have high version numbers | ||
p6eval | rakudo a37640: OUTPUT«===SORRY!===Confused at line 22, near "/[]/; say "» | ||
moritz_ | so firefox needs them tooo!!!! | ||
std: /[]/ | |||
masak | that's another null pattern. | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/bSw_mgH332 line 1:------> /[⏏]/ expecting regex atomParse failedFAILED 00:01 119m» | ||
moritz_ | masak: right | ||
masak | right. | ||
std: /|&foo/ | 16:34 | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/pLEtJtIbDw line 1:------> /|⏏&foo/Parse failedFAILED 00:01 117m» | ||
masak | rakudo: /|&foo/; say 'alive' | ||
p6eval | rakudo a37640: OUTPUT«alive» | ||
masak submits rakudobug | |||
std: /&foo/ | 16:35 | ||
p6eval | std 625303c: OUTPUT«ok 00:01 119m» | ||
masak | std: /&|foo/ | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Null pattern not allowed at /tmp/ojXvjo5XwF line 1:------> /&⏏|foo/Parse failedFAILED 00:01 117m» | ||
pmurias | \\]\ | 16:36 | |
sorry | |||
masak | ...a bit of random backwhacking... :) | ||
sjohnson | hi dudes | 16:37 | |
masak | sjohnson! \o/ | 16:38 | |
16:39
plobsing joined
|
|||
sjohnson | hi masak, how's the perl 6 world treating you | 16:41 | |
dalek | ecza: 980c94d | pmurias++ | / (2 files): [cl-backend] methods can take arguments |
16:44 | |
masak | sjohnson: pretty well. and you? | ||
sjohnson | not bad, though been kinda unaware of perl6 news as of late :( | 16:45 | |
been focusing on learning C++ to code an app or two | |||
still using p5 though quite often so it's not a total lack of perl in my life | |||
16:47
risou left
|
|||
masak | :) | 16:49 | |
16:49
vmspb joined
|
|||
masak | sjohnson: if you're looking for Perl 6 news, look in the direction of Niecza. | 16:49 | |
16:49
plobsing left
|
|||
benabik | o/ | 16:50 | |
masak | \o | ||
pmurias | sorear: lib/JSYNC.cs is writen by you? | 16:52 | |
sorear: git log shows it is | |||
16:58
plobsing joined
17:02
molaf_ left
|
|||
pmurias | sorear: i found a problem | 17:02 | |
sorear: lib/JSYNC.cs spits out Infinity which is not valid JSON and causes problems for the lisp parser | 17:03 | ||
17:04
rgrau joined
|
|||
pmurias | perl6: say 1/0; | 17:05 | |
p6eval | niecza v2-25-g51300e9: OUTPUT«Infinity» | ||
..rakudo a37640: OUTPUT«Inf» | |||
..pugs: OUTPUT«*** Illegal division by zero at /tmp/KBgCBueWaQ line 1, column 5-8» | |||
pmurias | perl6: say 1/0.0; | ||
p6eval | niecza v2-25-g51300e9: OUTPUT«===SORRY!===Action method dec_number not yet implemented at /tmp/NlU9HC1Pyi line 1:------> say 1/0.0⏏;Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/SAFE.setting line 377 (SAFE die @ 2) at | ||
../home/p6eval/niecza/src/STD… | |||
..pugs: OUTPUT«*** Illegal division by zero at /tmp/VQUx94M4oq line 1, column 5-10» | |||
..rakudo a37640: OUTPUT«Inf» | |||
pmurias | is rakudo correct? | 17:06 | |
masak | think so. | 17:07 | |
17:10
cibs joined,
hanekomu left
17:14
plobsing left,
hanekomu joined
17:15
risou joined
17:17
shi joined
|
|||
jnthn | evening o/ | 17:18 | |
phenny | jnthn: 00:18Z <sorear> tell jnthn Why do the type cache and method cache exist once per STable instead of per HOW? | ||
jnthn | phenny: tell sorear we can't store it in the HOW as the point is that it's fast to access and we can't rely on the representation of a HOW to look a certain way, so we'd have no way to get at it other than a method call, which would defeat the object. :) Also, DRY...don't want every meta-object to have to declare storage/accessor for it. | 17:20 | |
phenny | jnthn: I'll pass that on when sorear is around. | ||
pmurias | masak: the spec would imply so | 17:24 | |
will the spec be turned more precise? | |||
in gernerall, not only in this case | 17:25 | ||
17:25
masonkramer left
|
|||
masak | pmurias: in general, only if someone changes it to be more precise. :) | 17:25 | |
17:25
masonkramer joined
17:26
masonkramer left
17:32
mtk joined
|
|||
vmspb | std: my $x=1; ++ $x ; say $x | 17:34 | |
rakudo: my $x=1; ++ $x ; say $x | |||
p6eval | std 625303c: OUTPUT«ok 00:01 121m» | ||
rakudo a37640: OUTPUT«2» | |||
vmspb | std: my $x=1; $x ++ ; say $x | ||
rakudo: my $x=1; $x ++ ; say $x | |||
p6eval | std 625303c: OUTPUT«===SORRY!===Postfix found where infix expected (omit whitespace?) at /tmp/8n2PUGWarV line 1:------> my $x=1; $x ⏏++ ; say $x expecting any of: bracketed infix infix infix or meta-infixParse failedFAILED 00:01 121m» | 17:35 | |
rakudo a37640: OUTPUT«===SORRY!===Confused at line 22, near "$x ++ ; sa"» | |||
TimToady | the whitespace rules are tighter on postfixes | ||
to distinguish them from infixes | |||
yes, it's an inconsistency :) | |||
17:36
hanekomu left
|
|||
PerlJam | As long as it's not a foolish inconsistency, I don't think there's a problem :) | 17:36 | |
pmurias | masak: making the spec more precise would also make it harder to read | 17:40 | |
daxim | perl6: ((1,2,3,4,5) ¥ (5,6,7,8,9)).perl.say | ||
pmurias | masak: as it would need to be a more formalised thing instead of pleasant prose | ||
p6eval | rakudo a37640: OUTPUT«===SORRY!===Confused at line 22, near "((1,2,3,4,"» | ||
..pugs: OUTPUT«decodeUTF8': bad data: '\165'***  Unexpected "\165" expecting operator or ")" at /tmp/RsHdqTp6dk line 1, column 14» | |||
..niecza v2-26-g980c94d: OUTPUT«===SORRY!===Confused at /tmp/rI9sOZX3IQ line 1:------> ((1,2,3,4,5) ⏏¥ (5,6,7,8,9)).perl.sayParse failed» | |||
TimToady | daxim: that's spelled Z now | ||
you must be following an ancient text | 17:41 | ||
daxim | just partying like it's 2005 | ||
17:43
pmurias left
|
|||
PerlJam | daxim: running through pugs code? | 17:43 | |
or ... code that was in the pugs repo | |||
colomon | rakudo: ((1,2,3,4,5) Z (5,6,7,8,9)).perl.say | 17:48 | |
p6eval | rakudo a37640: OUTPUT«(1, 5, 2, 6, 3, 7, 4, 8, 5, 9)» | ||
TimToady wonders whether we should maybe allow constants with deferred initializations so that they can be referred to as constants before we know their value | |||
PerlJam | lazy constants? | ||
17:49
daxim left
|
|||
TimToady | then if labels are just funny constants, we can say 'constant A; goto A; A: stuff()' | 17:49 | |
17:49
wolfram__ joined
|
|||
TimToady | or maybe 'name A;' just reserves a typename/constant/whatever name | 17:50 | |
wolfram__ | How do I get the even (or odd) indexed elements of an array (or maybe unzip to @even and @odd)? | ||
PerlJam | TimToady: the latter is exactly what I was about to suggest (though I was going to suggest "label A") | ||
TimToady | well, we also have 0-ary thingies like rand and self that aren't constants | 17:51 | |
would be nice to have a convenient way to declare them too without going all grammary | |||
moritz_ | could we ues them to decl... right :-) | 17:52 | |
TimToady | macro A {...} | ||
except I think current spec defaults macros to listops | |||
moritz_ | name my-rand; sub my-rand { rand ** 2 } | ||
would parse my-rand as a term | |||
TimToady | anyway, then we wouldn't force forward goto to be dynamic | 17:53 | |
17:53
cdarroch joined
|
|||
PerlJam | IS there no value in the declaration(s) giving the intent to usage? "nullary foo", "label foo", etc. ? | 17:53 | |
17:53
cdarroch left,
cdarroch joined
|
|||
TimToady | there's some value, but we want to avoid an explosion of keywords, I suppose | 17:53 | |
PerlJam | or is the value of ambiquity higher than whater value we'd get from the other | 17:54 | |
moritz_ | there is value in both generic and concrete declarations, IMHO | ||
TimToady | as far as the parse is concerned, it just needs to know whether to look for arguments after the name in question | ||
PerlJam | wait ... we could still use :dba on it, yes? | ||
TimToady | types and constants are the same thing, to the parser | ||
Su-Shee | good evening everyone. | 17:55 | |
TimToady | sunshiney good mornin' to ya | ||
17:55
plobsing joined
|
|||
Su-Shee | it was indeed. FINALLY ;) | 17:55 | |
moritz_ | yeah. 10 hours ago it was | 17:56 | |
17:56
envi left
|
|||
PerlJam | If we can annotate how we intend to use the symbols (something like "name Foo :dba<bar>"), then the one keyword is fine and we can still get nice messages when we screw up | 17:56 | |
TimToady | what would you use the annotation for other than commentary? | 17:57 | |
PerlJam | documentation | ||
TimToady | well, it won't pass CHECK without giving it a real definition | ||
PerlJam | I guess my brain is rebelling against the idea of labels, nullarys, and constants all occupying the same idea space | ||
TimToady | they're all barenames to me | 17:58 | |
Su-Shee | PerlJam: you don't need your brain anymore. you became very rich. (at least I dreamt about it. :) | 17:59 | |
wolfram__ | (bad time for beginner questions or badly stated problem?) | ||
TimToady | it's always a bad time :) | ||
flussence | better ask now, in case it gets worse :) | 18:00 | |
18:00
MayDaniel joined
|
|||
wolfram__ | see 10 minutes above | 18:00 | |
flussence | for @a -> $a, $b { #ignore one or the other; } | 18:01 | |
PerlJam | TimToady: perhaps that's it too ... I equate "bareword" with "evil" :) | ||
benabik | rakudo: my @l = (1,2,3,4); my (@e, @o); for @l -> $o, $e { @o.push: $o; @e.push: $e }; @o.perl.say; @e.perl.say | 18:02 | |
TimToady | as a subscript, @a[0,2,4...*] | ||
p6eval | rakudo a37640: OUTPUT«[1, 3][2, 4]» | ||
18:02
kst joined
|
|||
TimToady | except I don't think rakudo autotrims subscripts yet | 18:02 | |
wolfram__ | flussence: I need the complete even/odd arrray to pass to another sub | ||
benabik | It does explode on wrong number of args. | 18:03 | |
TimToady | rakudo: my @a = 'a'...'z'; say @a[0,2,4...24] | ||
p6eval | rakudo a37640: OUTPUT«acegikmoqsuwy» | ||
TimToady | rakudo: my @a = 'a'...'z'; say @a[0,2,4...*] | ||
p6eval | rakudo a37640: OUTPUT«(timeout)» | ||
TimToady | rakudo: my @a = 'a'...'z'; say @a[0,2,4...*>=@a] | 18:04 | |
p6eval | rakudo a37640: OUTPUT«acegikmoqsuwyAny()» | ||
moritz_ | rakudo: my @l = 1..10; say @l[-> $limit {0, 2 ...^ * > $limit].perl | ||
p6eval | rakudo a37640: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 22» | ||
TimToady | rakudo: my @a = 'a'...'z'; say @a[0,2,4...^*>=@a] | ||
p6eval | rakudo a37640: OUTPUT«acegikmoqsuwy» | ||
moritz_ | rakudo: my @l = 1..10; say @l[-> $limit {0, 2 ...^ * > $limit}].perl | ||
p6eval | rakudo a37640: OUTPUT«(1, 3, 5, 7, 9, Any)» | ||
TimToady | there's a workaround | ||
moritz_ | rakudo: my @l = 1..10; say @l[-> $limit {0, 2 ...^ * >= $limit}].perl | ||
p6eval | rakudo a37640: OUTPUT«(1, 3, 5, 7, 9)» | ||
moritz_ | rakudo: my @l = 1..10; say @l[-> $limit {1, 3 ...^ * >= $limit}].perl | ||
p6eval | rakudo a37640: OUTPUT«(2, 4, 6, 8, 10)» | ||
18:04
icwiener joined
|
|||
moritz_ | speaking of bad ideas... google doesn't seem to have picked up the rel="canonical" thing in the IR clogs | 18:05 | |
flussence | :( | ||
TimToady | but ...* is supposed to autotrim eventually | ||
moritz_ | it has indexed the day after the change as /today | ||
TimToady | and /today still doesn't redirect to the current day | ||
wolfram__ | Ok, I several things to try. One more before I head off to FFT: How do I cat (append) two arrays? | 18:06 | |
TimToady | so every time I refresh I have to also visit previous day explicitly | ||
moritz_ | TimToady: so far no user wanted that feature, except for the effect it would have on search engines | ||
wolfram__ | (wonders if it will be SFT in Rakudo) | ||
TimToady me as carping about it then :) | |||
moritz_ | wolfram__: @a, @b | ||
wolfram__: of @a.push: @b if you want to mutate @a | 18:07 | ||
wolfram__ | Oh, that's easy. Thanks | ||
moritz_ | rakudo: my @a = <foo bar>; my @b = 1, 2; .say for @a, @b | ||
p6eval | rakudo a37640: OUTPUT«foobar12» | ||
PerlJam | wolfram__: shuffling cards? | 18:08 | |
wolfram__ | PerlJam: Translating FFT algo from p5 PDL (not the built-in) | 18:09 | |
PerlJam | oh, you did mention that a minute ago | ||
18:10
dakkar left
|
|||
wolfram__ | Little stress-test for complex numbers... | 18:10 | |
18:12
Helios left
|
|||
wolfram__ | moritz_: Of course it's just as simple as in p5. Was a little confused because I need a ->glue in PDL | 18:12 | |
18:14
Helios joined
|
|||
tadzik | seen mberends | 18:17 | |
aloha | mberends was last seen in #perl6 3 days 20 hours ago joining the channel. | ||
TimToady | wolfram__: if you're a PDLer then we'll appreciate any feedback on the design in S09, since it's mostly unimplemented yet | ||
moritz_ | tadzik: fwiw mberends is on vacation, I don't know how much internet he has :-9 | ||
tadzik | ah, I see | 18:19 | |
wolfram__ | TimToady: Circular dependency -- I was hoping for a blog post or something explaining what was meant to become of the PDL things in S09 for a long time ;-) | 18:20 | |
TimToady | heh | 18:21 | |
well, I guess that's a kind of feedback... | |||
18:22
risou left
|
|||
moritz_ | hm. Just pushed a patch for the redirect thing, but it's kinda not redirecting :( | 18:22 | |
wolfram__ | If I had compact storage and effeicient calculations on huge sets of data with all the p6 operators on lists available I would be happy! | 18:23 | |
moritz_ | wolfram__: we're working on it :-) | ||
TimToady | looks like we'll be getting native types pretty soon now | 18:24 | |
wolfram__ | moritz_: I know. (also the compact storage part?) | ||
moritz_ | wolfram__: yes. | ||
18:25
spq left,
impious joined,
impious left
|
|||
wolfram__ | I'm reading logs here so I'll know when it happens. Looking forward to it! | 18:25 | |
18:25
spq joined
|
|||
moritz_ | wolfram__: it's more in the order of weeks or months, so following the release announcements will suffice :-) | 18:25 | |
18:26
shortcircuit left,
shortcircuit joined
|
|||
wolfram__ | moritz_: I know. I'm patient. | 18:26 | |
TimToady is looking forward to the time when someone implements hyperoperators in the GPU | 18:27 | ||
pmichaud | good afternoon, #perl6 | 18:28 | |
moritz_ | \o | ||
18:30
MayDaniel left
|
|||
TimToady | pmichaud: o/ do you remember why we made /(x)?/ return a list? thinking of making it Nil or the item, since we now distinguish Nil from (), and an item can behave as a list at need | 18:33 | |
pmichaud | (X)? returns a list comes from the days before Nil | ||
TimToady | and then it would be consistent with $obj.?foo | ||
18:33
cafesofie left
|
|||
TimToady | which is Nil or the return value | 18:33 | |
pmichaud | indeed, before we had any real idea what Nil was, or even that it existed | ||
originally /(x)?/ was to return the matched object or nothing; for consistency with the other quantifiers we made it always return a list (more) | 18:34 | ||
TimToady | .* returns () by new spec | ||
18:34
cafesofie joined
|
|||
pmichaud | last year, you started to change /(x)?/ to return Nil instead of a list and I carped because I had finally gotten everyone switched over to accepting a list instead of nothing :-) | 18:35 | |
i.e., the back-and-forth changes wasn't going well | |||
that said | |||
I totally agree that making it match .?meth makes perfect sense | 18:36 | ||
and /(x)?/ returning an empty array was always ending up being a faq | |||
TimToady | and removes the need for a slew of .[0] | ||
pmichaud | exactly | ||
so, almost a year later, I'm okay with switching it back | |||
now is a good time, too, since we're about to do another nqp implementation | |||
TimToady | just thought I'd ask :) | 18:37 | |
colomon | \o/ | ||
TimToady | since I know you were involved before | ||
okay, I'll respec it | |||
pmichaud | it will undoubtedly involve heartache for our users again, but I vote we get it right now rather than live with the tabs-in-makefiles for the rest of our careers | ||
TimToady | but, we already have eleven users!!! | 18:38 | |
pmichaud | so, /(x)?/ will return a match object if matched, and Nil if not matched? | ||
TimToady | I think that's the case now | ||
pmichaud | you mean in the spec, or in the implementation? | ||
TimToady | sorry, in the new spec | ||
pmichaud | okay | 18:39 | |
just verifying the intended semantic | |||
TimToady | has to be a Match if there are submatches, in any case | ||
pmichaud | well, it could've still ended up as a list of one match .... but we don't want that :-) | ||
TimToady | that's precisely what we're trying to change | 18:40 | |
pmichaud | I know it's -way- early to be planning this for most folks, but anyone (1) planning to attend yapc::eu in riga and (2) know when we'll have hacking sessions there? | ||
I'm thinking of attending yapc::eu | |||
TimToady | 1 but not 2 | ||
pmichaud | I'm guessing I may do the 1 day before and 1 day after conference plan again | ||
i.e., arrive on 13 Aug, depart on 19 Aug | 18:41 | ||
TimToady | we'll probably find a day or two to sightsee either before or after | ||
pmichaud | (leaving the 14th and 18th for hacking around the conference) | ||
TimToady | would be nice to know in advance when the hacking is | ||
pmichaud | 1 day before and after worked well in Pisa, I think. | 18:42 | |
18:43
zby_home joined
|
|||
pmichaud | bbi15 # errand | 18:44 | |
18:46
wolfram__ left
|
|||
dalek | ecs: a6bb001 | larry++ | S05-regex.pod: /(x)?/ again defined as item capture, not list |
19:02 | |
19:04
fhelmberger left,
pyrimidine joined
19:09
pako_ joined
|
|||
pmichaud | so, with abc ~~ / (x)? . / we would end up that $0 is Nil | 19:10 | |
er, 'abc' | |||
TimToady | yes | ||
pmichaud | and with 'abc' ~~ / (x)? d | . / we would end up that $0 is Mu | 19:11 | |
(i.e., no .[0] entry at all) | |||
TimToady | aren't .[] entries shared across | though? | ||
pmichaud | ummmmm | ||
(thinking) | 19:12 | ||
okay, || then? | |||
TimToady | there too, I think | ||
pmichaud | I'm not sure about 'shared' | 19:13 | |
interesting might be | |||
'abc' ~~ / (x)? d | (.) / | |||
or | |||
TimToady | shared name | ||
pmichaud | 'abc' ~~ / (x)? d | (.)? / | ||
I'm thinking first one always has to be a list (same name across multiple alternatives) | |||
oh, maybe not | 19:14 | ||
I might be too doped up on cold medicine to make any sense of it now :) | |||
but if we had | 19:15 | ||
'abc' ~~ / <alpha>? d | . / | |||
what would we expect in $<alpha> ? | |||
Currently nqp doesn't set any value for $<alpha> there | |||
TimToady | that would also change to Nil or the character, methinks | 19:16 | |
pmichaud | well, it won't be a character, because that alternation doesn't match | ||
so, any capture in a regex always gets an entry, even if it's on a non-matching branch? | |||
TimToady | so at the top level | 19:17 | |
s/so // | |||
pmichaud | is that true for non-quantified forms as well? | ||
TimToady | I probably need to take a pass on S05 and look at all the examples | ||
pmichaud | 'abc' ~~ / <alpha> || <digit> || <punct> / | ||
$<digit> gets set to Nil? | |||
that seems.... weird | |||
I'd expect $/{'digit'}.exists to be false in that case | 19:18 | ||
TimToady | well, effectively, you'll get Nil on a non-existent lookup anyway, but .exists would give a different answer | ||
19:18
_buno_ joined
|
|||
pmichaud | non-existent lookups tend to return Mu, not Nil | 19:18 | |
we could say that for Match objects all non-existent lookups return Nil | |||
TimToady | I think they should return Nil | ||
Mu is not the absense of a value | |||
pmichaud | if I have my $a; should $a be pre-set to Nil? | 19:19 | |
rakudo: my $a; say $a.WHAT; | |||
p6eval | rakudo a37640: OUTPUT«Any()» | ||
pmichaud | yeah, that makes sense there | ||
my $a; say $a]0].WHAT; | 19:20 | ||
rakudo: my $a; say $a]0].WHAT; | |||
p6eval | rakudo a37640: OUTPUT«===SORRY!===Confused at line 22, near "]0].WHAT;"» | ||
pmichaud | rakudo: my $a; say $ap0].WHAT; | ||
arggggh | |||
p6eval | rakudo a37640: OUTPUT«===SORRY!===Confused at line 22, near "].WHAT;"» | ||
pmichaud | rakudo: my $a; say $a[0].WHAT; | ||
p6eval | rakudo a37640: OUTPUT«Any()» | ||
diakopter | oooo 11 users is about 1 user per year | ||
pmichaud | I think things get weird if we turn that into Nil | ||
TimToady | poking a Nil into a variable tends to produce a different undef | ||
pmichaud | especially for autoviv | ||
TimToady | so $0 needs to be classified somehow as not-a-variable to keep its Nil | 19:21 | |
19:21
_buno_ left
|
|||
TimToady | a list is not a list of variables | 19:21 | |
but of values, so I guess we're kinda okay if we think it's really a list, and not an Array | |||
pmichaud | but $0 is really $/[0] | ||
and I've been presuming that one can assigning into $/[0] and the like | |||
*assign | 19:22 | ||
I'm fine if that's not the case | |||
TimToady | but $/[] is potentially a lazy list even | ||
19:22
plobsing left
|
|||
pmichaud | sure, but so is @a :-P | 19:22 | |
I don't see a difference there. | |||
TimToady | @a has a lazy list | ||
with which it reifies | 19:23 | ||
I guess you can always bind Nil into a slot | |||
pmichaud | so, @($/) is truly a List and not an Array, in the sense that one cannot assign to individual elements? | ||
TimToady | seems to naturally want readonly semantics once the match is done | 19:24 | |
pmichaud | okay | ||
TimToady | the matcher can cheat however it wants, of course | ||
since it's a funny kind of constructor | |||
pmichaud | so, $/{'nosuchkey'} defaults to Nil | 19:25 | |
? | |||
TimToady | I think so | ||
pmichaud | so then my question becomes | ||
'abc' ~~ / <digit> || <alpha> /; say $/<digit>.exists; # or whatever the current exists syntax is | 19:26 | ||
TimToady | digit is not an array or hash | 19:27 | |
has no .exists method | |||
pmichaud | okay | ||
TimToady | has a .defined method | ||
pmichaud | ummm | ||
%($/).exists('digit') | |||
TimToady | well, maybe the digit rule has submatches though | ||
pmichaud | I'm asking "do we make entries in the hash for captures that aren't on the matching subrule path?" | ||
*matching alternation | 19:28 | ||
19:29
plobsing joined
|
|||
TimToady | STD tends to pre-create listy captures as a flag that they have push semantics | 19:29 | |
pmichaud | nqp maintains a list as well, but doesn't do it in the match object | ||
and, of course, neither of those are listy captures :-) | |||
TimToady | might different implementations prefer .exists to work differently for efficiency? | 19:30 | |
we could possible leave it officially undefined | |||
*ly | |||
pmichaud | possibly, but I'm more interested in end-user questions about it | ||
19:30
wolfram_ joined
|
|||
pmichaud | I expect end-users will want to use $/.exists('digit') or something similar to determine which branch was taken | 19:31 | |
TimToady | my inclination is to say the key exists if the lexical scope defined it, whether or not it was bound | ||
pmichaud | and that's true for both itemy and listy captures? | 19:32 | |
TimToady | I don't think .exists is suitable for branch detection | ||
wolfram_ | What do I say instead of exp<< @b (which is "Unsupported use of << to do left shift" ) to get a list where all items in @b go through exp($_) ? | 19:33 | |
pmichaud | wolfram_: .exp for @b | ||
or | |||
exp($_) for @b | |||
wolfram_ | Ok, thanks | 19:34 | |
pmichaud | if .exp exists (I think it does), then @b.>>exp might work | ||
rakudo: my @b = 3,4,5; say @b.>>exp; | |||
p6eval | rakudo a37640: OUTPUT«===SORRY!===Confused at line 22, near "say @b.>>e"» | ||
TimToady | S05:3813 discusses subpattern renumbering over | and || | ||
pmichaud | rakudo: my @b = 3,4,5; say @b.»exp; | ||
p6eval | rakudo a37640: OUTPUT«===SORRY!===Confused at line 22, near "say @b.\x{bb}ex"» | ||
pmichaud | rakudo: my @b = 3,4,5; say @b».exp; | ||
p6eval | rakudo a37640: OUTPUT«20.085536923187754.5981500331442148.413159102577» | ||
pmichaud | there, that's it | ||
wolfram_ | Great! | 19:35 | |
pmichaud | basically, invoke .exp on every element of @b | ||
can also do | |||
rakudo: my @b = 3,4,5; sub foo($_) { exp($_); }; say @b>>.&foo | 19:36 | ||
p6eval | rakudo a37640: OUTPUT«20.085536923187754.5981500331442148.413159102577» | ||
pmichaud | in case you need to invoke a function that isn't a method | ||
TimToady | S05:3183 rather | ||
19:36
pako_ left
|
|||
pmichaud | TimToady: yes, I'm not confused by subpattern renumbering (I don't think I am :-) | 19:37 | |
I'm just clarifying when entries get created in @() and %() | |||
I can see applications wanting to use %().keys or something like that.... probably relates to .caps also | |||
TimToady | I think the names should be relatively static for optimization purposes, and the user should be relying on .defined | 19:39 | |
19:39
Vlavv` left
|
|||
TimToady | we don't add 'my' variables when they're assigned... | 19:39 | |
pmichaud | okay | ||
wfm | |||
TimToady | this seems the natural province of definedness | 19:40 | |
pmichaud | I can follow that logic | ||
TimToady | so a given matcher could actually store its matches in preknown attribute slots, for instance | ||
pmichaud | right | 19:41 | |
TimToady | which, if .[] indexed internally could be more efficient than assuming a hash impl | ||
pmichaud | I like thinking of them like lexical variables, in that sense | ||
makes a lot of sense | |||
TimToady | it feels righter to me | ||
course sometimes my feelings betray us all :) | 19:42 | ||
diakopter | especially for ... sister..... | 19:43 | |
pmichaud | we all loved the SB passat commercial last night (darth vader) | ||
dalek | ecs: 248778e | larry++ | S05-regex.pod: only list-quantifiers force list capture |
||
pmichaud | it was doubly humorous here because I drive a passat, and we keep comparing our 9-year old to Anakin Skywalker :) | 19:44 | |
TimToady | yes, that commercial was darling; though I have more in common with the old folks these days... | ||
so I liked the Eco commercial :) | 19:45 | ||
also the best of the Dorito commercials, which came in flavors bad, ugly, and good :) | 19:46 | ||
pmichaud | I must've missed the eco commercial (youtube to the rescue) | ||
www.youtube.com/watch?v=R55e-uHQna0 # passat commercial, for those who missed it | |||
TimToady | the Detroit commercial was really bizarre | 19:48 | |
pmichaud | yeah, I wasn't sure where that was going at first :) | 19:49 | |
TimToady | most of the car commercials were pretty bizarre | ||
though I liked the one where the car kept getting restolen | |||
don't remember the brand though | |||
so a failed commercial, in that sense | 19:50 | ||
19:50
Limbic_Region joined
|
|||
pmichaud | hyundai, I think | 19:50 | |
TimToady | shower & | 19:52 | |
19:52
Vlavv` joined
|
|||
pmichaud | lunch & | 19:53 | |
19:56
kjeldahl joined
20:04
MayDaniel joined
20:22
dorlamm joined
|
|||
diakopter | implement, or implement not. there is no use. | 20:26 | |
tadzik | :D | 20:27 | |
20:29
benabik is now known as benabik_away
20:51
plobsing left
20:56
dorlamm left
21:02
plobsing joined
21:07
pmurias joined
21:13
zby_home left
|
|||
pmurias | sorear: ping | 21:15 | |
21:19
snearch joined
|
|||
pmichaud | 20:26 <diakopter> implement, or implement not. there is no use. | 21:21 | |
Rakudo has already implemented 'or', 'not', 'is', 'no', and 'use'. The only one we're missing is 'there'. | |||
There's just no "there" there. | 21:22 | ||
jnthn | lol :) | ||
tadzik | std: sub implement {}; sub there {}; implement or implement not; there is no use; | 21:23 | |
p6eval | std 625303c: OUTPUT«===SORRY!===Prefix requires an argument at /tmp/ZFcI1ZctO5 line 1:------> sub there {}; implement or implement not⏏; there is no use;Parse failedFAILED 00:01 119m» | ||
tadzik | std: sub implement {}; sub there {}; implement or not implement; there is no use; | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Undeclared routines: 'is' used at line 1 'no' used at line 1 'or' used at line 1 'use' used at line 1Check failedFAILED 00:01 119m» | ||
21:23
Sarten-X left
|
|||
flussence | std: no U !!! | 21:24 | |
p6eval | std 625303c: OUTPUT«ok 00:01 118m» | ||
tadzik | 0_0 | ||
pmichaud | rakudo: 0_0 | 21:25 | |
p6eval | rakudo a37640: ( no output ) | ||
pmichaud | rakudo: say 0_0 | ||
p6eval | rakudo a37640: OUTPUT«0» | ||
pmichaud | afk | 21:28 | |
21:31
Sarten-X joined
21:32
snearch left
|
|||
[Coke] | moritz_++ #clogging | 21:34 | |
21:34
ryan__ joined
21:35
nadim_ left,
nadim_ joined
|
|||
colomon | I didn't know we have cloggers around here... | 21:35 | |
[Coke] | std: e; pi; no u !!! | 21:37 | |
p6eval | std 625303c: OUTPUT«ok 00:01 118m» | ||
PerlJam | infrared clogging even | 21:39 | |
21:42
noganex_ joined
|
|||
dalek | ecza: 1829f46 | pmurias++ | cl-backend/backend.lisp: [cl-backend] implement if and remove logging |
21:45 | |
21:45
plobsing left
21:46
noganex left,
plobsing joined
|
|||
wolfram_ | Just in case someone wants to look at my attempt to FFT in perl6: nopaste.info/54335e83b5.html | 21:49 | |
Most strange to me is that it hangs for a sequence of 0..31 or 0..63 but works for @seq = 0..15 | 21:50 | ||
Bed now. Bye. | |||
21:50
wolfram_ left
|
|||
colomon | drat. wish he hadn't just dropped that and left. | 21:51 | |
PerlJam | me too | ||
(but for probably different reasons :) | 21:52 | ||
colomon | oh? | ||
21:52
silug joined
|
|||
PerlJam | I was just going to comment on his initialization of @twid | 21:53 | |
colomon | something like pointing out it could just be 0, $twd ... (@odd-1)*$twd ? | ||
or (^@odd).map(* * $twd)>>.exp ? | 21:55 | ||
PerlJam | I assume he wrote it that way for "documentation" purposes, but he could have also factored $twid out completely so as to keep things DRYer | ||
I think this is the first time I've seen so much use of the ASCII guillemets too :) | 21:56 | ||
colomon | PerlJam: you've missed some of my "classic" code, then. :) | 21:57 | |
PerlJam | (Texas guillemets?) | ||
colomon: Must have | |||
21:58
coldhead joined
21:59
ashleydev left
|
|||
TimToady | what a stupid nopaste website that wastes half of my screen | 22:02 | |
colomon | It does give the appearance of hanging with 0..31 | 22:07 | |
22:11
ashleydev joined
|
|||
PerlJam | I just tried it with the latest parrot+rakudo and it took about 8 seconds for 0..31 | 22:13 | |
colomon | really? it just sits there on my MBP | ||
hmmm... | |||
PerlJam | 0..63 worked fine too | 22:14 | |
colomon hmmms the hmmm of someone logging into a more powerful machine... | |||
22:16
benabik joined
|
|||
PerlJam | oh, I lied. | 22:19 | |
apparently I was running my modified version rather than the original | 22:20 | ||
(change the init of @twid and it works fine :) | |||
colomon | really? | 22:22 | |
of! | |||
oh!, I mean. | |||
duh. | |||
PerlJam++ | |||
so basically he just got very very lucky that 0..15 worked | 22:23 | ||
I can confirm that with that fixed, 0..31 works... and ^64. | 22:25 | ||
ah, well, at least I got a fresh build on my Linux box out of the deal. | |||
22:26
Chillance left,
benabik left
22:32
spq left
|
|||
PerlJam | Hrm. | 22:38 | |
If you modify the initialization of @twid to any of the ones we mentioned earlier, it seems the complex arithmetic doesn't work out right. | 22:39 | ||
colomon | really? | ||
colomon admits he didn't check the result. | |||
PerlJam | But I think I know how to make his work right | 22:41 | |
masak | pmurias: I'm not opposed to the spec becoming a lot stricter, but I also doubt it'll happen. | ||
perhaps s/stricter/more formal/ | |||
22:43
kaare_ left
|
|||
colomon | PerlJam: what did you use for generating @twid? | 22:44 | |
PerlJam | Which time ? :) | ||
22:44
lolo_91 joined
|
|||
PerlJam | Anyway I think I know what the problem is. In the complex arithmetic, we get floating point real and imaginary components and ... is checking those for equality. | 22:45 | |
masak | lolo_91: greetings. any relations to Layla_91? | ||
:) | |||
lolo_91 | masak: mmm make a guess :P =) | ||
masak | well, you have the same last two digits... :P | ||
colomon | PerlJam: that's what causes the infinite loop, sure, but it's also causing the complex numbers to be messed up? | ||
masak | and the underscore. | ||
PerlJam | colomon: dunno about that one yet. | 22:46 | |
ofir | masak, you sound like a perl(/regex/) guru, what the hell does (?=pattern) means ? (positive lookahead), I couldn't figure it out | ||
masak | ofir: I don't know about guru, but I know that 'perldoc perlre' explains it fairly well. | ||
22:46
Mowah left
|
|||
PerlJam | ofir: You might get more help with a perl 5 regex on #perl or #perlhelp or something | 22:47 | |
masak | ofir: if you're still curious about what 'positive lookahead' is after that, Wikipedia might help. or #perlhelp on irc.perl.org | ||
ofir | PerlJam, it is a perl 5 regex only ? perl 6 no longer supports this syntax ? | ||
lolo_91 | masak: yes it is me I am unable to fall asleep so decided to pass by =) | ||
masak | ofir: generally, it's a good idea to disguise Perl 5 questions in Perl 6 syntax in here. this is #perl6, after all :) | 22:48 | |
PerlJam | ofir: nope, Perl 6 has different regex syntax for this feature (and others) | ||
masak | lolo_91: by "yes it is me", I suppose you want to claim that you are indeed Layla_91. :) | ||
22:48
sji joined
22:49
shi left
|
|||
ofir | masak, disguise is my middle name ;] | 22:49 | |
22:49
benabik joined
|
|||
sbp | ofir: lookaheads in perl6 are <?before pattern> | 22:49 | |
tadzik | lolo_91: insomniac high five! o/ | ||
sbp | ofir: see perlcabal.org/syn/S05.html | 22:50 | |
lolo_91 | tadzik: heeey! :D | ||
ofir | sbp, thanks a lot | ||
masak | ofir: thus (just so you know till next time), you should have asked "what the hell does <?before pattern> mean? (positive lookahead) I couldn't figure it out" :) | ||
sbp | yw | ||
PerlJam | heh | ||
Tene | ofir: (?=...) is well-documented in 'man perlre' | ||
sbp | well, he couldn't if he didn't know what it is in perl6 | ||
I'd have disguised it as "what is (?=...) in perl6?" | |||
masak | :) | 22:51 | |
that'd work too. | |||
22:51
benabik left
|
|||
jnthn | pmichaud: about? | 22:51 | |
masak | but then you'd have to wait a day to ask what it mean in Perl 6 :P | ||
sbp | ofir: and it means, does this pattern come next? if so, then we can continue; but we don't consume what the pattern has matched | ||
lolo_91 | jnthn: Ping! =) | ||
sbp | so it's a kind of peek forwards without consumption | ||
jnthn | lolo_91: Pong! ;) | ||
sbp | ofir: oh, also there's special syntax for doing peeking | 22:52 | |
just once at the beginning and end. but don't worry about that because the <?before pattern> thing always works | 22:53 | ||
jnthn | lolo_91: If the wind keeps making this much noise here I might not do so much sleep tonight either... :) | ||
lolo_91 | jnthn: Oh god it is same here! I feel the house is falling apart! :D | ||
jnthn | If it's this bad here, I can only imagine what it's like on the coast...I'm a bit inland and it's normally gentler here. :) | 22:55 | |
22:55
plobsing left
|
|||
masak | pmichaud: I'm planning to attend YAPC::EU in Riga. \o/ | 22:55 | |
jnthn | pmichaud: what masak sed :) | 22:56 | |
Mmm...Riga. :) | |||
tadzik is coming too | |||
masak | \o/ | ||
jnthn | \o/ | ||
lolo_91 | jnthn, masak, tadzik.. lucky people! :''( | 22:57 | |
jnthn | lolo_91: *hug* | ||
tadzik | I mean, damn, there is a free t-shirt! :) | ||
jnthn | lolo_91: Well, there's YAPC::Russia. :) | ||
Tene | maybe I'll finally attend a yapc in 2011 | ||
tadzik | lolo_91: so why won't you come? | ||
Tene | I'd really like to. | 22:58 | |
in 2010, I was moving to a new state and starting a new job right during yapc | |||
jnthn | Meh, excuses. I went to a conference half way through moving country. :P | ||
Tene | in 2009, I had no money | ||
lolo_91 | tadzik: I can not travel a lot.. I have job now and not much cash.. but will attend YAPC::Russia. ^_^ | 22:59 | |
jnthn | lolo_91: How's the new dev job going? :) | 23:00 | |
23:01
cosimo joined,
risou joined,
plainhao left
23:02
whiteknight joined
|
|||
lolo_91 | jnthn: oh I hate being a newbie :( I keep getting errors in every line of code :S I study all the time.. but I wish my job was c and not obj c :S | 23:02 | |
jnthn: The syntax is crazy | |||
Tene | Mmm... C. | ||
jnthn | lolo_91: The method call syntax is...interesting. | 23:03 | |
arnsholt | I keep meaning to learn Objective C | ||
jnthn | lolo_91: You'll get used to it with time, I'm sure. | ||
lolo_91 | jnthn: I will also try to study perl6 in parallel.. maybe someday I will find a job that needs a "perl6 programmer" :) | 23:04 | |
PerlJam | rakudo: my @a = 0..5; say ^@a.map(* * 3); | 23:05 | |
p6eval | rakudo a37640: OUTPUT«012345» | ||
PerlJam | rakudo: my @a = 0..5; say (^@a).map(* * 3); | ||
p6eval | rakudo a37640: OUTPUT«03691215» | ||
masak | Objective C, the C with Objectional syntax. | ||
PerlJam | that first one is a surprise (at least to me) | ||
jnthn | lolo_91: Hopefully! :-) | ||
PerlJam | I don't know if there's a way to diddle the precedences so that it comes out right, but it would be nice | 23:06 | |
anyway .. /me has to go pick up kids | |||
lolo_91 | masak: Did you work with obj c too? | 23:07 | |
23:07
fod joined
|
|||
jnthn | PerlJam: It's a general issue with prefix operators and method calls, I think. +@a.log # or some such | 23:07 | |
Well, that one is no-op I guess. :) | |||
arnsholt | masak: At least it's not Objectivist C =) | ||
masak | arnsholt: :D | ||
jnthn | :) | 23:08 | |
23:08
mtk left
|
|||
masak | lolo_91: no, but I probably will. $boss wants to cast me as an iPhone developer eventually. | 23:08 | |
jnthn | $boos or @boss? :) | ||
tadzik | $!boss :) | ||
masak | a private boss? :) | 23:09 | |
tadzik | I mean, there is no accessor :) | ||
jonnie | I saw Gabor Szabo's perl 6 talk at fosdem.. was a nice introduction to rakudo.. thanks.. if he's around :) | ||
jnthn | $*boss # whose my boss depends on context ;) | ||
tadzik | no public accessor | ||
jonnie: you're probably looking for szabgab++ | |||
lolo_91 | masak: I got my mac for it too.. I love them.. and miss my old fedora and ubuntu :(... | ||
jonnie | ah, cheers tadzik | 23:10 | |
szabgab, thanks for the talk :) | |||
lolo_91 | time to sleeeeeep! bye all! =) | ||
masak | jonnie: welcome to #perl6! we're a motley crew, and sometimes we're even serious for more than two minutes! | ||
lolo_91: 'night | |||
jonnie | haha | 23:11 | |
sbp | <!serious> | ||
jnthn | lolo_91: dobru noc | ||
lolo_91: er, erm, the Russian version of that one :) | |||
Tene | jnthn: is nqp-nom far enough along that I could try implementing cardinal's object model on its objects yet? | ||
jnthn | Tene: Almost. I didn't do the primitive for mix-in support yet. | ||
Tene | jnthn: can I subclass Class? | 23:12 | |
jnthn | Tene: Er? | ||
There is no Class. | |||
:) | |||
Tene | so what's the type of a class object? | ||
Please free to tell me to go read the source. :) | |||
jnthn | There's not by default a class object. Instead one would write a meta-object that provides class-y semantics. | ||
23:13
lolo_91 left
|
|||
jnthn | For example, github.com/perl6/nqp-rx/blob/nom/s...lassHOW.pm | 23:13 | |
Is the one that implements Perl 6-y class semantics. | |||
Tene | Ahh, 'k. | ||
jnthn | 6model's core doesn't assume one definition of class. In fact, it doesn't even provide one. :) | ||
masak | Tene: if you meant 'type object', it's the same type as its instance objects. :) Dog, for example, is of type Dog. | 23:14 | |
jnthn | Aye, though I suspect type objects don't make sense for Ruby so much. | ||
IIUC meta-classes are things that you instantiate to get classes, or something along those lines. | |||
masak | sounds familiar. | ||
jnthn | Which you can likely arrange. | 23:15 | |
pmurias | masak: re spec being more formal, i think a lot of the lack of formality is the result of things not being figured out fully | ||
23:15
stkowski left
|
|||
jnthn | Tene: Anyway, I'd recommend working out the semantics you need and writing the meta-objects that implement them rather than trying to base it off one that does the Perl 6-y semantics. | 23:15 | |
pmurias | masak: that is the spec discriping how things work on the "user" level not on the deep level | 23:16 | |
jnthn | Tene: The NQP set of meta-objects are in no way "privileged". | ||
pmurias | masak: getting smart links working again would make the spec more precise | ||
23:16
fod left,
mtk joined
|
|||
pmurias | hmm, smart links work | 23:17 | |
masak | thus, the spec is more precise! QED. | 23:18 | |
Tene | jnthn: so I'd likely want to start with a RubyClassHOW.pm approximately? | 23:19 | |
pmurias | masak: the work badly atm, linking to the sluggish github | ||
masak | :/ | ||
pmurias | instead of having the test inline | 23:20 | |
23:21
pmurias left
|
|||
jnthn | Tene: Yes | 23:24 | |
Tene: How does Ruby store attributes, ooc? | 23:25 | ||
23:26
icwiener left
|
|||
Tene | jnthn: 1) I don't really know ruby | 23:27 | |
2) there are instance attributes and class attributes, and those are different | |||
jnthn | OK :) | ||
23:27
drbean joined
|
|||
Tene | there are also instance methods and class methods, which are different | 23:27 | |
which was difficult to do with p6object | |||
the big difficulty with parrot objects was that the 'new' opcode only worked on instances of parrot's Class pmc | 23:28 | ||
not on instances of subclasses of Class. | |||
jnthn: so, what did you mean by "how does it store attributes"? | 23:30 | ||
jnthn | Tene: As in, are they just stored in a dictionary of names, do you need to add new ones, what happens if you have one in the superclass with the same name as one in a subclass, etc. | 23:31 | |
23:32
nadim_ left
|
|||
jnthn | Tene: 6model supports custom representations. If none of the ones I've already done are optimal for Ruby's attribute storage needs, we can make a repr that is better suited for it. | 23:32 | |
And it'll fit into the model just fine. | |||
23:34
nadim_ joined
|
|||
jnthn | Tene: But you may mind that the P6opaque one is good enough. | 23:35 | |
23:41
sji left
|
|||
Tene | I'll see what I find out. It seems like an accessible way to get started with 6model | 23:44 | |
jnthn | Tene: Let me know how it works out. | ||
23:46
risou_ joined
23:47
risou_ left
|
|||
LoRe | did you know that "6" is pronounced like "sex" in german? it looks like sex model :) | 23:47 | |
jnthn | LoRe: Same in Swedish. | ||
LoRe: I didn't realize for...months...after I picked the name though. :/ | 23:48 | ||
masak | Swedes think about 6 all the time. | ||
jnthn | For your own sanity, don't make the same observation about my blog name :P | ||
masak | jnthn: ah-HA! | 23:49 | |
;) | |||
sorear | good * #perl6 | ||
phenny | sorear: 17:20Z <jnthn> tell sorear we can't store it in the HOW as the point is that it's fast to access and we can't rely on the representation of a HOW to look a certain way, so we'd have no way to get at it other than a method call, which would defeat the object. :) Also, DRY...don't want every meta-object to have to declare storage/accessor for it. | ||
jnthn | masak: :P | ||
23:49
risou left
|
|||
jnthn | In Holland they tried to get me to give a talk called "Hardcore Perl Six" once. :) | 23:49 | |
23:50
MayDaniel left
|
|||
jnthn | s/Six/6/ | 23:50 | |
Took me a while to cotton on why... :) | |||
colomon | :) | ||
23:54
jevin left
|
|||
sorear | jnthn: I guess you weren't here when someone was trying to name using perl 6 thejoyof6.pdf | 23:58 | |
jnthn | sorear: :D | 23:59 | |
sorear | jnthn: I'm thinking of adding an extra layer between STable and HOW that is repr-independant and contains the fiddly meta-metamodel logic like the caches. Name suggestions? |