»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
lue what's the em dash for? 00:00
tylercurtis std: my $x = -> { my Int $c=10; return { say $c— } }(); $x(); $x(); 00:01
p6eval std a194beb: OUTPUT«===SORRY!===␤Confused at /tmp/8CFndbP3_T line 1:␤------> $x = -> { my Int $c=10; return { say $c⏏— } }(); $x(); $x();␤ expecting any of:␤ POST␤ bracketed infix␤ infix or meta-infix␤ postfix␤
..postfix_prefix_meta_operator␤ statement modifier l…
tylercurtis std: my $x = -> { my Int $c=10; return { say $c-- } }(); $x(); $x();
p6eval std a194beb: OUTPUT«ok 00:01 123m␤»
00:01 flatwhatson_ joined 00:08 ash_ left
MindosCheng lue: One way to tell Perl 6 that is a closure. *I guess* 00:09
rakudo: $x -> { say $c— }; $x(); $x(); 00:10
p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Confused at line 22, near "$x -> { sa"␤»
tylercurtis MindosCheng: There's no postfix:<—> operator in Perl 6.
You want postfix:<--> 00:11
(although, of course, one could define a postfix:<—> operator)
MindosCheng rakudo: my $x = -> {say $c— }; $x(); $x();
Wrong syntax... 00:12
tylercurtis rakudo: my $x = -> {say $c-- }; $x(); $x();
MindosCheng rakudo: my $c=10; say $c—; say $c—; 00:13
tylercurtis: You meant $c— part? 00:14
tylercurtis MindosCheng: indeed.
sorear Where did you read about this syntax? 00:16
p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤» 00:17
rakudo 015d77: OUTPUT«===SORRY!===␤Symbol '$c' not predeclared in <anonymous> (/tmp/_xFryqqvOH:22)␤»
rakudo 015d77: OUTPUT«===SORRY!===␤Confused at line 22, near "say $c\u2014; s"␤»
MindosCheng I think the IRC client changed the minus minus. 00:23
00:24 risou left 00:27 p6eval joined, ChanServ sets mode: +v p6eval
sorear I think you'll have fun with the sub foo(Bar:D $x) {} syntax 00:29
00:30 QinGW joined
MindosCheng sorear: Don't know yet... 00:31
00:31 p6eval left 00:38 p6eval joined, ChanServ sets mode: +v p6eval 00:46 p6eval left 00:50 MindosCheng joined
MindosCheng rakudo: my $c = 10; say $c--; say $c--; 00:51
Have to go. Bye. 00:53
MindosCheng &
00:54 p6eval joined, ChanServ sets mode: +v p6eval
MindosCheng rakudo: my $c = 10; say $c--; say $c--; 00:54
p6eval rakudo 015d77: OUTPUT«10␤9␤» 00:55
00:56 MindosCheng left 00:57 MindosCheng joined 00:58 MindosCheng left 00:59 p6eval left 01:00 p6eval joined, ChanServ sets mode: +v p6eval 01:15 p6eval left 01:27 drbean joined 01:31 anick joined, anick left 01:33 p6eval joined, ChanServ sets mode: +v p6eval 01:44 redicaps joined 01:46 PhatEddy joined 01:48 redicaps left
PhatEddy rakudo: my @a ||= @a; say qq/{@a}/; 01:51
p6eval rakudo 015d77: OUTPUT«(timeout)»
PhatEddy rakudo: my @a ||= @a; say qq/{@a}/;
p6eval rakudo 015d77: OUTPUT«maximum recursion depth exceeded␤ in 'Array::at_pos' at line 2963:CORE.setting␤ in 'Array::at_pos' at line 2963:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line 1725:CORE.setting␤ in 'Any::join' at line 1432:CORE.setting␤ in 'Any::join' at line 1437:CORE.setting␤ in
..'List:…
diakopter interesting 01:52
PhatEddy rakudo: my @a ||= 1, 2; say qq/{@a}/;
p6eval rakudo 015d77: OUTPUT«1␤»
PhatEddy rakudo: my @a = 1, 2; say qq/{@a}/;
p6eval rakudo 015d77: OUTPUT«1 2␤»
PhatEddy Am a bit of a novice - is the ||= case OK? 01:53
with 1,2 ..
sorear I suspect you need parens 01:56
but why would you want to do such a thing
std: my @a ||= 1, 2
p6eval std a194beb: OUTPUT«ok 00:01 122m␤» 01:57
01:57 ash_ joined
PhatEddy rakudo: my @a ||= (1, 2); say @a.perl 01:57
p6eval rakudo 015d77: OUTPUT«[(1, 2)]␤» 01:58
PhatEddy rakudo: my @a = 1, 2; say @a.perl
p6eval rakudo 015d77: OUTPUT«[1, 2]␤»
PhatEddy Unless some objection will probably file the my @a ||= @a one since it blows and leave others ... 02:02
rakudo: my @a = (1 ,2); say @a.perl 02:05
p6eval rakudo 015d77: OUTPUT«[1, 2]␤»
02:08 mindos1 joined
PhatEddy rakudo: my $a = my ($b, $c) = 1, 2; say $a 02:09
p6eval rakudo 015d77: OUTPUT«1 2␤»
sorear what you're doing doesn't make a whole lot of sens 02:25
02:34 ch3ck3r joined 02:37 kanishka joined 02:46 PhatEddy left 02:52 ash_ left 02:53 alester joined 02:57 agentzh joined 03:04 dalek joined, ChanServ sets mode: +v dalek 03:13 scottdware joined, scottdware left 03:15 satyavvd joined
dalek ecza: c4c533a | sorear++ | lib/JSYNC.cs:
[jsync] Fix parsing of hex escapes
04:04
ecza: 17d8d1b | sorear++ | lib/JSYNC.cs:
[jsync] Check character set of anchors
04:14 leprevost joined 04:23 leprevost left
dalek ecza: c877daa | sorear++ | lib/JSYNC.cs:
[jsync] Implement reading of encapsulated documents
04:25
04:27 plobsing joined 04:46 kaare joined, kaare is now known as Guest4737
dalek ecza: 0c5d47e | sorear++ | / (3 files):
[jsync] Implement thawing of object data
05:02
05:27 nymacro joined 05:40 redicaps joined, frettled joined 05:45 pnu joined 05:49 hax joined 05:51 LionMade0fLions joined 06:25 satyavvd left
moritz_ good morning 06:37
phenny: tell masak your strangelyconsistent atom feed contains <name>$author</name> 06:38
phenny moritz_: I'll pass that on when masak is around.
sorear hi moritz_ 06:39
06:39 tylercurtis left
dalek : fdd4c7a | moritz++ | misc/perl6advent-2010/articles/main-sub.pod:
[perl6advent] add an article about MAIN subs
06:42
06:42 alester left
sorear Didn't we do MAIN last year? 06:43
sorear wonders exactly what the goal for these articles is
moritz_ sorear: just multis in general
sorear: the goal is to enthuse and educate people about Perl 6 06:44
06:58 wtw joined
dalek ecza: 1d78ea1 | sorear++ | / (2 files):
Add &spew
06:59
ecza: 8628f27 | sorear++ | / (2 files):
Add JSYNC.pm6
moritz_ phenny: ask jnthn to please re-test gen_parrot.pl. I think your fix was RONG, and the code that it fixed was RONG too (I forgot to update it) 07:08
phenny moritz_: I'll pass that on when jnthn is around.
dalek kudo: d1ca2e3 | moritz++ | build/gen_parrot.pl:
remove a fossile in gen_parrot.pl; needs re-testing under windows
07:09
07:12 rodarmor joined
rodarmor Hi there :) 07:12
sorear Hi!
Welcome.
rodarmor Haha, I like this channel already.
I'm trying to install rakudo-star-2010.10 on my mac, and it's segfaulting.
Am I hosed?
sorear How are you trying to install it? 07:13
rodarmor (rakudo isn't segfaulting gmake is segfaulting)
perl Configure.pl --gen-parrot --prefix=/opt/rakudo
and then
gmake
sorear and then gmake crashes!?
rodarmor haha, I'm probably still being inaccurate 07:14
the exact error is:
whoop's irc doesn't like my slashes
Can I quote something in IRC?
(so that it doesn't get interpreted as IRC commands)
sorear / /stuffwithslashes 07:15
but it's better if you not paste long stuff; use pastie.com or something like that
>3 lines
rodarmor ah, sweet, thx 07:16
pastie.org/1298983
Do you know if other mac users have successfully compiled/installed rakudo-star-2010.10? 07:17
sorear oh, so it *is* Rakudo segfaulting
that makes more sense than gmake doing it :D
what kind of mac? ppc, ppc64, amd64, x86?
rodarmor You'd be surprised, I've had some weirdo gmake bugs.
It's a first generation macbook pro
so it's x86 32 bit, about 4 years old 07:18
sorear uname -m?
a
ah
rodarmor i386
moritz_ rodarmor: yes, some of our developers are mac users 07:19
rodarmor moritz_: good to know!
moritz_ rodarmor: how much free memory do you have on that machine? 07:20
rodarmor I don't know how accurate it is, but Activity Monitor is showing 784MB free
Plus 425MB inactive 07:21
moritz_ that should be enough
rodarmor: you could try to build the latest rakudo from source, following the instructions on rakudo.org/how-to-get-rakudo 07:22
that way you just get the compiler, not the distribution
but there's hope that you at least get *something* :-)
rodarmor I was a little nervous about that. What else do I need to have the distribution, and what's missing? 07:23
moritz_ the distribution also contains some mdoules 07:24
which you can probably install with github.com/tadzik/neutro/ once you've got Rakudo running 07:25
rodarmor will perl6 itself be complete though, without the modules? 07:26
moritz_ yes 07:27
rodarmor Okay, sweet :) 07:28
I'll give that a shot.
although I'm going back on my never-try-to-build-bleeding-edge-packages-from-source policy...
07:30 _xiaomo_ joined 07:31 rodarmor1 joined, rodarmor left
rodarmor1 wow, this time it actually took down my whole box :) 07:32
07:34 kanishka left
sorear any luck? 07:41
07:43 rodarmor joined, rodarmor1 left
rodarmor I really hate computers sometimes :P 07:43
i'm trying to compile the latest from github now 07:44
macports provides parrot 2.6.0, is that good enough for the latest version of rakudo? 07:46
07:48 gaww\w joined
mindos1 rodarmor: I use brew instead of Macports. I can build successfully. 07:52
07:53 rodarmor left
mindos1 rodarmor: I am using OS X Server 10.5.6 07:54
07:56 rodarmor1 joined
rodarmor1 brew looks pretty cool 07:56
how does the package selection compare to macports?
well, the actual compilations seem to be crashing my computer :( 08:01
I think I'm going to give up for now.
man do i want to try out perl6 though!
08:08 rodarmor1 left
mindos1 rodarmor1: You can try /msg p6eval perl6: say "hello world" 08:09
08:10 gaww\w left 08:12 flatwhatson_ left
mindos1 rodarmor1: I am new here. But I think perl6 uses its own parrot. When build, you will get that parrot on local, too. 08:15
08:16 ascent_ joined
moritz_ there's exactly one rakudo release that works with parrot 2.6.0 08:17
dukeleto moritz_: how is rakudo on parrot.git working? noticing any bugs? 08:25
moritz_ dukeleto: nothing git specific so far
but yes, it's full of bugs... just take a look at RT :-) 08:26
dukeleto moritz_: i am sure you will have the appropriate amount of fun 08:28
moritz_ :-)
08:36 fhelmberger joined 08:37 cjk101010 joined
dukeleto moritz_: perlgeek.de/blog-en/perl-6/pvc-perl...coach.html looks like something that could be a good Google Code-In task 08:40
moritz_: such as writing up docs for it
moritz_ might be
dukeleto moritz_: or even just a blog post about perl 6 applications and libraries written in the last year 08:41
moritz_ so, code-ins are really small pieces of work? 08:42
dukeleto moritz_: yes. leto.net/perl/2010/11/parrot-founda...de-in.html
moritz_: trac.parrot.org/parrot/wiki/GoogleC...n2010Tasks
moritz_: small "tasks" which are specific sets of "work", which can be many things in addition to code
dalek kudo: 3131a2a | moritz++ | README:
expunge subversion references from README
08:43
kudo: 9ca0de5 | moritz++ | docs/ (2 files):
[docs] fix a few links
09:01 mavrc joined
flussence I think I found a bug in rakudo's .gitignore, "/parrot" and "/parrot_install" probably shouldn't have those leading /'s because git clean doesn't remove them, even though it says it does. 09:06
(and the other lines with leading slash in them...) 09:07
moritz_ flussence: my 'git status' doesn't show parrot 09:08
otoh it doesn't hurt to remove leading slashes 09:09
flussence huh, it seems to ignore stuff with its own .git subdir...
moritz_ it didn't show parrot_install either 09:10
09:11 redicaps left
flussence strace says git-clean prints the "Removing" line, then straight away it checks for a .git/ and does nothing if that's there. I suppose it's intentional behaviour, but their manpage doesn't say it'll do that... :/ 09:14
moritz_ then submit a doc patch 09:15
sorear Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different git repository, it is not removed by default. Use -f option twice if you really
want to remove such a directory.
flussence Oh... that's that then. 09:17
.oO(I really shouldn't be messing with this stuff first thing in the morning)
moritz_ wonders what happens if you put a complete svn checkout under git version control 09:18
09:27 dakkar joined
dalek ecza: 626548d | sorear++ | v6/ (2 files):
[v6] Implement symbol dumping
09:28
09:37 QinGW left
sorear out 09:38
09:43 wamba joined 09:45 lucs left
moritz_ sorear was right about people being disturbed by github outage: www.reddit.com/r/programming/commen...d_between/ :-) 09:46
09:48 _xiaomo_ left 09:56 daxim joined
szbalint "ARGH the centralized HUB of my decentralized version control system is down! Now I can't get work done because I can't route around the failure with my decentralized version control system. 10:05
10:08 meppl joined, wallberg joined 10:20 plobsing left 10:29 masonkramer left, masonkramer joined
colomon szbalint: to be fair, having github down makes all of the current p6 module installers useless, for instance. Just because all the source is still out there and safe doesn't mean losing your hub is painless... 10:41
szbalint I realise that. I had to postpone a new module release because I couldn't sync changes from github myself. It's still funny though :) 10:47
sort of like "making backups doesn't mean they work"
10:48 tzhs joined
moritz_ but when somebody accidentally deleted the parrot repo on github (was an admin, shouldn't haven been), somebody else just re-pushed his local copy. 10:49
I find it awesome that such things work
10:51 bbkr joined, Chillance joined 11:02 Chillance left
mathw You can be as distributed as you like, but when it's working having a central hub as the definitive place for things is the easiest way to work 11:02
and github doesn't go down very often, after all
11:05 Chillance joined 11:07 tzhs left 11:11 agentzh left 11:23 ggoebel joined 11:26 kanishka joined 11:34 ch3ck3r left 11:35 ch3ck joined 11:36 ggoebel left, jfried joined 11:38 daxim left 11:40 daxim joined 11:54 ggoebel joined 11:58 _xiaomo_ joined 12:04 masonkramer left 12:10 tzhs joined 12:20 kanishka left 12:28 orafu joined 12:30 mariano__ joined 12:33 pnu left 12:35 kanishka joined 12:58 mindos2 joined 12:59 mindos2 left 13:02 MindosCheng joined 13:07 Guest4737 left 13:18 PhatEddy joined 13:21 takadonet joined
takadonet morning all 13:21
PhatEddy rakudo: my (@a, @b); @a = (1, 2); say @a.perl; @b ||= (1, 2); say @b.perl
p6eval rakudo 015d77: OUTPUT«[1, 2]␤[(1, 2)]␤»
PhatEddy sorear: ping - last night you complained I wasn't making sense - I partially agree but with this example not completely ... 13:22
mathw o/ 13:23
colomon \o 13:24
MindosCheng o//
13:25 MayDaniel joined
mathw yay people 13:28
everywhere seems very quiet today
13:34 Psyche^ joined, Psyche^ is now known as Patterner
PhatEddy phenny: tell sorear to check back here in irc when he has chance ... irclog.perlgeek.de/perl6/2010-11-15#i_2995501 13:34
phenny PhatEddy: I'll pass that on when sorear is around.
13:37 MayDaniel left
jnthn o/ 13:44
phenny jnthn: 07:08Z <moritz_> ask jnthn to please re-test gen_parrot.pl. I think your fix was RONG, and the code that it fixed was RONG too (I forgot to update it)
jnthn moritz_: Can do when I get home. 13:45
moritz_ no hurry, should just be before the release 13:46
13:47 _kaare joined 13:51 mariano__ left 13:52 mariano__ joined, pnu joined 13:53 timbunce joined
colomon is looking at this, and thinking he wants it for Perl 6: pdf.cx/6gc94 13:55
dalek kudo: c766295 | moritz++ | build/gen_parrot.pl:
[gen_parrot.pl] git fetch in the right directory
13:57
kudo: 89b9544 | moritz++ | build/gen_parrot.pl:
[gen_parrot.pl] avoid redundant fetching directly after git clone
13:57 timbunce left 13:58 timbunce_ joined 14:00 _xiaomo_ left 14:02 timbunce_ left, mariano__ left, mariano__ joined 14:05 PhatEddy left, mariano__ left 14:10 timbunce joined
moritz_ colomon: fast evaluation in CPU would be a decent first step :-) 14:12
colomon that's not sexy, it's just necessary. ;) 14:14
dalek ast: c941342 | (Kodi Arfer)++ | S03-metaops/hyper.t:
[hyper.t] Added a test for a bug fixed in Rakudo f0e270f.
14:16
kudo: f0e270f | KodiB++ | src/core/metaops.pm:
[metaops] Don't itemize the result of a recursive call to &hyper.
14:18
14:22 mariano__ joined 14:31 kanishka left 14:32 timbunce left 14:38 KyleHa joined
moritz_ pack.t fails one test 14:39
14:48 gavv\w joined 14:49 alester joined 14:51 PacoLinux joined 14:53 icwiener joined
tadzik o/ 14:58
colomon \o 14:59
tadzik moritz_++ # advent calenar work 15:00
colomon do you have a quick link for that? 15:03
15:03 kanishka joined
moritz_ mu repo misc/perl6advent-2010/ 15:03
15:04 sftp joined 15:06 kanishka1 joined 15:07 kanishka left
colomon moritz_++ 15:15
not that that was a quick link, but it got me to get off my arse and download mu, so it's an all-around win.
woah, you've actually got an article done already!?! 15:16
err... why does add.pl with no arguments return 7? 15:17
15:17 silug joined
slavik1 colomon: that's a bug, it should return 42 :P 15:19
15:20 MayDaniel joined 15:21 kanishka1 left, wamba left 15:23 tzhs left
tadzik yay REPL 15:26
colomon: default params? 15:27
err, values
ah, I see what you mean 15:28
15:31 mkramer joined 15:32 oyse joined, masak joined
masak oh hai, #perl6! 15:33
phenny masak: 06:38Z <moritz_> tell masak your strangelyconsistent atom feed contains <name>$author</name>
masak moritz_: thanks, fixed.
jnthn o/ masak 15:34
masak: Journey home work out OK?
masak jnthn: \o
yes. :)
jnthn yay :)
masak it was... a weird experience.
jnthn Oh? 15:35
masak sleep was fitful, and I think I spent something like three hours packing and closing up my backpack :)
flat tire on the bike. just as well, I might have been too tired to ride it. 15:36
bed looked too attractive when I got home. crashed and slept for six hours.
jnthn :)
So now you're...really out of sync! 15:37
masak I have no idea when I'll fall asleep tonight. :)
yes. my sleep is now disjunct from Standard Sleep. 15:38
15:39 Axius joined
masak on the plus side, I've now read through the whole DOM API specification. 15:39
jnthn \o/
You've set up your brain the DOM. :)
masak yeah :) 15:40
well, someone did.
tadzik masak: o/ 15:41
15:42 wtw left
masak tadzik: greetings. 15:42
15:46 Axius left
masak interesting bit of community musings: blog.laufeyjarson.com/2010/11/ugly-old-perl/ news.ycombinator.com/item?id=1906070 15:47
he starts out complaining that Perl 5 people aren't always paying attention to improvements in the language.
15:47 echoprinter joined
masak then he ends suggesting that both Perl 5 and Perl 6 should change their names for PR reasons. 15:48
15:50 risou joined
tadzik wtf PR 15:52
bah, phenny should have that feature
Public Relations?
masak I'd be disinclined to support the introduction of a command 'wtf' on the channel. we tend to use that when we're seeing highly unexpected p6eval output. 15:53
in general, I think the need for infobot functionality on a channel is a community design smell.
frettled Such things can be supported by the user doing /msg infobot, and infobot doing /notice user 15:54
(and should) 15:55
masak ooh
and /topic could give info on how to get started.
frettled Best practice for IRC bots states that bots should never send PRIVMSG themselves, not even to a channel.
tadzik so what's PR?
:)
frettled Also, bots shall not respond to NOTICE.
tadzik: public relations.
15:56 oyse left
frettled Bonus: bot responses are all the more visible when they use /notice to a channel than regular msg; it's far easier to see that it comes from a bot. 15:56
masak tadzik: basically, it's how the external world perceives your project/company/organization. 15:57
tadzik mhm
masak frettled: sounds nice.
flussence irssi's "/help notice" is pretty informative in this case 15:58
16:02 rvrgs joined
masak oh! petdance++ has already covered that blog post: perlbuzz.com/2010/11/progressing-vs...gging.html 16:02
16:05 justatheory joined 16:07 wamba joined 16:08 hercynium joined 16:11 MindosCheng left
alester You mean alester? :-) 16:17
16:19 pmb joined
ch3ck hi pmb 16:20
pmb hi ch3ck
masak alester: oh, right :) 16:21
16:23 mariano__ left
ch3ck morrn masak 16:24
masak :)
well, it's not that bad, but almost.
planning to go swimming soon. 16:25
TimToady blurs into existence in a vague sort of way
masak TimToady: fuzzy greetings.
16:30 sftp left 16:31 sftp joined 16:35 mariano__ joined 16:39 masak left 16:42 _xiaomo_ joined
dalek : 536f6ab | (Solomon Foster)++ | misc/perl6advent-2010/topic-brainstorming:
Couple more ideas.
16:46
16:51 mila__ joined 16:52 _xiaomo_ left 17:19 pyrimidine joined
takadonet pyrimidine: hey 17:19
pyrimidine o/
17:27 Bzek joined
TimToady colomon: GPU support depends mostly on getting S09 implemented someday 17:30
17:31 timbunce joined 17:36 timbunce left, mkramer left 17:37 stkowski joined 17:38 impious joined 17:42 cdarroch joined, cdarroch left, cdarroch joined, envi left 17:43 mkramer joined 17:54 MayDaniel left 17:56 sirhc left 18:05 dakkar left 18:11 rvrgs left 18:28 wallberg left
frettled Mellow greetings, citizen. What seems to be your boggle? 18:32
moritz_ TimToady: seems that jnthn++ is working on it :-) 18:33
18:37 plobsing joined
dalek kudo: 248bab6 | moritz++ | .gitignore:
remove leading slashes from .gitignore, since flussence++ reported that those slashes can cause problems
18:48
kudo: 9256321 | moritz++ | docs/ChangeLog:
[docs] update ChangeLog
18:51 nymacro left 18:54 arnsholt joined 18:57 jfried left 19:06 hercynium_ joined, hercynium_ left, hercynium_ joined 19:10 hercynium left, hercynium_ is now known as hercynium, ederksen joined 19:11 ederksen left 19:22 echoprinter left 19:25 nomad1 joined 19:26 nomad1 left 19:31 MayDaniel joined 19:32 nomad1 joined 19:34 justatheory left 19:35 justatheory joined 19:37 fhelmberger left 19:45 hercynium left 19:46 hercynium joined 19:50 fhelmberger joined 19:51 rgrau joined 19:53 masak joined
masak ahoy! 19:53
diakopter chips!
colomon fish! 19:56
sjohnson & 19:57
moritz_ Kartoffelpuffer! 19:58
uplaoad.wikimedia.org/wikipedia/com...puffer.jpg FYI
diakopter upload.wikimedia.org/wikipedia/comm...puffer.jpg 19:59
19:59 meraxes joined
colomon Yum! 19:59
daxim because it's chrimas time: hu.wikipedia.org/wiki/L%C3%A1ngos 20:00
20:07 nothingmuch joined
masak nothingmuch! \o/ 20:07
huf i can never eat a whole langos, it's too oily
nothingmuch masak: ?
20:07 impious left
masak nothingmuch: hi!!1! 20:08
:)
nothingmuch i mean, it's quite nice to be greeted so enthusiastically, but I don't know that I deserve it ;-)
masak of course you do. :)
nothingmuch were you just talking about me or something? i swear it wasn't my fault
masak no, I tend to greet people that way on this channel.
20:08 daxim left
nothingmuch ah 20:09
masak informal research indicates it lifts the mood. :)
nothingmuch closed irssi for the first time in months today, i guess that's whY i'm not used to it =)
masak nothingmuch: on the topic of whether you deserve arms raised in greeting: to the extent that you were/are involved in the development in Moose and KiokuDB -- thank you. 20:11
nothingmuch =) 20:12
masak moritz_: I made Raggmunk/Kartoffelpuffer the other day! :) 20:15
20:16 risou left
colomon I just finished cleaning up some dead code from one of my $work projects: 1200 lines of code deleted! 20:17
whoops, 2200 lines of code deleted!
takadonet colomon: which language?
masak wow.
colomon C++
takadonet nice
colomon that's more than half.
(in that source file)
20:20 impious joined 20:21 pyrimidine left, pyrimidine joined 20:23 fhelmberger left 20:27 MayDaniel left 20:30 nothingmuch left 20:34 masak left 20:38 mavrc left, zby_home_ joined 20:39 molaf joined 20:44 [particle] joined 20:50 stkowski left 20:52 stkowski joined 20:59 dual joined 21:13 simcop2387 joined 21:20 nomad1 left 21:22 y3llow_ joined 21:23 pothos joined 21:24 y3llow_ is now known as y3llow 21:25 simcop2387 left 21:27 simcop2387 joined, KyleHa left 21:29 KyleHa joined 21:33 broquaint joined 21:35 icwiener left 21:36 icwiener joined 21:37 timbunce joined 21:38 colomon joined, mariano__ left 21:41 justatheory left, colomon left 21:44 alester left 21:50 alester joined 21:52 alester left, icwiener left 21:55 alester joined 21:56 masak joined
masak o/ 21:56
22:02 justatheory joined, muixirt joined
muixirt hi folks, how is the parrot git transition going w.r.t. rakudo (star)? 22:03
sjohnson masak!
jnthn lolitsmasak 22:04
moritz_ muixirt: rakudo now builds from parrot-on-git
haven't looked at star yet
sleep &
muixirt good n8 moritz_ 22:05
22:05 mariano__ joined
masak "n8"? doesn't that expand to "neight"? 22:06
sjohnson heh
jnthn how h8ful
sjohnson nite nite m8 22:07
mkramer unless you have a thick cockney accent
masak I imagine "good n8" is what horses would say, could they form words.
muixirt n8 == the bus line for moritz_
mkramer then it's good noight
Tene .u 🚄
phenny U+1F684 (No name found)
jnthn I 8 a gr8 pl8 of noms quite l8. 22:08
masak might as well go with the Yiddish "good noyt".
Tene briefly entertains the idea of the following as an alternative to '==>' www.fileformat.info/info/unicode/ch.../index.htm
jnthn puts a bullet through the idea 22:09
;)
Tene masak: I've mostly seen germans use 'n8', iirc. Might be a dialect variation.
masak Tene: the Unicode Consortium needs to be stopped.
jnthn Or some training on what characters to include... 22:10
...before they go totally off the rails.
masak Tene: that makes sense because de:'ei' is pronounced en:/eye/
muixirt Tene: right, from German to German :-)
Tene jnthn: they've really run away with this 22:11
masak /aɪ/
Tene I just don't see the track they used to get here
masak maybe they lost their train of thought.
22:12 mariano__ left
mkramer whatever happened to their engineers? 22:13
Tene Are we really all aboard this? Who's checking their ticket?
mkramer the tyrannical addition of pointless codepoints is really not fare 22:14
jnthn It's a signal of bad things to come.
muixirt jnthn: that is the minimum requirement for a vm (bytecode interpreter) for rakudo to be a worthy target for a backend? 22:15
diakopter muixirt: a thoroughly integrated GC with value & reference types 22:16
muixirt diakopter: "a thoroughly integrated GC"
diakopter sorry, badly worded 22:17
muixirt a vm built around "a thoroughly integrated GC"?
22:17 justatheory_ joined, justatheory left, justatheory_ is now known as justatheory
jnthn muixirt: Is that "minimum to possibly make it work" or "minimum for me to consider it interesting"? :) 22:17
muixirt jnthn: both would be interesting to me :-) 22:18
jnthn muixirt: I'd generally want it to have decent GC, support for native types, support for dynamic library loading and runtime code-gen...
Tene jnthn: I'm curious about the difference.
22:19 justatheory_ joined, justatheory left, simcop2387 left, justatheory_ is now known as justatheory
muixirt jnthn: GC? Your wished might be to much formed be parrot, I meant it more the general way ... 22:19
22:20 _kaare left 22:21 zby_home_ left 22:22 colomon joined
muixirt Decent GC? Ok. Native types? Ok, too. Dynamic library loading? Where is that solved in a perfect way? Runtime code generation? 22:22
diakopter runtime code generation/loading like in the JVM or CLR 22:23
jnthn Right.
What they provide (JVM through the ClassLoader, CLR through...whatever it was I used...Assmbly Loader) is sufficient. 22:24
diakopter also, it doesn't need to be a bytecode "interpreter" _per_se_ to be a sufficient VM 22:25
it can load programs by reading bytecode but JIT them to native, of course.
22:26 KyleHa left
diakopter or do any number of optimizations or pessimizations or frivolous transformations along the way :D 22:26
muixirt diakopter: well some people like (Tene?) don't make a difference between bytecode and a VM 22:27
diakopter the "virtual" aspect in the term "virtual machine" is just that the operations/code that is executed is controlled tightly by the runtime; it doesn't need to be an interpreter to do that 22:28
Tene muixirt: Eh?
mkramer What of this is LLVM missing? 22:29
jnthn muixirt: From my point of view at the moment, I want to make stuff work and want to understand performance. The graphical debugger in Visual Studio, and the RedGate profiler, mean a lot to me and make .Net dev quite pleasant, for example.
muixirt but "backend" is likely to be some immediate representation (aka bytecode)
diakopter mkramer: the GC
jnthn muixirt: I'm also very keen to explore the bits of the Perl 6 spec that are less explored, especially concurrency and parallelism.
22:29 simcop2387 joined
colomon jnthn++ 22:29
diakopter mkramer: and the runtime code generation/loading bindings... (you'd have to do yourself) 22:30
jnthn muixirt: So being intersting to me at the present is muchly about toolchain, good threading support and stability.
muixirt Tene: once I said that I hate bytecode and you argued that virtually everything is a VM (== bytecode?)
22:32 stkowski left
muixirt jnthn: well that means only the JVM and CLR are worthwhile. Or do I miss something? 22:32
diakopter muixirt: I'm guessing that ghc & lua & PLTScheme & plenty others would be... 22:34
muixirt Tene: I have had the impression that you think bytecode and a VM are interchangeable terms (from a discussion some weeks ago)
diakopter: ok, you seem be more knowledgable than me, please explain 22:35
concurrency and parallelism 22:36
22:37 donaldh joined, justatheory left
muixirt jnthn: last time I checked concurrency and parallelism were somewhat vague in the specs, did that change? 22:37
jnthn muixirt: IN the Perl 6 specs? 22:38
muixirt: In which case - yes, that's why they desparately need an implementation we can play around with so the spec can go somewhere concrete. 22:39
muixirt jnthn: or is that totally clear for implementors?
diakopter muixirt: I just mean, I thought those VM/compilers provided all of those requirements
muixirt jnthn: a somewhat vicious circle ;-)
mkramer diakopter: thanks, interesting 22:40
22:40 XaRDaX joined
jnthn muixirt: Yes, but history shows that implementations tend to be the best chance of breaking it :) 22:40
22:40 KyleHa joined
muixirt jnthn: good luck :-) 22:40
masak rakudo: "foo" ~~ /f(o)o/; say "$0" 22:43
p6eval rakudo 015d77: OUTPUT«o␤»
masak rakudo: "foo" ~~ /f(o)o/; say "$0li"
p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'Undef'␤»
masak std: "foo" ~~ /f(o)o/; say "$0li"
p6eval std a194beb: OUTPUT«ok 00:01 123m␤»
masak std: "foo" ~~ /f(o)o/; say "$totally_made_up_variable"
p6eval std a194beb: OUTPUT«===SORRY!===␤Variable $totally_made_up_variable is not predeclared at /tmp/PIxrbeCoU3 line 1:␤------> /f(o)o/; say "$totally_made_up_variable⏏"␤Check failed␤FAILED 00:01 123m␤»
masak submits rakudobug 22:44
diakopter mkramer: I just don't know enough to know whether or how well existing GC engines can be hooked into a compiler using llvm.
masak oh; it's already in there: rt.perl.org/rt3/Ticket/Display.html?id=74180
22:45 KyleHa left
diakopter mkramer: for all I know, it's very easy, or it would take an enormous amount of work. I have no idea. 22:45
22:46 wamba left
Tene muixirt: having both a VM and bytecode doesn't mean that they're the same thing. If I always have a paper every time I use a pen, that doesn't mean that paper==pen. 22:50
muixirt Tene: exactly. Bytecode as an "API" is what bothers me. Looking forward to projects that generate machine code while compiling p6 code. 22:53
It seems that route wasn't thought of, right? 22:54
Tene Perl 6 isn't natively representable as x86 machine code. You need higher-level abstractions that aren't present in x86 machine code.
muixirt Tene: well at the end you need a system that executes machine code, x86 or any other cpu. 22:55
Tene muixirt: Yes, I know.
masak muixirt: that's not the same as saying you can compile down to it. 22:56
22:57 whiteknight joined
muixirt well, of course that generated machine code isn't like anything an assembly coder would write. 22:58
masak muixirt: you reply tells me you don't understand.
s/you/your/
Tene It could be that I'm horribly off-base. I certainly don't claim to be exhaustively-informed, but as far as I can think of, you'll always have a significant runtime operating on and manipulating a representation of a Perl 6 program at a higher level than x86 bytecode.
muixirt I'm not saying it is "as easy" like compiling C code to assembly
masak muixirt: Tene (and I) tell you it can't be done. 22:59
as in, impossible.
Tene It *may* be possible to write a compiler that could recognize those Perl 6 programs that can have an x86-machine-code representation, and produce that code for those programs or sections of programs, and do something else (larger runtime layer, fail) for those programs that can't. 23:00
The approach most people here are taking is to first write a full compiler/runtime, and then work on doing exactly that, through JIT or other methods. 23:01
'say "OMG HAI"' certainly does have a compact x86 machine code representation.
muixirt masak: I'm really interested in *what* I don't understand, please tell me (and I mean that) 23:02
masak muixirt: I'll try. let me know how I'm doing.
muixirt ok 23:03
Tene muixirt: Perl 6 has features not compactly representable in x86 machine code. Consider complex OO with roles being applied at runtime.
masak muixirt: both Perl 5 and Perl 6 have parts that are sufficiently dynamic and too abstracted to be compiled down to machine code.
Tene Consider what the x86 code would look like to dispatch to a multimethod on an object that has had a role applied to it at runtime.
masak whar Tene said.
s/whar/what/ 23:04
Tene You'll have to have a significant runtime library operating on abstract representations of these things.
23:04 stkowski joined
Tene Consider the case like: if (random() < 0.5) { $foo does RoleA } else { $foo does RoleB }; 23:05
masak and the runtime library will equal the VM.
Tene Even if some simple cases can be proven to not require complex manipulation at runtime, others do need it.
masak and you have to build the compiler for the general case.
Tene You still need *something* to determine what code to execute there. 23:07
It's certainly possible and desirable to have a compiler that only loads those things needed for the program at hand. Right now, we're primarily focused on getting all of those things implemented at all, before worrying about choosing what to load and when. 23:08
muixirt Tene: one problem might be that you think too much of egde cases, if someone does something like your if (random() < 0.5) example I'm happy that the compiler generates megabytes of bloated and slow machine code 23:11
flussence would it be a useful idea to implement bits of perl6 as native libs, like libpcre exists for p5? 23:12
Tene muixirt: That's not so much an edge case, actually. There are plenty of legitimate examples of applying roles based on information not available to the compiler, such as user input.
muixirt to be more precise: perl6 lacks of well engineered (production) code, so it is easy to think about lots of edge cases
Tene muixirt: consider iterating over lines in a file, and constructing an object for each line, applying roles based on the data in each line.
That's a very normal sort of thing to do.
muixirt and as jnthn points out, perl6 is in a stage were it has to break that vicious circle: implemetation vs. specsw 23:13
Tene muixirt: so your proposed method of doing that is to ask for a dramatically more sophisticated and complex compiler? 23:14
I don't see how that's related?
masak muixirt: I, and others, are writing as much code as we can, and edge cases from that code is indeed finding bugs in Rakudo. we're thinking of building the whole known code base nightly to (semi-)automate the bug finding. 23:18
muixirt Tene: well the point is that if you target parrot your compiler *is* dramatically complex, the parrot building bricks aren't that sophisticated to circumvent the complexity of perl6
masak muixirt: but I would argue that the cases towards the more dynamic end of the spectrum are actually not that uncommon.
as soon as you start doing OO, you're way over in dynamic-land. 23:19
Tene muixirt: It's certainly worth looking at, but I really expect that you have a dramatically inaccurate sense of where the complexities lie here if you think that *discarding* a VM is going to *decrease* the scope and complexity of the project. 23:21
masak +1
Tene The things that a VM does are things that actually need to be done. If we're not using a VM to do them, *we* need to write that code to handle them instead.
masak essentially reinventing the VM, poorly. 23:22
23:22 justatheory joined
Tene You can look at the rakudo source. It's primarily Perl 6, with some VM-specific parts. You can look at what those VM-specific parts do. It's mostly the files named *.pir in the rakudo repo. 23:22
They're mostly simple OO, setting up foundations for the Perl 6 parts. 23:23
muixirt Tene: It's primarily pir and c, and Perl6 code that contains a lot of Q:PIR and pir::something 23:24
Tene The Perl 6 execution model isn't trivial. You've got exceptions, resumable exceptions, lazy lists, gather/take, lexically-scoped return. That's not trivially-representable in x86 machine code in the general case, and handling it requires manipulating an abstract representation of the flow of execution. Significant pieces of Perl 6 rely on this. 23:26
23:26 envi joined
Tene You're going to have to reimplement all of that and add a GC just to get started, and then you have the object model, which is similarly-complex. 23:27
That has to happen *somewhere*. If we don't use a VM for that, we have to reimplement that ourselves, and that's not a trivial task. How is that going to *reduce* the scope and complexity? 23:28
23:28 rindolf joined
rindolf Hi all. 23:28
Tene hi rindolf 23:29
rindolf src/gen/core.pm > src/gen/core.pir is taking a lot of time and RAM with rakudo-trunk.
It's already up to 17.4% of my 3+3 GB of RAM.
x86-64.
Tene: hi.
masak hi rindolf 23:30
muixirt Tene and masak: thanks for the explanations.
rindolf masak: hi.
masak muixirt: thank you. hope it made some sense.
23:30 timbunce left
jnthn sleep & 23:31
Tene muixirt: I think I'm really missing your point here, and I want to understand what you're saying. All I'm getting from you is "I don't understand what a VM does, so it must not be important. Can't you just discard it and go faster?"
muixirt masak: if it doesn't it's completely my fault
Tene It's kind of like noticing that the engine in a car is very heavy, and asking if you can throw it out to go faster, because then you'll weigh less. :)
masak muixirt: I wish it was more like you think it is. that would mean we had a shot at creating a much lighter-weight compiler.
diakopter Tene: here's the benefit-of-the-doubt route
masak Tene: best metaphor so far :P 23:32
diakopter Tene: if all aspects of the VM code (the "runtime") could be inlined (or just statically linked) along into the target executable (whether in memory only or on disk as well), there wouldn't be a "VM" :) see, magic!
muixirt Tene: well let's look at the neighbours. Spidermonkey has a bytecode interpreter and a runtime. 23:33
the bytecode interpreter is small, the runtime is large
rindolf OK, it finished now. 23:34
Still it took a long time.
And consumed a lot of RAM.
muixirt so why not get rid of the bytecode and its interpreter. And that is what the V8 engine did 23:35
diakopter muixirt: sure, and what all the other JS engines did, including Mozilla's
rindolf PackFile_unpack: This Parrot cannot read bytecode files with version 9.1. 23:36
Should I delete something?
Tene rindolf: you have files installed from an older version of Parrot.
rindolf Tene: ah.
23:36 mariano joined
rindolf Well, I'm going to sleep. 23:37
23:37 rindolf left
diakopter muixirt: now you're talking about the use of a "JIT" compiler targetting machine-code... and yes that's what lots of VMs do. 23:37
parrot did that for years
dukeleto and will again, soon. 23:38
Tene muixirt: javascript is dramatically simpler than Perl 6, and V8 does have a significant runtime component that manipulates abstract representations of language elements.
muixirt p-code sytems got extinct, but Gosling thought: what a wunderful idea, and Microsoft thought: they get a huge share in the mindset of developers, let's reinvent such a p-code system and call it dotnet 23:39
Tene "If the object's hidden class does not match the cached hidden class, execution jumps to the V8 runtime system that handles inline cache misses and patches the inline cache code. If there is a match, which is the common case, the value of the x property is simply retrieved."
etc.
muixirt but it is a dead end, and all those jits and trace based compiler efforts prove that
Tene muixirt: are you quoting something? 23:40
diakopter muixirt: what? most of the JVMs and the CLRs (including .NET) use JITs and traces
Tene -- code.google.com/apis/v8/design.html#mach_code
diakopter muixirt: your statement is dead wrong, see what I wrote above
Tene muixirt: URL?
muixirt: "p-code"? 23:41
muixirt diakopter: well V8 has no jit, it's more a load-and-go compiler (pretty classic one)
masak November now compiles on Rakudo master. \o/
flussence yay
masak Tene: p-code was introduced by Pascal, I think. 23:42
Tene muixirt: That's false. V8 *does* have dynamically-modified code sections. See the section I quoted.
muixirt Tene: en.wikipedia.org/wiki/P-code_machine
colomon masak++ 23:43
masak p-code seems to mean "VM bytecode".
colomon: it doesn't run yet, though. more in the upcoming today's blog post.
muixirt diakopter: well the jvm and clr have to support the bytecode legacy
diakopter muixirt: why? 23:44
muixirt diakopter: why what?
diakopter why must they always interpret every bytecode one-by-one
without any optimization/analysis 23:45
muixirt jaegermonkey is no less complex than the V8 engine. 23:48
Tene muixirt: In that case, we're using a VM because we're more-interested in a complete and correct Perl 6 soon than we are in investing a huge amount of effort to reimplement what we're already getting for free from a VM, for uncertain and unreliable benefit. 23:50
muixirt Tene: fair enough 23:52
Tene muixirt: Someday you certainly may see a V8-style compiler for Perl 6. You certainly will if you work on one. There's nobody involved in Perl 6 right now that believes that they can reimplement everything required better, more-accurately, and more-performantly than current VM offerings on the same time-scale as getting a more-complete Perl 6.
muixirt: If we had significantly more resources, you might see that equation change, but for right now, the work that seems to be getting the most beenfit for current contributors is working on completeness and correctness. 23:53
So, the alternate answer is "insufficient resources". 23:54
Implementing everything we'd need for a Perl 6 runtime better than current VM offerings is a huge investment. 23:55
muixirt Tene: as always (at least in this universe)
masak for me, it makes a lot of sense to pour resources into Rakudo, because Rakudo has been the spec-driving implementation for the past two-three years.
muixirt Tene: as always (at least in this universe) --> "insufficient resources"
masak sure, we need performance, but we need to clarify and refine the spec as well. 23:56
muixirt masak: that's right, I don't argue about that
Tene muixirt: look at how much work has been put into Parrot, .Net, or the JVM. I *may* be able to do better than that, but not in this lifetime, on my own.
muixirt: The effort of the perl6-related people to implement that *is* Parrot. I have been contributing to Parrot. It's making slow but steady progress. 23:57
masak what diakopter and sorear are doing seems to be more geared towards performance, but I cannot write programs in their Perl 6 implementations.
muixirt too slow: I don't argue about that: "for me, it makes a lot of sense to pour resources into Rakudo, because Rakudo has been the spec-driving implementation for the past two-three years." 23:59