pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~330 days 'til Xmas Set by mncharity on 25 January 2009. |
|||
00:23
vixey left
|
|||
pugs_svn | r25073 | lwall++ | [STD] cut reduce meta tokens in half, memory usage 40% smaller | 00:24 | |
TimToady | std: say "howdy" | ||
p6eval | std 25072: OUTPUT«00:07 92m» | 00:25 | |
00:26
hanekom__ left
|
|||
TimToady | std: say "howdy" | 00:29 | |
p6eval | std 25073: OUTPUT«00:07 92m» | ||
00:30
Exodist left
00:31
pbuetow left
|
|||
pugs_svn | r25074 | hinrik++ | [util/perl6.vim] remove some duplicate code, give Q strings less matching priority than identifiers/functions/ops so that the 'q' in '$foo eq $bar' will not be considered the start of a q$$ string | 00:31 | |
TimToady | I've basically had to stop using perl6.vim on STD.pm, just too slow | 00:33 | |
literal | I recently turned a few slow things off by default, have you tried it recently? | ||
TimToady | My system's perl6.vim is a symlink into the repo :/ | ||
so I'm always using the latest | 00:34 | ||
pugs_svn | r25075 | hinrik++ | [util/perl6.vim] and update the timestamp | ||
literal | yes, but you said you stopped, was that before or after the aforementioned change? :P | ||
TimToady | I stopped about half an hour ago | 00:35 | |
literal | heh, I see | ||
TimToady | it seems to be reparsing everything from the top, maybe | ||
I wonder if there's a way to just reparse the current function | |||
literal | there is a way, I just haven't gotten around to doing that... | 00:36 | |
TimToady | assume /^{/ is a potential resync point | ||
or /^}/ | |||
literal | yeah, I only have hooks for ^= pod stuff now | 00:37 | |
TimToady | course, that doesn't help in the middle of a class | ||
or lines starting with sub, method, token, etc | 00:38 | ||
ignoring leading ws | |||
anyway, a lag of several seconds is what I get here, and it makes it a bit hard to edit | 00:39 | ||
pugs_svn | r25076 | hinrik++ | [util/perl6.vim] add a few missing keywords | 00:50 | |
r25077 | lwall++ | [STD] assignop should rely on :assign, not on non-Bool | 00:57 | ||
frew | std: foo( :bar($baz)) | 01:07 | |
p6eval | std 25077: OUTPUT«Unknown routines: foo called at 1 00:04 63m» | ||
frew | std: join( :bar($baz)) | ||
p6eval | std 25077: OUTPUT«00:04 63m» | ||
frew | std: join(bar: $baz) | ||
p6eval | std 25077: OUTPUT«Unknown routines: bar called at 1 00:05 72m» | ||
frew | Hey I am having some weird issues with a test | 01:11 | |
I can't seem to get it to skip a test | |||
TimToady | as in fudge? | 01:12 | |
frew | uh, maybe? | ||
as in #?rakudo skip 'foo' | |||
TimToady | a single test or a block? | ||
frew | I tried both | ||
TimToady | nopaste it? | ||
frew | good idea | 01:13 | |
one sec | |||
rafb.net/p/0YOvhN13.html | 01:14 | ||
TimToady | looking | ||
skipped blocks have to be flush on the margin | 01:16 | ||
iirc | |||
[particle] | true dat. | ||
frew | ahh! | 01:17 | |
thanks | |||
is there any reason some blocks have semicolons after them/ | |||
TimToady | if not the last thing on the line | ||
frew | ah, k | 01:18 | |
also: do any of you use vim and have problems with entire tests looking commented out because of the pod? | |||
p6paste | "frew" at 127.0.0.1 pasted "pop.t" (90 lines) at paste.nix.is/4 | 01:19 | |
literal | better paste :) | ||
if you like highlighting, that is | |||
frew | ah, cool | ||
I'll take that as a no. | 01:21 | ||
pugs_svn | r25078 | frew++ | [t] named argument test for pop | 01:22 | |
literal | frew: maybe you are using the Perl 5 vim syntax file | ||
you need this: svn.pugscode.org/pugs/util/perl6.vim | |||
frew | yeah | ||
I got that | |||
literal | at the moment it's a bit slow and doesn't highlight regexes/grammars, but otherwise it's useful | ||
frew | and I put it in ~/.vim/ftplugin/ | 01:23 | |
literal | it should be in ~/.vim/syntax | ||
frew | but it seems to not highlight anything | ||
oh | |||
my bad | |||
literal | and you'll have to do ":set ft=perl6" if the file you're editing doesn't contain a vim modeline declaring the filetype | 01:24 | |
frew | oooh! | ||
it works! | |||
thank you! | |||
well, I'll just add the modeline | |||
it's in like, half of them | 01:25 | ||
literal | yeah | ||
pugs_svn | r25079 | frew++ | [t] named arg test for push | 01:31 | |
frew | literal: that is kinda slow. is that just because perl6 is complicated or what/ | 01:33 | |
literal | that, and vim's syntax highlighting engine is very limited | 01:36 | |
so I had to use lookahead/lookbehind a lot in the regexes | 01:37 | ||
frew | ahh | ||
gotcha | |||
because of matching and stuff? | |||
literal | and all these weird operators :P | 01:38 | |
pugs_svn | r25080 | frew++ | [t] named arg tests for shift | ||
frew | haha | ||
yeah, I took a peak at it and I like how you were like, "A MILLION KEYWORDS!" | 01:39 | ||
TimToady | std: $a <<=== $b | ||
p6eval | std 25079: OUTPUT«############# PARSE FAILED #############Can't make assignment of sequencer operator at /tmp/MiOjiXWklg line 1:------> $a <<=== $b00:04 62m» | ||
01:40
DemoFreak left
|
|||
literal | frew: that comment was there before I started changing it, actually :P | 01:40 | |
one of the few things I left unchanged | |||
TimToady | std: $a ==>>= $b | 01:41 | |
p6eval | std 25080: OUTPUT«00:05 84m» | 01:42 | |
TimToady | oops | ||
frew | nice | ||
pugs_svn | r25081 | lwall++ | [STD] catch ==>>= | ||
TimToady | std: $a ==>>= $b | 01:43 | |
p6eval | std 25080: OUTPUT«00:05 84m» | ||
TimToady waits | |||
std: $a ==>>= $b | 01:45 | ||
p6eval | std 25081: OUTPUT«00:05 84m» | ||
TimToady | hmm | 01:46 | |
std: $a ==>>= $b | 01:47 | ||
p6eval | std 25081: OUTPUT«00:05 84m» | ||
TimToady | guess it needs to rebuild its lexer cache...it fails here anyway | 01:48 | |
frew | TimToady: so I just realized who you are | ||
TimToady | I'm still trying to figure that out | ||
frew | thanks for being awesome! | ||
haha, aren't we all? | |||
TimToady | thanks for the encouragement | ||
frew | haha, no problem | ||
I have a question for you about a syntax choice | 01:49 | ||
you guys do this for named args: foo( bar => $baz) | |||
or foo( :bar(baz)) | |||
have you even considered foo(bar: $baz)? | |||
TimToady | that means somethign else | ||
frew | I know that's a total ripoff of javascript/ruby2 | ||
yeah, I figured that would be the case | 01:50 | ||
TimToady | that means bar.foo($baz) | ||
frew | wait.... | ||
TimToady | because : on the first arg means it's an invocant | ||
frew | ooooh | ||
so foo(:bar($baz)) != foo(bar => $baz)? | |||
TimToady | std: print $*OUT: "howdy" | ||
p6eval | std 25081: OUTPUT«00:06 73m» | ||
TimToady | those are the same | 01:51 | |
frew | so foo(bar: $baz) = bar.foo($baz) ? | ||
TimToady | usually seen as | 01:52 | |
foo bar: $baz | |||
without the parens | |||
frew | ahh | ||
01:52
sri_kraih joined
|
|||
TimToady | it's the p5 indirect object syntax, only not nearly so ambiguous | 01:52 | |
frew | so that's like the syntax in perl5 kinda | ||
got it | |||
TimToady | we use it in sigs too: method foo ($self: $a, $b) {...} | 01:53 | |
frew | Yeah, I noticed | ||
but that's not quite the same is it? | |||
I take it back, I guess it is | 01:54 | ||
TimToady | well, has a different effect in a sig, but still means "this thing on the left is the invocant" | ||
frew | So do we need to put ($self: ...) in all of our object methods? | ||
TimToady | nope | ||
literal | so this is valid? method $self.foo ($a, $b) { ... } | ||
frew | ah, great | ||
TimToady | no | 01:55 | |
just method foo ($a,$b) is fine | |||
the invocant is optional in the sig | |||
literal | yeah | ||
TimToady | just if you want to name it | ||
literal | just wondering how close the analogy to indirect object syntax went | ||
frew | ok, and one other question that I haven't seen in any of my readings | 01:56 | |
what about threading stuff? | |||
I read that perl6 is better than perl5 threading | |||
but is it as good as weird functional lanuages at threading etc? | |||
TimToady | well, it's designed to have almost no global state, which helps | ||
literal | frew: seen this? svn.pugscode.org/pugs/docs/Perl6/Sp...rrency.pod | ||
TimToady | and plenty of primitives that allow lightweight threading | 01:57 | |
you're basically spawning threads when you do foo() ==> bar() | |||
and contextual variables are intended to be more thread friendly than p5's local | |||
frew | cool | 01:58 | |
does it have features like clojure? | |||
my Larry Wall fan girl friend asked me to ask that, so I can't tell you what that means :_) | 01:59 | ||
literal | "Concurrent programming through software transactional memory, an agent system, and a dynamic var system" | ||
says Wikipedia | |||
frew | just to disambiguate, my friend isn't a girl or my girlfriend, but acting (like I am) like a fangirl :-) | 02:01 | |
literal | our hopes; dashed | ||
TimToady | it's okay to be a fanboy too :) | ||
frew | yeah, but it's funnier to say fangirl | ||
literal | btw, I'd like to echo frew's earlier sentiment | 02:03 | |
TimToady | there is a plan to support STM, but remains to be seen how well that works out | ||
literal | TimToady: thanks for being awesome! | ||
TimToady | thanks for the encouragement | ||
std: $a ==>>= $b | 02:04 | ||
p6eval | std 25081: OUTPUT«############# PARSE FAILED #############Can't make assignment out of sequencer operator at /tmp/7MLDzOEmtj line 1:------> $a ==>>= $b00:04 62m» | ||
TimToady | that's more like it | ||
literal | TimToady: you said tchrist is working on the next Programming Perl version? any idea how that's going? | 02:05 | |
frew | literal: any idea why vim sometimes accidentally highlights large swaths of code as if they are strings? | ||
TimToady | he was working on a new Perl 5 version, I think | ||
no idea how it's going | |||
literal | frew: does it appear to be random, and goes back to normal by scrolling back and forth? | 02:06 | |
s/by/when/ | |||
if it's not random then I'd like to hear what code caused it | 02:07 | ||
if it's some grammar/regex stuff then that's because that hasn't been finished yet | |||
frew | literal: yeah | 02:08 | |
literal: it's not just perl though, it happens with javascript at work | |||
and often with folds? | |||
I think its a vim bug | |||
but it's REALLY hard to pin down | |||
02:10
s1n left
|
|||
literal | I suspect it only happens when the syntax syncing in vim is set so that it only highlights the code you're currently looking at, or that is, all the way back to the start of some region | 02:10 | |
frew | hm | 02:11 | |
literal | and it either can't find any starting point within the limit specified (usually 100 lines) | ||
frew | so the only real solution to that is small files | ||
literal | or "syn sync fromstart" | ||
which makes it highlight the whole file when opening it | 02:12 | ||
frew | should I put that in my .vimrc? | ||
hmm | |||
that shouldn't be so bad at work | |||
my work computer is like, awesome | |||
literal | Perl 5's syntax file does that, and it only causes a slight delay when the file is a few thousand lines | ||
frew | ok, I just did :syn sync fromstart | 02:13 | |
literal | perl6.vim does it too because I haven't registered the required syntax syncing hooks (i.e. "when you look back and see this pattern, what follows is a subroutine") | ||
frew | and then did :e t/spec/S29-array/splice.t | ||
and it's still busted | |||
literal | but it's slower simply because Perl 6 is more complicated than Perl 5 | ||
frew | ok | 02:14 | |
02:14
araujo left
|
|||
frew | so the reason it didn't work just now is because perl6.vim is basically just not done | 02:14 | |
literal | splice.t looks fine to me | ||
did you forget to set the filetype? | 02:15 | ||
frew | I added # vim: syn=perl6 to the end | ||
and if I go to the bottom of the file and reload it it looks all stringy | |||
literal | that's not right | ||
frew | (you *must* load the file with the cursor at the bottom) | ||
literal | should be: # vim: ft=perl6 | 02:16 | |
frew | ok, done, but it still has the issue | ||
literal | yeah, it happens when the cursor is at the bottom | 02:17 | |
don't know why | |||
it shouldn't happen since vim highlights the whole file upon opening it | |||
frew | well, I'll try that syn sync fromstart at work | 02:18 | |
literal | you shouldn't have to try it for Perl 6, it's already in the syntax file :P | 02:19 | |
frew | haha | ||
is there a >> << for blocks? | |||
literal | what do you mean? | ||
frew | like instead of @foo >>+<< @bar | 02:20 | |
literal | feed operators? | ||
ah | |||
frew | hyper(@foo, @bar, { $^a + $^b}) | ||
literal | you could define your own operator and put it in >> << | ||
frew | that's kindav a drag | ||
what if I want to iterate over two arrays at once? | 02:21 | ||
note: that is not the same question | |||
TimToady | for @foo Z @bar { $^a + $^b } | 02:22 | |
frew | interesting | 02:23 | |
so that's what zip does? | |||
literal | it weaves them together, just like your zipper does :P | ||
02:24
s1n joined
|
|||
TimToady | perl6: for 1,2,3 Z 4,5,6 { say $^a + $^b } | 02:25 | |
p6eval | rakudo 36073: OUTPUT«579» | ||
..pugs: OUTPUT«42» | |||
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3. at ./elf_h line 4333» | |||
TimToady | looks like rakudo has it right | 02:26 | |
perl6: map &infix:<+>, (1,2,3 Z 4,5,6) | 02:27 | ||
p6eval | pugs: RESULT«(4.0, 2.0)» | ||
..elf 25081: OUTPUT«/home/evalenv/pugs/misc/STD_red/match.rb:141:in `block in to_dump0': undefined method `to_dump0' for true:TrueClass (NoMethodError) from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `each' from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `map' from | |||
../home/evalenv/pugs/mi... | |||
..rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near ":<+>, (1,2"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
TimToady | perl6: map &infix:<+>, zip(1,2,3; 4,5,6) | 02:28 | |
p6eval | pugs: RESULT«(6.0,)» | ||
..elf 25081: OUTPUT«/home/evalenv/pugs/misc/STD_red/match.rb:141:in `block in to_dump0': undefined method `to_dump0' for true:TrueClass (NoMethodError) from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `each' from /home/evalenv/pugs/misc/STD_red/match.rb:140:in `map' from | |||
../home/evalenv/pugs/mi... | |||
..rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near ":<+>, zip("current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
frew | it looks like pugs is doing something (at least to me) unexpected for thsi for 1,2,3 Z 3,2,1 { say $^a ~ $^b; } | 02:30 | |
I get '1 32 2\n3 1Item' | 02:31 | ||
TimToady | perl6: for (1,2,3) Z (4,5,6) { say $^a + $^b } | 02:33 | |
p6eval | rakudo 36073: OUTPUT«579» | ||
..pugs: OUTPUT«42» | |||
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3. at ./elf_h line 4333» | |||
frew | so I should start using rakudo for my playing. | 02:34 | |
it's not as nice | |||
TimToady | pugs: for zip(1,2,3; 4,5,6) { say $_ } | ||
p6eval | pugs: OUTPUT«123456» | ||
TimToady | pugs: rakudo: zip(1,2,3; 4,5,6) { say $_ } | 02:35 | |
p6eval | pugs: OUTPUT«***  Unexpected "{" expecting operator at /tmp/0mSHro2tcp line 1, column 27» | ||
TimToady | rakudo: for zip(1,2,3; 4,5,6) { say $_ } | ||
frew | you forgot the for | ||
p6eval | rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near "(1,2,3; 4,"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
TimToady | perl6: say 1,2,3 Z 4,5,6 | 02:36 | |
p6eval | pugs: OUTPUT«123» | ||
..rakudo 36073: OUTPUT«142536» | |||
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3. at ./elf_h line 4333» | |||
TimToady | perl6: say (1,2,3 Z 4,5,6) | ||
p6eval | pugs: OUTPUT«1 42 53 6» | 02:37 | |
..rakudo 36073: OUTPUT«142536» | |||
..elf 25081: OUTPUT«Undefined subroutine &GLOBAL::infix_Z called at (eval 120) line 3. at ./elf_h line 4333» | |||
TimToady | pugs has precedence and extra-[] problems there | ||
frew | my rakudo is invariably failing splice.t | 02:38 | |
I'll stop using pugs | 02:39 | ||
02:39
gravity joined
|
|||
frew | weird. | 02:40 | |
it's saying splice isn't a sub | 02:41 | ||
TimToady | it was aiming at the design from several years ago, and has suffered some "design rot" since then | ||
frew | yeah | ||
rakudo: splice(1,2,3; 1,2) | 02:42 | ||
p6eval | rakudo 36073: OUTPUT«Statement not terminated properly at line 1, near "(1,2,3; 1,"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
frew | rakudo: my @f = 1,2,3; splice(@f, 1,2) | ||
p6eval | rakudo 36073: OUTPUT«Could not find non-existent sub splicecurrent instr.: '_block14' pc 116 (EVAL_17:53)» | ||
frew | does perl6 allow "monkey patching" and is it scoped in any way? | 02:45 | |
02:47
japhb left
|
|||
TimToady | heh | 02:50 | |
look at S12 and scan for MONKEY_PATCHING | 02:51 | ||
gravity grins | 02:53 | ||
frew | nice | ||
what if I have a module that monkey patches Scalar and adds some method and then you do it in another module with the same method name? | 02:55 | ||
TimToady | there are reasons we try to discourage magical action at a distance in the design of Perl 6 :) | 02:57 | |
and the requirement to put "use MONKEY_PATCHING" at the front of your file is just one of the ways we discourage the practice | 02:58 | ||
nevertheless, every now and then you want a tactical Swiss Army nuke... | |||
just keep your uranium at a distance from my uranium... | 02:59 | ||
frew | TimToady: yeah, but my question is: what if you write modules, and you uranium it up, but I don't want your uranium. Will using your module give me radiation? | 03:01 | |
TimToady | MONKEY_PATCHING is really easy to grep for | 03:03 | |
frew | so you are saying yes | ||
but that is an ok alternative | |||
because scoped monkey patching would be weird at the very least | |||
TimToady | basically, MONKEY_PATCHING should be considered part of the public interface of a module | 03:04 | |
frew | and the main reason monkey patching is good (imho) in ruby is because it's missing macros | ||
ok, that makes sense | |||
and typically if a module has monkey patching it's whole purpose is monkey patching | |||
TimToady | it's a bad solution to the wrong problem :) | ||
frew | hahahaha | ||
well, the perfect example is andand | |||
which perl6 and groovy have out of the box | 03:05 | ||
but nonetheless could be taken care of with macros | |||
$foo.?bar | |||
TimToady | our goal is to give everyone all the tools they need, and then discourage them from using the tools by also giving them the primitives they need :) | ||
frew | haha | 03:06 | |
yeah | |||
I noticed today that perl5 doesn't have capitalize | |||
which is ok, but it would be nice to have | |||
TimToady | well, it has ucfirst... | ||
frew | (SOMEONE STORED EVERYTHING IN THE DB AS ALL CAPS) | ||
TimToady | probably andy | 03:07 | |
frew | TimToady: yeah, but 1 | ||
this: join(' ', map { ucfirst } split(/\s+/, lc($words))); | |||
is kinda hairy | |||
I'm sure it was andy. | 03:08 | ||
TimToady | s/(\S+)/\U\l$1/g or some such | ||
'course, we got rid of \u and \l in p6... | 03:09 | ||
pugs_svn | r25082 | azawawi++ | [S:H:P6] Moved rsc folder as S::H::P6::files (less namespace collision) | ||
r25082 | azawawi++ | [S:H:P6] Updated to STD r25081 and perl6.vim r25076 | |||
r25082 | azawawi++ | [S:H:P6] sent version 0.037 to CPAN | |||
frew | but you have capitalize... | ||
03:10
alester joined
|
|||
frew | that looks like it did exactly the opposite | 03:11 | |
yeah, actually s/(\S+)/\u\L$1/g | 03:12 | ||
03:12
gravity left
03:13
gravity joined
|
|||
frew | that only works for one word... | 03:14 | |
TimToady | not with /g | 03:15 | |
frew | indeed | 03:17 | |
03:18
edenc left,
edenc joined
03:27
PZt joined
|
|||
pugs_svn | r25083 | azawawi++ | [S:H:P6] less CPAN namespace collisions | 03:28 | |
03:28
rabbits77 joined
03:29
ChrisDavaz left
03:32
rabbits77 left
|
|||
pugs_svn | r25084 | frew++ | [t] added named args to unshift test | 03:32 | |
frew | I am going to blindly commit my changes for splice.t. The test fails as is so I can't say I broke it. | 03:34 | |
pugs_svn | r25085 | azawawi++ | [S:H:P6] more cleanups | 03:35 | |
03:36
rabbits77_ joined
|
|||
pugs_svn | r25086 | lwall++ | [pop.t] fix syntax error | 03:36 | |
03:36
rabbits77_ left
|
|||
pugs_svn | r25087 | azawawi++ | [S:H:P6] less CPAN namespace collisions with respect to resources completed | 03:39 | |
r25088 | frew++ | [t] added named arg test for splice.t | 03:40 | ||
r25089 | azawawi++ | [S:H:P6] Fixed namespace collision issues that was introduced in 0.037 | 03:47 | ||
03:51
Limbic_Region left,
rabbits77 joined
03:52
rabbits77 left
04:16
justatheory left
04:17
mtnviewmark joined
04:19
Cyrus joined
04:20
alester left
|
|||
s1n | what is the line number anchor format on perlcabal? | 04:21 | |
04:27
ayrnieu joined
|
|||
pugs_svn | r25090 | putter++ | [elfparse] IRx1_FromAST_create tweak. Added regression baseline for 'rx_on_re tests as parsed by STD_blue'. /\N/. More std.pm unpodding. | 04:28 | |
r25090 | putter++ | [elf] IRx1_FromAST_create tweak. Lightly dust README. | |||
r25091 | hinrik++ | [util/perl6.vim] simpler solution to the eq/q problem which doesn't have side effects: look for a word boundary | 04:33 | ||
05:04
gravity left
05:08
ejs joined
05:12
meppl joined
05:25
araujo joined
05:42
ejs left
05:53
stephenlb left
05:56
xuser joined
06:11
ChrisDavaz joined
06:29
eternaleye_ joined
06:37
masak joined
|
|||
masak | @tell moritz_ re perlgeek.de/blog-en/perl-6/rakudo-rocks.html -- very cool, kudos. slight typo: s/Mai/May/ | 06:39 | |
lambdabot? | 06:40 | ||
I like being portrayed as being quite enthusiastic despite writing about a lot of nasty bugs. that captures the doubleness of writing stuff on top of Rakudo. | 06:42 | ||
06:46
ashizawa joined
|
|||
mtnviewmark | so - am I right in thinking that rakudo is now trying to figure a way to boot strap into STD.pm? | 06:51 | |
masak | that's always been the long term goal, I think. | 06:52 | |
mtnviewmark | wow - that is one awfully cool graph in that article! | ||
[particle] | the way is fairly clear, and pmichaud is funded to make it happen. | ||
mtnviewmark | it would depend on keeping STD.pm down to some reasonable, hard coded subset of the language? | 06:53 | |
or is it - get the first one working... then it is all generational from there | |||
[particle] | rakudo will eventually parse STD.pm | 06:55 | |
after protoregexes and LTM are implemented for PGE | |||
07:02
vixey joined
|
|||
moritz_ | good morning | 07:17 | |
07:17
mtnviewmark left
|
|||
masak | moritz_: godmorgon! | 07:18 | |
07:19
ChrisDavaz left
|
|||
moritz_ | masak: that sounds a bit like the language of Mordor ;-) | 07:20 | |
masak | moritz_: well, it's very dark and inhospitable in Sweden at this time of year... | ||
moritz_ | ;-) | 07:21 | |
masak | moritz_: but it looks worse than it sounds. both the 'd' and the 'g' are elided in actual spoken Swedish, so "go'morron", effectively. | ||
moritz_ | so you call people morrons? ;-) | 07:22 | |
masak | yes, and to their face. | ||
moritz_ isn't very nice today | |||
07:22
japhb joined
|
|||
masak | moritz_: s'ok. :) Swedish is a germanic language, after all. | 07:23 | |
moritz_ | I've heard people say that in German even a proposed marriage sounds threatening ;-) | 07:24 | |
masak | 哈哈 | 07:25 | |
I've heard some very beautifully spoken German, as well. | |||
TIMTOWTPI | 07:26 | ||
07:35
PZt left
07:38
dh_ left
07:39
dh_ joined
|
|||
moritz_ | literal++ # fixing a long-standing issue with perl6.vim and ternary operator | 07:41 | |
07:46
mtve joined
08:00
duke_leto joined
08:03
duke_leto left
08:04
hanekomu_ joined
08:07
ilogger2 joined
08:18
iblechbot joined
08:19
Casan joined
08:20
xinming joined
|
|||
Matt-W | masak: I've sung some very beautiful German | 08:21 | |
masak | yes. I've heard beautiful German sung. | 08:22 | |
Matt-W | It wasn't easy, but that had a lot to do with the music that went with it | 08:25 | |
08:32
barney joined
08:46
DemoFreak joined
|
|||
masak | rakudo: class A { submethod BUILD { say "OH HAI {self}" } }; A.new | 09:00 | |
p6eval | rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not foundcurrent instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)» | ||
Matt-W | so we don't support BUILD yet? | 09:01 | |
masak | not in that way, at least. | ||
masak looks forward to BUILD | 09:02 | ||
Matt-W | I'm unclear on exactly what BUILD is supposed to do | ||
masak | Matt-W: oh, it's called by .new | ||
Matt-W | so is it where you'd go if you wanted to have the parameters to .new interpreted differently? | 09:03 | |
moritz_ | yes, I think so | 09:04 | |
masak | probably, yes. | ||
Matt-W | good, because there are sure to be many times when the default behaviour is unsuitable | 09:05 | |
masak | actually, I'm suffering a bit from a knowledge deficit in the area of object construction in Perl 6. | ||
I don't even understand why the keys in .new params are barewords. | |||
moritz_ | masak: because the => operator quotes barewords on the left | 09:06 | |
masak | moritz_: ok. so the following should actually be allowed? | 09:07 | |
Matt-W | they're just named arguments | ||
masak | rakudo: class A {}; A.new( "test:key" => "value" ) | ||
p6eval | rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not foundcurrent instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)» | ||
masak | rakudo: say "test" | ||
p6eval | rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not foundcurrent instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)» | 09:08 | |
Matt-W | umm | ||
masak | someone's destroyed Rakudo again. | ||
Matt-W | I think rakudo's ill | ||
It wasn't me! I haven't got commit access! | |||
masak | Matt-W: that's what they all say. | ||
Matt-W | Well in my case it's true | ||
I've only got access to Pugs | |||
moritz_ | rakudo: sub a(:$x, :$y) { say "$x $y" }; a("y" => 2, "x" => 3) | 09:10 | |
p6eval | rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not foundcurrent instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)» | ||
moritz_ | rakudo: sub a(:$x, :$y) { say "$x $y" }; a(y => 2, x => 3) | ||
p6eval | rakudo 36084: OUTPUT«Class 'Perl6MultiSub' not foundcurrent instr.: 'parrot;Perl6Role;!add_variant' pc 2502 (src/classes/Role.pir:42)» | ||
moritz_ | rebuilding parrot on the server now... | 09:11 | |
masak bisects | |||
moritz_ | masak: to answer your question - anything that counts as named arguments works, so for example A.new(:a($x)) also works | 09:12 | |
masak | moritz_: a'ight. | ||
moritz_ | masak: I'm not sure if quoting the LHS of => makes it a positional pair instead | ||
masak | I hope .new is not special cased in that way. | ||
moritz_ | it is not. | 09:13 | |
09:16
duke_leto joined,
duke_leto left
|
|||
moritz_ | rakudo: sub a(:$x, :$y) { say "$x $y" }; a(y => 2, x => 3) | 09:22 | |
p6eval | rakudo 36085: OUTPUT«3 2» | ||
moritz_ | rakudo: sub a(:$x, :$y) { say "$x $y" }; a("y" => 2, "x" => 3) | ||
p6eval | rakudo 36085: OUTPUT«y 2 x 3» | ||
moritz_ | ok, quoting the key makes it a positinal argument | ||
masak: so you can't write A.new("b" => ...) and have it DWIM | 09:23 | ||
masak | that puzzles me a lot. | ||
moritz_ | why? | ||
masak | that means that there's something more than autoquoting going on. | ||
moritz_ | yes, it's synactic magic | ||
masak | ...so I'm rightfully confused. | 09:24 | |
moritz_ | but it's not all that bad, because you attributes are always identifiers | ||
09:24
drbean joined
|
|||
moritz_ | just like :a<x> is a named arg, and (:a<x>) is a positional one | 09:24 | |
Matt-W | that's going to have to be written very clearly on the documentation for parameter passing | 09:29 | |
moritz_ | Matt-W: it is already, IMHO | 09:30 | |
masak | let's just repeat that clarity in u4x, then. | ||
moritz_ | the most important point is, "the distinction between named and positional arguments only depends on syntax, not on type" | 09:31 | |
Matt-W | mmm | 09:32 | |
reading about objects | |||
it seems if you want to have different parameter handling in your constructor, you provide a custom new() | |||
so overriding BUILD is probably not necessary most of the time | |||
moritz_ | it always depends on what you actually want to achieve :-) | 09:33 | |
Matt-W | true, true | 09:34 | |
masak | moritz_: so you're saying there are times when you want to override new and times when you want to override BUILD? | ||
Matt-W | the synopsis says overriding new is for converting positional parameters to named parameters to give to bless | 09:35 | |
masak | Matt-W: oh. | ||
I see. I don't grok yet, but hopefully I will when I've done it a few times. | |||
moritz_ | masak: yes | 09:36 | |
Matt-W | also seems like the place for lots of other constructory magic actually | ||
the kinds of thing you might want to do with a C++ constructor | |||
moritz_ | masak: when you want to change params, overriding new() is the way to go. If you just want to do additional stuff, writing a BUILD submethod is sufficient | ||
masak | moritz_: how did you fix thet Perl6MultiSub error? I'm still getting it locally with the latest Rakudo. | 09:38 | |
moritz_: ah. good explanation. I grok. | |||
moritz_ | masak: realclean did it | 09:39 | |
masak | oh! | ||
masak forgot this one time | |||
09:40
finanalyst1 joined
09:44
finanalyst1 is now known as finanalyst
09:45
finanalyst1 joined
10:01
rob joined,
rob is now known as Guest97700
10:04
ejs joined
|
|||
pugs_svn | r25092 | finanalyst++ | [t] moved unicode.t to spec/ | 10:05 | |
r25093 | finanalyst++ | [t/spec] S02-builtin_data_types unicode.t from t/ No changes seemed to be needed. | 10:08 | ||
10:09
braceta joined
|
|||
finanalyst | moritz_: moved unicode.t It was the last test in builtins/strings. Should the strings directory be removed? | 10:10 | |
from t/ | |||
10:30
cai joined
10:46
Guest97700 left,
rob joined
10:47
rob is now known as Guest50922
11:04
hanekomu_ joined
11:05
DemoFreak left
11:14
ChrisDavaz joined
|
|||
jnthn | morning all | 11:25 | |
11:27
finanalyst left
|
|||
jnthn reads backscroll and starts the day with a make realclean | 11:28 | ||
11:28
ruoso joined
|
|||
ruoso | Hello! | 11:30 | |
masak | jnthn: dobru rano. | 11:31 | |
jnthn | :-) | ||
masak: hej hej ;-) | |||
jnthn knows just one Swedish greeting | 11:32 | ||
masak | jnthn: 'hejsan', 'hallå', 'tjena', 'goddag'... | 11:33 | |
jnthn | :-) | 11:36 | |
masak | but mostly we go around saying things like this: www.smouse.force9.co.uk/monty.htm | ||
jnthn | LOL! | 11:44 | |
:-) | |||
Wi nxF8t trei a hxF8liday in Sweden this yer? | |||
;-) | |||
masak | yup | ||
jnthn | Maybe I trei again in summer. ;-) | ||
masak | See the løveli lakes... The wonderful telephøne system | 11:45 | |
jnthn | Drink the cheap beer... | 11:46 | |
Oh, wait... | |||
masak | d'oh! | ||
ayrnieu | in the Czech Republic, beer is cheaper than water. | 11:47 | |
unrelated: en.wikipedia.org/wiki/List_of_count...per_capita | |||
masak | not entirely unrelated, I'd guess :) | ||
jnthn | ayrnieu: Also, the beer is *good*. | 11:49 | |
jnthn has enjoyed much Starobrno. | |||
Hah...over 1.5 litres a day in the Czech Republic! | 11:51 | ||
11:58
kisu_ joined
12:04
kisu__ joined
|
|||
masak | std: ** | 12:11 | |
p6eval | std 25093: OUTPUT«00:04 61m» | ||
masak | what's (**).WHAT ? | ||
Whatever? | |||
moritz_ | masak: it's HyperWhatever or something similar | 12:14 | |
masak | moritz_: not according to use.perl.org/~chromatic/journal/38256 , it seems | 12:15 | |
moritz_ | masak: read S09, not chromatic's blog :-) | 12:16 | |
masak | :) | ||
std: HyperWhatever | 12:17 | ||
p6eval | std 25093: OUTPUT«Unknown routines: HyperWhatever called at 1 00:04 61m» | ||
moritz_ | It is also possible to specify that an array has an arbitrary number of dimensions, using a "hyperwhatever" (**) at the end of the dimensional specification | ||
uhm, but it seems they also create just closures | |||
masak | moritz_: that doesn't say anything about the .WHAT | ||
12:18
kisu_ left
|
|||
moritz_ | masak: well, if it constructs a closure, **.WHAT will return something like Code | 12:19 | |
masak | rakudo: say (*).WHAT | ||
p6eval | rakudo 36089: OUTPUT«Whatever» | ||
masak | moritz_: so *.WHAT is 'Whatever' and **.WHAT is 'Code'? | ||
moritz_ | masak: not sure | 12:21 | |
"Note that ** is a shorthand for [;] * xx *" | |||
then **.WHAT would be Array | 12:22 | ||
masak | ah. yes. | ||
moritz_ | (do you think there's any type I can't argue for? *g*) | ||
jnthn | Hmm. I got quite a few spectest failures. | 12:32 | |
Failed 7/298 test scripts. 74/8444 subtests failed. | |||
jnthn thought particle's patch for NaN/Inf stuff woulda resolved a bunch. | |||
However, I've got more now than ever. :-| | 12:33 | ||
Hmm | 12:35 | ||
is +"Inf", Inf, "+ context forcer works (7)"; | |||
is +"-Inf", -Inf, "+ context forcer works (8)"; | |||
is +"NaN", NaN, "+ context forcer works (9)"; | |||
[particle]: ping | |||
12:37
ruoso_ joined
12:43
ruoso left
13:02
smtms joined
|
|||
ruoso_ just figured out that trying to infer the text structure from a text file is harder than he thought | 13:12 | ||
masak | ruoso_: 'text structure'? | 13:14 | |
ruoso_ | as in "this is a itemized list", "this is a section title" | ||
"this is a description list" | |||
masak | sounds like the parsing I'm doing for November right now. :) | 13:15 | |
ruoso_ | from an unstructured text file, I should mention... | ||
more like an ascii art generated from a pdf file | |||
masak | aye, that sounds difficult. | 13:16 | |
it sounds a bit like Befunge, actually... | |||
13:19
Guest50922 left
13:31
vixey joined
13:39
zamolxes joined
13:44
kisu__ left
|
|||
jnthn | moritz_: Know if we haz any tests for auto-threading on the invocant? | 13:46 | |
13:47
kisu joined
13:58
Exodist joined
|
|||
moritz_ | jnthn: don't think so, but I can write some in ~4 hrs, if that's soon enough for you | 14:08 | |
jnthn | moritz_: I'm scribbling some at the moment, but feel free to expand on them/tweak them etc. | 14:09 | |
moritz_ | rakudo: class A { has $.a; method b { $.a = 1; 0 }}; my @x = gather { take A.new for 1..3 }; any(@x).b; say @x[0].a | 14:13 | |
p6eval | rakudo 36089: OUTPUT«Could not locate a method 'b' to invoke on class 'Junction'.current instr.: 'die' pc 16767 (src/builtins/control.pir:204)» | ||
moritz_ | jnthn: that's a very basic test | ||
note that method b has to return a false value, because otherwise the dispatcher could short-circuit on the first true return value (if in boolean context) | 14:14 | ||
jnthn | moritz_: Also needs to be has $.a is rw | 14:15 | |
But on my local copy, gives 1 | |||
moritz_ | ... or assignment to $!a, right | 14:17 | |
14:19
sri_kraih_ joined
|
|||
pugs_svn | r25094 | jnthn++ | [t/spec] Various, though certainly not exhaustive, tests for auto-threading over junctional invocants. | 14:22 | |
jnthn | moritz_: There are six tests added - they cover various things, like nested junctional invocants, invocants of different types, and auto-threading where there's both junctional invocant and a junctional parameter. | 14:23 | |
moritz_ | I've been thinking about the Junction.values vs. Junction.eigenvalues - it should really be Junction.eigenstates, because it fits much better into the quantum mechanics picture | 14:24 | |
jnthn | moritz_: The current private method is !eigenstates | 14:25 | |
moritz_ | ah, good | 14:27 | |
rakudo_svn | r36090 | jonathan++ | [rakudo] Auto-threading over the invocant for methods not defined in Junction. | 14:30 | |
14:30
ruoso_ left
|
|||
rakudo_svn | r36093 | bernhard++ | [codingstd] trailing_space.t | 14:40 | |
14:44
cai left
14:49
alester joined,
ejs left
14:50
rindolf joined
|
|||
frew | Has anyone in here ever connected to a vpn with openvpn in linux? | 15:05 | |
moritz_ | yes | 15:06 | |
15:08
DemoFreak joined
|
|||
frew | ok, well it apparently finished (I had to do it with sudo) and said Initialization Sequequence Completed | 15:08 | |
but I can't seem to connect to anything at work | |||
any ideas? | |||
moritz_ | no | 15:10 | |
frew | alright; thanks anyway :-) | ||
15:15
Tene joined
15:31
zamolxes left
15:34
donaldh joined
|
|||
moritz_ | finanalyst1: empty directories in t/ should be deleted, yes. (Sorry for late reply) | 15:37 | |
15:42
riffraff joined
|
|||
jnthn runs the spectests, hoping that having added compile-time symbol redeclaration tests for types won't have broken anything | 15:46 | ||
[particle]++ # NaN/Inf fixes make tests far quieter now | 15:50 | ||
[particle] | yeah, i'm glad to have that done (mostly, anyway) | 15:53 | |
jnthn | Yeah, one test still has some fails, but it's a *lot* better than before. | ||
rakudo_svn | r36096 | jonathan++ | [rakudo] Compile time detection of type re-declaration, as well as making class A is B { } and class A does B { } a compile time error when B is not declared. | 16:00 | |
PerlJam | jnthn: is it specced that they have to be declared before use? | 16:01 | |
moritz_ | I'm quite sure it is | 16:02 | |
B parses as a sub-name if it's not declared as a type | |||
which doesn't make sense in a trait | |||
Matt-W | Let's not have error messages like Microsoft's C++ compiler | 16:03 | |
jnthn | PerlJam: Yes. | ||
PerlJam | okay. For some reason I was thinking that items in those position get treated as if B is a class/role that will be declared before the end of compilation. | ||
Matt-W | which just complained about postcircumfix:<[ ]> by calling it 'binary [' | ||
jnthn | PerlJam: Nope, they gotta be declared beforehand. | ||
Anyone know offhand, if sub Foo::a { } is a valid way to declare a sub inside namespace Foo? | 16:06 | ||
moritz_ | rakudo: say NaN ~~ NaN | ||
p6eval | rakudo 36095: OUTPUT«0» | ||
moritz_ | [particle]: that used to print 1 | 16:07 | |
(and that's how it's specced and tested) | |||
[particle] | yes, that's the one remaining failing test... will attack today | 16:08 | |
jnthn | moritz_: I suspect [particle]'s Parrot changes may be right, since comparing one NaN against another is meant to be false (so you can check wiht x == x is false) | 16:09 | |
But probably .ACCEPTS on NaN needs to be special. | |||
Like, check the topic with x == x and if it's false, it's a NaN | |||
moritz_ | jnthn: for == maybe, but ~~ should be true | ||
jnthn | moritz_: Sure. | ||
moritz_ | ok | ||
jnthn | Just trying to pin-point what needs changing. | ||
Or what I think needs changing. | |||
I suspect that ACCEPTS now is just falling to Num's ACCEPTS. | 16:10 | ||
Which does == | |||
moritz_: Any suggestions where tests for redeclaration of types should go? | 16:11 | ||
16:11
pbuetow joined
|
|||
jnthn | Or can I leave that to you? | 16:11 | |
moritz_ | S10-packages.pod | 16:12 | |
47:Since there are no barewords in Perl 6, package names must be predeclared, | |||
uhm, that are just package names | |||
PerlJam | it's the same rule for them all, I just checked | 16:13 | |
since there are no barewords, barewordy things must be predeclared. | |||
16:13
stephenlb joined
|
|||
moritz_ | and documented in S02:2937 | 16:13 | |
so it's S02-literals/soemthing.t | 16:14 | ||
jnthn: you can leave it to me, but it'll take some time | |||
16:14
sahadev joined
|
|||
jnthn | moritz_: I'm not in a hurry to have them. | 16:15 | |
moritz_ | ok | ||
jnthn | So, thanks. ;-) | ||
PerlJam | moritz++ | ||
16:21
mtnviewmark joined
|
|||
pugs_svn | r25095 | lwall++ | [STD] add missing HyperWhatever type | 16:23 | |
16:25
justatheory joined
|
|||
TimToady | moritz_: * and ** are not by themselves Code objects. Most basic operators have Whatever multis that return Code objects, e.g. *-1 is a Code object | 16:30 | |
@tell masak * and ** are not by themselves Code objects. Most basic operators have Whatever multis that return Code objects, e.g. *-1 is a Code object | 16:31 | ||
16:31
donaldh left
|
|||
[particle] | jnthn: custom .ACCEPTS is what i figured on doing. glad to have the sanity check | 16:37 | |
jnthn | [particle]: OK, have fun. :-) | 16:39 | |
jnthn afk for a while | |||
16:40
ejs joined
|
|||
moritz_ | rakudo: sub a($x) { $x * 2}; say eval 'a(g => 7'; say $!; | 16:46 | |
p6eval | rakudo 36096: OUTPUT«Statement not terminated properly at line 1, near "(g => 7"» | ||
moritz_ | rakudo: sub a($x) { $x * 2}; say eval 'a(g => 7)'; say $!; | ||
p6eval | rakudo 36096: OUTPUT«too many named arguments - 'g' not expected» | ||
moritz_ | wow | ||
TimToady | methods ignore unrecognized nameds, but subs don't | 16:48 | |
so looks right | |||
ayrnieu | pugs: sub List::rand { @_[rand +@_] } <a b c>.rand | ||
moritz_ | rakudo: sub a(:$x) { $x * 2}; say a(23) | ||
p6eval | pugs: RESULT«\"a"» | ||
rakudo 36096: OUTPUT«46» | |||
ayrnieu | rakudo: sub List::rand { @_[rand +@_] } <a b c>.rand | ||
p6eval | rakudo 36096: OUTPUT«Could not find non-existent sub ccurrent instr.: '_block14' pc 67 (EVAL_17:43)» | ||
moritz_ | TimToady: methods do? interesting, I should write tests for that | ||
TimToady | shouldn't bind a positional arg to :$x like that | 16:49 | |
moritz_ | I know | ||
TimToady | *nod* | ||
moritz_ | diakopter++ submitted a whole bunch of argument-passing bugs some time ago | ||
and now one of them seems to be fixed | |||
rakudo_svn | r36098 | infinoid++ | [cage] Trailing whitespace fix. | 16:50 | |
TimToady | rakudo: method sub List::rand { @_[rand +@_] } <a b c>.rand | ||
p6eval | rakudo 36096: OUTPUT«Could not find non-existent sub ccurrent instr.: '_block14' pc 67 (EVAL_17:43)» | ||
pugs_svn | r25096 | moritz++ | [t/spec] unfudge passing tests for rakudo (now dies on superfluous named args) | 16:51 | |
TimToady | ayrnieu: btw, rand doesn't take an arg any more | ||
rakudo: method sub List::rand { @_[+@_.rand] } <a b c>.rand | 16:52 | ||
p6eval | rakudo 36096: OUTPUT«Could not find non-existent sub ccurrent instr.: '_block14' pc 67 (EVAL_17:43)» | ||
TimToady | rakudo: method sub List::rand { @_[+@_.rand] }; <a b c>.rand | ||
p6eval | rakudo 36096: OUTPUT«Null PMC access in invoke()current instr.: '_block14' pc 71 (EVAL_17:43)» | ||
moritz_ | "method sub" ? | ||
TimToady | rakudo: method List::rand { @_[+@_.rand] }; <a b c>.rand | 16:53 | |
p6eval | rakudo 36096: RESULT«0.264447002194185» | ||
TimToady | rakudo: method Array::rand { @_[+@_.rand] }; <a b c>.rand | ||
p6eval | rakudo 36096: RESULT«1.21035174605187» | ||
TimToady | well <a b c>.pick is easier :) | 16:54 | |
moritz_ | TimToady: uhm, +@_.rand parses as +(@_.rand) | ||
TimToady | right | ||
that's gonna be a frequent error | |||
rakudo: method Array::rand { @_[(+@_).rand] }; <a b c>.rand | 16:55 | ||
p6eval | rakudo 36096: RESULT«1.45104434572842» | ||
TimToady | still not calling the monkey patched method | ||
moritz_ | TimToady: I find it quite useful, because you can write things like ~$/<foo> | ||
TimToady | not proposing to change it | 16:56 | |
but I wish there was a way to read the programmer's mind... | |||
maybe declarations of names containing :: also require 'use MONKEY_PATCHING' at the top | 16:57 | ||
maybe it wil fall out naturally, if there's a semantic constraint on modifying a "complete" package | 16:58 | ||
mtnviewmark | "TimToady: methods ignore unrecognized nameds, but subs don't" -- that is exactly the choice I made for GlyphicScript (language I built long ago) -- I didn't like that it wasn't uniform, but it was what programmers expected | ||
TimToady | (rather than a syntactic constraint) | ||
mtnviewmark: the motivation for doing it that way in p6 was that you might want to pass args to a constructor that doesn't know which of its BUILD routines wants which arg | 16:59 | ||
and it's future proofing in case the class structure gets refactored | 17:00 | ||
17:00
hanekomu_ left
|
|||
moritz_ | TimToady: isn't that easier to solve by making new and BUILD use slurpy args? | 17:00 | |
erm, named slurpy params I mean | |||
TimToady | you don't know which arg to pass to which BUILD after the class is split into parent/child, for instance | 17:01 | |
the name and/or type is all it has to go on | |||
moritz_ | and because you want that behaviour for one method, you impose it on all? | 17:02 | |
TimToady | you can always write your own .new if you don't like it. :P | 17:03 | |
moritz_ | that won't change the acceptance behaviour of other methods :/ | ||
TimToady | but yes, it's basically a pragmatic decision rather than beautiful | ||
you can write your own dispatcher too :) | 17:04 | ||
moritz_ | that's not so easy, I guess ;-) | ||
TimToady | well, basically specced in S12 alredy | ||
*already | |||
moritz_ | well, I don't have to like every aspect of a programming language, I guess | ||
mtnviewmark | I'm not even sure TimToady does - and he's the only one with a fighting chance! | 17:05 | |
TimToady | navigating the psychological swamps is never entirely pleasant | ||
that's why language designers tend to get along so well. they all hate their own language nearly as much as everyone else's :) | 17:07 | ||
(Lisp excepted, as usual) | |||
mtnviewmark | heh! | ||
odd thought: I like programming language design for the same reason I like music intonation systems: They are both mathematically constructed systems that are constrained enough to never have a perfect fit.... | 17:08 | ||
sort of like building with Lego in some slightly non-Euclidian space, with a slight curvature -- nothing ever manages to line up 100% in the end | 17:09 | ||
TimToady | does if you push hard enough :) | ||
mtnviewmark | and ignore the stress fractures... | ||
17:16
hanekomu joined
|
|||
pugs_svn | r25097 | moritz++ | [t/spec] unfudge numeric-context.t for rakudo | 17:26 | |
17:33
jferrero joined
17:37
nihiliad joined
|
|||
moritz_ | rakudo: eval 'class B is C { }'; say "alive with $!"; | 17:43 | |
p6eval | rakudo 36099: OUTPUT«alive with The type C does not exist. at line 1, near "{ }"» | 17:44 | |
17:46
ruoso joined
|
|||
moritz_ | jnthn: I tried to write some tests for redeclaration of types, but all of them seem to suffer from RT #60368 | 17:54 | |
pugs_svn | r25098 | moritz++ | [t/spec] test for type redeclaration and reliance on non-existing types | 17:55 | |
moritz_ | jnthn: take a look at t/spec/S02-literals/types.t - I'd expect all except the second to pass now, but if I unfudge them I get assertion failures | 17:56 | |
18:21
mberends joined
18:35
Psyche^ joined
|
|||
rakudo_svn | r36102 | particle++ | [rakudo] NaN ~~ NaN is true now | 18:40 | |
18:41
rindolf left
18:46
finanalyst1 is now known as finanalyst
18:51
Psyche^ is now known as Patterner
18:52
masak joined
|
|||
pugs_svn | r25099 | finanalyst++ | [t/builtins/strings/] delete dir | 18:53 | |
moritz_ | [particle]++ # all tests pass, YaY | 18:54 | |
19:01
finanalyst left
19:22
gbacon joined
|
|||
pugs_svn | r25100 | hinrik++ | [util/perl6.vim] add missing whitespace between a couple of keywords | 19:29 | |
rakudo_svn | r36106 | moritz++ | [rakudo] move some items in docs/STATUS from "To do" to "implemented" | 19:30 | |
19:30
explorer__ joined
19:31
jferrero left,
explorer__ left
19:53
riffraff left
|
|||
pugs_svn | r25101 | lwall++ | [STD] improved diagnostics on undefined symbols | 19:59 | |
20:02
mberends left
|
|||
masak | rakudo: class A { has $!foo; method bar { my $!foo = 8; say $!foo } }; A.new.bar | 20:22 | |
p6eval | rakudo 36112: OUTPUT«Use of uninitialized value» | ||
20:24
braceta left
|
|||
moritz_ | does `my $!foo' make any sense inside a method? | 20:24 | |
masak | not as far as I know. | 20:26 | |
I just wanted to see if it was allowed. | |||
std: class A { has $!foo; method bar { my $!foo = 8; say $!foo } } | 20:27 | ||
moritz_ | maybe it hides the "outer" attribute | ||
p6eval | std 25101: OUTPUT«00:04 63m» | ||
masak | moritz_: in that case, it should print '8' | ||
moritz_ | masak: right | ||
and if it doesn't make sense, it should give an error, preferrably at compile time | 20:28 | ||
masak | aye. | ||
the shortest Rakudo program I can think of that gives a Null PMC access: | 20:34 | ||
rakudo: printf "%s" | |||
p6eval | rakudo 36113: OUTPUT«Null PMC access in get_string()current instr.: 'parrot;Str;sprintf' pc 4031 (src/classes/Str.pir:112)» | ||
masak | 11 characters. :) | ||
moritz_ | rakudo: printf"%s" | ||
p6eval | rakudo 36113: OUTPUT«Statement not terminated properly at line 1, near "\"%s\""current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
masak | rakudo: printf<%s> | ||
p6eval | rakudo 36113: OUTPUT«too few arguments passed (0) - 2 params expectedcurrent instr.: 'parrot;Str;sprintf' pc 4016 (src/classes/Str.pir:108)» | ||
moritz_ | should that work without space? In perl 5 it certainly does | ||
masak does not know | 20:35 | ||
moritz_ | rakudo: my $x = -> $y { leave 3*$y }; say $x(2) | 20:39 | |
p6eval | rakudo 36113: OUTPUT«Could not find non-existent sub leavecurrent instr.: '_block21' pc 161 (EVAL_17:72)» | ||
masak | perl6: say ('oh' err "don't we have err yet in Rakudo?") | 20:40 | |
p6eval | elf 25101: OUTPUT«Parse error in: /tmp/znkeoKLoj1panic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: say ('oh' err "don't we have eWHERE:/\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | ||
..STD_r... | |||
..pugs: OUTPUT«***  Unexpected "err" expecting operator or ")" at /tmp/HqEgBdrrb7 line 1, column 11» | |||
..rakudo 36113: OUTPUT«Statement not terminated properly at line 1, near "err \"don't"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
moritz_ | Tene: if you're looking for some control exception tasks, leave() might be nice to heave (like return(), but it escapes blocks, not subs) | ||
Tene | Hmm. Maybe. | 20:41 | |
20:44
Bribles joined
20:52
barney left
20:53
mberends joined
|
|||
mberends | rakudo: printf "aa %4s cc", "bb" | 21:00 | |
21:01
ruoso left
|
|||
p6eval | rakudo 36119: OUTPUT«aa bb cc» | 21:01 | |
21:04
sahadev left
|
|||
mberends | masak: besides speaking there, are you involved with Nordic Perl Workshop? | 21:07 | |
masak | mberends: no. | ||
mberends | I've just submitted a post-deadline talk proposal and wondered what the chances were of being accepted. It would be about Pod 6. | 21:08 | |
masak | mberends: kudos. I hope it gets accepted. I know they've had to extend their initial deadline, so hopefully they'll be lenient. | 21:10 | |
mberends | I'm hopeful, there are still quite a few hours to fill in the schedule. | 21:11 | |
masak | it would be nice to meet. | 21:13 | |
mberends | definitely, people work together better online after meeting in person | ||
re printf: every % in the format string requires an additional argument, remember | 21:14 | ||
moritz_ | mberends: sure, but a null PMC access is no appropriate reaction to a missing argument | 21:15 | |
masak | mberends: I know what the problem is. | ||
but thanks. :) | 21:16 | ||
mberends | ok | ||
masak | from my perspective, a Null PMC access is a free rakudobug submission. | ||
they should basically never happen. | |||
mberends | yes, it's a dead alley for a Perl programmer | 21:17 | |
masak | like this one: | ||
rakudo: class A { class B {}; B.new } | |||
p6eval | rakudo 36119: OUTPUT«Null PMC access in find_method()current instr.: 'parrot;A;_block20' pc 97 (EVAL_19:51)» | ||
masak | :) | ||
masak submits rakudobug | |||
mberends | :) | 21:18 | |
in Debian, your name would be sid | |||
moritz_ | heh | ||
masak | I can call you Betty, and you can call me Al. | 21:22 | |
mberends | I even saw the Graceland tour live in Durban many years ago. | 21:23 | |
masak | I've lately become a big fan of the Siman part of Simon and Garfunkel. | 21:25 | |
his texts are sublime, especially of late. | 21:26 | ||
rakudo: class A { class B {} }; B.new | 21:27 | ||
p6eval | rakudo 36119: OUTPUT«Null PMC access in find_method()current instr.: '_block14' pc 63 (EVAL_19:40)» | ||
masak | rakudo: class A { class B {}; A::B.new } | 21:28 | |
p6eval | rakudo 36119: OUTPUT«Null PMC access in getprop()current instr.: 'parrot;P6object;HOW' pc 60 (runtime/parrot/library/P6object.pir:98)» | ||
moritz_ wonders if masak will make the "3 bugs in 5 minutes" | 21:30 | ||
mberends wouldn't bet against it | 21:31 | ||
masak | no, those are all the same bug. :) | ||
I'm refactoring Druid. | 21:33 | ||
when things move around, they tend to knock Rakudo over. | |||
Druid does some funky, post-modern stuff, especially with micro-closures. | 21:34 | ||
masak wonders if there's a way to alias git and svn so that they DTRT if he writes the wrong one in a directory | 21:39 | ||
21:40
jferrero joined
|
|||
moritz_ | masak: they do already - "svn: '.' is not a working copy" and "fatal: Not a git repository" | 21:40 | |
masak | oh, sorry. I meant DWIM except for the 'git'/'svn' part. | 21:41 | |
moritz_ | do you use the "git-commit" or the "git commit" syntax? | 21:42 | |
if the former, that might be a bit much effort | |||
masak | I'm a 'git ci' guy. | 21:43 | |
unh. time to head home and sleep++. | 21:45 | ||
masak waves | |||
21:45
masak left
|
|||
Bribles | I'm having trouble installing Pugs under Ubuntu 8.04, is this an appropriate place to ask about such things? | 21:59 | |
mberends | Bribles, this is a good place, but the answer is difficult :-( | 22:01 | |
several people have reported similar problems here in the last few months | 22:02 | ||
diakopter | Bribles: which install method are you trying | 22:03 | |
Bribles | I tried getting latest pugs via svn, but perl Makefile.PL fails with syntax error. Then i tried installing Perl6::Pugs from CPAN, that failed also somewhere in Makefile.PL | 22:04 | |
diakopter | Bribles: use the method described in the pugs svn | ||
inside the INSTALL file | 22:05 | ||
22:05
wknight8111 joined
|
|||
diakopter | svn.pugscode.org/pugs/INSTALL | 22:05 | |
Bribles | does that mean using cabal is the recommended route? i was not doing that, but i have installed cabal since then | ||
diakopter | yes, "The current recommended way to build Pugs is via cabal-install. | 22:06 | |
Bribles | No, i didn't install cabal, i get some version mismatches for ghc "Depends: ghc6 (<6.6.1+) but 6.8.2-2ubuntu1 is to be installed" | 22:07 | |
should I just tell my cat that it's not as curious as it thinks and just go home? | 22:08 | ||
diakopter | there have been 14 releases of Pugs 6.2.13 to hackage in the past 7 months; mostly seems like updates to support latests releases of ghc | ||
which ubuntu release do you use | |||
oh, 8.04 | 22:09 | ||
you'll want the latest release of ghc, methinks... so something newer than the one in ubuntu 8.04 | 22:10 | ||
Bribles | newer than 6.8.2? it looks like 8.04's cabal is out of date and needs an old ghc | 22:11 | |
and that sort of makes me get the feeling that this is 1999 and i'm using slackware and doing stuff by hand again | 22:12 | ||
diakopter | see hackage.haskell.org/packages/archiv...Pugs.cabal for the details and dependencies | ||
22:13
avar joined
22:14
avar left
|
|||
moritz_ | Bribles: pugs isn't developed anymore, so if none of the existing methods work, you're out of luck | 22:14 | |
some of us use Rakudo these days instead | |||
diakopter | moritz_: there have been 14 releases of Pugs 6.2.13 to hackage in the past 7 months | ||
moritz_ | diakopter: ah, I only watch the svn repo, maybe that's the problem | 22:15 | |
Bribles | So Rakudo is usable (for certain values of usable) Perl6 interpreter? | ||
22:15
avar joined
|
|||
moritz_ | a compiler, actually | 22:15 | |
diakopter | moritz_: it's maintained elsewhere... | ||
moritz_: or so it seems | |||
moritz_ | diakopter: yes, I see | ||
and since I've seen no announcement whatsoever I'm a bit confused | 22:16 | ||
diakopter | audreyt's most recent commit (afaict) was to update the INSTALL to point people elsewhere for pugs | 22:17 | |
mberends | Bribles: Rakudo is pretty useable. Read logs at irclog.perlgeek.de/perl6 | ||
moritz_ | diakopter: she updated the install procedure, but didn't point anyone anywhere | 22:19 | |
diakopter | cabal... | ||
hackage | |||
moritz_ | put it this way: I see no version control system, no different homepage, ... | 22:20 | |
diakopter | I'm not suggesting there have been feature changes/additions in the recent releases (I have no idea), but there at least has been refactoring and adaptations to new ghc | ||
Bribles | if one wanted to make a blog (for fun, not actual use) could Rakudo (or anything else) handle it? | 22:21 | |
moritz_ | Bribles: yes, with some effort. Actually there's a wiki engine written in Perl 6... | 22:22 | |
Bribles: see november-wiki.org/ | |||
Bribles | I assume the "some effort" is getting around current bugs and missing features. | ||
moritz_ | Bribles: and one of the developers is also working on a blog | 22:23 | |
right | |||
most prominently, there's no stable database interface | |||
so you have to make do with text files only | |||
Bribles | socket() is also missing? :) | ||
moritz_ | yes | ||
there are experimental mysql and postgres bindings, but they need lots of love | 22:24 | ||
Bribles | missing features indeed | ||
mberends | the challenges actually make it a lot of fun to get things working... | 22:25 | |
moritz_ | uhm, rebuilding pugs takes 1.7gb ram, it seems :( | 22:32 | |
diakopter | heh | 22:33 | |
avar | moritz_: you could also shell out to perl -MDBI | 22:36 | |
diakopter | TimToady: or anyone, is there a way to run src/perl6/tryfile through the spec test suite to test for parsing? | 22:37 | |
moritz_ | diakopter: 'make test' in src/perl6/ | ||
diakopter: or 'make testt' if you want to include t/, not just t/spec/ | 22:38 | ||
diakopter | oh.. | ||
thanks | |||
moritz_ | be warned, it takes a while. | ||
diakopter | :D | ||
hm, cygwin doesn't like the ps usage | |||
moritz_ | though it only generates 220M in lex/, it used to be >3GB ;-) | 22:39 | |
diakopter | so, does it parse it all successfully? | ||
moritz_ | apart from random fluctuations: yes | 22:40 | |
diakopter | nice | ||
it would be cool to have an autosmoker that detects changes on .t files and/or src/perl6 and tests them... | |||
at least for changed .t files | |||
moritz_ | diakopter: iirc you can pipe the output of 'svn up' into tryfile | 22:41 | |
so it's actually very close ;-) | 22:42 | ||
diakopter | nice... | 22:44 | |
22:44
iblechbot left
22:45
rakudo_svn left
23:01
ejs left
23:10
mtnviewmark left
23:14
nihiliad left
23:16
Limbic_Region joined
23:19
pbuetow left
23:26
mberends left
23:29
km2 joined
|
|||
Bribles | rakudo built brilliantly | 23:33 | |
moritz_ | that's nice | ||
Bribles | as did the perl6 executable | ||
moritz_ | try 'make spectest' in the languages/perl6/ dir | ||
bed & | 23:34 | ||
Bribles | "bed &" ? | ||
--fudge .. now that a command line argument that is always necessary | 23:35 | ||
[particle] | try: make testable | 23:36 | |
Bribles | spectest is still running, i'll check on it when i come back to work tomorrow | 23:39 | |
[particle] | oh, i thought you were having problems running spectest | ||
testable is a dependency for spectest | |||
Bribles | no, it's runnign fine. junction/autothreading failed verbosely | 23:40 | |
23:48
kid51 joined
23:53
Exodist left
23:55
aindilis joined
23:58
shinobi-cl joined
|
|||
shinobi-cl | hi | 23:58 |