pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~315 days 'til Xmas
Set by mncharity on 8 February 2009.
00:12 Limbic_Region joined 00:24 Exodist left 00:34 r0bby joined
literal hm, + is no longer a sigil? 00:40
00:48 DemoFreak left
avar literal: twigil 00:50
literal yeah, meant that
00:53 FurnaceBoy joined
meppl good night 01:03
01:05 meppl left 01:41 stephenlb left 01:48 justatheory left 01:49 felipe left
frew anyone here? 02:05
02:06 mj41 left
mikehh frew: a few I'm sure 02:09
frew I was curious if any of the developers here have opinions about quad core procs 02:14
I plan on doing lots of web dev, so would it even matter? (database, web server, tests, firefox, editing files, etc)
it might make recompiling parrot and perl6 nicer of course :-) 02:15
02:16 japhb joined
mikehh Quad core works very well with multiple applications running (with plenty of memory) 02:17
frew Are you running linux?
mikehh How well it works with a single app depends on if it is threaded properly
02:18 wknight8111 left
frew yeah, I am not expecting most apps to written that way 02:18
mikehh Kubuntu Intrepid at the moment
frew have you noticed apps that aren't yet compiled for the64 bit?
mikehh I actually have separate root partitions for Ubuntu i386 & AMD64 and Kubuntu i386 & AMD64 02:20
frew uhh 02:21
so you have apt set up that way or something like that?
so that it will install 32 bit stuff in the other partition?
mikehh same /home partition with different logins but all accessible to each other
frew do you compile them yourself or what? 02:22
because if that's the case I was considering using gentoo for a while because of that
02:22 alc joined
mikehh depends - with parrot and Rakudo yes others mostly from the Ubuntu repositories 02:23
frew why do you have both available? Just in case or something? 02:24
mikehh I originally set it up for testing things - used to have Suse too but could not get it to work with my wireless network 02:27
02:31 s1n joined, FurnaceBoy left 02:32 eternaleye joined 02:34 hercynium joined
frew ok, so in general though, you don't really have issues running apps compiled for 64 bit procs? 02:34
mikehh most are ok 02:35
frew cool
mikehh In general it depends on how much memory you have available 02:36
frew how much do you have? I am planning on having 4 gigs
mikehh 32 bit apps are usually slightly faster for smaller mem requirements but have problems with more than 4 gigs 02:37
In fact Windozw 32 bit can't address mor than 3 02:38
frew right
but in general I think that I won't notice that speed since I am upgrading from 1.2 Ghz to at least 2.33 Ghz 02:39
mikehh In general with up to 4 gigs youare probably better off with 32 bit apps
frew so do you think I should get a dual core with a higher clock speed for my usage?
DB + dev webserver + regular dev apps? 02:40
mikehh It is only with more than 4 gigs that 63bit really starts to shine
64
frew well, I was planning on getting 4 gigs of ram 02:41
I just don't know if it's necesary
the only thing that will take up a ton of ram is KDE and firefox
ok
I take that back
when I help a friend do web dev it *is* with rails
which is kindav a hog 02:42
mikehh It probably won't make much difference although 64bit apps are usually a bit larger 02:43
pugs_svn r25301 | chrisdolan++ | Add tests for 'make' builtin using S05 examples
frew understandably 02:44
what is your clock speed?
mikehh this system is 3Ghz 02:45
frew wow
yeah, that was the max I was looking at
it adds ~$200 to the price of the computer as a whole 02:46
but I was thinking that it could be worth it
mikehh It doesn'make that much difference unless you are running a lot of processor intensive apps lije games and such and doing a serious amount of complies 02:49
frew ok 02:50
then I probably won't get the higher clock rate
If ubuntu works I won't do much compiling
and I won't do any games
mikehh I would suggest spending on memory and storage 02:52
frew well, I am planning on a 1T drive and 4G ram
mikehh that's good for most things - make sure of backup though 02:53
frew yeah
my roommate takes care of the backup at work and we were thinking we'd do some kind of weekly or monthly tape backup deal
mikehh you can get a USB hard drive for reasonable prices (or preferably two) 02:54
s1n frew: i've got a 64bit gentoo desktop with 4 gigs of memory and i've never noticed myself using more than maybe 1 gig at any given moment 02:55
frew s1n: your firefox doesn't go crazy after being open for a day or so?
s1n it's slightly helpful when compiling updates, but processor speed helps more
frew well, I think the tapes are way cheaper
s1n frew: i don't use firefox for that reason
i use epiphany, which is still relatively lightweight
frew s1n: I believe it, but as a web developer I kinda need it 02:56
s1n i use xfce4 too
no you don't just use a VM :)
frew on my desktop I use fvwm
??
s1n i do everything that annoys me in a VM
frew oooooh 02:57
gotcha
s1n this way i can shut it down and return to reality
break it? host the VM and start over :)
frew right
s1n i consider using firefox one of those annoying tasks
frew hahaha
02:58 eternaleye left, hercynium left
s1n frew: 03:00
bleh, stupid focus
frew s1n: I'm gonna try out using epiphany for a while 03:02
s1n frew: i recommend it 03:03
i'm eager to try out the new webkit backend
frew It could use some UI work though... 03:04
s1n at least it's consistant with gtk desktops
frew well yeah, but I'm not on gnome or xfce 03:05
s1n well, sure on fvwm everything looks bad :)
frew it's true!
but I don't care!
s1n frew: even if you don't have the resources, at least switch to fluxbox 03:06
frew phone&
s1n: nope 03:11
I switched from FB
I went: afterstep->windommaker->BB->FB->OB->FVWM 03:12
can you set it up so that I can run an arbitrary command when I right click the desktop in fluxbox?
and make it so that maximization doesn't maximize the window entirely so that I can easily click said desktop? 03:13
03:13 eternaleye joined
frew because if so I'll switch, but otherwise I am happy with what I've got in FVWM 03:13
03:18 Limbic_Region left, felipe joined
frew alright, enough of that. Anyone in here have some tasks that I might be able to do in the tests? 03:20
I did a bunch of stuff last week but it was all pretty simple
rakudo: 5.rand 03:23
p6eval rakudo b2e7ac: OUTPUT«sh: ./parrot: No such file or directory␤»
frew rakudo: my $f = 5; $f.rand
p6eval rakudo b2e7ac: OUTPUT«sh: ./parrot: No such file or directory␤»
frew oh that's not good
pugs: 5.rand
p6eval pugs: RESULT«2.9161854240615352»
frew pugs: 5.rand
p6eval pugs: RESULT«4.604899697495834»
frew pugs: 5.rand 03:24
p6eval pugs: RESULT«0.6840856287591359»
frew pugs: 5.rand
p6eval pugs: RESULT«2.1694070460902077»
frew pugs: 5.rand.floor
p6eval pugs: RESULT«3»
frew pugs: 5.rand.floor
p6eval pugs: RESULT«0»
frew gnarly
03:26 icwiener left
frew pugs: for 0..3 { say $_.rand } 03:27
p6eval pugs: OUTPUT«0.3800120551325409␤0.29369469168449164␤1.6751984159171578␤0.8486970053866266␤»
s1n frew: mouse clicks are for chumps :) i have hotkeys for the things i want 03:31
frew s1n: actually, I do to really
but when I am using my mouse I'd like to only use my mouse 03:32
and when I use my keyboard I want to only do that
that's all
I kinda want to do some kind of tiling, but I don't wanna do something that makes me tile, just something that will let me tile 03:33
so I can do something like, "Put X window in Y location in the grid I have predefined"
so I am doing an empirical test for $num.rand 03:36
I don't see any other way to do it with a test
if anyone has a better idea, let me know
anyone know why I shouldn't use chained operators in a test? 03:44
pugs_svn r25302 | frew++ | [t] Added .rand 03:47
04:00 SamB left
s1n frew: what do you mean by "empirical test? 04:20
frew I mean that I just run it a bunch of times and test it every time 04:21
s1n for what? bounds?
frew yep
10 times for each bound
s1n well, if rand works the way it's supposed to, you could run that indefinitely
frew yeah
s1n does 10 prove anything statistically sound? i'm guessing no
frew but no one wants to do make spectest and get an infinite loop...
well
it's 10 for each bound and 10 different bounds
should I do 100 per bound? 04:22
s1n heh okay, does 20 show anything statistically?
does 100?
frew I don't know
I hate stats
s1n can you prove that >X tests will prove anything sound?
frew well
it's statistics
nothing is proven right?
it's all just probably probably valid 04:23
s1n these aren't discrete random variables (outside the sense that they are compute "numbers"), so nothing is ever really proven
all 20 tests prove is 20 tests didn't find a problem, not that it works
frew yeah, but it's a random number generator 04:24
how can you prove anything with a test at all?
the only real way to is to look at the algorithm
s1n not true
by doing a loop with a rand variable, you're taking a random sample
frew which is what I am doing 04:25
s1n the assumption is that random sample is independent
frew right...
s1n if you know your stats well enough, you'd have to take a significant number of samples enough before the test set can be assumed to be representative
that means i might let you get away with doing.... (insert arbitrarily large number here) 1 million samples 04:26
frew hahaha
s1n otherwise, 20 tests only prove 20 tests worked
not that rand works
frew I am talking to my stats friend who is planning on being one of those actuary guys 04:27
s1n i've studied stats for 3 years at the graduate level, it's called machine learning
frew haha 04:28
then why did *I* write the $num.rand test?
04:28 [particle]1 left
s1n because i'm busy enough as it is :) 04:28
frew haha 04:29
well, what if I just had it do 1 minute of sampling per range? 04:30
that way if the computer is fast enough it does more samples
but if someone has a bad computer it won't make the thing too slow
do we have a way to check the time in rakudo yet?
04:35 nacho_ left 04:36 [particle] joined
s1n frew: my recommendation is to not try to statistically sample things and just see if you can invent a scenario that would give a bad rand number 04:37
frew s1n: I am not that good at perl6/rakudo
s1n frew: regardless, there should be a decent way to check the bounds in O(1) 04:38
frew this is going to give me weird dreams tonight 04:39
s1n my best dreams are in either numbers or code :) 04:40
frew my best dream was when I stayed up really late in college working on making a red black tree for data structures
and the smartest guy in class (in my dream) told me that everything would be ok and that I should just curl up with a data structure
s1n: What if I did a monte carlo-ish test 04:41
generate a bunch of random numbers, throw away the ones that aren't in this circle, figure out the area of the circle from the points, see if its within a certain range 04:42
is that ok?
er sufficient?
s1n sounds like that already is monte carlo
i mean, what's the point of the circle? 04:43
are you trying to estimate something, such as the seed?
frew I guess it doesn't help anything
no
we already have seed tests
s1n i would say, stick to an O(1) test
its late though
bedtime&
frew ok
thanks anyway :-) 04:44
night
frew just decides to merge perl6 and excel and consider it good 04:47
05:32 simcop2387 left 06:01 simcop2387 joined 06:17 magnarjg left 06:20 magnarjg joined 06:22 frew left 06:47 ashizawa joined 06:58 magnarjg left
moritz_ rakudo: class A { }; say undef ~~ A; 07:02
p6eval rakudo b2e7ac: OUTPUT«sh: ./parrot: No such file or directory␤»
moritz_ rakudo: class A { }; say undef ~~ A; 07:04
p6eval rakudo b2e7ac: OUTPUT«sh: ./parrot: No such file or directory␤»
moritz_ rakudo: class A { }; say undef ~~ A; 07:07
p6eval rakudo b2e7ac: OUTPUT«sh: ./parrot: No such file or directory␤»
07:07 DemoFreak joined 07:10 magnarjg joined 07:13 magnarjg left
moritz_ working copy locked, some svn process hung up 07:18
in cron jobs I should pass the --non-interactive option to svn... 07:21
07:42 iblechbot joined 07:44 magnarjg1 joined 07:45 magnarjg1 left, magnarjg joined
moritz_ ar: compilers/imcc/imcparser.o: No such file or directory 07:47
make: *** [blib/lib/libparrot.a] Error 1
07:59 alc left 08:24 mj41 joined 08:31 PZt left 08:32 iblechbot_ joined, iblechbot left 08:36 mberends joined 08:55 masak joined
mberends hi masak, I was offline for ever (~48 hours), must backlog before I say anything silly 08:57
masak mberends: aye
09:02 Ehtyar joined 09:15 jferrero left 09:17 iblechbot_ left 09:55 jeremiah left 09:56 jeremiah joined
masak 48 hours, that's like three internet months. 09:56
bacek perl6: my @a=<foo bar>; say @a[all(0,1)] 09:57
masak p6eval? hello?
mberends aye, and the nicest event: moritz_++ # www.perl6.ru/articles/5to6/ 09:58
moritz_ my traceroute to p6eval shows too many stars :(
masak translation to Russian of anything Perl6-related is good news. translation of stuff moritz_++ wrote especially so. 09:59
bacek perl6: say "O HI"
jnthn sees Rakudo translit'd into Russian for the first time
mberends transliterated? 10:00
jnthn aye
jnthn isn't going to try spelling long words before his morning coffee 10:01
masak I only see it in its original form.
10:01 pugs_svn left, pugs_svn joined
jnthn www.perl6.ru/, second paragraph in first story 10:01
bacek yak.
10:01 p6eval left 10:02 p6eval joined
bacek How you pronounce "Michaud"? 10:02
p6eval ..elf 25302, pugs: OUTPUT«O HI␤»
masak ah. Ракудо. :)
mberends for non Russian readers like me: uk.babelfish.yahoo.com/translate_ur...=Translate 10:03
masak so... faux Japanese transliterated to Cyrillic. :)
that's very 2009.
moritz_ mberends: for non-russion readers there's an English versioin on my blog :-)
mberends yes, this round trip trick sometimes drops a few stitches ;) 10:04
masak perl6.ru might actually be the nicest Perl 6 resource out there, in terms of design and up-to-date information.
jnthn Aye. Now I just need to learn more Russian. ;-) 10:05
masak it doesn't carry all the technical stuff about Parrot and Rakudo development.
but it does have a lot of good stuff.
10:06 mberends left
bacek jnthn: (side question) What about lazylists in rakudo? 10:06
10:08 ejs joined
masak if I want to get a hierarchical structure representing a Perl 6 source file, I suppose I should start building from Syntax::Highlight::Perl6? 10:08
bacek personally dislike github.com/rakudo/rakudo/commit/45c...24385ce3a1
moritz_ bacek: what's wrong with it? 10:09
bacek moritz_: it's not very optimal. 10:10
postfix ops supposed to be in-place. 10:11
masak but it does correct #60380.
bacek And I like my version more :) github.com/bacek/rakudo/commit/0b68...89e9029a5f
Which corrects #60380 as well
masak aye. 10:12
I saw that one.
jnthn bacek: Your version doesn't solve the fact we need to also do type-checking on the result, e.g. there may be a refinement type.
bacek jnthn: when postfix:++ can change type?
jnthn my EvenInt $x = 2; $x++; 10:13
bacek oh. And what is expected result in this case?
jnthn Exception.
bacek good point... 10:14
10:14 kane_ left
bacek But in 99% cases cloning is very-very suboptimal. 10:15
Especially when EvenInt.succ declared.
About 4 "clone" calls
jnthn bacek: Let's get it correct, get good test coverage, *then* optimize. 10:16
bacek jnthn: premature pessimisation :)
bacek got very strong C++ background... 10:18
masak I'm increasingly suffering from slow Rakudo and Parrot. but I agree with jnthn.
even though the danger might be that we paint ourselves into a corner, I believe that danger is small, from what I've seen of pmichaud++'s and jnthn++'s work so far. 10:19
moritz_ didn't the parrot folks decided to do something about that? killing PCCINVOKE or so?
jnthn moritz_: I think allison is looking at that, since there's a performance issue there. 10:21
bacek perl6: say +* 10:23
std: say +* 10:24
p6eval elf 25302: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 120) line 3.␤ at ./elf_h line 4346␤␤»
..rakudo b2e7ac: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
..pugs: OUTPUT«Inf␤»
std 25302: OUTPUT«ok 00:02 33m␤»
10:24 iblechbot joined 10:37 kane_ joined 10:50 hanekomu joined 11:09 ejs left 11:15 ejs joined
masak rakudo: 'still not there?' 11:17
p6eval rakudo b2e7ac: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
masak fixes
jeremiah Hej masak! 11:24
Still have the "Perl 6 bag O Candy" work in my head. 11:25
Right now I have a blocker - writing an article for the Perl Review
But I really want to do it, so maybe I can pick your brain later on what we should include?
Matt-W oooh an article 11:27
(good morning)
masak jeremiah: sounds very good.
I'll be here all afternoon.
good luck with the article. 11:28
jnthn bag O candy? 11:30
Sounds...tasty. 11:31
Matt-W chocolate! chocolate!!!!!! 11:34
masak Perl 6 is sweet. Try Perl 6 today! 11:35
literal moritz_: I noticed this in ilbot's source: " mncharity aka putter has an IRC client that prepends some lines with a BOM" 11:37
which client does that?
11:38 meppl joined
jeremiah jnthn: The goal is to have a live debian CD with a perl 6 environment installed so you can just boot from the disk and start developing. 11:41
jnthn Sweet! 11:43
masak exactly.
jnthn ;-) 11:44
masak jnthn: p6eval b0rken because Parrot build b0rken. :( 11:46
Matt-W nooooo
call the vet 11:47
masak already did, at #parrot.
haven't gotten any response yet.
Matt-W warily watches the results of a giant branch merge land in one of the work SVN repositories 11:51
moritz_ literal: no idea, ask mncharity :/ 12:03
masak moritz_: I'm struggling with getting Parrot to build on timtowtdi.org right now. 12:04
(see #parrot)
I guess downgrading and rebuilding is not a viable option?
[particle] rebuilds parrot 12:05
moritz_ masak: I thought about keeping a working build around, and trigger the regular build in a different location
masak moritz_: that's a great idea. 12:06
moritz_ masak: problem is, we can't just move it, because parrot hard-codes some pathes I think
masak aye.
moritz_ maybe we need parrot1 and parrot2 dirs, and a file that tells us which one to us 12:07
s/us/use
masak sounds sufficient. 12:08
moritz_ maybe I'll find some tuits tonight
[particle] build broken on win32, also 12:15
12:22 SamB joined 12:37 pmurias joined
s1n pmichaud: don't forget, tonight at 7 12:41
12:47 mberends joined, ashizawa left 12:52 sahadev left
mikehh build broken on win32 also - as in what else 13:11
[particle] as well as on linux 13:12
masak today is obviously Sad Parrot Day.
mikehh I built on linux ok am spectesting now
[particle] seems the build breaks on windows only sometimes, working again now at same revision
i'm building from fresh checkout on feather now 13:13
masak Polly Does Not Want A Cookie.
jnthn Try a cracker.
masak nope, didn't work. 13:15
mberends parrot likes hackers more than crackers
Matt-W try threatening to wring polly's neck
13:19 c9s_mv joined
mikehh rakudo spectest passes on parrot r36628 - smolder - smolder.plusthree.com/app/public_pr...ails/17955 13:21
13:24 kane__ joined, kane_ left 13:31 skids left 13:39 drbean_ joined 13:51 drbean left 13:54 aindilis` joined
literal moritz_: I'm using your ilbot and I get an error when trying to search, indicating that the db table doesn't support fulltext search. I've googled it a bit and tried to create the index but mysql keeps telling me "RROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes" 13:55
ah, had to do "ALTER TABLE irclog ENGINE = MYISAM;" first 13:57
masak history question: which perl version was the first one where 'my @a' meant the same as 'my @a = ()' ? 14:00
Matt-W I thought it meant the same as "my @a = undef" 14:01
masak in current Perl 5, you get an empty list, no? 14:03
s/empty list/empty array/
14:04 icwiener joined
mberends perl5 -e'my @a; print scalar @a;' # prints 0 14:04
masak indeed. 14:05
[particle] >perl -E "say length (my @a)"
1
masak hunh?
[particle] oops
Matt-W but if @a was undef, it'd come out as 0 when you tried to print it too 14:06
[particle] >perl -E "say length (undef)"
0
Matt-W interesting 14:08
it seems that if you assign () to @a, it comes up as undefined
I didn't know that
14:08 aindilis left
Matt-W I thought () and undef were distinct 14:08
[particle] it's about context
literal "@a = undef" makes it consist of one element
[particle] () is undef in scalar context 14:09
Matt-W but if you're assigning to @a, surely it's a defined list which has nothing in it
literal "undef @a" is more like @a = ()
Matt-W maybe my understanding of lists in perl 5 has always been wrong
[particle] right @a = () should be list context
literal @a is true in all contexts after you do "@a = undef" since it has an element 14:10
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
masak lambdabot: <3
but has it always been like that?
was there a time when you had to explicitly initialize @a?
14:10 pmurias left
literal is too young to know 14:10
Matt-W I've only used perl since 5.005
and you didn't have to then 14:11
[particle] meetoo
Matt-W it would be a very unperlish requirement
at least as the modern principles of perl stand
they may have been different :)
14:32 ejs left 14:37 rindolf joined 14:38 skids joined
literal moritz_: another thing, non-ascii chars get mangled when the logs are viewed as plain text (e.g. see irclog.perlgeek.de/text.pl?channel=...009-02-12) 14:57
changing the browser's character encoding setting doesn't elp
help*
15:10 hercynium joined
avar literal: try to change the use line for IrcLog::WWW to use IrcLog::WWW qw(my_encode my_decode); and add my_decode() around $row->{line} on line 53 15:15
in text.pl 15:17
literal ah 15:19
so it's not actually plain text, but html with a <pre>
avar that doesn't matter as far as the encoding problems are concerned 15:20
15:21 Exodist joined
literal that does indeed fix it 15:22
pugs_svn r25303 | avar++ | The raw text log had broken UTF-8: Needed to call my_decode() like the HTML one 15:23
avar literal: *5*
mberends moritz_, did you know that the text version of irclog.perlgeek is *bigger* than the html? Every text line is right padded with spaces to 305 characters!
literal *5²* 15:24
masak those spaces have been known to annoy me when I'm cut-n-pasting. 15:26
avar mberends: it looks like it's actually padded to whatever the longest line is
or maybe not? 15:27
literal even longer than the longest line, it seems
no, wait, it's the same as the longest one
mberends It's terribly inefficient, whatever the reason. We're not on punched cards any more.
avar It's something Text::Table is doing automatically 15:28
literal silly
mberends Text::Table--
avar If anyone actually knew how to use format() that could be used instead:) 15:31
15:31 lisppaste3 left
avar cpansearch.perl.org/src/ANNO/Text-T...t/Table.pm 15:34
can't find how to disable it
mberends avar: could it be patched in ilbot? 15:35
avar oh sure, you could just do $text =~ s/ +$/gm; 15:37
it's just nicer to use the interface for text::table if it exists
15:38 szabgab left 15:40 lisppaste3 joined
avar that's some of the ugliest code I've ever had the misfortune to debug 15:43
15:47 ruoso joined
ruoso Hello! 15:47
avar It's like reading damian's code 15:48
mberends which code are you debugging now? 15:49
15:52 szabgab joined
avar Text::Table, finding out where it adds trailing spaces 15:52
mberends there is no Text::Table in Debian system afaict 15:53
adding spaces makes sense for vertical column alignment, except for the last column 15:55
avar yes 15:58
mberends could you nopaste Text/Table.pm ? 15:59
literal mberends: search.cpan.org/src/ANNO/Text-Table...t/Table.pm
mberends ah, thanks. wearing Debian blinkers here...
16:02 eternaleye left
pugs_svn r25304 | ruoso++ | [mildew] removing unecessary list copy... 16:02
r25305 | avar++ | Text::Table will add trailing whitespace to pad messages to the longest message. I (avar) wasn't able to find out how to make it stop doing that so I'm hacking around it with regex! 16:03
avar meanwhile, a HACK
mberends yes! 16:04
avar It's probably Text::Align whith Text::Table calls
but fuckit, this works for me:)
mberends I get your drift about the code. The POD looked all right though. 16:06
avar until you read the contents:)
the pugs svn has never been one to shy away from a dirty hack:) 16:08
[particle] $fuck_it->just_hack is perl culture, for better or worse 16:09
mberends Text::Table: "$tb->width returns the width (in characters) of the table. All table lines have this length." It's specced, so if you *did* improve it, you'd break someone's app. 16:11
s/improve/trim/ # remove subjective bias 16:13
avar This is why modules are bad, you always end up dealing with someone's crazy CPAN shit
Rewrite everything, in every program you write
mberends I wrote my own VGA driver once. It's a bit time consuming. 16:14
16:16 stephenlb joined 16:21 icwiener_ joined
moritz_ mberends: uhm, that seems to be an artifact of Text::Table... 16:23
mberends yes, it's a standard behaviour of that module, so if you don't like it, you would have to alter it externally, the way avar++ is doing now. 16:27
16:36 icwiener left
moritz_ or just s/[ \t]*$//gm; 16:38
literal which is what he did, I believe
masak misses h in Perl 5 16:40
moritz_ it's in 5.10.0 I believe 16:41
buubot: eval: "\t" ~~ /\v/
ENOBUUBOT 16:42
masak moritz_: \v ? did you really mean that?
16:44 ruoso left
moritz_ masak: both 16:45
masak: both \v and \h, I meant
masak yes, naturally.
but \t won't match \v, right?
moritz_ of course not
masak *phew* 16:46
though the thought of a vertical tab character is strangely intriguing.
16:47 aindilis` left, aindilis` joined
avar mberends: I did s/ +$//gm 16:49
mberends avar++ # it looks nicer in the browser too 16:52
avar has the pugs one been updated? 16:53
ah, yes
moritz_ the plain text view was a failed attempt to bring the logs to fglock++'s mobile
16:54 c9s_mv left, pmurias joined
moritz_ and that device wanted to download stuff sent as text/plain, which is why I currently still serve text/html and pre tags 16:54
avar doing a rss/atom feed for it:)
moritz_ avar: now you're exaggerating
16:56 jan_ left
moritz_ rakudo: say "alive" 16:59
p6eval rakudo b2e7ac: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤» 17:00
pugs_svn r25306 | lwall++ | [S10] updates to package policies 17:04
17:06 justatheory joined 17:15 Khisanth left 17:18 hanekomu left 17:24 hanekomu joined 17:30 Khisanth joined
pugs_svn r25307 | pmurias++ | [mildew] partialy updated to work with the newest STD.pm 17:47
17:47 ruoso joined
ruoso TimToady, I'm now unsure about one thing in package loading 17:48
one the file starts with a package declaration, it does not belong to GLOBAL or main anymore 17:49
but considerint it is still "our"
it seems to imply it will belong to the package that required it
but does that mean that it should be private to that package? I mean... if someone changes a symbol in that package, does it affect other places where that module was loaded? 17:50
pugs_svn r25308 | lwall++ | some cleanup suggested by Jonathan "Dataweaver" Lang++
r25308 | lwall++ | detangling of metaoperators from metatokens
r25308 | lwall++ | "metatokens" are composed of metaoperators plus ordinary operators
r25308 | lwall++ | we shouldn't use "metaoperator" to refer to the generated operator
TimToady no, everything starts in GLOBAL 17:53
ruoso hmm... I'll re-read your last commit
TimToady will be glad to clarify if something is misleading
ruoso TimToady, "but may switch to some other package scope depending on the first package-ish declaration." 17:54
pmurias ruoso: hi
ruoso this seems to imply that "first package-ish declaration" is handled specially 17:55
17:55 masak left
ruoso hi pmurias 17:55
TimToady every package-ish declaration switch packages, so it's not special in that way
*switches
ruoso maybe that entire paragraph could be written as "Perl 6 code begins being parsed in GLOBAL." 17:56
TimToady the only thing special about the first one is that we allow the semicolon form, and if you use the semicolon form on "package" itself you're in Perl 5
ruoso TimToady, maybe just write it that way then ;) it's clearer than that text
pmurias ruoso: we need the .variants in Multi to be an Array of Array because there might be a few variants of equal priority 17:57
TimToady well, but p5's main in special too
ruoso pmurias, "equal priority"
?
TimToady but that's because it's p5
ruoso and it's up to the p5 parser,
not the P6 parser
in SMOP, for instance, I would simply hand the file to the p5 parser directly 17:58
TimToady well, it remains to be seen whether P6 will include a P5 parser :/
already has the p5 regex parser
ruoso TimToady, I think that should be implementation specific
TimToady and I don't know how to handle "use v5;" otherwise
ruoso because I doubt SMOP would reimplement it
pmurias multi foo($a,Foo $b) {say 1};multi foo(Bar $a,$b) {say 2} 17:59
ruoso pmurias, the compiler should be able to sort that out in a plain array
TimToady you doubt SMOP would implement what?
pmurias ruoso: if you pass foo Foo,Bar you get an ambiguity error 18:00
jnthn pmurias: Arrya of arrays would do it, or in Rakuod we have one array with nulls separating the bits
ruoso TimToady, a p5 parser... most probably I'll have p5 alongside with SMOP and just delegate that code to it...
TimToady yes, well, we'll have to have a version of the p5 parser that can interleave with the p6 parser somehow, if we don't want two-pass parsing, which is evil 18:01
ruoso pmurias, you can get that as compile-time error
TimToady, I guess it shouldn't be hard to make an optional "if you think code has ended, call this"
TimToady, I'm already considering a modified p5
pmurias ruoso: that foo declaration was legal
ruoso pmurias, it's ambiguous at compile-time already 18:02
pmurias TimToady: is the foo declaration legal?
TimToady the linkage will be tricky, if you want the p5 parser to see all the context it wants to see 18:03
what foo declaration?
ruoso multi foo($a,Foo $b) {say 1};multi foo(Bar $a,$b) {say 2}
TimToady std: multi foo($a,Foo $b) {say 1};multi foo(Bar $a,$b) {say 2} 18:04
p6eval std 25308: OUTPUT«############# PARSE FAILED #############␤Malformed "multi" definition␤Malformed routine definition␤Unable to parse multisig; couldn't find final ')' at /tmp/XbR5VuMhCY line 1:␤------> multi foo($a,Foo $b) {say 1};multi foo(Bar $a,$b) {sa␤ expecting any of:␤
..param...
TimToady hmm 18:05
I'd've called it legal
ruoso I'm aware that it is syntatically legal, the question is wether that should raise a compile-time error about ambiguity...
TimToady if it is known that something must throw an exception at run time, the compiler is allowed to complain 18:06
ruoso "you should provide a :(Bar $a, Foo $b) variant to disambiguate"
TimToady that is official policy
pmurias TimToady: it *might* throw an exception
TimToady in which case you could warn, but it should compile 18:07
jnthn It's only ambiguous for a given set of args.
TimToady maybe that combination is known never to occur for other reasons
18:08 aindilis` left
ruoso so the compiler could warn "choosing ambiguous variant :(Bar $a, $b) to have a higher priority in multi foo" 18:08
and we get a flat list of variants 18:09
but then we won't get an runtime exception
pmurias calling with a Bar,Foo should result in a ambiguous dispatch exception
jnthn Ugh, no.
pmurias: Right, agree.
TimToady I think warping the run-time semantics like that would be evil 18:10
ruoso I'm trying to get the list of variants to be completely resolved at compile-time
pmurias ruoso: we could do it either with an Array of Array or way jnthn suggest only with undef/false instead of a nasty NULL
TimToady however, if there's some indication that missing generics should be autogenerated, that'd be different
ruoso the compiler could then "generating :(Bar $a, Foo $b) variant as Ambiguous Dispatch Exception" 18:11
s/could/could generate a warn/
TimToady ruoso: it is complete resolved--you know at compile time that some of them fail
ruoso so the compiler can generate the list of failing candidates
TimToady to get Lisp-like semantics, we could have "use multi :bias<left>" or some such 18:12
pugs_svn r25309 | pmurias++ | [mildew] unbroke mildew a bit more 18:13
jnthn pmurias: NULL is just a C representation of undef ;-)
TimToady but I'd rather the standard language keep multis symmetrical
NULL is not C. C really only knows about 0
:)
pmurias ruoso: we might have to generate quite a lot of variants in the worst case
jnthn No, no, that was BCPL :-P
jnthn votes to leave multi-dispatch as it is specified, at least for Perl 6.0.0. 18:14
It's quite enough.
And we know it's implementable. :-)
ruoso ok ok ok...
moritz_ jnthn: we know it's implementable without lazy lists. With lazyness we can't be sure yet :/ 18:15
jnthn I don't see how lazy lists come into it? 18:16
ruoso I was actually just trying to make the multi dispatch as static as possible
moritz_ jnthn: you might have to dispatch not-yet-evaluated argument lists as lazy as possible
ruoso since almost everything is a multi in Perl 6
pmurias ruoso: most of the multiness should be optimised out 18:17
ruoso pmurias, so do you plan to have an AoA, and when find a viable candidate, check if this sub-section has another valid candidate, is it? 18:18
and in that case, it's an ambiguous dispatch
I think that might be static enough 18:19
literal www.lostechies.com/cfs-filesystemfi...BB5162.jpg
pmurias ruoso: yes 18:20
ruoso: and i'm thinking of using a c-style-for like loop instead of a destructive list iteration with .shift 18:22
ruoso does a c-style-for have the same semantics as the regular for?
pmurias for (int i=0;i<10;i++) {...} 18:23
pugs_svn r25310 | lwall++ | failure of parallelism in headings
pmurias loop (my $i=0;$i<@foo.elems;$i++) {...} in perl6
literal why not for (0..@foo.end) { } ? 18:24
pmurias infix:<..> is a multi 18:25
when implementing Multi we need to use lowlevel stuff
ruoso and for (...) has lazy semantics
literal I see
ruoso pmurias, oh... I wasn't aware of that... that should be absolutely fine 18:26
pugs_svn r25311 | lwall++ | [t] smartlink unbreakage
pmurias it would be loop (my $i=0;$i.infix:<< < >>(10);$i = $i.infix:<+>(1)) {...} actually 18:28
ruoso ugly, but not incorrect 18:29
18:29 aindilis joined
TimToady loop (my $i = 0; CORE::infix:«<»($i,10); $i = CORE::infix:<+>($i)) maybe 18:31
pmurias TimToady: int's don't have an .infix:<+> method? 18:32
moritz_ infix ops are subs 18:33
TimToady the method syntax would simply be translated to the sub call
you might want an explicit sig to select a particular multivar
18:34 Psyche^ joined
pmurias TimToady: how should selecting a particular multivar look like? 18:34
TimToady loop (my $i = 0; &CORE::infix:«<»:(Int,Int).($i,10); $i = &CORE::infix:<+>:(Int).($i)) maybe 18:35
18:35 legis joined
TimToady and, of course, for those you might just make handy aliases 18:36
18:36 Patterner left, Psyche^ is now known as Patterner
TimToady loop (my $i = 0; intlt($i,10); $i = intinc($i)) or whatever 18:36
hmm, missing an arg in the previous infix:<+>... 18:37
18:37 mikehh left
ruoso TimToady, I was assuming infix:«<»(int, int) was defined as a multi method with is export 18:39
not as a plain sub
18:40 jan_ joined 18:41 schmalbe joined
TimToady well, an only sub is fundamentally faster to call than a method 18:42
ruoso not on SMOP ;)
is"&infix:«<»:(Int,Int)" the actual name of the variable in the 18:44
s/in the/
18:45 Casan joined
ruoso meaning... does declaring a multi variant always additionally declares this longer name "as string"? 18:45
ruoso coffee& 18:46
std: multi foo(Int $i) {...}; foo:(Int).(1); 18:47
p6eval std 25311: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/4RLUlqlXoq line 1:␤------> multi foo(Int $i) {...}; foo:(Int).(1);␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤
..terminator␤ w...
ruoso hmm... I guess this form requires the &
std: multi foo(Int $i) {...}; &foo:(Int).(1);
TimToady don't know why that would work any better :) 18:48
p6eval std 25311: OUTPUT«ok 00:03 45m␤»
TimToady I guess I don't know everything :)
ruoso std: multi foo(Int $i) {...}; foo:(Int)(1); 18:49
p6eval std 25311: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/xOCfcXJ8ug line 1:␤------> multi foo(Int $i) {...}; foo:(Int)(1);␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤
..terminator␤ wh...
diakopter not yet, anyway
TimToady std: multi foo(Int $i) {...}; &foo:(Int)(1);
p6eval std 25311: OUTPUT«ok 00:03 45m␤»
TimToady yeah, I think the :() sig modifier is only defined on &
ruoso is that expected?
TimToady it's modifying a routine name as a noun 18:50
ruoso I mean... is it expected for it to have it defined only in &
TimToady when the parser sees bare foo, it's already thinking of it more as a verb
ruoso oh right
makes sense
anyway...
is SomePackace:<&foo:(Int)> valid? 18:51
sorry
SomePackace::<&foo:(Int)>
meaning... id '&foo:(Int)' the string name of the variable containing the multi variant?
TimToady gotta have some name for the individual variant, so probably 18:52
otherwise it'd be a run-time operator
and that would really like to be static, I think
ruoso cool... that's an important bootstrapping mechanism
TimToady and a poor man's &foo just greps out the keys with the appropriate prefix 18:53
though there needs to be a <&foo> as a key too 18:54
ruoso sure, that is the Multi
TimToady well, something more to do to STD...
ruoso but while defining Multi, it's important to be able call an individual variant 18:55
TimToady ETOOMUCHCOFFEE &
ruoso so we can have '&infix:<+>:(int,int)' defined at very low level
araujo haha
ETOOMUCHTEA & 18:56
ruoso and we can use them where we know we have ints
ruoso coffee for real &
19:01 mikehh joined
pmurias ruoso: is t/return_function.t failing expected? 19:06
19:08 Casan left
moritz_ rakudo: say 'alive?' 19:10
p6eval rakudo b2e7ac: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤» 19:11
moritz_ at least parrot built...
rakudo: 1 19:13
p6eval rakudo b2e7ac: RESULT«1»
TimToady ruoso: an implementation can define &::('@#$!^%!#$%') if it wants to, so I don't see any problem with your (int,int) form living in the symbol table 19:14
the question of whether all implementations should do it that way is another matter
19:19 AzureStone left
araujo intimidated by that definition 19:40
pugs_svn r25312 | pmurias++ | [mildew] more fixes to work with HEAD STD.pm
19:44 pmurias left 19:46 rodi joined 19:58 schmalbe left 20:16 zostay left 20:17 zostay joined 20:34 hercynium left 20:35 Southen left
bacek perl6: class List is also { method a {}; }; <a b c>.a; 20:41
p6eval pugs: No output (you need to produce output to STDOUT) 20:42
..rakudo b2e7ac: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
..elf 25312: RESULT«undef␤»
bacek perl6: class List is also { method a { say "HI" }; }; <a b c>.a;
p6eval pugs: No output (you need to produce output to STDOUT)
..elf 25312: OUTPUT«HI␤»
..rakudo b2e7ac: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
bacek rakudo: class List is also { method a { say "HI" }; }; <a b c>.a; 20:44
p6eval rakudo b2e7ac: OUTPUT«HI␤»
moritz_ is amazed that elf does monkeypatching 20:45
20:46 rindolf left 21:05 DemoPhreak joined
rodi + 21:10
ruoso @tell pmurias return_function.t was supposed to be working... 21:16
lambdabot Consider it noted.
21:21 DemoFreak left 21:23 DemoPhreak is now known as DemoFreak 21:33 [particle]1 joined, ludan joined 21:34 wilx joined 21:36 mberends left 21:38 mj41_ joined 21:45 [particle] left 21:47 mj41 left
pmichaud s1n: tonight at 7, see you there. 21:48
21:52 Whiteknight joined 22:04 ft left 22:05 ft joined 22:19 frobnitz joined 22:22 legis left
pugs_svn r25313 | moritz++ | [evalbot] change some paths 22:32
22:34 p6eval left, p6eval joined
moritz_ rakudo: say 'test' 22:35
p6eval rakudo b2e7ac: OUTPUT«test␤»
moritz_ @tell masak I've changed the evalbot setup a bit; parrot and rakudo are built in ~/parrot and is rsync'ed to ~/built-parrot if successful
lambdabot Consider it noted.
22:46 Whiteknight left
jnthn moritz_++ 22:46
22:48 aindilis` joined 22:52 ejs1 joined 22:53 ludan left 22:55 hanekomu_ joined 23:02 aindilis left 23:12 hanekomu left 23:15 cognominal left 23:18 idemal left 23:20 cognominal joined 23:21 idemal joined, icwiener_ left 23:24 iblechbot left 23:25 Limbic_Region joined 23:30 mberends joined 23:33 ejs1 left 23:34 skids left 23:46 Tene joined 23:49 Exodist left