»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
cognominal | ulimit | 00:00 | |
sorear | ulimit -v | ||
ulimit -m limits PHYSICAL memory use, and thus causes swapping to start sooner | |||
cognominal | documented in the bash man page | ||
sorear | do not mix up these two options | ||
$ help ulimit | 00:01 | ||
cognominal | apparently I need to do ulimit -S | 00:03 | |
00:05
rv2733 joined
|
|||
sundar | The Rakudo 'repl' doesn't print the values of evaluated expressions automatically.. is this to be changed, or is this the intention? | 00:08 | |
masak | sundar: this is to be changed. | ||
jnthn | 'tis even on the ROADMAP. :-) | ||
sundar: It's one of a couple of REPL improvements that we really need. | 00:09 | ||
masak | Moose 1.0! \o/ stevan-little.blogspot.com/2010/03/...eased.html | 00:11 | |
sundar | ah ok.. I didn't really understand it since it's in the present tense: "REPL actually prints". :) | ||
jnthn | sundar: It's things we want to be able to say are true some day. ;-) | 00:12 | |
00:12
rv2733 left
|
|||
sundar | yeah, it sure will look good when it goes to the completed items list.. ;) | 00:13 | |
sorear | Moose 100 | 00:15 | |
cognominal | masak++ # now I compile under 10 minutes while doing other things | 00:18 | |
masak | moritz_++ # for the original tip :) | ||
jnthn compiles his attempted fixes for the instance.t issues | 00:20 | ||
incise.org/hash-table-benchmarks.html # may be interesting for those hacking Perl 6 compilers. | 00:25 | ||
colomon is building unobe's latest, while he prepares to escort the Chinese princess back to China. | |||
cognominal | masak, is you perl 6 web application still maintained? | 00:27 | |
masak | cognominal: which one? | ||
cognominal | Lightweight Perl 6 framework for web applications. Work-name is Web.pm. | ||
I meant web server | |||
masak | we were just discussing that over email. | 00:28 | |
we've done 19 grant weeks out of 20. | |||
it would be nice to wrap up the grant. | |||
but I feel we've lost touch with our grant manager and the TPF. | |||
(mostly because of long stretches of inactivity) | 00:29 | ||
jnthn | masak: fwiw, on my own grants I've talked with TPF at the start and at the end. ;-) | ||
cognominal | masak: I got perl6 Configure | ||
Null PMC access in find_method('get_parrotclass') | |||
current instr.: 'perl6;ClassHOW;onload' pc -1 ((unknown file):-1) | |||
Segmentation fault | |||
masak | jnthn: that's a partial relief :) | ||
cognominal | when trying to configure it. | ||
jnthn | cognominal: make install not run? | ||
masak | cognominal: I don't think anyone's tried to build Web.pm on the new master. | ||
yet. | |||
jnthn | And trying to use Perl 6 outside of build directory? | ||
If so, run make install. :-) | 00:30 | ||
00:32
wknight8111 left
|
|||
cognominal | thx, jnthn | 00:33 | |
now I probably need to tell it where to find modules... | 00:34 | ||
perl6 Configure | |||
Unable to find module 'Configure'. | |||
jnthn | perl6 -e 'say @*INC.perl' will tell you that. | ||
masak | export PERL6LIB=`pwd`/lib | 00:35 | |
cognominal | now, I guess I hit a real problem | 00:36 | |
perl6 Configure | |||
You can not add a regex to a module; use a class, role or grammar | |||
masak | right. | ||
that's just wrong. | |||
and known. | |||
jnthn | Did we get a spec resolution on that? | ||
cognominal | I suppose the recent work on module has invalidated some stuff | ||
masak | well, TimToady said that we're definitely allowing regexes outside of grammars. | 00:37 | |
that's good enough for me. | |||
jnthn | masak: It was also stated that you'd have to write my regex or our regex. | ||
iirc. | |||
masak | hm; possibly. | ||
jnthn | The question is, do we warn and throw away all method declarations on a module that are has-scoped? | ||
masak | it's getting to be high time to try to get the app cheese to build on the new Rakudo master. | ||
colomon | app cheese?! | 00:38 | |
jnthn | Sounds crackers. | ||
cognominal | the proof of takudo is in eating the apps :) | ||
*rakudo | 00:39 | ||
masak | colomon: 'cheese' is just a term meaning 'totality' here :) | ||
colomon | ah. strange usage, good idea. :) | 00:40 | |
masak | colomon: use.perl.org/~masak/journal/39583 | ||
hm, that URL doesn't actually *explain* the usage... :P | 00:41 | ||
00:41
fda314925 left
|
|||
masak | it started when I accidentally a cheese slide on the last NPW... | 00:41 | |
00:41
hercynium joined
|
|||
jnthn | It wasn't the whole cheese, though. | 00:42 | |
masak | colomon: a couple dozen slides into this presentation, there's a cheese: masak.org/carl/npw2009-november/talk.pdf | 00:43 | |
00:43
yinyin joined
|
|||
cognominal | masak, is Web inspired from Sinatra like Perl 5 Dancer? | 00:44 | |
I see a method Astaire so I wonder | |||
masak | cognominal: the part of it called Astaire is. | ||
cognominal | ok | 00:45 | |
masak | cognominal: the core of Web.pm is inspired by Ruby's Rack. | ||
jnthn | instance.t annoyance fixed. | ||
masak | s/inspired by/a faithful clone of/ | ||
dalek | kudo: e8b8da3 | jonathan++ | src/Perl6/ (3 files): Correct handling of attributes during the compile so we don't lose ordering, thus dealing with the intermittent instance.t fejls. |
00:46 | |
00:46
fda314925 joined
|
|||
cognominal | There is so much Web framework around that I have trouble to remember the specificities. | 00:46 | |
masak | tell me about it. :) | 00:47 | |
cognominal | I think there is a wikipedia page but not really up to date | 00:48 | |
en.wikipedia.org/wiki/Comparison_of...frameworks | |||
I remember having added to it weblift (a scala framework) a few months ago | 00:49 | ||
00:49
drakej joined
|
|||
holli_ | rakudo: grammar G { method TOP { die "!" } }; my $p; try { $p = G.parse("x"); }; say $p | 00:49 | |
p6eval | rakudo db0f85: OUTPUT«Any()» | 00:50 | |
holli_ | rakudo: grammar G { method TOP { { die "!" } } }; my $p; try { $p = G.parse("x"); }; say $p | ||
p6eval | rakudo db0f85: OUTPUT«Any()» | ||
holli_ | rakudo: grammar G { method TOP { { x } } }; my $p; try { $p = G.parse("x"); }; say $p | ||
p6eval | rakudo db0f85: OUTPUT«Any()» | ||
masak | cognominal: I keep wanting to check out weblift. | ||
colomon | masak: running all the projects' tests! woo-hoo! go cheese! | 00:51 | |
snarkyboojum | I wrote some simple stuff in Lift - loved it's templating framework | ||
masak | colomon: yeah. we're getting there. :) | ||
colomon | \o/ | 00:52 | |
snarkyboojum | found debugging Lift issues problematic at the time (this was about 2 years ago tho :)) | 00:59 | |
snarkyboojum stops talking off topic ;) | |||
masak | snarkyboojum: hi! | 01:00 | |
snarkyboojum | masak: hello! | 01:04 | |
I'm about to run off, so will bug you later on about Tardis :) | 01:05 | ||
masak | :) | ||
01:05
frzntoz joined
|
|||
masak | I'm not sure how long I'll be staying. it's way past my bedtime. | 01:05 | |
snarkyboojum | in that case, an early goodnight from me :) | 01:06 | |
afk & | |||
masak | :) | ||
jnthn should sleep soonish too | 01:07 | ||
01:10
nihiliad left,
nihiliad joined
01:17
sundar left
01:20
wolf2k_ubuntu joined
|
|||
jnthn | Sleep time, night all o/ | 01:20 | |
masak | 'night, jnthn! | ||
01:21
ash_ left,
wolf2k_ubuntu left
01:24
wolf2k_ubuntu joined
|
|||
dalek | kudo: 26ba8bf | (Solomon Foster)++ | (3 files): Merge branch 'master' of git://github.com/unobe/rakudo |
01:26 | |
kudo: 208fcab | (Solomon Foster)++ | src/Perl6/ (3 files): Merge branch 'master' of [email@hidden.address] |
|||
01:28
masak left
01:29
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
cognominal | squerl | 01:33 | |
01:44
ash_ joined
01:46
frzntoz left
01:47
justatheory joined
01:49
wolf2k_ubuntu left
01:55
wolf2k_ubuntu joined
02:18
xinming joined,
am0c joined
|
|||
am0c hugs p6eval | 02:28 | ||
colomon | rakudo: my @a = 1..10; my @b = 'a'..'f'; zip(@a, @b) | 02:30 | |
p6eval | rakudo db0f85: OUTPUT«Could not find non-existent sub &zipcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | rakudo: multi zip(**@list) { @list[0] Z @list[1] }; my @a = 1..10; my @b = 'a'..'f'; say zip(@a;@b) | 02:32 | |
p6eval | rakudo db0f85: OUTPUT«Malformed parameter at line 11, near "**@list) {"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
colomon | drat | 02:33 | |
02:42
Alias left
02:43
Alias joined
|
|||
pugssvn | r30203 | colomon++ | [t/spec] Fudge for Rakudo. | 02:50 | |
02:56
simonm joined
03:01
simonm left
03:04
dalek left
03:08
dalek joined
03:20
nihiliad left
|
|||
dalek | kudo: f7d3461 | (Solomon Foster)++ | src/core/Any-list.pm: Quick implementation of Any.pairs. |
03:27 | |
kudo: 1882918 | (Solomon Foster)++ | t/spectest.data: Turn on S32-array/pairs.t. |
|||
03:35
_jaldhar left
|
|||
colomon | rakudo: say split("", "forty-two") | 03:35 | |
p6eval | rakudo db0f85: OUTPUT«forty-two» | ||
colomon | rakudo: say "forty-two".split(""); | 03:38 | |
p6eval | rakudo db0f85: OUTPUT«forty-two» | ||
colomon | rakudo: say split("", "forty-two").perl | ||
p6eval | rakudo db0f85: OUTPUT«GatherIterator.new()» | ||
colomon | rakudo: say split("", "forty-two").eager.perl | ||
p6eval | rakudo db0f85: OUTPUT«("f", "o", "r", "t", "y", "-", "t", "w", "o")» | ||
am0c | say "forty-two".split('').perl.say | 03:49 | |
rakudo: "forty-two".split('').perl.say | |||
p6eval | rakudo db0f85: OUTPUT«GatherIterator.new()» | ||
am0c | ah? | ||
rakudo: "forty-two".split('').eager.perl.say | 03:50 | ||
p6eval | rakudo db0f85: OUTPUT«("f", "o", "r", "t", "y", "-", "t", "w", "o")» | ||
am0c | oic.. | ||
snarkyboojum | rakudo: my @a = "forty-two".split(''); @a.perl.say | ||
p6eval | rakudo db0f85: OUTPUT«["f", "o", "r", "t", "y", "-", "t", "w", "o"]» | 03:51 | |
sorear | @ isn't lazy... yet | ||
03:53
_jaldhar joined
|
|||
am0c | sorear: just an @ after assignment is lazy later at default? | 03:55 | |
s/@/simple @/; # i mean | |||
colomon | rakudo: say "".split('').eager.perl | 03:56 | |
p6eval | rakudo db0f85: OUTPUT«("", )» | ||
snarkyboojum | alpha: my @a = 1..Inf; | ||
heh | |||
p6eval | alpha 30e0ed: ( no output ) | ||
am0c | alpha? | 03:57 | |
p6eval: help | |||
p6eval | am0c: Usage: <(mildew-js|pugs|nqp|mildew|std|rakudo|perlito|alpha|sprixel|elf|highlight): $perl6_program> | ||
am0c | p6eval: help alpha | ||
p6eval | am0c: Usage: <(mildew-js|pugs|nqp|mildew|std|rakudo|perlito|alpha|sprixel|elf|highlight): $perl6_program> | ||
snarkyboojum | am0c: alpha branch of rakudo pre ng | ||
alpha: "forty-two".split('').batch(*).say | 03:58 | ||
p6eval | alpha 30e0ed: OUTPUT«Method 'batch' not found for invocant of class 'List'in Main (file src/gen_setting.pm, line 324)» | ||
snarkyboojum | rakudo: "forty-two".split('').batch(*).say | 03:59 | |
p6eval | rakudo db0f85: OUTPUT«Method 'Int' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
snarkyboojum | does Whatever work there? :) | ||
rakudo: "forty-two".split('').batch(9).say | |||
p6eval | rakudo db0f85: OUTPUT«forty-two» | ||
snarkyboojum | am0c: github.com/rakudo/rakudo/tree/alpha | 04:00 | |
04:00
drakej left
04:01
holli_ left
|
|||
am0c | I see! | 04:01 | |
snarkyboojum | pre nq.. lol. I meant pre nqp-rx | ||
mildew-js: say "hi" | 04:03 | ||
p6eval | mildew-js: OUTPUT«Can't open perl script "mildew": No such file or directory» | ||
snarkyboojum | mildew: say "hi" | 04:04 | |
p6eval | mildew: OUTPUT«Can't open perl script "mildew": No such file or directory» | ||
snarkyboojum | elf: say "well hello" | ||
p6eval | elf 30203: OUTPUT«well hello» | ||
snarkyboojum | rakudo: my $x = * * 2; say <1 2 3>.map: $x | 04:06 | |
p6eval | rakudo db0f85: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
snarkyboojum | alpha: my $x = * * 2; say <1 2 3>.map: $x | ||
p6eval | alpha 30e0ed: OUTPUT«246» | ||
snarkyboojum | rakudo: my $x = * * 2; say $x(5) | 04:08 | |
p6eval | rakudo db0f85: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
snarkyboojum | rakudo: say <1 2 3>.map: -> $x { $x.succ } | 04:09 | |
p6eval | rakudo db0f85: OUTPUT«234» | ||
snarkyboojum | rakudo: say <1 2 3>.map: *.succ | ||
p6eval | rakudo db0f85: OUTPUT«invoke() not implemented in class 'String'current instr.: 'perl6;Code;signature' pc 13156 (src/builtins/Str.pir:115)» | ||
snarkyboojum | alpha: say <1 2 3>.map: *.succ | ||
p6eval | alpha 30e0ed: OUTPUT«234» | ||
pugssvn | r30204 | colomon++ | [t/spec] Redo split.t to use .join(',') for testing rather than is_deeply, as the latter does not really work with iterators. | 04:10 | |
ash_ | rakudo: map { say $_ * 2 }, <1 2 3> # rakudo is a bit to lazy sometimes | ||
p6eval | rakudo db0f85: ( no output ) | ||
colomon | BTW, if someone is looking for something to do, I think split.t could easily use twice as many tests as it has now... | 04:11 | |
04:13
xinming left
|
|||
ash_ | i can try to take a look at it later | 04:13 | |
dalek | kudo: b2f995a | (Solomon Foster)++ | t/spectest.data: Turn on split.t. |
||
04:15
holli joined
04:17
meppel joined
|
|||
snarkyboojum | buubot: karma colomon | 04:21 | |
buubot | snarkyboojum: colomon has karma of 378 | ||
snarkyboojum | buubot: karma audreyt | ||
buubot | snarkyboojum: audreyt has karma of 8 | ||
snarkyboojum | interesting :) | 04:22 | |
sorear | buubot is a new player | ||
buubot | sorear: Couldn't match input. | ||
colomon | audreyt does't really do much around here anymore. but certainly deserves higher karma tan me.... | ||
*than | |||
sorear | back in the heydey of #perl6 karma was managed by lambdabot | 04:23 | |
or the heydey of pugs, anyway | |||
snarkyboojum | aye | ||
colomon | I thought the karma has been reset several times just in the last year.... | ||
sorear | also I've got ~500 lambdabot karma from my time in #haskell that didn't carry over :( | ||
04:29
molaf joined
04:31
snarkyboojum joined
04:37
holli left
04:40
colomon left,
Guest88978 is now known as Trashlord,
Trashlord left,
Trashlord joined
04:51
meppel left,
holli joined
04:54
ash_ left
05:33
am0c left
05:35
molaf left
05:47
justatheory left
05:57
ShaneC left
05:58
mberends left
06:03
wolf2k_ubuntu left
06:19
Sarten-X left
06:20
xinming joined
06:26
Sarten-X joined
|
|||
holli is pondering about new operators: <?p6?> and <? code ?> | 06:38 | ||
like ib php. it would turn perl6 instantly into the worlds most powerful templating language. | 06:39 | ||
s/in/php/ | |||
bah, s/ib/in/ | |||
06:47
chromatic joined
07:04
rekhajos joined
|
|||
holli | rakudo: sub MAIN { say "M" } | 07:25 | |
p6eval | rakudo db0f85: ( no output ) | ||
07:29
eternaleye left
07:30
yahooooo joined
07:35
payload joined
|
|||
pugssvn | r30205 | lwall++ | [specs] Make it clear that pairs are *not* related to subscripts, but the | 07:38 | |
r30205 | corresponding fatarrow semantics in particular, name extenders are just | |||
r30205 | strings or list of strings, properly indicated by :<> or :() in most cases | |||
r30205 | (this includes all operator names). Forbid name extension using :{}, and | |||
r30205 | since names may no longer be extended with :{}, we can free up that notation | |||
r30205 | for supplying a closure as a first argument to a method without an intervening | |||
r30205 | space. (We can't also get rid of the colon, or it's a hash subscript.) | |||
r30206 | lwall++ | [STD] Properly object to unrecognized internal regex modifiers such as :has. | 07:41 | ||
r30206 | Parse to the new specs regarding name extensions, and allow colon method arguments | |||
r30206 | to omit the space if the next char is a left curly, which is what people seem to | |||
r30206 | expect anyway. | |||
07:45
mberends joined
|
|||
pugssvn | r30207 | lwall++ | [t/spec] patch up occurrences of infix:{...} etc. to align with current spec | 07:51 | |
sjohnson | @karma | 07:52 | |
07:52
TimToady sets mode: +vvv buubot dalek hugme,
TimToady sets mode: +vv ilogger2 IRSeekBot,
TimToady sets mode: +vv p6eval phenny
|
|||
mberends | holli: for templating you've also already got $s = "text { code } text"; | 07:52 | |
TimToady | Perl 6 is already the world's most powerful templating language. :) | 07:53 | |
mberends | :) | 07:54 | |
TimToady | and where it isn't, it will be trivial to tweak it till it is. | ||
well, trivial for the user, anyway...the implementation of all that is not so trivial, from STD's perspective... | 07:55 | ||
08:02
hanekomu_ joined
08:03
riffraff joined
08:12
Su-Shee joined
08:16
iblechbot joined,
dalek left
|
|||
pugssvn | r30208 | lwall++ | [STD] more deletion of no-longer-needed xacts | 08:30 | |
08:39
dalek joined
09:08
dakkar joined
|
|||
jnthn | morning | 09:16 | |
sorear | hello | 09:18 | |
blizkost is fighting me | |||
jnthn | Fight back! Fight back! | 09:20 | |
Yes, I fighted me too. :-) | |||
sorear | today's insanity is the macro war between perl.h and parrot.h | 09:21 | |
also, I'd like to give thanks to whoever put rm *.c *.h in the clean rule for build/src/pmc/Makefile.in | 09:22 | ||
09:27
meteorjay left
|
|||
jnthn | sorear: Just a standard thing. | 09:29 | |
(from the language template) | |||
I don't find it particularly surprising. | |||
I'm guessing you put .c and .h files in there that weren't the PMC's ones though. :-/ | 09:30 | ||
sorear | yep! | ||
jnthn | :-) | ||
sorear | luckily I'm in the habit of commiting *before* testing | ||
jnthn | Phew. | ||
Perhaps it's nice to pop them in some other folder. Less risk, and after all, they aren't pmcs, they're other stuff. :-) | 09:31 | ||
09:34
clintongormley joined
09:38
cotto joined
09:39
payload left
|
|||
moritz_ | rakudo: say [1,2,3,4] | 09:53 | |
p6eval | rakudo db0f85: OUTPUT«1 2 3 4» | ||
moritz_ | rakudo: say [[1,2],[3,4]] | ||
p6eval | rakudo db0f85: OUTPUT«1 2 3 4» | ||
moritz_ | rakudo: use Test; is_deeply [1,2,3,4], [[1,2],[3,4]] | 09:55 | |
p6eval | rakudo db0f85: OUTPUT«not ok 1 - # got: [1, 2, 3, 4]# expected: [[1, 2], [3, 4]]» | ||
09:57
yinyin left
|
|||
moritz_ | rakudo++ | 09:57 | |
09:59
payload joined
10:08
gfx joined
10:15
chromatic left
10:17
ktne joined
10:19
eternaleye joined
10:28
iblechbot left
10:48
xinming_ joined
10:51
xinming left
10:57
riffraff left
10:58
pmurias joined
11:05
hanekomu_ left
11:08
raygis joined,
raygis left
11:16
fda314925 left
11:17
fda314925 joined
11:22
xinming_ is now known as xinming
11:24
sundar joined
11:28
payload left
11:29
colomon joined
11:40
rekhajos left
11:41
meppl joined
11:42
synth joined
11:48
envi^home joined
11:57
snarkyboojum left
12:01
sundar left
12:10
sundar joined
12:22
masak joined
|
|||
masak | oh hai, #perl6 | 12:22 | |
12:22
mj41 joined,
pmurias left
|
|||
mberends | oh hai masak | 12:22 | |
masak picked the wrong hours to sleep tonight | 12:23 | ||
12:25
sundar left,
envi^home left
12:27
sundar joined
12:28
[synth] joined
12:30
envi^home joined
|
|||
jnthn | masak: Just awake? :-) | 12:30 | |
masak | jnthn: been up a few hours. :) | 12:31 | |
but still. kinda late. | |||
mberends | jnthn: for separate compilation of core/*.pm, is it good or bad to consider inserting the generated traits.pir into the front of every other modules that mentions traits? | 12:34 | |
jnthn | masak: Ah. Spent my morning on visa crap. But aside from giving some stuff to a courier who'll show up later, I think I'm done now. | 12:35 | |
masak: The visa form has got...a lot worse...since last time I did it. :-/ | |||
mberends: Yes that would be very bad. | |||
masak | jnthn: ok. I'd better start digging in that matter, then. | ||
jnthn | masak: Well. | ||
masak: But you're not British, so your form is probably simpler. | 12:36 | ||
masak | :) | ||
jnthn | I'm not joking. The form I filled out is the special one for the UK, the US and Georgia. | ||
cognominal | I am afraid that with our president that France will become an aligned country and pick that sort of sillinyess | 12:38 | |
12:39
ignacio_ joined
|
|||
moritz_ hopes that France does not leave the Schengen treaty | 12:40 | ||
jnthn | That would suck. | 12:41 | |
12:42
justatheory joined
|
|||
masak | A hole the size of France in the middle of the Schengen zone? no kidding! | 12:42 | |
takadonet | morning all | 12:44 | |
12:45
ruoso joined
12:46
justatheory left
|
|||
jnthn | masak: Well, slightly to the left of... ;-) | 12:48 | |
12:48
holli left
12:49
ignacio__ joined
12:50
ignacio_ left,
gfx left
12:53
snarkyboojum joined
|
|||
sundar | Hi... I installed libreadline6-dev, did a "perl Configure.pl", "make clean && make && sudo make install" in the parrot directory. Still, running "perl6" does not give me readline support.. What am I missing? | 12:53 | |
12:54
riffraff joined
|
|||
sundar | I have parrot checked out as ~/svn_parrot/, and rakudo in ~/svn_parrot/runtime/parrot/languages/rakudo/. I ran the above commands from ~/svn_parrot/. | 12:55 | |
masak | sundar: need to rebuild Parrot after installing readline. | ||
moritz_ | sundar: I have libreadline5-dev (5.2-3.1), works here | ||
masak | sundar: specifically, make sure the Parrot configure phase finds it. | ||
sundar | yes, it said "auto::readline - Does your platform support readline.................yes." | 12:56 | |
moritz_ | sundar: and di you reconfigure rakudo after you re-installed parrot? | ||
12:58
takadonet joined
|
|||
sundar | ouch.. I rebuilt Parrot, but did not rebuild rakudo itself.. :) I somehow assumed make-ing parrot will do it for me.. I'm rebuilding rakudo now. | 12:58 | |
moritz_ | sundar: and it did, 2 years ago | ||
but since then rakudo and parrot have come considerably detangled | |||
12:59
ktne left
|
|||
sundar | yeah, I understand, it's better to not have unnecessary couplings. Though, is it possible to add an option to parrot's Configure.pl to rebuild all the languages under languages/ directory too? | 13:00 | |
we should have a consistent build mechanism for the languages though, for that to work.. and for specifying options to individual language configurations, we could have a CONFIGURE_OPTIONS file under the language directory.. | 13:02 | ||
masak | sundar: ooh, you keep Rakudo under languages/ ? | 13:03 | |
sundar: I'm one of the few who still do :) | |||
(not that it matters much. I build Parrot and Rakudo separately) | |||
sundar | :) yes.. it somehow feels cleaner to me. | 13:04 | |
masak: from what I just understood, we _have_ to build them separately now, isn't it? | 13:05 | ||
masak | sundar: well, there's the option of letting Rakudo pull in Parrot. | ||
most people seem to take that route nowadays. | 13:06 | ||
I don't because I want to have the latest Parrot. | |||
not the one Rakudo is set to pull in. | |||
sundar | ah ok.. I too don't, though mostly due to philosophical reasons (refer 'cleaner' above :) ).. But this does have the risk that Rakudo might some days not build against the latest parrot, isn't it? | 13:09 | |
moritz_ | masak: I keep parrot under rakudo, and still use the latest one | 13:10 | |
masak | oh, ok. | ||
moritz_ | but I agree, it doesn't feel so good, because if you have 20 languages, you don't want a parrot tree for each of them | ||
sundar | moritz_: oh, I thought even in that setup you could have additional languages under a languages/ directory.. Isn't that possible? | 13:11 | |
moritz_ | sundar: it would, yes | ||
sundar: but then I have rakudo/parrot/languages/cardinal | |||
but why should cardinal be in a rakudo sub directory? | 13:12 | ||
then I'd actually prefer symlinks | |||
13:12
payload joined
|
|||
moritz_ | let each language has its parrot/ dir, which is actually a link to one single parrot tree | 13:12 | |
sundar | moritz_: hmmm yeah, that's better. though, we'd have problems when rakudo and some other language want different versions of Parrot.. | 13:14 | |
masak | if map and grep use gather internally, will it be impossible to have a 'take' behave correctly inside the block of a map or a grep? | 13:16 | |
moritz_ | masak: yes | 13:18 | |
rakudo: say <a b c>.map({take 2; $_ }).eager | 13:19 | ||
p6eval | rakudo db0f85: OUTPUT«take without gathertake without gathertake without gatherabc» | ||
moritz_ | rakudo: say <a b c>.grep({take 2; $_ }).eager | ||
p6eval | rakudo db0f85: OUTPUT«2a2b2c» | ||
jnthn | Note that map doesn't use gather/take. | 13:21 | |
moritz_ | yes, just noticed | ||
but it's still lazy? | |||
jnthn | Yes | ||
But has its own kind of iterator (MapIterator) | |||
You could do it in terms of gather/take too. | |||
masak | that's just the thing. | 13:22 | |
the Spec doesn't spec how to implement map and grep. | |||
jnthn | Good. | ||
It shouldn't. | |||
masak | which means, by extension, that it shouldn't interfere with an outer gather. | ||
jnthn | is gather/take lexotic? | ||
masak | so I'd consider the current behaviour of grep a bug. | ||
it's dynamic, I think. | |||
moritz_ | jnthn: I think it's purely dynamic | ||
masak | I don't fully grok lexotic yet. I think 'return' is lexotic. | 13:23 | |
moritz_ | return = dynamic, but the end points are still tied to a lexical scope | ||
jnthn | lexotic iirc is like, look lexically first | 13:24 | |
then dynamically if nothing found | |||
masak | huh. | 13:25 | |
13:28
am0c joined
13:32
envi^home left,
envi^home joined
13:42
ash_ joined
|
|||
sundar | a basic question.. I tried a small change to src/core/operators.pm, did "make && sudo make install" in the rakudo directory, but could not see its effect when I run perl6. what am I doing wrong? | 13:43 | |
moritz_ | sundar: what did you change? | 13:44 | |
usually you should see the changes | |||
except when it's in a multi candidate you don't call | 13:45 | ||
sundar | ah it _is_ a multi sub, but I don't see any other candidates in this file. the change was in infix:<Z> | 13:46 | |
moritz_ | rakudo: say 2 Z 3 | 13:49 | |
p6eval | rakudo db0f85: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are::(Iterable $a-iterable, Iterable $b-iterable)current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
moritz_ | there seems to be only one candidate, yes | ||
masak: have you seen this? :-) | |||
sundar | the diff is at codepad.org/wpyDibhD (I couldn't get paste.lisp to work).. basically I changed "take $a; take $b;" to "take [$a, $b, "OH HAI"];" :) | ||
jnthn | Probably needs one more candidate. | ||
multi infix:<Z>($a, $b) { &infix:<Z>($a.list, $b.list) } | 13:50 | ||
moritz_ | sundar: that should make a difference... don't know why it doesn't | ||
jnthn | That's what we've done for hypers etc. | ||
moritz_ | sundar: just a wild guess.. do you have multiple perl6 binaries installed, and calling the wrong one? | ||
sundar: try ./perl6 -e 'say 1, 2 Z 3, 4' | 13:51 | ||
masak | moritz_: nope, hadn't seen that one. | ||
masak submits rakudobug | 13:52 | ||
sundar | moritz_: that gives 1324 only. | 13:53 | |
jnthn | rakudo: say 1, 2 Z 3, 4 | 13:55 | |
p6eval | rakudo db0f85: OUTPUT«1324» | ||
jnthn | That's correct. | ||
sundar | moritz_: ah I don't have multiple perl6 binaries, but there is something fishy.. the modification timestamp of my perl6 binary is old.. | ||
jnthn | oh, wait, you'd added something...sorry | ||
jnthn only half watching. | |||
13:55
Trashlord left
|
|||
sundar | should I for some reason reconfigure before doing make and make install? | 13:55 | |
moritz_ | nope | 13:56 | |
but you should be aware where rakudo installs its perl6 binary | |||
and that is just where the parrot binary is with which rakudo was configured | |||
13:57
Trashlord joined,
Trashlord is now known as Guest85367
|
|||
sundar | which perl6 says /usr/local/bin/perl6, and my most recent make install has a "/usr/bin/perl -MExtUtils::Command -e cp perl6 /usr/local/bin" line.. | 13:57 | |
but from a stat on the file it appears only the status was changed in this run.. the modification time is from an old run (probably one run after a git pull).. | 13:59 | ||
14:04
pugssvn left
14:06
dalek left
14:08
pugssvn joined
|
|||
sundar | I tried a make clean && make && make install too, which didn't help either.. any clues? | 14:09 | |
14:19
pugssvn left
14:20
pugssvn joined
|
|||
mathw | sundar: have you tried make realclean, then reconfigure and make from scratch? | 14:27 | |
sundar | mathw: hmmm I tried reconfigure and make, now running "make realclean && perl Configure.pl && make && make install".. that is what you're suggesting, correct? | 14:28 | |
ash_ | hmmm, yesterday someone said it took them like 2 hours to make rakudo on their mac, i just did a "time make" on mine, real8m58.554s | 14:29 | |
user5m7.448s | |||
sys2m20.594s, i am wondering if there was another issue... maybe? | |||
mathw | ash_: there may have been | 14:30 | |
sundar: make realclean cleans more things, so it might help. | |||
jnthn | Those build times are on the high side. :-/ | 14:31 | |
ash_: Was it for Parrot too, or jsut Rakudo? | 14:32 | ||
ash_ | just rakudo | ||
14:32
nihiliad joined
|
|||
jnthn | Ugh. | 14:32 | |
ash_ | i didn't time the whole thing, just make on rakudo, i guess i could time build for parrot too | 14:33 | |
sundar | ugh.. even realclean didn't help it.. it gives the same old output and even the perl6 binary hasn't been changed.. | 14:36 | |
ash_ | jnthn: build of parrot: real4m15.767s | 14:38 | |
masak | rakudo: Misspelled::Typename | 14:44 | |
p6eval | rakudo db0f85: OUTPUT«Null PMC access in invoke()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | :( | ||
14:47
dalek joined
14:49
ash_ left
14:51
dalek left
|
|||
sundar | does anyone have any idea why make install is not modifying my 'perl6' file? or how can I track down what the issue is? have any of you faced such issues? | 14:52 | |
masak | sundar: is it failing to copy the file? maybe it doesn't have the privileges? | 14:53 | |
sundar | I ran it with sudo, and it didn't complain of any failure either.. | 14:54 | |
14:54
synth left,
[synth] left
|
|||
sundar | but the timestamp is an old one, doesn't change after I change something and do a make install. | 14:54 | |
14:54
synth joined,
[synth] joined,
ash_ joined
|
|||
sundar | to be clear, the _modify_ timestamp is an old one.. the _change_ timestamp gets changed every time I run make install.. | 14:55 | |
masak | I've never heard of anyone with this problem before. | ||
ash_ | i did a make realclean and re-ran make, it timed as: real 10m30.311s | 14:57 | |
14:58
dalek joined
|
|||
sundar | could some kind soul here try the changes I did and see if make install changes the perl6 binary for them? I changed "take $a; take $b;" to "take [$a, $b, "OH HAI"]" in infix:<Z> in operators.pm (diff: codepad.org/wpyDibhD) | 14:59 | |
masak tries | 15:00 | ||
sundar | FTR, I now tried changing the definitions of say() in IO.pm to print "OH HAI" as well, but make install didn't care about this either... | 15:14 | |
jnthn | sundar: Maybe try locating and removing all perl6 executables, or rename them, or something. Then do make install and you'll get a feel for where it's actually installing things to. | 15:15 | |
sundar | jnthn: ah, that somehow did the trick - I renamed /usr/local/bin/perl6, ran make install, and voila, the perl6 now has the modifications I did! thanks.. | 15:17 | |
but previously too, it was using this location only - every time I ran make install, the _Change_ timestamp of the file would change. Why make install didn't change the actual content too is puzzling to me.. | 15:18 | ||
15:23
nihiliad left,
nihiliad joined
|
|||
pugssvn | r30209 | lwall++ | [times.t] fix parsefail I installed last night | 15:25 | |
TimToady | std: /:x(6) \d/ # currently disallowed, tempted to keep it that way | 15:30 | |
p6eval | std 30208: OUTPUT«===SORRY!===Unrecognized regex modifier :x at /tmp/r01WLKdXQR line 1:------> /:x⏏(6) \d/ # currently disallowed, temptedFAILED 00:01 107m» | ||
masak | as long as it's clear which adverbs can be used both outside and inside a regex, and which ones can only be used outside. | 15:31 | |
> say 1,2,3 Z 4,5,6 | 15:32 | ||
1 4 OH HAI2 5 OH HAI3 6 OH HAI | |||
sundar: worksforme. | |||
TimToady | what's clear is that :x(6) will not be clear on the inside | ||
masak | I agree, I think. | ||
sundar | masak: hmmm.. it worked for me too after I renamed the preexisting perl6 binary.. did you have a perl6 binary at the place previously? | ||
masak | TimToady: it feels more like talking *about* the regex, as opposed to, say, :i | 15:33 | |
sundar: yes. | |||
TimToady | :i is not redundant on the inside | ||
masak | TimToady: I did not imply it was :) | ||
15:33
SmokeMachine joined
|
|||
TimToady | whereas :x duplicates ** with unclear semantics | 15:33 | |
masak | nod. | 15:34 | |
TimToady | the :x outside implies a .*? | ||
does it do the same inside? | |||
masak | maybe the litmus test is whether the adverb makes sense inside a smaller scope of the regex. :i does. | 15:35 | |
:x doesn't much. | |||
hugme hugs masak, good vi(m) user! | |||
masak | hugme: false positive :P | ||
TimToady | one can argue that :x(6) means [.*? ...] ** 6 or some such | 15:36 | |
15:36
alester joined
|
|||
masak | / foo [ :x(3) bar ] baz / | 15:37 | |
jnthn | Mmm...a line of bars. | ||
masak | I think the .*? is very non-Least-Surprise | ||
TimToady | but that's what :x does on the outside!! | ||
s:x(3)/foo/bar/ should change the first three foos it finds | 15:38 | ||
masak | yeah. | ||
TimToady | if you meant the other you'd say s/'foo' ** 3/bar/ | ||
masak | just registering my instinctive dislike of using it on the inside :) | ||
TimToady | or some such | ||
yes, well, it's currently in t/spec :( | 15:39 | ||
masak | :( | ||
TimToady | and maybe even implemented | ||
masak | not in PGE, at least. | ||
jnthn | rakudo: /:x(3) a/ | 15:40 | |
p6eval | rakudo db0f85: OUTPUT«Confused at line 11, near "/:x(3) a/"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
TimToady | maybe it's fudged for rakudo | ||
yeah, NYI | 15:41 | ||
masak | in my humble view, it should be forbidden inside regexes, on the grounds that it produces no new semantics, and is quite confusing when used in deeper scopes. | 15:43 | |
pugssvn | r30210 | lwall++ | [rx.t] remove internal :x and :nth as confusing and redundant | 15:44 | |
masak | \o/ | 15:45 | |
jnthn | oh yay, now that test will take a little less time to compile. ;-) | ||
15:45
molaf joined
|
|||
TimToady | yeah, that's one of the longer ones... | 15:45 | |
jnthn | (Agree with the decision too.) | ||
15:47
the_llama joined
|
|||
masak is reminded of rt.perl.org/rt3/Ticket/Display.html?id=61130 and how personal expectations can clash with more basic semantics | 15:47 | ||
15:49
the_llama left
15:57
synth left,
[synth] left
15:58
synth joined
|
|||
TimToady | hmm, I don't read :nth(1,2,3,4,5) :x(3) the same way pm does | 15:58 | |
15:59
TiMBuS joined
|
|||
TimToady | to me, :nth defines one iteration of :x | 15:59 | |
though I can see it the other way too | 16:00 | ||
and I can even see an argument for doing it either way depending on order of :x and :nth | 16:01 | ||
this will take more thought | |||
masak | :) | ||
TimToady | it's like whether you count the elements before or after the grep... | 16:02 | |
and whether you count parcels as 1 or many | |||
ash_ | TimToady: do you still think roles with method ^foo { } like methods should be included when you do a does on an object? | 16:03 | |
masak | in subst, when the adverbs are provided as named args, they don't have an inherent order... | ||
16:04
sundar left
16:05
payload left
|
|||
TimToady | ash_: what is the problem with it? at worst it seems like it requires a unique metaobject for the class, but surely a metaclass can instantiate new metaobjects when it needs to | 16:05 | |
masak: nod | 16:06 | ||
ash_ | well, what happens if you say do role Foo { method ^compose { ... } }; does that use the Foo specific compose when its mixed in or does it add it to the class? or should that be disallowed? | 16:07 | |
TimToady | if we have to, we can even derive a new metaclass with the new method mixed in, I suppose | 16:08 | |
or we can conservatively disallow it for 6.0.0 | |||
esp if we don't really understand its semantics yet | 16:09 | ||
I'm fine with either way | |||
of course, if an implementation makes assumptions that it will never be possible, it might have another think coming down the road. :) | 16:10 | ||
but it seems a bit strange to assume mixin semantics in your classes without mixin semantics in your metaclasses | 16:11 | ||
maybe there are optimization issues though | |||
or MONKEY_PATCHING issues, though a personal metaclass mixin seems like it's pretty non-actiony-at-a-distance | 16:12 | ||
and maybe metaroles are actually important down the line | |||
kinda like a role can specify an "is" for the class | 16:13 | ||
this is more like a .HOW mixin | 16:14 | ||
(or composition) | |||
ash_ | i was trying to, in alpha a while back, see if i could make a role based persistence mechanism, so you can just apply it to objects, or classes, or properties and save them, i ended up overloading does's multi dispatch for does had my role as a parameter to keep track of the types that were being persisted, which seemed odd to me, since i kinda feel like thats something the role should be responsible for | 16:15 | |
s/for/for when/ | |||
TimToady | yeah, that seems like a workaround; open to suggestions | 16:17 | |
other than turning Perl 6 into Haskell. :) | |||
would executable hooks in the role be appropriate when composition/mixin side effects are needful? | 16:18 | ||
ash_ | ruby solves the problem kinda by having 2 ways of mixing into a class, one into the instance and one into the meta class, so then if you had any ^methods you could assume they belong to the role and would not be added | ||
exectuable hooks would be helpful too | 16:19 | ||
thats really all i wanted | |||
TimToady | well, p6 tends to assume that anything ambiguous in a role is to be considered generic, and done within the class | ||
ash_ | executable hooks would of solved my problem, i just think it might be interesting (maybe in a bad way though) if people could override compose for instance | 16:20 | |
TimToady | making and exception for ^methods seems odd that way | ||
*an | |||
ash_ | but that might not be something to encourage, since overriding compose could have consequences someone might not understand | 16:21 | |
TimToady | well, I'm all in favor of rope, as long as it's hidden from normal view, and comes with a warning label when it's too easy to abuse | ||
ash_ | (like me, for instance) | ||
TimToady | well, the MONKEY_PATCHING approach is extensible, it's just a lexically scope compiler variable, really | 16:22 | |
well, lexical to the program, dynamic to the parser... | |||
ash_ | i also ended up doing: multi sub trait_mod:<does>(AttributeDeclarand $a, Endure::Property, $type) is export at one point | ||
so you could say: class Foo { has Str $name does Endure::Property; } and it would know that $name is a string that can be saved if you call .save on the Foo object | 16:23 | ||
TimToady | well, overriding ops on different types if Officially Fine, but of course can be easily abused to fix it in the wrong place. | ||
s/if/is/ | 16:24 | ||
ash_ | yeah, that felt like i as doing something wrong, since i had to do some funny stuff with AttributeDeclarand to get the type, like: $a.container.VAR does Endure::property; | ||
16:25
Psyche^ joined
|
|||
TimToady | well, I don't have time to review the whole thing right now, but it sounds like you have your head screwed on straight :) | 16:25 | |
(got a $job meeting today) | |||
ash_ | i kinda stopped working on that till rakudo got a bit further, maybe by rakudo* i can finish it :P | ||
no worries | |||
TimToady | thanks for thinking about these things | ||
every now and then I wish I were omniscient, but then I'd be responsible :) | 16:26 | ||
ash_ | i think my thing was i felt like i was jumping through hoops to accomplish something, and thats when I started to wonder if i was "Doing it wrong" or if maybe i was the only one trying to do what i was doing | 16:27 | |
16:28
Patterner left,
Psyche^ is now known as Patterner
|
|||
Su-Shee | how do I say in english "simple, tidy, neat, tiny" (code) if I mean it in an elegant, zen-like way and not in the "simpleton, stupid, redneck" way? is there a nice adjective? | 16:32 | |
araujo | ash_, hacking rakudo? | ||
ash_ | TimToady: ultimately, the end user of my library could do things like: gist.github.com/345078 | 16:33 | |
i was thinking the has_many and belongs_to would need to be macro's or something, but thats my initial thoughts | |||
masak | ash_: for what it's worth, all Perl 6 programming is "jumping through hoops" at this point, if you ask me. | ||
ash_ | araujo: not specifically on rakudo, more just thinking about perl6 in general | 16:34 | |
masak | ash_: put differently, if you're not willing to put temporary workarounds in your code, you're not likely to get very far. | ||
araujo | ash_, I see | ||
16:35
rgrau_ joined
|
|||
ash_ | masak: i think my biggest issue was i was worried i was doing it wrong | 16:36 | |
just because i can do silly pointer arithmetic in C doesn't mean i should if i don't need to | |||
masak | ah. I see. | ||
well, a mixture of experimenting and reading other people's code oughta help against the fear for doing things wrong. | 16:37 | ||
it's never possible to prove that one is doing things right :P | |||
jnthn | ash_: The issue is partly timing too. | 16:38 | |
(On ^foo things from roles) | |||
16:39
pyrimidine joined
|
|||
ash_ | when i was overriding how does applies to AttributeDeclarand and my role I made i kinda was like "i hope i am not breaking the class by doing this..." | 16:39 | |
16:39
pyrimidine left
|
|||
TimToady | Su-Shee: concise or succinct maybe | 16:39 | |
jnthn | ash_: In general, I think overriding declarative parts of the meta-model on a per-class basis (or with the details coming from a role) is shakey ground. | 16:40 | |
Su-Shee | TimToady: thank you. | 16:41 | |
ash_ | Su-Shee: being from texax and living in alabama, i must say putting us rednecks in with simpletons and stupid folk is hurtful, you forgot narrow minded and "slow" | ||
TimToady | well, better to override .HOW *before* the object is created rather than after :) | ||
jnthn | TimToady: Well, yes. :-) | ||
TimToady | so maybe it's allowed in composition and not in mixin? I dunno... | ||
ash_ | s/texax/texas/ | ||
jnthn | TimToady: For those things, just declaring a custom metaclass up front is probably better. | 16:42 | |
TimToady: Well, composition is still weird. | |||
Su-Shee | ash_: well I didn't know how to describe it properly :) | ||
jnthn | TimToady: If you compose, say, ^add_method from a role | ||
It's too late in a sense. Most of the methods already got added. | |||
ash_ | Su-Shee: you gotta speak slowly and loudly, it makes foreigners understand you better, proven fact | ||
jnthn | Since the role composer needs to know what's already to ahdn in the class. | ||
TimToady | well, if we disallow weird, we probably disallow cool as well... | 16:43 | |
16:43
cosimo joined,
mberends left
|
|||
TimToady | but certainly there are places we can put a few "Here Be Dragons" signs | 16:43 | |
ash_ | jnthn: so your saying i need to make a custom RoleHOW for my role then? | ||
jnthn | TimToady: I'm not saying disallow it. I'm just saying people will get bitten by the semantics. OTOH, if you're fiddling with adjusting the metaobject while it's being used to define a class, you probably deserve the bites. :-) | 16:44 | |
ash_: IIUC, what you're after is more to know "this role just got composed into this class". | |||
TimToady | we could take the approach of lacing the cigarettes with strychnine, of course... :) | 16:45 | |
jnthn | ash_: I suspect for that we do want to define a more callback-ish mechanism / hook of some kind / phaser or something. | ||
TimToady | role hooks are probably useful for registration purposes | 16:46 | |
jnthn | TimToady: Yeah, I'm very open to having some functionality along those lines. | ||
It's come up before too. | |||
TimToady | you two feel free to propose something there | ||
ash_ | TimToady, jnthn yeah that would be enough to know what I need to know | ||
16:47
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
ash_ | knowing when does was called, and knowing when an object was inherited i think cover most of the cases i can think of | 16:47 | |
TimToady | seems to me that most of the action at a distance can be caught by the fact that metaclasses are also theoretically encapuslated and private | ||
*su | |||
jnthn | ash_: Maybe a starting point could be to try and come up with some patch for metamodel.pod to specify how it could look. | 16:48 | |
ash_: I'm not quite sure how it should look right now, tbh, but my brain is a tad mushy today. | 16:49 | ||
TimToady | shower & | 16:50 | |
16:50
_jaldhar left
|
|||
ash_ | jnthn: do you know where the AUTO stuff is? in the spec or tests? | 16:51 | |
masak | S10, S13... | 16:52 | |
ash_ | i am just thinking about something that is method like but not a method, the AUTO* methods (AUTOSCALARDEF for instance) that way there is a clear distinction between the callback and the normal methods | 16:55 | |
masak | I feel insufficiently versed in that part of Perl 5 to be able to give an informed anwer. | 17:02 | |
17:03
gabiruh joined
|
|||
ash_ | std: class Foo { AUTOSCALARDEF { 1 + 2 } }; | 17:03 | |
p6eval | std 30210: OUTPUT«Undeclared name: 'AUTOSCALARDEF' used at line 1ok 00:01 106m» | ||
ash_ | thats odd | 17:04 | |
it says 'ok' but apparently generated a warning? | |||
jnthn | Warnings are not unok. | ||
:-) | |||
17:05
the joined
17:06
the left
|
|||
masak | ash_: it treats 'AUTOSCALARDEF' as a bareword function call, and allows for the fact that it's missing its definition somehow. | 17:06 | |
std: eval 'sub foo() {}'; foo | |||
ash_ | just thinking along those lines, you could do: role Foo { COMPOSED($obj) { say "Foo got composed into $obj" } } | ||
p6eval | std 30210: OUTPUT«Undeclared routine: 'foo' used at line 1ok 00:01 105m» | ||
17:06
the_llama joined
|
|||
the_llama | k | 17:07 | |
17:07
the_llama left
|
|||
ash_ | you could probably use that with a class too, IMO, for when they are inherited | 17:08 | |
jnthn | I think we shoudl distinguish them. | 17:10 | |
Since you can pun a role into a class | |||
ash_ | okay, thats fine, one other question, if you call self from within the COMPOSED what should it refer to? | 17:12 | |
jnthn | Well, hmm | ||
Good question. | 17:13 | ||
ash_ | or does it have a self? | ||
jnthn | I think it's more phaser-ish than method-ish. | ||
ash_ | also, if you chain them, say class A { INHERITED($subclass) { } }; class B is A; class C is B; did that get called on C is B? | 17:14 | |
chain isn't the right word, but i think you see what i mean | 17:15 | ||
dalek | kudo: 4a5a252 | moritz++ | src/core/operators.pm: fix infix:<Z> to work with non-lists, as suggested by jnthn++. Fixes RT #73836 |
||
jnthn | Yeah...is it transitive or not. | ||
Hmm. | |||
Neither answer is obvious to me right off on that one. | |||
Would have to ponder it some more. | 17:16 | ||
ash_ | class A { INHERITED($subclass) { } }; class B is A { INHERITED($subclass) { nextsame; } }; class C is B; ? | ||
jnthn | If it's not methodish, I'm not sure if nextsame makes sense. | ||
ash_ | ya | ||
you could approach it kinda like how BUILD works i suppose | 17:17 | ||
jnthn | Hmm, possible. | 17:18 | |
*possibly. | |||
More sub-ish. | |||
Could work. | |||
ash_ | would be kinda nice if there was 1 overarching mechanism that COMPOSED and INHERITED worked from | 17:19 | |
jnthn | There's some other complicating factors with COMPOSED too. | 17:20 | |
e.g. do we only care about it when we actually get down into a class | |||
or when composed into other roles too | |||
17:22
abra joined
|
|||
jnthn | (I'd argue for the class approach...other one is too confusing, particularly as we produce throw-away roles during the composition process) | 17:23 | |
17:28
sundar joined
|
|||
ash_ | is that the case of role A {}; role B does A {} | 17:29 | |
17:29
dual joined
|
|||
jnthn | No throw-away there | 17:29 | |
masak | nom & | 17:30 | |
17:30
masak left
|
|||
jnthn | given roles R1 and R2, class Foo does R1 does R2 { } creates one temporary role that does R1 and R2, and then mixes that into the classes. | 17:30 | |
That is, the flattening semantics are handled amongst roles. | |||
ash_ | ah, got ya | 17:31 | |
jnthn | See various things in src/metamodel/ - these bits are largely written in NQP. :-) | ||
17:32
Chillance joined
|
|||
ash_ | well, following the pattern of least surprise, i'd expect class A does R1 does R2 { } to call back R1's composed one time, and R2's composed one time | 17:35 | |
jnthn | ash_: Right. | 17:36 | |
ash_ | in both cases i'd expect the $obj being composed against to be class A | ||
17:36
niros left
|
|||
jnthn | And you'd probably expect to be provided with A. | 17:36 | |
Seems we have similar expectations. :-) | |||
TimToady | why have an argument to those two hooks? why not just bind the object temporarily to self or $_? | 17:38 | |
I tend to prefer my hooks with bare names... | |||
jnthn | That would also work. | ||
And makes them hookier I guess. | |||
In a consistency sense. | |||
TimToady | like the current exception comes into CATCH, for instance | ||
jnthn | aye, there's precedent | 17:39 | |
Good call. | |||
TimToady | but in this case, if there's only one obvious object in question, could easily be 'self' | ||
depending on whether it's better for it to be an object or a topic | |||
ash_ | yeah, makes sense, i had them separate for explicit access to each side of the does though | ||
TimToady | and if there are two objects involved, one can be self and the other topic | 17:40 | |
jnthn | Yeah, but since it's in the thing that wants to be notified, it knows what it is. | ||
TimToady | waht I thought | ||
and there's always OUTER:: | |||
17:40
hercynium left
|
|||
jnthn | Well, $?CLASS and $?ROLE too. | 17:40 | |
ash_ | role Foo { COMPOSED($obj) { } }; class A does Foo { }, i thought self in COMPOSEd would be Foo and object would be A | ||
TimToady | yeah | ||
ash_ | that was my logic when i wrote that anyway | ||
TimToady | so it's really just a choice between self or $_ | ||
17:41
payload joined
|
|||
jnthn | role Foo { COMPOSED { .say } }; class A does Foo { }; # says A | 17:41 | |
well, A() | |||
Guess you get the proto-object. | |||
17:41
niros joined
|
|||
TimToady | or $.say, if we went the self route | 17:41 | |
jnthn | Yeah | ||
I'm more inclined to go the $_ route for consistency with CATCH | |||
TimToady | since effectively it's running in the context of the new object | ||
jnthn | Then you can when on it. | 17:42 | |
TimToady | troo | ||
not earthshaking either way, but I'd be happy with $_ | |||
esp since it doesn't *look* like a method | |||
pmichaud | good afternoon, #perl6 | ||
TimToady | o/! | 17:43 | |
ash_ | makes sense | ||
jnthn | \o/ is's pmichaud! | ||
ash_ | greetings | ||
TimToady | I have to go to $job in about 5 | ||
takadonet | $job=undef | ||
You don't have to go anymore :) | 17:44 | ||
jnthn | undef is not a Perl 6 concept. :-) | ||
ash_ | sub undef { Mu } | ||
jnthn | lol | ||
takadonet | $job=Mu ? | ||
jnthn | Somebody *will* write a module that does that... | ||
ash_ | lol, it wouldn't suprise me | ||
TimToady | hmm, COMPOSED { .defined } tells you are doing an object mixin, I think | 17:45 | |
jnthn | ...ooh. | ||
It probably does, yeah. | |||
Or could be made to. | |||
TimToady | COMPOSED:U and COMPOSED:D :) | 17:46 | |
pmichaud: notice recent spec change, :foo<a b> now officially means foo => ('a','b'), not {} or [] | 17:47 | ||
pmichaud | TimToady: noted, thanks. | 17:48 | |
makes sense from a language perspective | |||
TimToady | so we can now again do the sort:{} trick | ||
because name extensions don't take :{ anymore | |||
since everyone keeps writing those anyway... | |||
pmichaud | works for me, since <a b> is ('a', 'b') anyway | ||
TimToady | only surprise is that :{} starts the argument list, so a following , continues it | 17:49 | |
some tests assumed it would terminate as an adverb inside 'is' | |||
pmichaud | and keeps the meme that :foo<<<something>>> acts more like a circumfix than a postcircumfix | ||
TimToady | yes | 17:50 | |
seems more regular, except for the new sort:{ exception that doesn't require space before { | |||
tried to work it as an adverb, but then postfixes are too late | |||
pmichaud | yes. | ||
TimToady | so .sort:{}.grep would not work | 17:51 | |
pmichaud | I'm so out-of-sync with recent changes, I fear I might never catch up. :-/ | ||
TimToady | (or other way around, probably) | ||
we'll write a book for you :) | |||
ash_ | std: sort:{ $^a > $^b }, <4 3 2> | 17:52 | |
p6eval | std 30210: OUTPUT«ok 00:01 108m» | ||
ash_ | so like that? | ||
TimToady | no | ||
not on functions | |||
17:52
synth left
|
|||
TimToady | in fact, I'm not entirely sure how that parsed... | 17:52 | |
ash_ | lol, oops, i think i am misunderstanding the change your referring to | 17:53 | |
TimToady | only .sort, not sort | ||
ash_ | std: <4 3 2>.sort:{ $^a > $^b } # that then? | 17:54 | |
p6eval | std 30210: OUTPUT«ok 00:01 107m» | ||
TimToady | in fact, I think it parsed it as (sort :{}), 4,3,2 | ||
yes, that | 17:55 | ||
gotta commute & | |||
jnthn | o/ | ||
ash_ | lunch & | 17:56 | |
17:56
ash_ left
18:01
sekon joined
|
|||
sekon | hello | 18:02 | |
is there a list of "low hanging fruit" as such | 18:05 | ||
jnthn | sekon: hi! :-) | 18:06 | |
sekon | so that an inexperienced programmer can be of some use | ||
jnthn | sekon: Depends what you want to work on. :-) | ||
sekon: But yes, there are ways to track down such things. | |||
sekon | jnthn: Hi thanks for the response .. is there a current list of bugs that need to be taken care of I am an inexperienced developer looking to make a meaningful contribution to open source code | 18:08 | |
jnthn: I have no priorities as such and just want to help | 18:09 | ||
jnthn | sekon: Well, there's more than one pile of source code to hack on. :-) If it's Rakudo you want to work with, check out the RT queue. rt.perl.org/ There's a search interface and we do tag some things as LHF. | ||
sekon | jnthn: thanks and have a great day | ||
jnthn | sekon: Thanks, you too. And do drop by here plenty too. There's lots happening, it's not always this quiet. :-) | 18:11 | |
sekon: There's also plenty of opportunities for working on modules and contributing to the test suite, both of which are also extremely valuable. | |||
18:11
TiMBuS left
18:13
dakkar left
18:17
revdiablo joined,
Guest85367 left
18:19
lichtkind joined
|
|||
jnthn -> shops, bbiab | 18:19 | ||
18:25
PacoLinux joined
18:28
chromatic joined,
pmurias joined,
hanekomu_ joined
18:31
hanekomu_ left
18:49
ash_ joined
19:05
envi^home left
19:06
abra left
19:07
nadim left
19:08
cj joined
|
|||
cj | woot. I got the DLR into ubuntu. now all we need to do is build a perl6 interpreter on top of it ;) | 19:08 | |
sekon | cj: Soorry DLR?? | 19:09 | |
TimToady | the CLR, only D | ||
jnthn | :-) | 19:10 | |
Dynamic Langauges Runtime | |||
cj: Cool. :-) | |||
pmurias | cj: shouldn't we build a perl6 compiler targeting it instead of an interpreter on top of it? | 19:12 | |
19:14
ShaneC joined
|
|||
ash_ | is there another perl 6 project targeting the DLR? | 19:17 | |
pmichaud | I think we plan to target DLR with Rakudo and NQP at some point | 19:19 | |
jnthn | After Rakudo *. :-) | 19:23 | |
19:26
pyrimidine joined
|
|||
TimToady | ash_: yes, sprixel | 19:28 | |
19:28
hanekomu_ joined,
molaf left
|
|||
ash_ | is the DLR cross platform? | 19:29 | |
19:29
Coke joined
|
|||
Coke | hio. which syn for "how to break out of a while loop" ? | 19:30 | |
ash_ | or does it run on like mono? | ||
pmichaud | Coke: 'last' | ||
Coke | I'm looking at perlcabal.org/syn/S04.html, but while doesn't say, and neither does Control Exception. | ||
pmichaud | while $cond { last if $other_cond; } | ||
19:30
sekon left
|
|||
Coke | pmichaud: yes, but where is it documented. This isn't the first time I've had to come to #perl6 to find out and I wish to avoid bothering you nice people. =-) | 19:31 | |
pmichaud | Coke: I suspect it falls into the "same as Perl 5" category. | ||
Coke | pmichaud: that would explain it. danke. | ||
TimToady | Coke: S04:334 | 19:32 | |
grep is your friend | 19:33 | ||
ash_ | grep is nice, but i like ack, plus its written in perl | 19:34 | |
Coke | TimToady: that's what I get for reading the nicely formatted one at perlcabal.org/syn/S04.html =-) | ||
TimToady++ | |||
chromatic | Speaking of pmichaud, what's necessary to get the status graphs updated again? Is that something anyone could do? | ||
Coke | pmichaud++ | ||
TimToady | most browsers can search too :) | ||
pmichaud | I need to write up the steps and publish the script. | ||
(for the status graphs) | |||
Coke | TimToady: <grumble> | 19:35 | |
hurm. this doesn't seem to ever break out, in NQP: | 19:36 | ||
while pir::length__is($string) { | |||
last | |||
} | |||
(nqp-rx, I mean) | 19:37 | ||
even while 1 { last } doesn't break out. | 19:39 | ||
ash_ | hmmm, nqp-rx doesn't define a 'last' op i don't think | 19:40 | |
Coke | I would expect an error instead of a silent ignore, then. odd. | 19:41 | |
ash_ | i don't see last in the nqp grammar anyway... | 19:42 | |
Coke | danke, ash_ | 19:45 | |
19:47
payload left
|
|||
ash_ | Coke: my $a := pir::length__is($string); | 19:47 | |
while $a { | |||
say($a); | |||
$a--; | |||
} might do what you want | |||
pmichaud | I think NQP doesn't implement 'last' yet, although it certainly can do so. | 19:48 | |
ash_ | pmichaud: looks like someone added a few things to nqp for a project, www.gitorious.com/kakapo/kakapo/blo...nqp#line19 has an addition for some of that | 19:49 | |
19:49
nihiliad left,
rgrau_ left
|
|||
pmichaud | ash_: yes, that's Austin Hasting's work | 19:49 | |
(probably with others as well) | 19:50 | ||
Tene | I might be able to get to that tonight. | ||
pmichaud | he's implemented next() as a function; I've been thinking it might be worthwhile to have it act like a keyword, similar to how 'return' and 'make' are currently handled in NQP | ||
Tene | yes | ||
exactly | |||
pmichaud | although I wasn't going to implement any ability to pass an argument to next/last/redo in nqp, at least not yet. | 19:51 | |
Tene | the argument would be the block that you're targeting, yes? I certainly wouldn't expect that in NQP. | 19:52 | |
pmichaud | I think the argument can also be the value to be used for the current iteration of the loop | ||
i.e., | |||
Tene | ... ouch | ||
pmichaud | my @a = (for 1..5 { next $_ * 2; } ); # @a becomes 2, 4, 6, 8, 10 | 19:53 | |
but I'm not entirely certain of that. | |||
my memory of the spec is a bit hazy these days | |||
ash_ | pmichaud: can ranges take a variable on either side in nqp? like 1..$a ? | 19:55 | |
jnthn didn't know NQP did ranges... | 19:57 | ||
Coke | pmichaud: thought you'd appreciate this: time to run t/cmd_llength.t in partcl: 1.4s; in partcl-nqp: 0.87s | ||
(of course, partcl-nqp isn't able to do as much yet, but that seems encouraging) | |||
20:02
SEcki joined
20:04
dalek left
|
|||
pmichaud | NQP doesn't do ranges, no. | 20:04 | |
I was more pointing out what Perl 6's "next" function could do, that NQP's likely will not. | |||
NQP can't do ranges because Parrot doesn't supply a Range type :-) | 20:05 | ||
ash_ | ah, that would make sense | ||
pmichaud | (well, it *could* go ahead and treat 1..5 as meaning (1,2,3,4,5) but that seems like it'd be asking for trouble in other areas) | ||
anyway, I suspect ranges are one of the areas where NQP tends to emphasize the NQ :-) | 20:06 | ||
ash_ | yeah, make sense | ||
in my nq-nqp i am thinking of adding a delete $a; since i don't have GC | 20:07 | ||
20:09
payload joined,
molaf joined
20:12
dalek joined
20:13
Guest85367 joined
20:18
riffraff left
20:23
M_o_C joined
|
|||
mathw | Evening | 20:41 | |
20:41
lichtkind left
|
|||
jnthn | mathw: o/ | 20:41 | |
mathw | o/ jnthn | 20:42 | |
how're things | |||
jnthn | Not so bad | ||
Spent too much of this week dealing with visa stuff. But it's done now...hopefully. :-) | |||
mathw | yay | ||
jnthn | And you? Cold shaken off? | ||
mathw | well I've got myself to a point where I consider myself well | ||
and have been to aikido today | |||
...twice | 20:43 | ||
jnthn | Yes, I saw the photo. :-) | ||
mathw | so happy me | ||
jnthn | \o/ | ||
mathw | thus you know that I got my 6th kyu :D | ||
colomon | \o/ | ||
jnthn | Yes. Congrats! :-) | ||
mathw would dance, but is too exhausted | |||
two classes in a day is hard | |||
I have no idea how I'm going to survive summer school | |||
that's about eight hours a day for four days | |||
jnthn | Whoa! | ||
mathw | FOUR DAYS! | ||
but there will be three 7th dans teaching | 20:44 | ||
so it's really quite unmissable | |||
especially since it happens in Nottingham | |||
(because we're the head dojo. hah!) | |||
jnthn | :-) | 20:45 | |
20:45
Helios joined
|
|||
mathw | it'll be quite the experience | 20:45 | |
if only for the chance to see sensei phil do his 4th dan test | |||
20:53
ignacio__ left
21:00
ruoso left
|
|||
mathw | ow | 21:10 | |
21:11
pyrimidine left
|
|||
jnthn | mathw: Was that at aikido pains, cat induced, or Rakudo build memory consumption? :-) | 21:11 | |
mathw | aikido pains | ||
my forearms are not happy | |||
the cat seems to be scared of me tonight, which is a bit odd | 21:12 | ||
he's usually all over me | |||
21:12
Coke left,
ignacio_ joined
|
|||
mathw | particularly after I've been out | 21:13 | |
ah, here he comes | |||
21:14
alester left
21:18
ignacio_ left
|
|||
colomon | moritz_: Is there a reason you didn't use the same patch for infix:<X> as you did for infix:<Z>? | 21:26 | |
moritz_ | colomon: none than human imperfection | 21:27 | |
colomon | :) | ||
21:30
molaf left
|
|||
moritz_ | s/than/but/ | 21:31 | |
moritz_ -> bed | 21:32 | ||
colomon | night! | ||
jnthn | sleep well o/ | ||
21:32
ignacio_ joined
21:41
M_o_C left
21:44
mberends joined
21:50
Su-Shee left
21:52
ash_ left
21:55
Chillance left
22:01
SmokeMachine left
22:15
sundar left,
ignacio_ left
22:21
sorear joined
22:26
riffraff joined
22:30
ignacio_ joined
22:33
ignacio_ left
|
|||
pmurias | mathw: how does a dan test look like? | 22:41 | |
22:44
clintongormley left
|
|||
sorear | jnthn: My problem right now is - how to expose references to Parrot? | 22:48 | |
jnthn: best idea at present is - at return, reference chains are unwound, and a P5{not scalar} is returned; non-scalars are reffed on passing | 22:49 | ||
pmurias | sorear: what does reference chain unwounding mean? | 22:51 | |
\\\1 is turned into 1? | |||
sorear | jnthn: this seems to have the highest Just Work factor, but it prevents some interesting things | ||
pmurias: yes | |||
pmurias | why do you want to do that? | ||
sorear | jnthn: another idea is to just handle refs as scalars, and axe P5Sub et al. Big disadvantage: since a scalar doesn't implement Callable &c, you can't treat random P5 returns as P6 sigil variables | 22:52 | |
pmurias: because there is no Parrot API for handling references, nor any P6 syntax, so it's not possible to simply expose them as a data type | 22:53 | ||
unless we just expose them as objects, which would be insane | |||
jnthn | sorear: Hmm. In the Perl 6 sense, I guess things generally behave like references. | ||
pmurias | aren't captures the reference replacement | ||
? | |||
sorear | CGI.new.DEREFERENCE.header | ||
jnthn | That is, $x = @foo; $x[1] # just works | 22:54 | |
sorear | jnthn: this is sort-of where I'm going with #1 - no explicit refs on the P6 side | ||
jnthn | I agree they shouldn't be explicit, I think. At lesat not at the first level | 22:55 | |
pmurias | jnthn: it's equivalent to $x = \@foo; $x->[1] in perl5 | 22:56 | |
jnthn | Deeper than that though...don't know that it makes sense to totally unwind them. | ||
pmurias: Right. In Perl 6 the dereference is kinda "implicit" though. | |||
pmurias | jnthn: the referencing is | 22:57 | |
22:57
Alias_ joined
|
|||
pmurias | jnthn: the deferencing syntax is just shorter | 22:57 | |
because of sigil invariance | |||
sorear: i think you shouldn't convert data types | 22:58 | ||
jnthn | Well, true, in a sense. | ||
22:58
betterworld left
|
|||
jnthn | pmurias: Not sure what you mean by "convert data types"... | 22:58 | |
22:59
betterworld joined
|
|||
jnthn | sorear: I don't think you can unpack the whole chain - if anything it makes the round-tripping not really work out. | 22:59 | |
sorear | the problem with first level is that it breaks round-tripping for scalar refs | ||
22:59
supernovus joined,
Alias left
|
|||
pmurias | if you unpack refs how are we supposed to write that into them? | 23:00 | |
sorear | pmurias: Data type conversion is a necessary evil. 80% of the hard technical decisions in Blizkost have involved drawing and re-drawing the line between "necessary" and "evil" | ||
pmurias | why is it necessary? | 23:01 | |
parrot limitations? | |||
jnthn | sorear: I'd imagine more that there'd just be a wrapper PMC around the SV and when you tried to do some kind of indexed access. | ||
sorear | perl5 limitations | ||
jnthn: that was my Second Idea | |||
the problem with /that/ is that SVs are mutable | |||
jnthn | erm, and it de-referenced when you tried to... | 23:02 | |
How does that bite us? | |||
sorear | my @foo = thing_from_perl5; #( Perl5 does something in some other code which causes the SV to no longer be a ref) | ||
now @foo points to a scalar, not a Positional | |||
oops boom | |||
pmurias | sorear: what perl5 limitations? | ||
sorear | pmurias: it's not written on top of parrot | 23:03 | |
jnthn | So long as it's oops boom in the "throws an Exception" sense rather than the "omg segfault" sense... | ||
sorear | so I can't just pass PMCs to it | ||
jnthn | ...I think that's probably OK. | ||
sorear | I have to munge them into SVs, which are similar but not quie the same | ||
and do reverse munging later | |||
pmurias | sorear: i didn't encounter anything substantial when working on smop/p5 interop | ||
sorear: why can't you wrap SV* into a SV PMC | 23:04 | ||
jnthn | I think that's more likely to work out right than taking out all the chains. | ||
sorear | pmurias: because a SV PMC would have a variable list of roles | ||
jnthn | sorear: That's fine. | 23:05 | |
sorear: Override does vtable. :-) | |||
sorear: It can say it does whichever roles it likes. :-) | |||
sorear | oooh | 23:06 | |
supernovus | I wish I knew C (and wasn't afraid of perl5 guts)... | ||
sorear | smop lives? | 23:07 | |
pmurias | i sometimes hack on mildew (which targets smop and js) | 23:08 | |
sorear: it's not very active, but it's not yet dead | 23:09 | ||
supernovus | I'm afraid my work on Temporal.pm has been rather sparce lately, don't know if it'll be ready for Rakudo * (I still wonder if it shouldn't be an external lib anyway...) | 23:13 | |
sorear | What does it do? | 23:15 | |
supernovus | sorear: was that at me or pmurias? | 23:16 | |
sorear | You | ||
23:16
riffraff left
|
|||
supernovus | Temporal is provides functionality similar to the DateTime and TimeDate distos for perl5. Basically, simple date and time operations. | 23:18 | |
it is currently listed as a part of the perl 6 setting/core. I think it may be a bit much for a "core" library. | 23:20 | ||
23:22
SEcki left
23:23
ruoso joined,
cdarroch left
|
|||
pmurias | ruoso: hi | 23:24 | |
supernovus | my work is based on the provisional Temporal.pm from the alpha branch as well as masak's Temporal Flux project. | ||
23:25
masak joined
|
|||
masak | ahoy, #perl6! | 23:25 | |
supernovus | speaking of masak! hi! | ||
masak | the insomnia trend continues! | 23:26 | |
mberends | it must be catching! | ||
masak | :) | ||
I'm only staying for a short Temporal period, though. | |||
I need to apply some corrective temporal twists to my sleep habits. | 23:27 | ||
jnthn | lolitsmasak! | ||
supernovus | gah, more Temporal references! | ||
typing on the pre keyboard is "fun" when on irc... | 23:28 | ||
sjohnson | yo masak | 23:29 | |
hey jnthn | |||
masak | sjohnson: \o | ||
sjohnson | question for you (i may have already asked this, forgive me) | ||
masak | yayitsjnthn! | ||
23:29
pmurias left
|
|||
sjohnson | jnthn: i was reading your page a while ago and wanted to let you know about sourceforge.net/projects/unxutils/ if you didn't know about it already | 23:29 | |
makes win32 life a lot more pleasant | |||
masak | speaking of the young-girl demographic (or children in general): there's a 3D storytelling programming language called Alice. www.alice.org/index.php?page=what_i...t_is_alice | 23:30 | |
jnthn: in PIR, when a sub's declared to be a :method, can it still be called with any old invocant? | 23:32 | ||
supernovus | masak: looks neat, may have to play with Alice later. | ||
jnthn | masak: yes | ||
masak | jnthn: yuck! :) | ||
jnthn | masak: Why? | ||
:-) | |||
masak | jnthn: I don't know. instinctive reaction. | ||
it's like it's a method of *all* classes at the same time. | 23:33 | ||
(it also explains a couple of RT tickets I've submitted) | |||
jnthn | masak: :method is just an instruction to install it in the methods table and to handle the self register | ||
masak | nodnod | ||
it's slowly sinking in. | |||
jnthn | masak: Parrot doesn't handle type checking and stuff. We build that ourselves. :-) | ||
masak | alpha: regex foo { x a* y }; say foo 'xaaaay'; say foo 'hsfl' | 23:34 | |
jnthn | (Or fail to at the moment, I guess...) | ||
p6eval | alpha 30e0ed: OUTPUT«xaaaay» | ||
masak | jnthn: the sub 'foo' that's installed there is a method. | ||
jnthn: it gets called with self being the string passed in. | |||
jnthn | Yeah | ||
masak | jnthn: I need to... do something like that in GGE. | ||
jnthn | In master things get even more fun in that sense in that Perl 6 methods don't actually compile down to a :method in Parrot. | 23:35 | |
masak | I'm still thinking of what that something is. :) | ||
jnthn: so Rakudo master reinvents methods on the Perl 6 layer? | |||
jnthn | sjohnson: Yes, I know about that one. | ||
masak: It was actually easier that way. | 23:36 | ||
supernovus | well, phone is dying, time to say farewell. | 23:41 | |
jnthn | o/ | ||
supernovus | ttyl! | 23:42 | |
23:42
supernovus left
|
|||
Tene | Yet another place where I worry about language interop. | 23:43 | |
masak | yayitstene! | ||
Tene | yayitsme! | 23:44 | |
where?!?! | |||
masak | :) | ||
Tene | Yeah, rakudo worries me about failur eof language interop in several ways. I haven't been available enough to actually do anything about it to be able to complain, though. | 23:45 | |
masak | please complain in more detail. | ||
Tene | "I've seen a few things that make me vaguely uneasy about possible language interop concerns, if nobody else fixes them." | 23:49 | |
Tene waves his hands around aimlessly. | |||
sorear | Tene: Interop problems in rakudo? | 23:50 | |
masak | Tene: I don't have language interop concerns, because I don't do language interop. instead, I reinvent the wheel in Perl 6, and then drive around with teeth clattering. :P | 23:52 | |
Tene | sorear: rakudo methods aren't actual parrot :methods, jnthn says. What are the implications of that on trying to call methods on rakudo objects from other parrot languages, or calling methods on other-language objects from rakudo? When I define postcircumfix:<[ ]> method on a class, how is that related to the *_pmc_keyed_int vtables? etc. | ||
jnthn | Tene: The methods one isn't a problem. | ||
23:53
hercynium joined
|
|||
jnthn | Tene: All dispatch - from Rakudo or to Rakudo things - goes through find_method and invoke. | 23:53 | |
Tene: The postcircumfix:<[ ]> one is more of an issue though. | |||
Tene | also postcircumfix:<{ }> | 23:54 | |
jnthn | Yup. | 23:55 | |
Tene | there are also issues with .Bool and :get_bool, .Str and :get_str, etc. | ||
several others. | |||
jnthn | Yes. | ||
Tene | there are issues with inheriting vtables overrides, though, so that's awkward to fix. | ||
I think. | |||
jnthn | Yeah. :-/ | 23:56 | |
Tene | Anyway, these aren't inherently unfixable, just need attention eventually. | ||
Tene afk driving home | 23:58 | ||
sorear | jnthn: does this mean that blizkost values won't be usable as hashes &c? | ||
Tene | sorear: Yes, I expect it does. | 23:59 | |
jnthn | sorear: We already have something in place that falls back to get_pmc_keyed vtables. | ||
In the case that the thingy lacks a postcircumfix:<{ }> method. | |||
Whether it works well or not, otoh... | |||
But fixable if not. |