»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
TimToady kde tends to read it anyway, gnome tends to ignore it completely 00:02
00:02 ash_ joined 00:03 slavik left 00:06 ash_ left 00:08 sorear left
eternaleye TimToady: The xmodmap call alone is sufficient to make caps lock the compose key 00:08
Under any DE or none at all
00:09 sorear joined
eternaleye .XCompose is just sugar for it 00:09
because xmodmap talks directly to X xand xkb
*and
Tene eternaleye: .XCompose lists additional compose maps. How does xmodmap affect that? 00:10
eternaleye Tene: Oh, I misunderstood
00:13 SmokeMachine left
eternaleye TimToady: What custom maps do you need? 00:14
00:14 lest_away is now known as lestrrat 00:17 isBEKaml left
TimToady well, I was asking about vim digraphs, and Tene was pointing me at a pretty set of keybindings for many of the common mathematical symbols, which I downloaded, but have been unable to get working under gnome and ibus 00:20
00:20 cdarroch left, kolibrie left, dalek left, literal left, jnthn left, zamolxes left, dalek joined
TimToady googling for help with either of those gets people asking about .XCompose and being largely ignored. 00:21
00:21 wknight8111 joined 00:22 cdarroch joined, kolibrie joined, literal joined, jnthn joined, zamolxes joined, card.freenode.net sets mode: +o jnthn
sjohnson TimToady: i take it you aren't much of a win32 kinda guy 00:24
lue jnthn is. He develops rakudo on it! 00:25
eternaleye TimToady: There is code.google.com/p/ibus/wiki/LaTeX in ibus-table 00:26
lue Timtoady: Makes you wish for a 300 key keyboard almost. (or maybe even the fabled Unicode keyboard!) 00:27
eternaleye lue: Space Cadet keyboard!
Carpal tunnel free with every order!
lue I forget the number of unicode glyphs, but I want a keyboard with that many keys. 00:28
Yes, it'd include all four astral planes. Yes, it'd be big. Yes, it'd be *worth it*. 00:29
00:29 yinyin joined
eternaleye lue: Optimus maximus, using each shortcut key as an extra shift level? 00:29
lue hmm... 0x1000-0x1FFF access key [and so on] 00:32
.oO(Quick! Where's the 0x2000-0x2FFF key!? I need snowman/comet!!)
sjohnson lue: i'm a win32 kind of guy as well 00:34
for desktop use i mean. i find *nix unusable in a desktop setting, but pretty ideal for a server setting. 00:35
lue Linux for me. I have a Powerbook that wasn't going to get new OS X version upgrades anymore. 00:41
00:42 meppl left
eternaleye rakudo: our sub infix:<∈>( @a, @b ) { all( @a ) ~~ any( @b ) ?? True !! False }; say (1, 3) ∈ (1, 2, 3, 4); 00:43
p6eval rakudo f6374a: OUTPUT«0␤»
eternaleye Hm. Still, that means ibus-table LaTeX is working 00:44
\in ∈, \ni ∋, \cap ∩, \cup ∪, etc 00:45
00:46 rv2733 joined
eternaleye rakduo: multi sub infix:<⊕>( Int $a, Int $b ) { $a +^ $b }; say 2 ⊕ 7 00:53
00:53 justatheory left
eternaleye ergh 00:53
rakudo: multi sub infix:<⊕>( Int $a, Int $b ) { $a +^ $b }; say 2 ⊕ 7
p6eval rakudo f6374a: OUTPUT«5␤»
00:55 cdarroch left, rv2733 left 00:58 rgrau_ left 01:00 alester joined
dalek meta: r278 | diakopter++ | trunk/Sprixel/ (4 files):
[perlesque] enable single-inheritance class derivation and custom constructors,
01:01
diakopter perlesquel: class Baz { method new (--> Baz) { say('hihi') } }; class Foo is Baz { has int $a; method new (str $a --> Foo) { }; method Bar (--> int) { say('in Bar ' ~ (self.a)); return self.a } }; my $blue = Foo.new('hihihi'); say($blue.Bar()); say($blue.a); $blue.a = 5; say($blue.Bar()) 01:02
p6eval perlesquel: OUTPUT«hihi␤in Bar 0␤0␤0␤in Bar 5␤5␤real 0.05␤user 0.04␤sys 0.02␤»
01:04 stephenlb left 01:06 patspam left
diakopter oky doky 01:08
perlesque is basically done 01:09
time to port Cursor.pm to it
01:17 wknight8111 left
pugssvn r30723 | sorear++ | [STD] Document LazyMap better 01:28
sorear TimToady: you might want to look over that; I've dumped most of what I gleaned from you, there 01:29
01:30 mikehh left, plobsing joined, meppl joined 01:34 mikehh joined 01:37 masonkramer left, masonkramer joined
sorear ((), $C)[-1] 01:38
really?
diakopter sorear: thanks :) that's very helpful. JIT for my porting of Cursor/LazyMap
lue afk 01:42
sorear diakopter: you know we're working on basically the same project, right? 01:43
diakopter orly
you're porting Cursor/LM to something? 01:44
sorear almost 01:45
I'm working on viv
diakopter yeah
emit_p5, right?
sorear I'm trying to get to the point where STD-parsed STD can be turned into P5
diakopter I'm trying to get to the point where STD-parsed STD can be turned into perlesque
sorear once that's done, it'll be trivial to retarget it to generate perlesque
diakopter oh
:D 01:46
sorear we ought to work together
diakopter yeah but Cursor/LazyMap still need ported
sorear VAST is a very horizontal thing; it should be possible to avoid stepping on each others toes too much
yes
diakopter and their interfaces designed, since they'll likely be different
sorear I'd like to create a lower-level viv IR 01:47
01:47 [mark] joined
diakopter cool 01:47
sorear which will be *after* regex desugaring
which means that there needs to be a "Cursor" API to an extent independant of backend
diakopter yes
sorear also, I'll be gone Fri-Mon 01:48
diakopter I have kindof a full demarcation of parse operations, modeled after p6 regexes (different names in some cases tho) here: csmeta.googlecode.com/svn/trunk/Spr...c/Grammar/ 01:49
and the various Cut operations I implemented in jsmeta but not csmeta yet
there are probably 15-20 operations yet to be added 01:50
or are you talking even lower level....
sorear actually in the long run I plan to rewrite Cursor et al in Perl6 01:53
and share a single implementation between the backends
diakopter doesn't everybody :P
perlesque can be a stepping stone to that. you just gotta put up with functional/OO style only (lacking Perl's "fluent"/inline style) 01:55
01:55 colomon joined
diakopter wait. what? Cursor.pmc is considerably bigger than I remember 01:57
<frown>
hrm 01:59
ok, yes, I'm definitely going to proceed with the 'extend my own grammar engine' idea instead of porting Cursor by hand. lol. 02:00
it'll be much easier to match the semantics
I'll need an "interpreter mode" for each of those combinators 02:01
which is fine
it'll probably be faster anyway
02:02 snarkyboojum left
diakopter sorear: you still around? 02:05
sorear yes 02:08
02:08 snarkyboojum joined
diakopter decommuting& 02:08
02:25 masonkramer_ joined 02:31 occamshatchet joined
colomon o/ 02:31
02:34 meppl left 02:37 JimmyZ joined 02:42 eternaleye left 03:09 buu joined
lue ohai again 03:09
anything in the pugs examples folders that's missing/not working/should be there? 03:21
03:32 pencilk joined 03:35 {shade} is now known as \shade\ 03:40 masonkramer_ left 03:45 justatheory joined 03:52 viklund_ joined 03:53 meteorja1 joined 03:57 lisppaste3 left, meteorjay left, saaki left, araujo left, mtve left, cj left 04:00 viklund left, cotto left 04:06 cotto joined, Arroz_ joined 04:08 araujo joined 04:16 lestrrat is now known as lest_away
lue afk 04:19
04:19 snarkyboojum left, snarkyboojum joined
diakopter I blogmothd again: diakopter.blogspot.com/2010/05/perl...ained.html 04:25
dalek meta: r279 | diakopter++ | trunk/Sprixel/ (2 files):
[perlesque] added tests of single inheritance and fields and field mutators and
04:30
meta: r280 | diakopter++ | trunk/Sprixel/t/class.t:
[perlesque] fix class.t
04:35
04:35 alester left
sorear diakopter: why is it called cs *meta* ? 04:40
TimToady: What do you remember about the art of regex compilation for Cursor?
diakopter cs==csharp ; cuz theoretically it'll be a metaprogramming environment 04:41
pugssvn r30724 | colomon++ | [t/spec] Refudge / tweak / add number tests. 04:42
diakopter 'The statement that it is better to ask for forgiveness than to obtain permission is true 90% of the time. The key to success is knowing where the other 10% is.' blogs.msdn.com/oldnewthing/archive/...13610.aspx 04:43
04:44 araujo left 04:45 araujo joined
dalek kudo: 8292d45 | (Solomon Foster)++ | src/core/Numeric.pm:
Add stub for Numeric.roots.
05:00
diakopter ne1 know how goes rakudo's closure-fixing? 05:05
diakopter looks at you, sixperlers 05:06
sorear pmichaud is supposedly Looking At It 05:12
we all know how many tuits he has these days, though ;(
05:15 kaare joined 05:16 kaare is now known as Guest55831
diakopter my tuits are especially round lately 05:21
no masak today? 05:24
afk&
arnsholt diakopter: It's only 0730, so I think he might not be up yet 05:25
05:26 justatheory_ joined, justatheory left, justatheory_ is now known as justatheory 05:34 ejs joined 05:37 sjohnson left 05:51 Khisanth left 05:53 Khisanth joined 05:55 lisppaste3 joined 05:58 cj joined 05:59 mtve joined
sorear diakopter: uh. Don't mess with Cursor... 06:01
Cursor contains, in addition to the uh cursory stuff, the half of STD which cannot be expressed using gimme5
06:03 uniejo joined 06:12 uniejo left 06:14 uniejo joined
diakopter sorear: whaddya mean "don't mean with cursor" 06:20
is that a threat?
mess
I didn't think I said I'd mess with Cursor...
sorear you blogged about rewriting cursor...
diakopter erm 06:21
sorear and it was a warning, not a threagt
diakopter "goal of either extending Sprixel's grammar engine to cover all of Cursor's capabilities or manually porting Cursor to perlesque"
I don't see "rewriting Cursor [in perl 5, which I assume you meant]" in there 06:22
sorear frankly, I don't understand 80% of Cursor's capabilities
Cursor is already in Perl 5
diakopter and?
sorear I meant reimplementing its functionality in any language
and, therefore rewriting it in perl 5 would make no sense
diakopter ok, that wasn't obvious at all. People rewrite software in the same language all the time. 06:23
sorear I have never heard of "rewrite" implying "in the same language"
ever
diakopter that's the only usage I've ever heard 06:24
ever
snarkyboojum can definitely mean either :) 06:25
sorear right, it's always meant either to me
snarkyboojum though often if it's a rewrite in a different language that's specified "rewrite in <xyz>" as opposed to "rewrite" implying the same lang :) 06:26
snarkyboojum butts out now
sorear when I say "rewrite" I mean "rewrite (and I haven't specified yet whether it's the same language or a different one)" 06:27
life would be so much easier if English meant the same thing to everyone. 06:28
I need to figure out how to get less worked up over it not doing so
diakopter sorear: I'm sorry for even imagining that I'm qualified to understand Cursor.pm6, let alone rewrite/reimplement it. What would you recommend would be a better use of my time?
until you let me know, I won't even consider messing with Cursor
06:29 eternaleye joined
sorear ... 06:30
diakopter Cursor.pmc, I meant 06:31
sorear you make me want to stop talking to other programmers
06:32 Su-Shee joined 06:33 justatheory left
diakopter ok. if "uh. Don't mess with Cursor..." was in any way meant to be light-hearted/jolly, I didn't catch it, and I regret that. 06:35
maybe I've been mistaking my benefit-of-the-doubt canister for my round-tuit canister lately. :| 06:37
sorear: I did already realize that Cursor contains a very large portion of the grammar engine. I suppose I could've made that fact more clear in my blog post. But I have spent a lot of time with STD.pm and parsers/grammars in general the past few years and I'm pretty confident in my ability to reimplement those routines and to mimic the overall architecture. 06:42
otoh, if it proves reasonable to do a mostly-automatic translation of Cursor.pmc to perlesque or something else, all the better. 06:43
sorear diakopter: As long as you realize what you are getting yourself into, I have nothing further to say 06:45
diakopter I very frequently oscillate between indulging NIH/JFDIY on the one side and ... some other option that I don't understand at all. 06:47
hrm, maybe that's part of my problem. 06:48
sorear I'm not familiar with JFDIY
diakopter just ------ do it yourself ... a just-coined variant of JFDI, after which Jifty is named, I think. 06:49
06:56 iblechbot joined
sorear re-reads S05 on cut-like operators 07:02
moritz_ here in #perl6 we also say JDFI, which means "just duckin' fu it!" 07:03
diakopter: in your latest blog post, you have an untyped my $bar = Bar.new(4, 6) 07:04
diakopter: is that type inferred?
diakopter: or did you drop the requirement of strict type declarations?
07:05 BrowserUk joined
sorear it's inferred 07:07
like C++, perlesque supports upward type inference 07:08
if the types of variables are known, the type of any expression is
so, if you use an initializer, you don't need to restate the type
BrowserUk ? 07:19
07:20 xinming left
sorear BrowserUk: yes/ 07:21
?
07:23 ejs left
spinclad BrowserUk: '?'! 07:23
snarkyboojum ? 07:25
spinclad exactly
snarkyboojum heh 07:26
BrowserUk Sorry. Just a cheap way of having pheeny tell me if it has anything for me. 07:27
spinclad aha.
BrowserUk *phenny even
spinclad phenny: tell BrowserUk '!'
phenny spinclad: I'll pass that on when BrowserUk is around.
snarkyboojum knew that, but thought he'd join in
BrowserUk ?
phenny BrowserUk: 07:27Z <spinclad> tell BrowserUk '!' 07:28
BrowserUk SHame it (he? she? ) is so verbose. Could be fun.
07:29 jonasbn joined
spinclad re-lurks among the cricquets 07:32
BrowserUk phenny:tell ruoso, we could to & fro for ever about whether IO needs a kernel thread or not, and the benefits or otherwise. I spent yesterday knocking up a crude runnable demo to try and give us some feel for the likely benefits. It might be done already were it not that I always have trouble implementing ring buffers. Still chasing a once-per-cycle out-by-one error :( 07:33
07:37 sjohnson joined, agentzh joined
sorear BrowserUk: I think you need a space after the colon 07:42
BrowserUk phenny: tell ruoso, we could to & fro for ever about whether IO needs a kernel thread or not, and the benefits or otherwise. I spent yesterday knocking up a crude runnable demo to try and give us some feel for the likely benefits. It might be done already were it not that I always have trouble implementing ring buffers. Still chasing a once-per-cycle out-by-one error :(
phenny BrowserUk: I'll pass that on when ruoso is around.
sorear BrowserUk++ taking initiative 07:43
BrowserUk Thanks sorear. I hadn't even noticed that phenny hadn't responded
07:43 SmokeMachine joined 07:45 TiMBuS joined
sorear I /think/ I understand the Cursor API well enough to start the viv regex compiler 07:45
07:47 Trashlord joined, plobsing left
sjohnson snorts [Coke] 07:54
08:03 rv2733 joined 08:04 rv2733 left 08:22 agentzh left 08:24 stepnem joined
moritz_ wonders if there'll be any takers for this week's contribution challenge 08:28
if there's none this evening, I'll try to increase the buzz factor (perlmonks, maybe TPF blog, perlbuzz, reddit)
08:29 arnsholt left, arnsholt joined 08:30 cls_bsd left, cls_bsd joined 08:32 ejs joined 08:37 ejs left 08:38 ejs joined 08:39 frooh joined
moritz_ rakudo: (1..1000).map({.say}).eager 08:39
p6eval rakudo 8292d4: 08:40
..OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤52␤53␤54␤55␤56␤57␤58␤59␤60␤61␤62␤63␤64␤65␤66␤67␤68␤69␤70␤71␤72␤73␤74␤75␤76␤77␤78␤79␤80␤81␤82␤83␤84␤85␤86
moritz_ rakudo: (1..1_000_000).map({.say}).eager
p6eval rakudo 8292d4:
..OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤52␤53␤54␤55␤56␤57␤58␤59␤60␤61␤62␤63␤64␤65␤66␤67␤68␤69␤70␤71␤72␤73␤74␤75␤76␤77␤78␤79␤80␤81␤82␤83␤84␤85␤86
08:41 dakkar joined
moritz_ vim: .say for 1..1_000_000 08:41
sorear moritz_: if you can't hook any newbies I'll take it 08:43
moritz_ sorear: that's nice, but I'd like to wait a week 08:44
mathw masak and I have an agreement next week to recommence work on Form.pm :) 08:49
So tempted though I am to have a go at the command-line thing, I shall not, as I do have my own project 08:50
But first I need to survive tomorrow night
09:06 constant left
moritz_ btw perl 6 development makes me sensible for several kinds of LTA error messages 09:07
take matlab 09:08
>> ones(2, 3) + ones(3, 3)
??? Error using ==> plus
Matrix dimensions must agree.
why not include the mis-matching matrix dimensions in the error message?
09:10 constant joined, constant left, constant joined 09:20 masak joined
masak enters channel in mid-air, spins, lands on his feet 09:21
phenny masak: 17 May 01:19Z <[Coke]> tell masak that I have a working example now of his poker code.
masak: 17 May 01:19Z <[Coke]> tell masak it's just the same code he posted earlier, though. (need some .value()s)
masak: 17 May 03:57Z <eternaleye> tell masak is irclog.perlgeek.de/perl6/2010-05-17#i_2337529 and subsequent a bug?
masak: 17 May 18:10Z <[Coke]> tell masak that I forked his gist at gist.github.com/244255 and that my version adds royalflush and actually seems to work under rakudo-latest.
masak [Coke]: cool.
eternaleye: will check.
a bit of a backlog awaits me :)
moritz_ observes a particular masak fondness in phenny :-) 09:22
09:22 SmokeMachine left
masak :) 09:22
pugssvn r30725 | sorear++ | [viv] A first swing at regex translation 09:49
mathw Everybody loves masak 09:52
Even IRC bots
sorear hugs masak
moritz_ sings "everybody loves masak, what's the matter with you" and apologizes by Don McLean 09:53
mathw starts a campaign to get 'Everybody Loves masak' scheduled to replace 'Everybody Loves Hypnotoad'
09:59 clintongormley joined 10:02 yinyin left
pugssvn r30726 | sorear++ | [viv] Translate <.foo> and <foo> 10:02
moritz_ perlgeek.de/blog-en/perl-6/perl-survey.writeback 10:13
do we want a Perl 6 survey?
what kind of questions would we try to answer with such a survey?
m6locks "when is rakudo star coming out?" 10:14
moritz_ m6locks: that's a question to ask the developers, not the users
m6locks aye, it's still a faq
10:15 agentzh joined
moritz_ FAQs are not what you ask in survey. 10:15
"how do I count the lines in file?" 10:16
10:16 agentzh left
m6locks how about asking them why are they not already enthusiastically programming with perl6 10:16
moritz_ but speaking of releases... today is the Thursday after parrot release!
m6locks after which parrot release?
moritz_ the one on Tuesday, 2.4 10:17
m6locks is it like the most advanced and optimized parrot ever?
moritz_ I think so
m6locks makes note to build rakudo again
moritz_ rakudo startup time is down to 0.4s 10:18
m6locks pretty cool
moritz_ and build resource usage is also more acceptable than at the last release 10:19
m6locks just to make sure, the version is Parrot r46771 ?
moritz_ s/version/revision/ yes
m6locks check 10:20
pugssvn r30727 | sorear++ | [viv] Generate regex circumlogues
sorear I now have viv functionally translating 'token foo { <a> <b> <.c> }'
moritz_ sorear: wow, that commit message has a nice, cryptic feeling to it :-)
sorear: translating to what? 10:21
sorear moritz_: perl 5
moritz_ sorear: so you're re-implementing gimme5 in viv? (or parts/supersets of it)
sorear moritz_: that is the plan, yes 10:22
viv was created by TimToady++ as a successor to gimme5
it's not done
moritz_ bootstrapping++
sorear also, (killing 1000 lines of p5regex)++
colomon o/
moritz_ :-)
10:23 moritz_ sets mode: +oo colomon sorear
moritz_ it's the release manager! 10:23
10:23 sorear sets mode: +o masak
snarkyboojum at least planetsix.perl.org/ made it to the "Which of the following Perl news sites do you read" question 10:23
moritz_ aye, it did
lunch& 10:24
10:29 meppl joined
sorear phenny: msg TimToady : metachar:normspace parsing appears to be broken; 'rule foo { <a> <b> <c> }' and 'rule foo {<a><b><c>}' generate the same AST modulo all-caps flags 10:31
phenny: tell TimToady : metachar:normspace parsing appears to be broken; 'rule foo { <a> <b> <c> }' and 'rule foo {<a><b><c>}' generate the same AST modulo all-caps flags 10:32
phenny sorear: I'll pass that on when TimToady is around.
10:35 JimmyZ left
colomon is starting to get annoyed at the Perl survey. 10:39
snarkyboojum colomon: annoyed why?
colomon so far, a lot of questions which don't acknowledge the existence of Perl 6 10:41
which makes it harder to answer the remaining question
*questions 10:47
snarkyboojum well moritz_ could start a Perl 6 survey :) e.g. gist.github.com/407440
or rather #perl6 could start a survey :)
snarkyboojum hides
colomon so, anyone out there working on last minute patches, or is the current code releasable? 10:55
moritz_++ for working on the changelog 10:56
masak snarkyboojum! 11:03
\o/
snarkyboojum masak-san! \o/
welcome back (I guess)?
masak thank you. 11:04
yep, came back from Russia late last night.
'It's a sad fact that parts of the Perl community haven't realized that Perl 6 is more than a dream, but comes with programs you can run today. -- moritz_++
snarkyboojum I heard you did a cool talk on tardis/sigmund in "the large" conference room?
masak the room was large, yes :) 11:05
snarkyboojum :)
excellent
masak and people seemed to enjoy the talk.
hope to have occasion to give it again once we've gooten further with yapsi/tardis/sigmund. 11:06
snarkyboojum will the talk make it's way online at some stage? :)
its 11:07
masak I'll put it online today.
snarkyboojum o/
masak just thought I'd backlog first. :)
colomon "Erlangen" an okay release name? 11:12
masak think so. what's the motivation? 11:13
colomon ummm. 11:15
something about you giving a talk there, I think?
the discussion was a few days back....
snarkyboojum Erlangen a German city, not any relation to the Erlang programming language I s'pose :)
colomon moritz_ gave the talk. 11:16
m-confusion settled!
moritz_colomon: that's easy, you can name Erlangen.pm
12:59colomon: after my home .pm group where I held a Perl 6 talk this month
.oO(it is too early in the morning to be thinking)
11:17
11:21 ejs left 11:26 ejs joined 11:37 iblechbot left
jnthn o/ 11:43
masak: Welcome back! :-)
masak \o/ thanks
moritz_ masak: how was your talk? 11:44
masak it was a bit on the short side, but I think it was well-received.
the feedback coming back was positive.
jnthn masak: How'd you like Russia? :-)
masak I felt a kinship of a sort with Moscow. 11:45
it's hard to describe.
11:45 fridim joined
jnthn :-) 11:46
masak there were simple things, such as biting into a bread and realizing that my granny used to make that kind of bread... 11:47
I'm also reasonably proud that what little Russian I know helped me naviagte the metro without a problem. 11:48
moritz_
.oO( "It's possible!")
masak :) 11:49
jnthn masak: Yes, a little Russian - especially being able to read - goes a long way down there. :-) 11:50
masak I missed being able to speak better, though. will have to fix that somehow.
jnthn Yeah...I'm hacking on my Russian quite a lot at the moment. Having been to Moscow recently and having Kiev coming up Real Soon is a good motivator, but now I've dug into a routine I'm really enjoying it too. 11:51
moritz_ misses the new talk on feather.perl6.nl/~masak/
masak moritz_: I'll get there sometime today. still wading in backlog.
moritz_ masak: ping me when you've uploaded it 11:52
takadonet morning all
masak jnthn: sounds gread. I'll try that too.
takadonet: \o
moritz_ o/
masak moritz_: sure thing.
jnthn masak: Aye, it's quite a distraction from Swedish though.
11:56 jonasbn left
moritz_ www.w3.org/International/tutorials/...-char-enc/ woah, a lot of effort went into that document 11:57
colomon jnthn, masak, moritz_: can you guys take a look a the changelog (just pushed update) and see if there is anything more to be added? thanks!
moritz_ ++ turned on an additional 47 test files 11:58
woah
jnthn moritz_: Wow...that looks like a good read.
colomon: Will do shortly.
moritz_ if somebody paid me for that, I could imagine spending half of my work time on writing such documents :-) 11:59
masak oh, right. release day today. :)
moritz_ colomon: I've already put in those changes that I thought essential... so if you added more stuff, it's what I missed in the first place :-)
colomon moritz_++ 12:00
is there a git equivalent of "svn cp" for creating new files from old?
dalek kudo: d855135 | (Solomon Foster)++ | docs/ChangeLog:
Add a few more bits to the changelog.
moritz_ colomon: cp, git add $newflie 12:01
colomon: git automatically detects that it's a dupe of an existing file
or a nearly-dupe, if you change it
colomon git++ moritz_++
jnthn colomon: + implemented lexical classes
masak there's an interview that Andrew Shitov did with me on Tuesday: perl6.ru/interviews/carl-masak-on-perl6/
jnthn colomon: It was also lexical roles too
masak snarkyboojum++: you're mentioned :)
moritz_ ah, I was not quite sure
12:01 fridim left
colomon jnthn: what should I say about those? 12:01
moritz_ "classes and roles" 12:02
jnthn colomon: Well, "implemented lexical and anonymous classes and roles"
We never had anonymous roles before either :-)
snarkyboojum masak: really? cool! :)
colomon jnthn++
(added that line locally)
snarkyboojum masak: thanks for the mention :)
jnthn colomon: Otherwise looks pretty good. 12:03
masak snarkyboojum: it's the least I could do. I should have emphasized your role more in the talk as well. 12:04
colomon moritz_: what can I say to justify the name "Erlangen"? 12:05
snarkyboojum awww masak++ :)
moritz_ colomon: it's the home .pm group of a regular Rakudo contributor, and had a Perl 6 talk in May
colomon Is it your home group?
moritz_ yes 12:06
12:06 fridim joined 12:07 [mark] left 12:11 ejs left, sjohnson left, viklund_ left, sorear left, yahooooo left, xomas_ left, simcop2387 left, cognominal left, pjcj left, jjore left, hatseflats left, spinclad left, bloonix left, dhoss left, moritz_ left, pmurias joined 12:14 iblechbot joined, ejs joined, sjohnson joined, viklund_ joined, sorear joined, yahooooo joined, xomas_ joined, simcop2387 joined, cognominal joined, pjcj joined, jjore joined, hatseflats joined, spinclad joined, bloonix joined, dhoss joined, moritz_ joined, card.freenode.net sets mode: +oo sorear moritz_ 12:21 bluescreen joined, bluescreen is now known as Guest43078
masak haven't backlogged yet, so I don't know if this is news: onionstand.blogspot.com/2010/05/get...t-mst.html 12:24
:) 12:25
pmurias transparent seems like a fun option 12:27
phenny pmurias: 19 May 22:03Z <diakopter> tell pmurias re: has int $.foo , yeah, I should change that I guess. I don't see the point of the extra . though
pmurias: 19 May 22:04Z <diakopter> tell pmurias re: subroutine not returning, I don't know...
12:27 Guest43078 left
masak www.shadowcat.co.uk/blog/matt-s-tro...-man-lost/ 12:27
12:28 justatheory joined
moritz_ we should ask Andrew to also publish the English version of the interview 12:30
12:30 ive joined
moritz_ november-wiki.org/recent gives an internal server error 12:33
12:34 justatheory left 12:35 justatheory joined
bbkr rakudo: sub Str {}; say "test" ~~ Str; # how this should behave according to spec? compile error? compare to Str type or enter Str sub and compare to it's output? 12:36
p6eval rakudo 8292d4: OUTPUT«1␤»
12:36 justatheory left
moritz_ bbkr: call sub Str, smart-match against its result 12:36
12:36 justatheory joined
bbkr then it's a bug, isn't it? 12:37
moritz_ yes
bbkr submits
masak bbkr++
12:38 pmurias left
jnthn moritz_: ...oh rly? 12:38
std: sub Str {}; say "test" ~~ Str;
p6eval std 30727: OUTPUT«ok 00:01 114m␤»
masak yeah, I'm also curious why.
why does a lexical sub take precedence over a type name?
jnthn Anyway, I think typename beats sub.
Probably has to 12:39
Since we decide at parse time.
moritz_ but the sub is also known at parse time
jnthn And we don't know about post-declared lexical subs are parse time.
masak checks with viv
moritz_ std: sub Str { }; Str ~~ 1
p6eval std 30727: OUTPUT«ok 00:01 111m␤»
moritz_ std: sub foo { }; foo ~~ 1
p6eval std 30727: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix ~~ instead at /tmp/h4QlShACCM line 1:␤------> sub foo { }; foo ~~⏏ 1␤Parse failed␤FAILED 00:01 112m␤»
moritz_ ok, I was wrong
12:39 Guest43078 joined
moritz_ not a bug 12:39
moritz_ apologizes
jnthn Heh. I really don't want "sub Str {}; say "test" ~~ Str;" and "say "test" ~~ Str; sub Str {};" to behave differently. 12:40
masak indeed not.
pmichaud good morning, #perl6 (briefly)
masak morning, pm.
jnthn pmichaud! \o/
pmichaud any urgent questions needing my attention in the next 2 hours or so?
masak viv is silent on the matter. it only says term__S_identifier.
12:40 ejs left
moritz_ masak: the STD.pm6 run clearly shows that it's parsed as a type name 12:41
12:41 the_sniff joined
moritz_ ponders blogging about the story behind github.com/rakudo/rakudo/commit/603...2e2be6f061 12:41
12:41 ruoso joined 12:42 the_sniff left
pmichaud + pir::set__vps($meth, $meth_name); 12:42
...really?
moritz_ why not?
pmichaud what kind of object is $meth?
moritz_ a parrot Sub
pmichaud weird 12:43
moritz_ it's the clunky interface to set the sub name
pmichaud right
that's what I find weird
has it always been that way?
moritz_ that's what the closure earlier in the method compiles down to
jnthn pmichaud: Yes, 'fraid so.
pmichaud: Like, for ages.
moritz_ is NQP not supposed to build parrot Subs?
pmichaud moritz_: no, what is being done there is fine. 12:44
12:44 justatheory left
pmichaud I was just surprised to see that the 'set' opcode was the way to set a sub's name. :-| 12:44
jnthn pmichaud: I don't think there's a method set_name to do it.
pmichaud: I agree it'd be preferable.
pmichaud that's fine
maybe a comment in the rakudo source that makes it clear we're setting the sub's name 12:45
because that's a little.... obscure
jnthn +1
moritz_ ok, I can add that
pmichaud also, pir::clone__PP can be just pir::clone, I think.
(okay to leave with signature for now)
moritz_ is there a general rule about when the sig can be left out?
12:45 ejs joined
pmichaud not really 12:46
the opcodes that pct knows about don't require the signature
masak moritz_ and others: ping. talk is now up at feather.perl6.nl/~masak/
jnthn always ers on the side of "pct won't know it"
pmichaud in some cases, the opcodes have to have the signatures because there are multiple variants and pct can't be sure which one is intended
well, eventually we'll have to replace all of those pir:: signatured opcodes with something else if we want to port to a different backend 12:47
moritz_ well, there's not much point in cloning non-PMCs
pmichaud (used to be able to clone strings, but can't any more, and it was rare to begin with)
moritz_ yes, I know
pmichaud and the pir:: opcodes will likely become nqp:: or something else for common things
like clone, and add, and ...
jnthn masak: Heh, I didn't expect *that* comment of mine to make it into the talk. :-P 12:48
masak :D
pmichaud is colomon++ still up for today's release?
masak it was a good opener :)
pmichaud ...talk?
moritz_ pmichaud: yes, he worked on the ChangeLog a few minutes ago
pmichaud colomon++
masak pmichaud: bottom of feather.perl6.nl/~masak/
pmichaud masak++ 12:49
I like the adoption curve, esp. the "We are here" part 12:50
12:51 proller left
moritz_ that should make it into the release anouncement of R* :-) 12:51
masak feel free. 12:52
jnthn masak: Yes, I was just on that slide too. It's nice.
12:53 xinming joined
pmichaud well, today I'll be several hours at the treatment center with my wife... should have some good hacking time then if she's not needing me for anything 12:53
jnthn masak: The time travelling debugger "The Problem" slide is nice too.
pmichaud yesterday didn't go at all as planned
12:53 proller joined
masak jnthn: heh, the translator wanted my slides beforehand, and I replied "um, ok... here they are. I don't know how useful they'll be, though. not too many words." :) 12:53
jnthn pmichaud: Sorry to hear that. :-( 12:54
masak: I wonder if we had the same translator.
dalek kudo: 2e71bc8 | moritz++ | src/metamodel/Attribute.nqp:
beautified code a bit, and add comment about pir::set_vps($meth, $meth_name)

No functional changes.
12:56
masak jnthn: no, don't think so.
pmichaud okay, I'm heading off to the center. Should be back online in a couple of hours. 12:57
jnthn o/ 12:58
moritz_ ~\o
jnthn masak: Nice slides...I can imagine it woulda been a great talk. :-)
12:59 ive left
masak jnthn: :) 12:59
moritz_ did you comment on the degree of completeness of the tools you've talked about?
masak I did, in fact.
someone asked how much of sigmund exists today, and I confessed 'not much'. 13:00
13:00 fridim left
masak also, Andrew tried to get Yapsi working, and came back asking 'what's /usr/bin/alpha?'. so I need to update the README for Yapsi. :) 13:00
[Coke] rakudo: for <1 2 3> Z <4 5 6> Z <7 8 9> -> $a, $b, $c { say "$a $b $c"}; 13:02
p6eval rakudo d85513: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are:␤:(Iterable $a-iterable, Iterable $b-iterable)␤:()␤:(Any $a, Any $b)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
[Coke] (I do miss tcl's style of looping over multiple lists simultaneously that doesn't involve having to Z anything.) 13:03
also, bug?
moritz_ yes (and well-known)
[Coke] day 07. =-) 13:04
takadonet for <1 2 3> Z <4 5 6> -> $a, $b { say "$a $b"};
[Coke] willskip. 13:05
takadonet rakudo: for <1 2 3> Z <4 5 6> -> $a, $b { say "$a $b"};
p6eval rakudo d85513: OUTPUT«1 4␤2 5␤3 6␤»
moritz_ rakudo: multi infix:<Z>(*@a) { say @a>>.WHAT }; <1 2 3> Z <4 5 6> Z <7 8 9>
p6eval rakudo d85513: OUTPUT«Str()Str()Str()Str()Str()Str()Str()Str()Str()␤»
moritz_ rakudo: multi infix:<Z>(\$a) { say $a.perl }; <1 2 3> Z <4 5 6> Z <7 8 9>
p6eval rakudo d85513: OUTPUT«No applicable candidates found to dispatch to for 'infix:<Z>'. Available candidates are:␤:(Any $a)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:06 ejs left 13:07 proller left
colomon pmichaud: I'm back working on the release again, just had to watch my boy a bit. 13:08
13:08 proller joined, proller left
colomon "Rakudo now passes 32,347 spectests. We estimate that there are about 13:08
39,500 tests in the test suite, so Rakudo passes about 82% of all tests."
blocking on the rest of the change and improvement list in the announce 13:09
jnthn: can you give me a longer blurb for "implemented lexical and anonymous classes and roles" for the announcement?
moritz_ as the showcase-improvement you can use anon class and roles
:-) 13:10
colomon we're on the same wavelength again. ;)
moritz_ colomon: you can also check in what you have now, to give others the chance to edit it
colomon oo, good thinking.
masak rejected #75214 13:11
moritz_ masak++
13:11 ejs joined
moritz_ moritz_-- 13:11
[Coke] is there a mailing list where all rakudo RT traffic is sent? 13:13
masak p6c.
but not all is sent there, only new tickets and comments explicitly cc:ed.
moritz_ the spammy list 13:14
dalek kudo: 65893e1 | (Solomon Foster)++ | docs/ (2 files):
Work on release announcements.
moritz_ I filter all RT mails into another folder in order not to miss the other mails on p6c :-)
[Coke] what's this construct called: ^4 ?
masak [Coke]: range. 13:15
moritz_ "prefix range"?
[Coke] does it get a modifier to the name since it's only got one explicit endpoint?
moritz_ that's why I'd add "prefix" 13:16
13:17 viklund_ left 13:18 justatheory joined
jnthn back 13:19
colomon: checking what you have 13:20
[Coke] moritz_: yah, that was typed out before I saw your reply ^_^
jnthn s/and the Perl 6 talk they had Moritz/and the Perl 6 talk that Moritz/ 13:21
moritz_ [Coke]: there's not yet a term fully coined, so we have the chance to do it
13:21 ejs left
colomon seems like implemented lexical and anonymous classes and roles 13:21
basic enum implementation
jnthn s/give/gave/
colomon: I'd say something like (for announce)
colomon are both worth mentioning.
13:22 Guest55831 left
jnthn "Leixcal classes and roles were implemented. Additionally, anonymous classes - which were never quite right in alpha - are now implemented more correctly, and anonymous roles are also supported." 13:22
colomon jnthn++ # changes made locally.
jnthn That's probably enough detail on them.
moritz_ btw I've pushed the list of contributors 13:23
colomon moritz_++
I've incorporated jnthn's paragraph and said something about numeric / real changes.
jnthn colomon: Probably also worth noting in the release announce there's been quite a lot of nume...oh, you beat me. :-)
moritz_ "Basic support for enummerations of the form 'enum Weekday <Monday Tuesday ...>' has been restored" 13:24
*named enummerations
colomon just pushed my latest.
moritz_++ 13:25
(suddenly paying attention to spelling errors reported by my editor...)
dalek kudo: 9307272 | moritz++ | docs/announce/2010.05:
[announce] list contributors since last release
kudo: 1c6eb2d | (Solomon Foster)++ | docs/announce/2010.05:
Incorporate jnthn++'s suggestions.
jnthn Maybe it's worth to mention the use :from<perl5> and eval :lang<perl5> that are now suported, so people can try out Blizkost.
13:26 ejs joined
moritz_ good idea 13:26
(colaborative editing)++
colomon jnthn: wasn't sure what to say about those.
should also add it to the changelog probably.
moritz_ somebody on perlmonks pointed out that Perl 6 needs a 'do $homework' operator :-)
colomon moritz_++ # like the "following people contributed" message. 13:27
moritz_ "Basic interoperation with Perl 5 through the external Blizkost [1] project is now supported"
pugssvn r30728 | coke++ | Add code from day07 - one skip; 2 bits of code still need testing.
moritz_ and then a link to blizkost
jnthn maybe like "First cut of use Foo:from<perl5> and eval('foo', :lang<perl5>); needs Blizkost[1] to be installed to work."
colomon link to Blizkost? 13:29
jnthn github.com/jnthn/blizkost
[Coke] moritz_: day07 should be rakudo-clean to run (fudged, still needs 2 things made into tests.)
dalek kudo: c984346 | Coke++ | docs/announce/2010.05:
fix typo, minor formatting.
13:31
diakopter moritz_: yes, sorear is correct; upward type inference
13:33 envi^home joined
lisppaste3 colomon pasted "Current changes and improvements list" at paste.lisp.org/display/100230 13:34
colomon (that's been pushed, as well) Anything else I should add?
dalek kudo: 24e28a1 | (Solomon Foster)++ | docs/ (2 files):
Some spell checking, mention Blizkost.
13:36
13:37 masonkramer left 13:38 rgrau_ joined
colomon pmichaud: can you (should you?) updated spectest-progress.csv before release? 13:40
anyone want to volunteer to be release manager for #31 (July 22nd)? 13:43
[Coke] Sure. 13:44
colomon [Coke]++
13:47 iblechbot left
masak liked blogs.perl.org/users/rodrigolive/20...raise.html 13:47
dalek kudo: 296a56c | (Solomon Foster)++ | docs/release_guide.pod:
Add #29 Erlangen to the release list, and mark that [Coke] has the July release.
13:48
13:51 gbacon_ joined
moritz_ lols at Perl::Critic --praise 13:51
13:53 alester joined 13:54 sahadev joined 13:56 envi^home left, justatheory left
moritz_ rakudo: my @a = 'a' .. 'g'; say 0, *+2 .. @a 13:57
p6eval rakudo d85513: OUTPUT«Method 'succ' not found for invocant of class 'Block'␤current instr.: '!dispatch_.=' pc 438 (src/glue/dispatch.pir:117)␤»
moritz_ rakudo: my @a = 'a' .. 'g'; say 0, *+2 ... @a
p6eval rakudo d85513: ( no output )
colomon moritz_: infinite list 13:58
diakopter determines to implement literal sequences/series *last* in Sprixel
moritz_ colomon: wouldn't it DWIM better to use numeric comparsion for numbers?
colomon diakopter: the series code is entirely in perl 6, you can just copy it if you've got enough of Perl 6 running.
diakopter NIH 13:59
moritz_ std: my @a; @a[0, *+2 ...]
p6eval std 30728: OUTPUT«===SORRY!===␤Bogus term at /tmp/dkABTxL4Up line 1:␤------> my @a; @a[0, *+2 ...⏏]␤Parse failed␤FAILED 00:01 115m␤»
moritz_ std: my @a; @a[0, *+2 ... *]
p6eval std 30728: OUTPUT«ok 00:01 112m␤»
masak a tweet from [the kind person whose laptop I borrowed]++ for the talk, and a picture of me giving the talk :) twitter.com/sharifulin/status/14157475435 14:00
seems his full name is (Анатолий Шарифули)++
moritz_ std: <a b c d e f g>.pairs.grep({.value !% 2})>>.value 14:01
p6eval std 30728: OUTPUT«ok 00:01 111m␤»
diakopter was the talk given in an underground bunker?
moritz_ rakudo: <a b c d e f g>.pairs.grep({.value !% 2})>>.value
p6eval rakudo d85513: ( no output )
14:01 justatheory joined
colomon rakudo: say ("4" + 2).WHAT 14:01
p6eval rakudo d85513: OUTPUT«Num()␤»
moritz_ rakudo: say <a b c d e f g>.pairs.grep({.value !% 2})>>.value 14:02
p6eval rakudo d85513: OUTPUT«abcdefg␤»
colomon moritz_: I don't know.
14:02 uniejo left
moritz_ rakudo: say <a b c d e f g>.pairs.grep({1; .value !% 2})>>.value 14:02
p6eval rakudo d85513: OUTPUT«abcdefg␤»
moritz_ rakudo: say <a b c d e f g>.pairs.grep({.key !% 2})>>.value
p6eval rakudo d85513: OUTPUT«aceg␤»
colomon moritz_: and (I just realized) what did you mean?
say 0, *+2 ... @a is not at all the same thing as say 0, *+2 ... +@a 14:03
moritz_ why not?
colomon series takes an array on the RHS.
moritz_ oh.
colomon (at least by spec) 14:04
only the first element of the array figures in the series calculation, and the rest of the array is simply appended to the end of the series.
moritz_ rakudo: say <a b c d e f g>.pairs.classify({$_ % 2}).Hash.<0>>>.value 14:05
p6eval rakudo d85513: OUTPUT«Method 'Num' not found for invocant of class 'Pair'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
colomon so if numeric comparison was used in your example (and series worked properly with RHS arrays, which I'm not sure it does at the moment), the result would have been
moritz_ rakudo: say <a b c d e f g>.pairs.classify({.key% 2}).Hash.<0>>>.value
p6eval rakudo d85513: OUTPUT«Method 'Hash' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon 0, 'b', 'c', 'd', 'e', 'f', 'g'
moritz_ rakudo: say %(<a b c d e f g>.pairs.classify({.key% 2}))<0>>>.value 14:06
p6eval rakudo d85513: OUTPUT«Method 'hash' not found for invocant of class 'GatherIterator'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ that's a bug
14:06 plobsing joined
moritz_ the hash contextualizer should work with every list-y object 14:06
14:11 pencilk left
masak diakopter: no, it was given in a giant newly-built 'expo' building. 14:11
colomon Hmmm.... interesting that there are zillions of non-zero exit status failures on OS X, but make spectest works perfectly on my 64-bit Linux box. (though this reminds me why I normally use tools/test_summary.pl to spectest.)
masak diakopter: totally modern, actually, with shining floors and all.
moritz_ masak: rt.perl.org/rt3/Ticket/Display.html?id=75174 did you see that one before? 14:12
it sounds far too trivial to have escaped your attention for long
masak moritz_: I was surprised too. 14:13
moritz_: no, haven't seen it before.
diakopter see the 2nd publication on www.thorn-lang.org/
ruoso: see the publications on www.thorn-lang.org/
masak it must have slipped between our fingers as a sufficiently uncommon thing to do.
rakudo: my @a; for 1 { @a = gather { take 42; last; take 5 } }; say @a.perl 14:14
p6eval rakudo d85513: OUTPUT«[]␤»
masak that's wrong too, isn't it?
moritz_ I suspect so 14:15
masak submits rakudobug
rakudo: my @a; for 1 { @a = gather { take 42; } }; say @a.perl
p6eval rakudo d85513: OUTPUT«[42]␤»
masak oh wait.
no, it's not wrong.
unsubmit rakudobug. :)
moritz_ the last; exits the for-loop
masak right. 14:16
so no assignment is ever made.
moritz_ so it's not assigned yet
masak unless the assigment is made before, to an iterator of some sort.
but I don't know the specifics of the semantics there.
moritz_ if laziness was guarantueed, then assignment would have to happen after the first take 14:17
but since it isn't in the case of finite lists...
dalek kudo: 1c32466 | Coke++ | docs/release_guide.pod:
remove extra punctuation.
14:19
masak well, what's the semantics of `@a = gather for 1..* { take $_ }` ?
moritz_ it's supposed to return a lazy, infinite list 14:20
but it's not guarantueed to return control flow after the first take()
it's allowed to return after 10th take() if the compiler thinks that's more efficient 14:21
colomon masak: I don't think we actually know yet. 14:22
masak colomon: ok.
mathw Laziness is cool, but difficult
masak in my browser on proto.perl6.org/ -- the heading 'Project list' is closer to the thing above than it is to the thing below. that looks wrongish.
moritz_
.oO( patches welcome )
14:23
colomon oh, hey, just remembered I've forgotten to look at the roadmap
masak also, I'm still on the lookout for a good suggestion for where to place to project icons. I don't like that they displace the project name and break the nice left margin.
moritz_ masak: then displace all project names 14:24
masak: and make the left margin a bit smaller
ruoso diakopter, the thorn language seems to use a kind of explicitness about threading that we're trying to avoid...
phenny ruoso: 07:42Z <BrowserUk> tell ruoso we could to & fro for ever about whether IO needs a kernel thread or not, and the benefits or otherwise. I spent yesterday knocking up a crude runnable demo to try and give us some feel for the likely benefits. It might be done already were it not that I always have trouble implementing ring buffers. Still chasing a once-per-cycle out-by-one error :(
masak moritz_: I should try that. I fear it might look bad; but I really should withhold judgment and just go for it.
moritz_ or just use a table 14:25
it's tabular data, after all
and it's easy to get the layout right with a table
masak the rationale for using a table is indeed bigger now that we effectively have four columns rather than two. 14:27
ruoso BrowserUk, that's an interesting exercise... I'll be waiting for your conclusions
moritz_ masak: or more, if you put each badge into a column on its own 14:28
ruoso diakopter, have you seen a presentation on that subject in the Moose site?
pugssvn r30729 | moritz++ | [u4x] remove markup that makes it invalid 5POD 14:29
ruoso diakopter, sartak.org/talks/osdc.tw-2010/nonhi...al-oop.pdf
masak moritz_: it would be fruitful to see what degrades nicer in a Lynx-like browser; a table or a dl. I suspect the latter. 14:30
moritz_ masak: last I tried 'links' (another text-only browser) non-huge tables looked fine 14:32
colomon is ready to make release....
moritz_ wonders why u4x.perl6.org/glossary.html still doesn't render properly
colomon "make release" as in the command, that is. 14:33
moritz_ \o/
14:34 iblechbot joined
masak moritz_: well, links goes a little further than other text-based browsers in positioning things the way they would be if t'were graphics. I'm amazed at what good a job it does sometimes. 14:34
dalek kudo: 9021d4c | (Solomon Foster)++ | docs/ROADMAP:
Paradoxically update ROADMAP to note when the last real update to it was.
14:36
masak rakudo: my (@a, @b) = [1, 2], [3, 4]; say @a.perl; say @b.perl 14:37
p6eval rakudo d85513: OUTPUT«[[[1, 2], [3, 4]]]␤[[]]␤»
masak disregarding the double arrays...
this is correct, yes?
moritz_ doesn't think so 14:38
masak why not?
moritz_ if the RHS was (1, 2; 3, 4), then yes
because assignment is not (signature) binding
masak so what should @a and @b contain, respectively?
moritz_ I'm not quite sure 14:39
perl6: my (@a, @b) = [1, 2], [3, 4]; say @a.perl; say @b.perl
p6eval elf 30729: OUTPUT«syntax error at (eval 125) line 3, at EOF␤syntax error at (eval 125) line 6, near "}␤ ="␤ at ./elf_h line 5881␤»
..rakudo d85513: OUTPUT«[[[1, 2], [3, 4]]]␤[[]]␤»
..pugs: OUTPUT«[[1, 2], [3, 4]]␤[]␤»
PerlJam masak: sub foo (@a,@b) { ... }; foo( [1,2], [3,4] ); # same thing that they would contain here.
masak PerlJam: no, that's binding.
moritz_ masak: I kinda suspect that pugs is correct
PerlJam sure, but that's my guess :) 14:40
masak moritz_: so, 'yes' to my original question.
moritz_ oh
14:40 ejs left
moritz_ mis-read the output 14:40
yes
masak good.
uasi++ on Twitter was asking.
colomon wth? 14:41
make test just failed on my release. :(
t/01-sanity/._99-test-basic........ Dubious, test returned 1 (wstat 256, 0x100)
No subtests run
moritz_ reproducible?
colomon t/01-sanity/99-test-basic..........ok
there shouldn't even be a ._99-test-basic, should there? 14:42
moritz_ right
colomon reproducible on this build? yes.
moritz_ colomon: a left-over backup file from an editor in your source tree? 14:43
colomon hmmmmm....
nope, it's not in the source tree that generated the release tar. 14:45
moritz_ is it in MANFIFEST?
colomon but the file is in the tarball
14:45 patspam joined
colomon no 14:46
PerlJam moritz's back-file idea still sounds plausible. 14:47
14:47 plobsing left
PerlJam were you editing that file when you made the tarball? 14:47
moritz_ not if you know how the tarball is made
git ls-files >> MANIFEST
and then the tarball from the MANIFEST
colomon I have not looked at that file in months. 14:48
PerlJam oh, hmm.
colomon weird tar bug?
moritz_ hm 14:49
colomon I'm trying to make release on my Linux box instead....
that appears to lack the file. 14:50
moritz_ tries a local release
colomon now to build...
moritz_ MacOS specific weirdness?
colomon could be, I guess. 14:52
14:57 justatheory left
colomon make test passes now 14:57
14:58 justatheory joined, justatheory left 15:00 isBEKaml joined
colomon make spectest has todo passes. 15:05
ship it! 15:06
15:07 orafu left, orafu joined
colomon okay, uploaded to github.com/rakudo/rakudo/downloads 15:08
if a couple people could check that and make sure it works for them, I'll go ahead and do the announcement.
isBEKaml oh, hai, #perl6! 15:12
colomon o/ 15:13
moritz_ trying it out now
colomon moritz_++
PerlJam too 15:14
moritz_ bemounds the fact that perl Configure --gen-parrot uses serial make for building parrot 15:16
*bemoans
can't type today
colomon I like bemounds as a word. 15:17
[Coke] parrot tries hard to be -j safe.
moritz_ and it mostly is
[Coke] seems like you could allow the user to override that in Configure.
moritz_ (although I just got a failure for make -j3 install in the parrot release) 15:18
but that could be related to me Ctrl+C'ing the previous build attempt
[Coke] moritz_: does it fail on just 'make' or specifically on the install?
moritz_ [Coke]: I configured parrot, ran 'make', aborted, and then ran 'make -j3 install' 15:19
and it seemd to build parrot (at least it linked some binaries), but didn't install
[Coke] if you can duplicate it on a 'realclean, config, make -j3 install' open a ticket, i'll fix it. 15:21
moritz_ sure; testing the rakudo release first
build and 'make test' were clean 15:22
PerlJam same here. still waiting for make spectest 15:23
[Coke] I died on the build with: 15:24
/Users/coke/bird/bin/parrot -o perl6.pbc src/Perl6/Compiler.pir
error:imcc:syntax error, unexpected IREG, expecting '(' ('$I30767') in file 'src/gen/core.pir' line 7951 included from 'src/Perl6/Compiler.pir' line 1
(using installed parrot of most recent vintage.)
moritz_ [Coke]: most recent parrot is bogus
[Coke] I'll do the --gen-parrot. 15:25
moritz_ at least without further rakudo patches
because post-release the gcd opcode as moved to a dynop
15:26 ejs joined
isBEKaml hey folks, is there anything I can do to help today (apart from building the release rakudo that I'm doing & )? 15:26
moritz_ if the parrot folks want to remove that opcode, we should implement it as a dynop in rakudo (as sorear++ suggested)
isBEKaml: you could generate an index file for u4x.perl6.org 15:27
[Coke] isBEKaml: grab an advent day and test it?
isBEKaml moritz_: don't know how to do that...
moritz_ isBEKaml: the code that renders the pod into HTML is in docs/u4x/web in the pugs repo
isBEKaml: just generate an index.html with links to the other generated HTML files
or.. what [Coke]++ suggested 15:28
isBEKaml moritz_: yeah, I worked on it some too. :)
15:29 uniejo joined
isBEKaml [Coke]: I just make realcleaned my base parrot install, so no perl6 for me, as of now(until this build completes) :( 15:29
moritz_ perfect time to write some tests :-)
isBEKaml So I will just prolly get the indexing working.. ;)
15:30 justatheory joined
isBEKaml :-) 15:30
colomon had a momentary surge of pride thinking that the Advent mandelbrot script might have gone into the official p6 test suite. Then remembered I probably was already responsible for thousands of lines of the test suite anyway...
masak isBEKaml++
moritz_ lol
isBEKaml yo, masak! how was Russia?
masak colomon++
isBEKaml: Russia was highly satisfactory. 15:31
isBEKaml lol, colomon! some things are so easy to forget.. ;)
moritz_ in sovjet russia masak was talking
or so :-)
erm, masak talked to *you*
masak but I accidentally the return ticket one day late... :/
which was potentially disastrous.
jnthn masak: So you got an extra bonus day?
isBEKaml masak: so you'd end up saying "Rossiya Matushka" ? ;) 15:32
masak jnthn: no, because the Visa wasn't as confused as I was when I ordered the ticket.
15:33 gbacon left
masak jnthn: fortunately I got a ticket for the right day. I bought it just in time, one hour before departure. 15:33
15:33 gbacon_ left
colomon does building a release do something funky to your t/spec directory? 15:33
15:33 gbacon joined
moritz_ colomon: yes, it nukes it 15:33
colomon bother.
moritz_ colomon: and replaces it by a 'svn export' 15:34
I have a local commit that warns about that
moritz_ feels bad for not having it pushed earlier
masak jnthn: I shudder to think what the Russian authorities would have had in store for me had I deviated from the visa departure date. :-/
colomon moritz_: no worries.
isBEKaml masak: Then there would one too many Russian scowls... :D 15:35
15:35 ejs left
isBEKaml uniquely Russian scowl... 15:35
masak isBEKaml: aye. the ones I got were quite enough, thank you.
isBEKaml masak: No, I meant you, for you already said "Russia was highly satisfactory". Wait, did you just practise that unique Russian scowl? ;) 15:36
masak I don't scowl. life is too short for scowls. 15:37
moritz_ t/spec/integration/advent2009-day02.t (Wstat: 0 Tests: 10 Failed: 1) Failed test: 8
I've seen that failing once before
hash order?
masak I did, however, sigh loudly two or three times before the departure stuff sorted itself out.
jnthn masak: When I do the visa application I tend to deliberately off-by-a-couple it on the start and end date. 15:38
masak: Just In Case.
masak jnthn: is that possible, given that they synch it with the hotel stay?
jnthn masak: Erm...well. :-) :_0
15:38 Lorn left
jnthn masak: Depends how much you're paying for the visa I guess. :-) 15:39
masak apparently there are aspects of all this that I've yet to learn. :)
15:39 ejs joined
jnthn ;-) 15:39
[Coke] 'make spectest' should not do an 'svn up' in a release tarball. 15:40
15:40 christine left
masak moritz_: I don't see any way that test file could be a victim of hash order. 15:41
moritz_ masak: neither do I... except if I typo'ed one of the alternatives (and that is seldom chosen)
15:41 iblechbot left
isBEKaml moritz_: index.html would just be displaying all the html files along with their corresponding pods, right? 15:42
masak moritz_: 'seldom' has to be 50% here.
isBEKaml masak: seldom is "almost none"
:)
moritz_ isBEKaml: link to, not display them
masak well, the test file only contains 50% cases.
moritz_ masak: nobody says that hash order is *truely* random 15:43
it's only possibly random
isBEKaml moritz_: well, I was just referring to linking them (native tongue kicked in, I guess :) )
PerlJam release tarball built and tested just fine here.
masak fwiw, 'e4x' (just like 'proto') is an internal name, not meant for public use. so please use 'doc' or 'docs' or something rather than 'e4x' in public URLs.
moritz_: true. 15:44
15:44 christine joined
isBEKaml The kowner himself just mis-spelt u4x! :O 15:44
or there's e4x too?? 15:45
masak how embarrassing :)
no, it should be 'u4x'.
been a while :P
moritz_ masak: I asked here if I should call the domain 'u4x' or 'doc' or 'docs'...
jnthn
.oO( embarassment 4 christmas )
masak moritz_: I missed that.
[Coke] has some failures in spectest.
masak moritz_: haven't backlogged yet.
moritz_ masak: and I kinda liked the answer "u4x", because it's not yet sufficiently complete or good to act as official 'doc' site, IMHO 15:46
colomon "Bad file descriptor at tools/test_summary.pl line 367."
isBEKaml and it's *special* with loads of X'mas spirit!
moritz_ masak: but adding another alias to is is just one line of apache config file
colomon so how are the release tests coming? (he asked hopefully....)
moritz_ colomon: all pass, except that one advent integration test 15:47
isBEKaml thinks something should be done to remove the core.pir bottleneck in a future release...
colomon shall I announce?
moritz_ wfm
masak moritz_: I don't like the thought of using the name 'u4x' for anything official. the tale behind the name 'proto' shows how easily things get established, and how hard they are to change after the fact. also, see 'pugs repo'. 15:48
moritz_ got a point there
colomon and where? akudo.org, use.perl, perl6-language, perl6-announce, perl6-users, and others seems a little perl6 mailing list heavy.
moritz_ $ ./perl6 -e 'my $c = 0; for ^1000 { my %h = a => 1, b => 2; $c++ if %h.keys.[0] eq "a"}; say $c'
colomon (oh, wait, should tag, too.)
moritz_ 0
or 1000
masak envisions a Perl 6 implementation called 'Akudo' :)
for maximum confusion :P 15:49
moritz_ so currently rakudo hashes seem to chose one hash key at startup, and stick to it
15:49 s1n left
isBEKaml with Aikido! :) Akudo ^^human parsing&& Aikido (PASS!) :) 15:50
PerlJam wonders if kudo-ra means anything interesting
moritz_ colomon: [email@hidden.address] if you care
colomon how do I update rakudo.org? 15:52
moritz_ you log in 15:53
15:53 rgrau_ left
moritz_ and then 'create content' in the left bar 15:53
colomon no account. can I easily create one, or do I need someone else to do this to get it done quickly? 15:54
moritz_ colomon: I think Andy Lester has to give you authoring privs 15:55
colomon: don't know if anybody else got that power... maybe pmichaud?
alester Yeah, it's pretty simple.
moritz_: What's wrong with me, huh? Huh?
Let's fight! 15:56
moritz_ alester: ah, you're present... didn't see you in the nick list
alester: sorr
y
alester Come on, we'll arm wrestle.
colomon: What are you thinkin' of updating/
?
masak the release announcement.
colomon alester: rakudo release announcement
alester Go create an account, tell me what it is, and I can give you privs. 15:57
colomon alester: it's colomon
moritz_ 's arm is pretty weak
but the fingers are strong, easy to write /kick alester if he insits on fighting :-) 15:58
alester The old "might makes right" strategy!
TimToady 'akudo' would mean Way of Evil, so that fits.
phenny TimToady: 10:32Z <sorear> tell TimToady : metachar:normspace parsing appears to be broken; 'rule foo { <a> <b> <c> }' and 'rule foo {<a><b><c>}' generate the same AST modulo all-caps flags
moritz_ alester: the old "we surpress the powerless domain admins" stratgy... oh wait
alester Did I set up a a separate admin account? 16:00
16:00 Lorn joined
TimToady or it could be the Way of Bitterness 16:01
moritz_ has no idea
16:01 moritz_ sets mode: +o alester
alester aha, I did. 16:02
moritz_ decommutes 16:03
alester colomon: Done.
colomon alester++ 16:06
okay, announced at rakudo.org. Rakudo wikipedia page updated. 16:15
jnthn colomon++ 16:17
masak \o/ 16:18
colomon should I just send the announce message to all of perl6-language, perl6-announce, perl6-users at once? 16:19
masak I would. 16:20
16:24 ash___ joined
BrowserUk ? 16:26
TimToady thinks about async IO solutions that depend on polling :) 16:28
PerlJam colomon++ hit perlmonks and use.perl too, if you can. 16:29
PerlJam wonders what sort of reaction we'd get posting release announcements to p5p ;> 16:30
16:35 cdarroch joined, cdarroch left, cdarroch joined
colomon would use.perl involve more than just a post to my use.perl account? 16:37
16:37 madalu joined
PerlJam colomon: nope. 16:37
colomon okay, that's easily done.
wait, story or journal entry (for use.perl)? 16:38
16:38 ash___ left 16:40 justatheory left
[particle] story, iirc, this is news 16:41
PerlJam aye
jnthn I think story is what gets it on the front page.
Or at least submitted to be added to the front page.
BrowserUk had to think about polling asynch IO for serveral long seconds (thinking Oh! No!), before the P(h)enny dropped :)
ruoso hadn't understood until BrowserUk's comment 16:43
BrowserUk ruoso: (As your around), I tried to use go to produce the demo I mentioned, but it's still to flakey. I've coded it in Perl 5, but the GIL and slow shared mem implementation do do it justice. I'm now trying Erlang, but progress is slow. 16:48
*you're
*do do (appropriate:) don't do... 16:49
ruoso what I'm thinking now is that we should assume the interpreter should support different strategies
and some hint in the code to help it decide which one to choose 16:50
TimToady [Coke]: I think of ^ as the "upto" operator
masak nom & 16:52
16:52 masak left
ruoso basically it can go from co-routine-based-cooperative-threading for intensive IO 16:52
colomon use.perl story submitted. 16:53
ruoso to as-many-os-threads-as-necessary
16:53 Eevee joined
BrowserUk Outside of a working demo, the best explaination I can come up with is Amdahl's Law. Starting a whole new kernel thread to support a single IO (sequence)--when that thread would spend most of it's time just waiting for disk/socket/etc., will produce negligable extra gains once you've already threaded the two exspensive calculations. 16:53
ruoso sure sure... the idea is not mixing the strategies in the same code 16:54
16:54 dakkar left
ruoso but choosing one or the other depending on the code 16:54
BrowserUk However, having a single kernel thread sitting around in every process that cooperatively threads all IO requests, and deals with signals/system messages(on Win), is a good idea. 16:55
ruoso hmm... 16:56
but you're just moving the problem from one place to another
BrowserUk How so? 16:57
(And which problem?)
ruoso because the code that will deal with the data coming/going from/to the IO requests will still need to deal with the communication from that thread to they (as opposed to from the OS to them)
colomon perl6 mailing lists "spammed". according to release guild, now time to celebrate.
PerlJam colomon++ yay!
BrowserUk Isn't that where ==> comes in? 16:58
ruoso ==> is just a pipe
BrowserUk (Or <==) 16:59
ruoso you're just moving the buffer from the OS to the program memory
but you still need a buffer
so, no gain
TimToady er, avoiding the OS can be a huge performance gain 17:00
ruoso considering ==> could operate directly in the OS buffe
TimToady, but it's not avoiding... it's just doing that in a single thread
diakopter ruoso: no I didn't see that
BrowserUk Yes, but if IO requests (attached to a pipe), pass their end of that pipe to an appropriate routine in the IO/Event thread
17:00 silug left
BrowserUk Moving which buffer from the OS? 17:01
ruoso considering the following code...
@a <== map { expensive_op_1($_) } <== { expensive_op_2($_) } <== $*IN 17:02
17:02 lokpest joined, \shade\ is now known as {shade}, lokpest left
ruoso you can't have the expensive_op_2 happening in the IO thread 17:02
since it's too expensive for cooperative-threading 17:03
17:03 {shade} is now known as \shade\
ruoso so, if you have a thread that does all the IO operations 17:03
you still need to have a buffer with the data read from the OS and still to be sent to the worker thread 17:04
BrowserUk No. It doesn't Expensive_op_2 runs in a Kernel thread and has one end of that last pipe. $*IN actuall sends a message to the coop thread stating the IO req parameters and passing teh other end of that last pipe.
And the IO thread uses asynchronous read 17:05
ruoso hmm... so you wouldn't be doing all IO requests cooperatively threaded
BrowserUk Yes I would. 17:06
17:06 TiMBuS left, ash___ joined
ruoso since the read op would be done in the worker thread directly 17:06
BrowserUk coop thread == IO thread
ETOOMANYTHREADS :)
Where does "worker trhead" come from?
ruoso it's the thread running the expensive operation
dalek kudo: e3fe329 | moritz++ | docs/release_guide.pod:
[docs] warn about potential damage from "make release"
17:07
TimToady must wander off, alas; play nicely, kids... :)
BrowserUk needs to produce demo....
17:08 ejs left
BrowserUk The thred running teh expesive operation read from the last pipe. The IO thread writes to it, once the data arrives from disk 17:09
ruoso the point is, why not have the original pipe in the therad running the expensive operation?
BrowserUk But pipes are *between* threads aren't they? Not "in" them? 17:10
ruoso I mean... why not having the thread running the expensive operation to read on the original pipe
BrowserUk If the expensive tread wants to read directly from the disk, it doesn't need a pipe. 17:11
ruoso I think we lost ourselves in the discussion...
BrowserUk I don;t know what you mean by "original pipe".
Indeed.
isBEKaml moritz_: ok, I banged up some code. Looks a little hackish, though and needs cleaning up modules.. 17:12
moritz_ isBEKaml: great
ruoso BrowserUk, considering the snippet I posted... I see today two different scenarios...
BrowserUk I'll draw a diagram of why *I* mean and paste it somewhere...
Okay; belay that! Listening.
ruoso 1) all the code runs in event-based-cooperative-threading (usefull for non-expensive operations) 17:13
2) the code runs in different threads (usefull for expensive operations)
BrowserUk Why just those two? What not 3) All IO runs in the IO thread (cooperatively sharing a single kernel thread for operations that are mostly waiting), and expensive operations (can) start a new kernel thread for their duration. 17:15
I have to go for a while: bbl 17:16
ruoso will try to reorganize the ideas
17:17 justatheory joined
sorear appears 17:17
17:18 ash___ left
diakopter sorear: do you have some sample yaml output of STD's parse of itself handy? 17:21
ruoso maybe it's a good idea to have a different "map" that spawns a worker thread to process the input...
diakopter (such as the simple token sequence you committed)
ruoso @a <== map { non_expensive_op_1($_) } <== amap { expensive_op($_) } <== map { non_expensive_op_2($_) } <== $*IN 17:25
where amap stands for "async map"
but it's not really async...
maybe pmap "parallel map"
mtmap -- "multi-thread map" 17:26
sorear diakopter: yaml? no 17:31
moritz_ hyper map 17:33
already exists
don't invent new stuff for the sake of inventiing :-)
BrowserUk aMap is what I've called my Perl5 version: See pastebin.com/6mqwGK1q pastebin.com/v07TPASV pastebin.com/N8jWwuiN. (Going to eat now) 17:40
ruoso moritz_, hyper map? what is the syntax? 17:41
17:43 stephenlb joined
pugssvn r30730 | svatsan++ | [u4x] Generate index.html 17:43
isBEKaml moritz_: Done. Can you look over it and see if it's okay? 17:44
moritz_: I have not written a lot of p5 code, this would be a good time to learn how. :) 17:46
[Coke] TimToady: (upto) ah, catchy. thanks. 17:50
spectest results on tarball: nopaste.snit.ch/20605 17:51
moritz_ ruoso: hyper map $block, @list 17:52
ruoso: hyper is a statement prefix, like sink, gather etc.
isBEKaml: will look at after dinner 17:53
pugssvn r30731 | coke++ | ^ should be called upto' (TimToady++)
ruoso moritz_, hmmm... nice... 17:55
17:59 Jedai left 18:00 ShaneC joined, ShaneC left 18:01 proller joined
[Coke] Advent Testing, claim a day: 9,10,12,13,15-18,20-24 18:01
BrowserUk ruoso: re:@a <== map { non_expensive_op_1($_) } <== amap { expensive_op($_) } <== map { non_expensive_op_2($_) } <== $*IN What is the function of the <== in that if amap starts a thread? 18:02
Why not just: @a <== map { non_expensive_op_1($_) } amap { expensive_op($_) } map { non_expensive_op_2($_) } $*IN
With the remaining <== becoming simply = 18:03
ruoso BrowserUk, indeed... so probably the feed means openning a new thread
18:03 Jedai joined
ruoso and I think I'm back to the "implicit event-based programming" 18:04
which basically means... unless some specific operators define it, it goes in cooperative-threading for its regular operations... 18:05
BrowserUk I thought that <== (originally) meant "lazy". So ... <== $*IN doesn't construct a list, but rather supplies values on demand.
ruoso BrowserUk, it's not *just* lazy 18:06
it also means it is lazy
but, in fact, the eagerness in @a = map { .. }, $*IN happens in the list assignemtn 18:07
not in the map arguments
in that case... 18:08
@a := map { inexpensive_op($_) }, $*IN;
hmm...
BrowserUk Before you posted that lot I'd started to type : For example, I can't see the purpose of @a <== map{ ... ?
ruoso the purpose is allowing the interpreter to batch process @a while the code is still flowing... 18:09
for instance...
[Coke] moritz_: do you have a fix for the gcd thing, or do you want me to fix it?
ruoso @a = map {... # the list assignment forces mostly eager evaluation
@a := map {... # is mostly lazy, but the interpreter won't have time to process yet 18:10
@a <== map {... # is mostly lazy, and the interpreter will spawn that processing in parallel 18:11
BrowserUk Hm. (I thinking-but not yet arguing) That's backward.
ruoso I think I'm getting to cooperative-event-based unless explicitly said otherwise (with <==, or any hyper operator) 18:13
moritz_ [Coke]: have a fix locally, just waited for spectest to finish before I pushed
[Coke] moritz_: ah. it was a comment in a commit. Anyone mind if I bump parrot REVISION?
moritz_: oh, you have it. hokay.
moritz_ .. and pushed 18:14
BrowserUk At compile-time, @=map{... you know the destination is @a. So why not have map populate @a directly, rather than having to apply smarts to @a to take values individually? 18:15
dalek kudo: e6863e4 | moritz++ | (2 files):
bump PARROT_REVISION, and load obscure_ops
18:16
ruoso BrowserUk, my saying doesn't deny that... it's just *when* it happens
plain assignemnt makes it happen at that moment (except when infinite)
bind is replacing the variable for the map return buffer 18:17
feed explicitly says that it should be done in parallel 18:18
[Coke] moritz++
moritz_ isBEKaml: I've run the script -- it sets the CSS path to a local path
18:18 ash___ joined
moritz_ u4x.perl6.org/Pair.html 18:18
<link rel="stylesheet" href="/var/www/u4x.perl6.org/style.css" type="text/css" />
BrowserUk I'll need you to explain "ruosoI think I'm getting to cooperative-event-based unless explicitly said otherwise (with <==, or any hyper operator)" a bit more. And maybe in a paste/post/or email? one line at a time interspersed with other stuff is confusing (To me anyway). I'm still thinking about one line and ten more appear.
BrowserUk is going to go away and draw my little pictures and try to illustrate what I envisage "end-to-end". 18:20
ruoso just trying to summarize (will need to go away for a while): Inside one thread, several coroutines may run in cooperative-threading, they get suspended when they try to read a lazy-and-still-not-evaluated value, they are resumed when the data they are expecting gets ready
some operators (feed and hyper operators) explicitly tells the interpreter to spawn a worker thread to handle that code 18:21
isBEKaml moritz_: yes.. that's from pod2html, thingy.. you can just remove the variable referred to in --cssfile and try again? 18:22
BrowserUk And would those worker threads run cooperative shcedulers?
ruoso BrowserUk, possibly, yes....
isBEKaml moritz_: I assume you're pointing to the location in the document root ?
moritz_ yes
isBEKaml if so, --css=/style.css would do, I guess..
moritz_ right
ruoso BrowserUk, in fact, almost certainly, yes... because the code to be ran in parallel might have other lazy values, and, therefore, they might get suspended and resumed using the same principle 18:23
isBEKaml if that works, I can push that in. I was using it for debugging the script here and generating it to a different folder..
BrowserUk So, you end up with lots of kernel threads, each running cooperative threads. I hate to think about trying to reason about how that lot will interact. 18:24
moritz_ too late
pugssvn r30732 | moritz++ | [u4x] fix css path
isBEKaml anyway, \o/! 18:25
ruoso the interesting part is that I'm back to my original idea :)
BrowserUk Ruoso: Besides IO, what else do you see using cooroutines?
18:26 mantovani left
BrowserUk :) 18:26
18:26 mantovani joined
ruoso BrowserUk, lazy evaluations 18:26
moritz_ gather/take?
BrowserUk Full circle.
Too non-specific. Exampes please?
moritz_ rakudo: .say for gather { for 1..4 { say "taking $_"; take "$_"; } } 18:27
p6eval rakudo 9021d4: OUTPUT«taking 1␤taking 2␤taking 3␤taking 4␤1␤2␤3␤4␤»
moritz_ oh wait, for is still eager
ruoso it wasn't supposed to be 18:28
moritz_ rakudo: (gather { for 1..4 { say "taking $_"; take "$_"; } }).map({.say}).eager
p6eval rakudo 9021d4: OUTPUT«taking 1␤1␤taking 2␤2␤taking 3␤3␤taking 4␤4␤»
moritz_ it's a known limitation
and one that we should soon be able to fix
ruoso cool
moritz_ as soon as we detect sink context
which pmichaud++ plans to do at PAST level very soon 18:29
BrowserUk What is gather doing there that wouldn't work without it: for ( 1.. 4) { say }
ruoso BrowserUk, for 1..*
18:30 mantovani left
moritz_ BrowserUk: it's syntactic sugar for building lazy lists. It's not always that easy to inline as in the example I gave 18:30
18:30 mantovani joined
BrowserUk rakudo: say for gather{ 1..* }.take 10 18:32
p6eval rakudo 9021d4: OUTPUT«Confused at line 11, near "say for ga"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
BrowserUk Don't laugh!
moritz_ BrowserUk: take() must be (dynamically) inside the gather
BrowserUk: it throws a control exception to pass its value to the outside
BrowserUk Seems like a complicated way to deliver iterators... shuflle shuffle!
ruoso rakudo: my @a := gather { for 1..* { say "taking $_"; take $_ } }; say @a[5]; 18:33
p6eval rakudo 9021d4: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 18058 (src/builtins/Junction.pir:381)␤»
ruoso rakudo: my @a = gather { for 1..* { say "taking $_"; take $_ } }; say @a[5];
moritz_ and 'for' is still eager in rakudo, so anything you do 'for' and 1..* is bound to loop
ruoso oops
p6eval rakudo 9021d4: ( no output )
ruoso rakudo: my @a = gather { map { say "taking $_"; take $_ }, 1..* }; say @a[5];
p6eval rakudo 9021d4: OUTPUT«␤»
ruoso okay... that's a bug.... 18:34
isn't it?
18:35 hercynium left
ruoso rakudo: my @a = gather map { say "taking $_"; take $_ }, 1..*; say @a[5]; 18:35
p6eval rakudo 9021d4: OUTPUT«␤»
moritz_ aye 18:36
laziness is still fragile in rakudo
BrowserUk rakudo: my @a = gather map { say "taking $_"; take $_ }, 1..*; say @a;
p6eval rakudo 9021d4: OUTPUT«␤»
ruoso is that a known bug?
moritz_ yes
ruoso closes the mail window
isBEKaml [Coke]: can I take up day 10? Don't know if I will turn in something... :D 18:37
[Coke] isBEKaml: there isn't really a sign up sheet or anything. have fun. =-)
BrowserUk Seems to me that @a = gather ... is synonymous with @a <== ...
ruoso except that "@a <== " explicitly tells to go in parallel
gather is just "go lazy" 18:38
isBEKaml [Coke]: yeah, sure!
moritz_ rakudo: sub f($x) { take $x }; say gather for 1..3 { f $_ }
p6eval rakudo 9021d4: OUTPUT«123␤»
BrowserUk seems to remember that lazy list in Hassel didn't require gathering.
ruoso neither it does in Perl 6
gather is just one way of doing it
moritz_ BrowserUk: it's just the example that's best implemented in Rakudo 18:39
BrowserUk Ok.
cognominal Haskell? don't know about Hassel
BrowserUk said what he meant :)
cognominal that was a pun?
BrowserUk nods. Not enamoured with Hass(k)ell :) 18:40
ash___ aren't there multiple ways of making lists lazy?
moritz_ sure
ruoso yes, there are
map itself generates one
moritz_ ranges
series 18:41
ruoso it's actually harder to produce an eager list then a lazy one
moritz_ 1, 2, *+*, ... * # infinite, lazy list of fibonacci numbers
18:41 iblechbot joined
BrowserUk so (something like) @a = take 3, 1..*; ought to work? 18:41
moritz_ rakudo: say (1, 1, *+* ... *).batch(6)
p6eval rakudo 9021d4: OUTPUT«112358␤»
moritz_ BrowserUk: yes, but without the take 18:43
(you only need that together with gather)
ruoso rakudo: my @a = 3, 1..*; say @a[10]; 18:45
p6eval rakudo e6863e: ( no output )
ruoso pugs: my @a = 3, 1..*; say @a[10]; 18:46
p6eval pugs: OUTPUT«Stack space overflow: current size 8388608 bytes.␤Use `+RTS -Ksize' to increase it.␤»
ruoso ouch
moritz_ rakudo: say (3, 1..*)[10]
p6eval rakudo e6863e: OUTPUT«Any()␤»
moritz_ ouch.
ruoso moritz_, that is correct 18:47
moritz_, because you're not going through any flatenning operator
list assignemnt also flattens
ash___ (3, 1..*) what would that do? 3, 1, 2, 3, ...? i assume
moritz_ rakudo: say (3, 1...*)[10] 18:48
BrowserUk did the same thing in Pure a few seconds ago--still don;t get the syntax.
p6eval rakudo e6863e: ( no output )
moritz_ now *that* should print 10, no?
BrowserUk What does the 3, bit mean/do? 18:49
I meant for take 3, 1..* to take the first 3 elements of the infinite list.
ash___ rakudo: say 1...10
p6eval rakudo e6863e: OUTPUT«12345678910␤»
ash___ rakudo: say 3, 1...10
ruoso BrowserUk, ahh... that's not what take does 18:50
moritz_ BrowserUk: that would be (1...10).batch(3)
p6eval rakudo e6863e: ( no output )
BrowserUk Or (1..*).batch(3)?
moritz_ probably, but NYI in rakudo 18:51
BrowserUk That why I didn't try it...didn't want to crunch it again.
moritz_ that's ok, p6eval is used to dying :-) 18:52
rakudo: say (1..*).batch(3)
p6eval rakudo e6863e: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
BrowserUk is definitely going to draw pictures...bbl
ruoso .oO ( Actually, I'm not back exactly to my original idea, I'm adding automatically marking values as shared to it ) 18:56
isBEKaml [Coke]: Can I test individual test files? (I'm not familiar with testing)
ruoso .oO( where marking as shared means it is thread-safe )
ash___ isBEKaml make t/path/to/test.t should run the test
if you want to run only a single file
isBEKaml ash___: thank you. 18:57
[Coke] ash___: does that fudge it? 18:58
(i've been manually fudging and then running with my installed perl6.) 18:59
moritz_ [Coke]: yes
and don't complain that nobody told you before - it's in the README :-) 19:00
[Coke] moritz_: which readme? 19:01
isBEKaml [Coke]: I believe he's referring to t/spec/README
19:01 ejs joined
moritz_ rakudo's README 19:01
[Coke] moritz_: ... that doesn't help when I'm editing them IN PUGS. :P 19:02
[Coke] reads rakudo's readme.
moritz_ [Coke]: if you don't run them with rakudo, then this particular piece of advice doesn't apply anyway
[Coke] I am running them with my /installed/ rakudo. 19:05
but I see your point. I was more addressing the "no one told me." =-)
moritz_ ok, point taken (installed rakudo) 19:06
19:07 silug joined 19:19 clintongormley left
isBEKaml rakudo: my $t=any(3|5|7); say $t; 19:22
p6eval rakudo e6863e: OUTPUT«any(any(3, 5, 7))␤»
isBEKaml rakudo: my $temp = 5; say "any" if $temp = any(3|5|7); 19:23
p6eval rakudo e6863e: OUTPUT«any␤»
[Coke] moritz_: I was happy I figured out how to manually run fudge on my own. =-)
moritz_ is happy to get an IMCC error message with a line number that's inside the file 19:24
even though I really don't see why it would expect an '(' at the end of a line that returns .return (self) 19:25
s/returns/reads/
[Coke] moritz_: the only time I see imcc barf that horribly (out of file) is when there's an include involved. but I thought c' fixed most of those.
moritz_ [Coke]: three levels of includes, and the liine numbers are wrong on all levels
[Coke] moritz_: shouldn't; sounds like an line number error.
moritz_ trac.parrot.org/parrot/ticket/1652
isBEKaml rakudo: my $temp = 5; say "any" if $temp == any(3|5|7); 19:26
p6eval rakudo e6863e: OUTPUT«any␤»
19:44 \shade\ left 19:47 Eevee left
ash___ can you use a closure or a * with a junction? like: * % 2 & * % 3 to find a number both divisible by 2 and 3? 19:53
19:55 ejs left
ash___ that might be neat if that worked... 19:55
or maybe i have the syntax wrong
jnthn rakudo: my $x = { $^n % 2 } & { $^n % 3 }; say 3 ~~ $x; say 4 ~~ $x; say 6 ~~ $x;
p6eval rakudo e6863e: OUTPUT«0␤0␤0␤»
jnthn oh, but guess maybe wanted 19:56
rakudo: my $x = { $^n !% 2 } & { $^n !% 3 }; say 3 ~~ $x; say 4 ~~ $x; say 6 ~~ $x;
p6eval rakudo e6863e: OUTPUT«0␤0␤1␤»
jnthn The you go.
bkeeler Heyas #p6!
ash___ ah, cool
neat, that works
moritz_ \o/ bkeeler
19:56 ejs joined
jnthn And yes, * % 3 would work one day too, when we has the curry magic. 19:56
o/ bkeeler
ash___ would be neat if you could use * to do that, is that possible?
jnthn Just NYI.
bkeeler moritz_: Howdy. How goes that match object stuff of yours?
ash___ got ya, so its possible, just nyi
jnthn Aye. :-)
Then it'll look really cute. 19:57
moritz_ bkeeler: not at all :(
jnthn !% makes it even more so. :-)
bkeeler moritz_: oh? It sounded promising
moritz_ bkeeler: I have a prototype in a branch, but it's not the Real Thing
bkeeler: and I gave up my struggle with the vtables for now
jnthn Infinite recursion. It's a pain. :-/
bkeeler This is the mob4 branch in rakudo? 19:58
moritz_ yes
if you look at the last commmit, you see what an evil hack I used
19:58 rgrau_ joined
bkeeler I see 19:59
19:59 sorear left
bkeeler This is working around Capture not doing Associative and Positional? 19:59
19:59 sorear joined
bkeeler IIRC the plan was to make Match derive from Capture 20:00
moritz_ nope; I worked around that by deriving from Array and Hash instead
which is another evil hack
jnthn rakudo: say Capture ~~ Positional
p6eval rakudo e6863e: OUTPUT«0␤»
jnthn :-/
bkeeler It doesn't sound like that much work to make Capture do the appropriate roles
moritz_ rakudo: class A is Array { }; my $x = A.new; $x[0] = 'foo'; say $x[0] 20:01
p6eval rakudo e6863e: OUTPUT«Null PMC access in invoke()␤current instr.: 'perl6;Proxy;!STORE' pc 15276 (src/builtins/Routine.pir:117)␤»
bkeeler Is it more complicated than it would seem?
moritz_ and that's another problem
bkeeler: no idea... you can give it a shot
bkeeler I might just do that 20:02
moritz_ jnthn: how can I set up a class in PIR that does role Associative? 20:06
20:08 uniejo left
jnthn moritz_: You don't 20:09
20:09 jaldhar joined
jnthn moritz_: In the setting do like augment ThatClass does Associative { ... } 20:09
moritz_: Associative is defined in core these days.
20:09 \shade\ joined
moritz_ hopes that's early enough for enums in setting 20:09
jnthn: thanks, will try 20:10
jnthn "halp my circularity saw sliced straight through my workbench!" 20:11
20:11 jaldhar left
moritz_ :-) 20:11
wow, I got further this time 20:12
Method 'succ' not found for invocant of class 'Integer'
current instr.: '!create_anon_enum' pc 985 (src/glue/enum.pir:45)
ash___ how do you do binary logical ands and ors? like 0101 AND 0111 == 0100 20:13
jnthn ?& iirc
moritz_ rakudo: say 0b101 +& 0b111
p6eval rakudo e6863e: OUTPUT«5␤»
jnthn ah, yes
rakudo: say 0b101 ?& 0b111
p6eval rakudo e6863e: OUTPUT«1␤»
ash___ ah, so the numeric and? got ya
moritz_ ?& is logical (returns True or False)
jnthn Yeah 20:14
rakudo: say 0b101 ~& 0b111
p6eval rakudo e6863e: OUTPUT«5␤»
ash___ so + & is numeric and, whats ~& do?
jnthn And stringy
moritz_ ash___: coerce to string first
ash___ rakudo: say 'aaa' ~& 'bcb';
p6eval rakudo e6863e: OUTPUT«`a`␤»
jnthn moritz_: Though is ?& coerce to string *after*?
gah 20:15
20:15 jaldhar joined
moritz_ and the circularity chain strikes again... :( 20:15
jnthn too bool
*to
moritz_: Aww. Where this time?
moritz_ enums call $thing.'succ'
to get the value of the next item
and guess where succ is defined...
ash___ the period table of operators calls ~& "buffer and" whatever that means... it also could be out of date
jnthn moritz_: Is that an enum in the setting?
moritz_ jnthn: yes 20:16
jnthn Ah.
That...will be a problem. :-(
moritz_ unless...
we force all enums in the setting to have explicit values
jnthn Or
eval it inside INIT
;-)
(not too serious suggestion)
20:24 Su-Shee left
moritz_ do we have any way to find out if we're inside the setting? 20:25
(except searching for '!YOU_ARE_HERE') 20:26
jnthn moritz_: Well, I guess just about everything should be run within the setting...
That'd be "the way" I guess.
moritz_ except that damned .'succ'() call
jnthn But it's kinda Rakudo-specific and maybe a bit fragile
colomon just peeking back in for a moment -- any release emergencies I've missed? 20:27
jnthn That's a method call...
colomon (apparently I celebrated the release by getting a new phone (Droid) and phone number.)
jnthn Nice!
moritz_ jnthn: ok, if we're compiling the setting is what I want to know
jnthn moritz_: Ah, I see.
moritz_ colomon: no emergencies I'm aware of
colomon moritz_: thanks. :)
bkeeler colomon: Oooh nice indeed
20:27 Guest43078 left
colomon bkeeler: I want to be able to write Perl code for it. That would be worth going back to Perl 5. :D 20:28
moritz_ rakudo: my $x = 3; pir::succ($x); say $x
p6eval rakudo e6863e: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P47')␤ in file 'EVAL_1' line 72␤syntax error ... somewhere␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
moritz_ rakudo: my $x = 3; $x = pir::succ__ii($x); say $x
p6eval rakudo e6863e: OUTPUT«error:imcc:syntax error, unexpected IREG, expecting '(' ('$I50')␤ in file 'EVAL_1' line 22837770␤syntax error ... somewhere␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
jnthn moritz_: succ is a Perl 6 level thing
moritz_: inc is the PIR op 20:29
moritz_ rakudo: my $x = 3; $x = pir::inc__ii($x); say $x
jnthn Though inc is in place.
p6eval rakudo e6863e: OUTPUT«The opcode 'inc_i_i' (inc<2>) was not found. Check the type and number of the arguments␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
moritz_ jnthn: does inc call .succ through vtable overrides?
jnthn rakudo: my $x = 3; $x = pir::inc__p($x); say $
p6eval rakudo e6863e: OUTPUT«Confused at line 11, near "say $"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
jnthn rakudo: my $x = 3; $x = pir::inc__p($x); say $x
p6eval rakudo e6863e: OUTPUT«rtype not set␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
bkeeler I can't wait til I get out of my current contract. I'll probably get a Droid or whatever the latest Android phone is a year from now
20:29 pmurias joined
pmurias diakopter: hi 20:29
jnthn rakudo: my $x = 3; pir::inc__p($x); say $x
p6eval rakudo e6863e: OUTPUT«rtype not set␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
moritz_ rakudo: my $x = 3; $x = pir::inc__vp($x); say $x
jnthn rakudo: my $x = 3; pir::inc__vp($x); say $x
p6eval rakudo e6863e: OUTPUT«error:imcc:syntax error, unexpected ')' (')')␤ in file 'EVAL_1' line 22837770␤syntax error ... somewhere␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
rakudo e6863e: OUTPUT«4␤»
diakopter pmurias: hi 20:31
moritz_ rakudo: class A { has $.x; method succ { $.x + 2 } }; my $x = A.new(x => 5); pir::inc__vp($x); say $x.x
p6eval rakudo e6863e: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 18058 (src/builtins/Junction.pir:381)␤»
moritz_ \o/ it compiles much longer than before 20:32
pmurias diakopter: nice job on the recent perlesque commits
moritz_ like, it actually compiled the setting
20:33 Eevee joined
diakopter pmurias: thanks :) 20:33
pmurias diakopter: re has $.foo, has $foo actually also sets $foo as a lexical alias for $.foo
diakopter ah, oh
moritz_ for $.foo or $!foo?
jnthn for $!foo akshually, I think
moritz_ ok, good
pmurias $!foo, sorry 20:34
diakopter $.foo is public; $!foo is private ?
moritz_ $.foo is a method call
pmurias $.foo is self.foo
moritz_ $!foo is a private attribute
pmurias all attibutes are private
moritz_ jnthn: pushed branch enum-in-setting
pmurias some just have accesors
jnthn $(self.foo) # pendantic
pmurias jnthn++ # striving for correctness ;)
moritz_ jnthn: it gets as far as the iterating in '!setup_named_enum' 20:35
diakopter how does one give an attribute a public accessor
moritz_ Method 'iterator' not found for invocant of class ''
current instr.: 'perl6;Mu;' pc 2601 (src/builtins/Mu.pir:496)
called from Sub '!setup_named_enum' pc 1003 (src/glue/enum.pir:58)
has $.foo; # public getter
pmurias diakopter: has $.foo creates method foo() is rw {$.foo}
s/$.foo/$!foo/
moritz_ has $.foo is rw; # public rw accessor
pmurias -- 20:36
diakopter confuzzled still
ok
I think I get it
class Foo { has int $.b }; my $f = Foo.new(); $f.a += 3; # how is this spelled 20:38
pmurias that's correct
TimToady no
20:38 kel_ joined
pmurias i'm incorrect 20:38
TimToady has int $.b is rw;
pmurias has int $.a is rw
moritz_ jnthn: how would I port method EnumMap.iterator to PIR? :/ 20:39
diakopter yeah, b, oops
pmurias hopes he doesn't get banned for giving incorrect answers
TimToady well they both better be a or both b :)
20:39 Guest43078 joined
[Coke] moritz_: where is that defined? 20:40
diakopter class Foo { has int $.b is rw }; my $f = Foo.new(); $f.b += 3;
moritz_ [Coke]: src/core/EnumMap.pir
jnthn s/pir/pm/ ?
moritz_ erm, yes
pmurias rakudo: class Foo { has int $.b is rw }; my $f = Foo.new(); $f.b += 3;
p6eval rakudo e6863e: OUTPUT«Malformed has at line 11, near "int $.b is"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
diakopter moritz_: what did this mean: <@moritz_> $.foo is a method call 20:41
[Coke] if you can explain gather/take to me, I can translate it. =-)
pmurias it calls the foo method
diakopter oh, you're saying the setter/getter are method calls
jnthn moritz_: Do you just want to iterate over it?
moritz_: If so
pmurias diakopter: yes
PerlJam pmurias: rakudo doesn't grok "int" yet
jnthn $P0 = getattribute the_enum_map, '$!storage'
$P1 = iter $P0
And then see some PIR iterator code somewhere else in the codebase 20:42
moritz_: Bit evil, but you know its an EnumMap, so...
moritz_ jnthn: I just want to return an iterator...
so returning $P1 in your example
pmurias diakopter: has $.foo defines both a $!foo and a getter foo method
jnthn diakopter: It's a bit "fun" becuase has $.foo # declaring a method as well as an attribute
moritz_: Ah...where?
moritz_ in EnumMap
wait 20:43
jnthn We don't have a .iterator() method on EnumMap?
jnthn was sure that was implemented
moritz_ we have
[Coke] if you just want the pir iterator, you have the pir:: call right there. 20:44
moritz_ wait.. is method iterator() in Perl 6 land suppose to iterate, or to return an iterator?
[Coke]: that's the method I want to translate to PIR
diakopter ok, so if I just say that all attributes are by default rw in perlesque, it'll all be kosher-ish
jnthn moritz_: To return one 20:45
moritz_ and gather/take is a form to construct an iterator
ok
jnthn Right.
But we have to be careful here
moritz_ now it starts to make sense... more or less
20:45 hercynium joined
jnthn Because Parrot iterators and Perl 6 iterators work quite differently. 20:45
(Perl 6 signals the end with EMPTY sentinal)
[Coke] so you do want a more literal translate of that from p6 to pir. 20:46
*lation
pmurias diakopter: is accessing an attribute much faster than calling a method on the CLR?
PerlJam diakopter: What, exactly, is perlesque?
moritz_ gives up for today, and retires to bed 20:47
diakopter PerlJam: in this order: diakopter.blogspot.com/2010/05/jsme...smeta.html diakopter.blogspot.com/2010/05/what...whats.html diakopter.blogspot.com/2010/05/perl...tions.html
PerlJam: in particular, the parts after the code on the first one. 20:48
20:49 isBEKaml left
PerlJam diakopter: thanks. 20:49
diakopter PerlJam: it's just that I've written out a summary here in irc like 20 times, so now I'm pointing folks to the blog posts. :) 20:51
PerlJam diakopter: that's great. I know you've talked about it before, but I've only paid about 1/4 attention in the past :) 20:52
20:53 pmurias left, supernovus joined, pmurias joined
supernovus What is the "Integer" class? Is it bleedthrough from Parrot? 20:55
moritz_ yes 20:56
jnthn Yes
supernovus interesting
rakudo: use MONKEY_TYPING; augment class Int { method hi { say "hi" } }; 1.hi
p6eval rakudo e6863e: OUTPUT«Method 'hi' not found for invocant of class 'Integer'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn Ah, *that* issue.
(methods in an augmented class don't get shoved over to the mapped Parrot type) 20:57
diakopter is notably not at GoogleIO10 20:59
pmurias diakopter: see failing test 21:02
dalek meta: r281 | pawelmurias++ | trunk/Sprixel/t/self.t:
added failing test for self
21:03
bkeeler still can never remember to put the comma after the block in map :(
diakopter pmurias: actually that's a parsing issue 21:05
for some reason a semicolon is required between the methods
and after the class
PerlJam bkeeler: use the OOPy form and no comma is required
21:06 ejs left
bkeeler $foo.map { ...} ? 21:06
sahadev hello, #perl6
PerlJam bkeeler: $foo.map : { ... }
er, s/ :/:/
sahadev can i bother you to take a look at gist.github.com/408099 ? 21:07
i tried to change src/core/metaops.pm in order to fix a couple of tests in t/spec/S03-metaops/hyper.t
pmurias diakopter: does that fix the error?
sahadev but I broke a couple of tests that were originally passing. 21:08
i am not sure if what i did is the right fix.
diakopter pmurias: I don't know; I assume so.
looking
pmurias: oh 21:11
it's b/c the bar method has to be declared before it's used
pmurias diakopter: still doesn't fix that 21:12
diakopter hrm 21:13
supernovus Well, hmm, now I've got another interesting bug... if I have some libraries precompiled to .pir I get a syntax error when trying to run/compile another. There is no syntax error otherwise. 21:14
21:15 mikehh_ joined
supernovus Hmm, Unable to parse blockoid, couldn't find final '}' at line 19 21:16
21:16 mikehh left 21:17 mikehh_ is now known as mikehh
diakopter pmurias: for extreme debugging, set debug to true in Grammar/PatternRef.cs :) and rebuild 21:17
dalek meta: r282 | pawelmurias++ | trunk/Sprixel/t/self.t:
update the test to take account perlesque's limitations
21:19 masak joined 21:20 wknight8111 joined
masak hey #perl6. :) 21:20
I'm trying to grok how lexical scopes work. I've been doing thing for a few weeks now, but I thought I'd ask some pointed questions tonight, and maybe reach enlightenment. 21:21
jnthn лолетомезак!
masak :)
that's not a з in my name...
and it's more of an э than an е. 21:22
21:22 quietfanatic joined
jnthn How do you like to translit it? 21:22
мэсак?
masak da.
jnthn: maybe you can be my guide through the lexical scopes jungle?
jnthn Maybe... ;-) 21:23
masak I believe my questions at least partly touch them there protolexpads.
jnthn Ah yes.
Those things we so need but so don't have in Rakudo.
masak nod. 21:24
so, here's where I'm a bit fuzzy right now.
from a discussion earlier this month with TimToady, I gathered that a loop block scope is in some sense 'the same' through each iteration.
maybe it gets reset between iterations, but it's definitely the same something each time around. 21:25
on the other hand, in a fibonacci-like function, it cannot be the same, because then fibonacci really wouldn't work.
so my question is: when do I know when different dynamic scopes map to 'the same' static block, and when they don't? 21:26
jnthn I see it as more of a class vs object analogy.
masak ok.
jnthn That is, there's a bunch of stuff that's the same, but you get an "instance" per call frame.
Apart from in a sense it's more of a clone.
masak ok, so a new call frame gives you new lexical scopes. 21:27
jnthn I guess you could see every object instance as being "like a clone" of the proto-object though I guess.
pmurias diakopter: look at pugs.blogs.com/pugs/2007/10/a-graphical-tra.html
masak aye.
jnthn masak: It gives you a new instance of the storage of the things for that particular "occurence" of the scope, essentially.
masak yeah, but a loop iteration is an "occurrence" of a scope, too. 21:28
jnthn Right.
Since
my @x; loop (my $i = 0; $i < 10; $i++) { push @x, { $^n + $i } }
Needs to do the Right Thing.
masak C-style loops are never the Right Thing. :P 21:29
sorry, I see what you mean. :)
diakopter pmurias: ok..?
jnthn This happens because the closure inside gets cloned at the point you take the closure. It then also has pointers back down the chain to the outer call frame, so that this does not get garbage collected, like it would if we'd taken no closure. 21:30
And that's how stuff ends up referring to the right lexicals in a closure situation. Because they're pointing back to "historical" instances of the scope.
masak TimToady says the closure gets cloned at the entry of the surrounding block. but I guess that amounts to the same in this case.
BrowserUk Is rakudo CPS?
jnthn It's all in a days time travel.
21:30 elmex left
jnthn BrowserUk: Parrot is CPS, and Rakudo is build atop of Parrot, so yes. :-) 21:31
masak: Well, I'm not sure how distinguishable those would be at runtime anyway.
masak jnthn: ok, so there *has* to be 10 instances of the outer scope here, just for the different values of $i to have somewhere to reside.
jnthn: right.
jnthn Right.
masak this helped a lot. thanks.
jnthn Phew, today I was a good guide. :-) 21:32
.oO( though as a guy, I feel I shoulda been a scout... )
masak so, in essence, both recursion and iteration needs to clone their lexical scopes.
jnthn Well, in Parrot, every time you create an invocation record, you get a fresh LexPad along with it.
masak so that closures taken inside them will have something to point into.
jnthn (Context in Parrot terminology)
masak what's the main difference between a sub and a lexpad? 21:33
jnthn has-a
masak nodnod
jnthn Well, not even that
masak but that's just a design thing.
pmurias diakopter: any ideas how to enable something like that for perlesque's grammar?
jnthn I mean
masak why can't a sub just *be* its lexpad?
BrowserUk rakudo: sub x; sub x($I) { --$i and x( $i ) }; x( 10 );
jnthn In Parrot you have a sub which is static
p6eval rakudo e6863e: OUTPUT«Symbol '$i' not predeclared in x␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
jnthn And a LexInfo which is the static bit of the lexpad. 21:34
BrowserUk rakudo: sub x; sub x(my $I) { --$i and x( $i ) }; x( 10 );
p6eval rakudo e6863e: OUTPUT«Invalid typename in parameter declaration at line 11, near " $I) { --$"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
21:34 justatheory left
jnthn And then when you invoke the sub, you get a Context which references both of those and has in it a LexPad 21:34
Those are the runtime parts.
masak BrowserUk: $i, not $I
jnthn A Sub (at the Perl 6 level) is quite a bit more 21:35
It has a Signature, a do (a reference to the low-levely thingy that is the code we run), etc.
masak jnthn: the LexInfo says which variables are in the lexpad, yes? I sorta discovered the need for that when doing lexpads for Yapsi :) 21:36
jnthn masak: Right.
masak: In theory, the LexInfo knows all the staticly knowable things.
masak jnthn: well, an ordinary block also has a Signature, doesn't it?
jnthn And the LexPad is just a storage area.
masak: Sure
masak jnthn: uh, I guess that's my question. what's the data model difference between a sub and a block?
jnthn a Sub isa Block at the class hierarchy level 21:37
Additionally, a Sub is mutable.
(in general, a Routine is mutable)
You can call .wrap on a Routine.
masak ah, right. 21:38
jnthn You can ne do that on a Block.
masak ne.
hm, do the Sub and Block things participate in exception catching? 21:39
or is that purely up to runtime parts of Parrot?
jnthn I guess that's mostly an implementation detail.
masak yeah. just thinking about how much to put subs and (other kinds of) blocks in different stacks. 21:40
jnthn Probably it's fair to say that a block is probably in a has-a relationship.
(has-a relationshp with exception handlers, I mean)
That's what it is in Parrot, afaik.
masak aye.
jnthn And would seem to me to be a sane model. 21:41
masak sounds reasonable.
21:41 elmex joined
masak elmex: hallo! 21:41
BrowserUk rakudo: sub x; sub x(my $i) { --$i and x( $i ) }; x( 10 );
p6eval rakudo e6863e: OUTPUT«Invalid typename in parameter declaration at line 11, near " $i) { --$"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
masak jnthn: again, thanks. I'm out of questions.
rakudo: sub x; sub x($i) { --$i and x( $i ) }; x( 10 ) 21:42
p6eval rakudo e6863e: OUTPUT«Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
masak whoa.
std: sub x; sub x() {}
p6eval std 30732: OUTPUT«===SORRY!===␤Malformed block at /tmp/XzRKUWU2So line 1:␤------> sub x⏏; sub x() {}␤ expecting any of:␤ new name to be defined␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 113m␤»
masak rakudo: sub x($i) { --$i and x( $i ) }; x( 10 )
p6eval rakudo e6863e: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 18058 (src/builtins/Junction.pir:381)␤»
masak oh, indeed. 21:43
21:43 ruoso left
masak rakudo: sub x($i is copy) { --$i and x( $i ) }; x( 10 ) 21:43
p6eval rakudo e6863e: ( no output )
masak rakudo: sub x($i is copy) { say $i; --$i and x( $i ) }; x( 10 )
p6eval rakudo e6863e: OUTPUT«10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤»
jnthn masak: Glad it helped. :-)
masak BrowserUk: there you go. there were some Perl 5 assumptions in there. :)
cognominal jnthn, I managed to fill the void you left by "deserting" fpw2010 : journeesperl.fr/fpw2010/user/138 Well I wrote the abstracts, now I need to write the talks. 21:44
BrowserUk masak: Bound to be I'm afraid. Thanks
jnthn Perl 6: Whatever, la classe joker 21:45
BrowserUk moritz did say it was okay to crash rakudo?
jnthn Talk title win :-)
cognominal jnthn, but you will get due credit for you signature implementation among other things
jnthn cognominal: Sorry I can't make it. One day, I'll master the art of being in two places at once. :-) 21:46
masak BrowserUk: there's no 'sub x' to predeclare subs any more. (and no need.) if you modify a parameter, you have to 'is rw' to modify the original or 'is copy' to modify a copy.
BrowserUk rakudo: sub x($i is copy) { say $i; --$i and x( $i ) }; x( 1000 )
p6eval rakudo e6863e:
..OUTPUT«1000␤999␤998␤997␤996␤995␤994␤993␤992␤991␤990␤989␤988␤987␤986␤985␤984␤983␤982␤981␤980␤979␤978␤977␤976␤975␤974␤973␤972␤971␤970␤969␤968␤967␤966␤965␤964␤963␤962␤961␤960␤959␤958␤957␤956␤955␤954␤953␤952␤951␤950␤949␤948␤947␤946␤945␤944␤943␤942␤941␤940␤939␤938␤937␤936␤935␤934␤933␤932␤931
jnthn cognominal: Looks like some good talks you'll be giving. :-)
cognominal++ 21:47
BrowserUk rakudo: sub x($i is rw ) { --$i and x( $i ) }; x( 1000 )
p6eval rakudo e6863e: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 18058 (src/builtins/Junction.pir:381)␤»
cognominal well, your talks are my inspiration
BrowserUk rakudo: sub x($i is copy ) { --$i and x( $i ) }; x( 1000 )
jnthn :-)
p6eval rakudo e6863e: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:97)␤»
cognominal sometimes the master is way younger than his pupil
masak BrowserUk: 'is rw' there is trying to modify the constant 1000.
jnthn cognominal: I have a white beard to compensate for my youth. 21:48
;-)
cognominal :)
masak BrowserUk: since the param/argument connection has binding semantics, not assignment semantics.
BrowserUk masak: yes of course.
cognominal you need to also get a bigger belly to be a unix wizard.
jnthn cognominal: I was doing well at that, but then I moved to Sweden and beer is more expensive. 21:49
21:50 hercynium left
cognominal for english people , beer is expensive everywhere comparatively. We got complaint from english people at yapc in Paris. 21:51
masak There's More Than One Way To Get A Unix Wizard Belly.
jnthn cognominal: Nah. I found cheaper places than England. :_)
cognominal ...like we could do something about it.
jnthn masak: Eating lots of köttbullar? 21:52
masak jnthn: for example.
21:53 iblechbot left
bkeeler What does a pint go for in England these days? 21:54
masak jnthn: unlike LexInfo, a protolexpad can store values, can't it?
cognominal jonathan has attended or will attend 26 act conferences... 21:55
masak jnthn++
21:55 sahadev left
cognominal I should ask the act admin to run a sql request but I think he is a clear winner 21:55
jnthn cognominal: 26?! 21:56
:-O
bkeeler: Depends where in the UK. 2.50 GPB maybe...
masak: Yeah, well notably containers
masak: Since traits should be applied to 'em once. 21:57
cognominal and that's only for the conferences managed by act.
jnthn cognominal: Aye, though most of Europe is managed by act these days.
bkeeler Interesting
jnthn Er, most European Perl conferences. :-)
masak jnthn: containers are another thing I don't yet fully grok... :/
[Coke] reviews and sees jnthn calling parrot "sane". WOOT.
masak [Coke]: a minor part of Parrot. but still. :P 21:58
jnthn [Coke]: Implementing an insane language on a sane VM is such a drag.
;-)
bkeeler jnthn: So it's about doubled since I left in '92. In the states it hasn't increased as much I think
21:58 kel_ left
jnthn masak: If you work them out, please let me know. :-) 21:58
cognominal World domination starts by Europe and usually fails at that stage due to the russian or the bloody english
masak :)
21:59 Guest43078 left
jnthn bkeeler: It does depend muchly on where you are. One of the big chain pubs (Weatherspoons) in my home town up north still serves some ales for 1.60 or 1.70 or so 21:59
bkeeler Not bad
jnthn Yeah, it works out better at that place to have taste^W^Wlike ale. 22:00
bkeeler I think I went to a Weatherspoons when I was last over. Seems like the Starbucks of pubs
jnthn Yeah
Apart from with a reputation for good prices
Whereas Starbucks always struck me as expensive.
But in terms of the "big chain", yes, certainly. 22:01
bkeeler I don't think much of Starbucks myself
BrowserUk rakudo: sub x($i is rw ) { --$i and x( $i ) }; my $n = 1000; x( $n )
p6eval rakudo e6863e: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:97)␤»
22:01 madalu left
BrowserUk rakudo: sub x($i is rw ) { --$i and x( $i ) }; my $n = 100; x( $n ) 22:01
p6eval rakudo e6863e: ( no output )
jnthn Weatherspoons isn't *bad*, but it's hardly a substitute for a proper cosy traditional pub.
bkeeler But then I have my own Espresso machine and buy from one of the local Portland roasters ;)
BrowserUk rakudo: sub x($i is rw ) { --$i and x( $i ) }; my $n = 500; x( $n )
p6eval rakudo e6863e: ( no output )
jnthn ooh, nice.
cognominal I don't think much of coffee not served in real cup. 22:02
bkeeler Yeah, paper cups don't do it for me either 22:03
22:03 quietfanatic left, Maddingu1 joined
jnthn only tends to drink coffee at home on a morning, or when he makes morning visits to clients. 22:03
Swedish companies often seem to invest in a decent coffee machine.
cognominal or dishwater called cofee served in a bif bowl in american restaurant. 22:04
22:04 arnsholt_ joined
jnthn One of the nice things about working here. :-) 22:04
cognominal on the other hand, it is often done as a welcome gift so I appreciate the intention.
BrowserUk rakudo: sub x($i is rw ) { --$i and x( $i ) }; my $n = 988; x( $n )
p6eval rakudo e6863e: ( no output )
BrowserUk rakudo: sub x($i is rw ) { --$i and x( $i ) }; my $n = 989; x( $n )
p6eval rakudo e6863e: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:97)␤»
jnthn BrowserUk: Parrot (for debugging purposes) currently has an (artifical) recursion limit. 22:05
Hmm. Perhaps we should lift that for Rakudo *.
BrowserUk That's not a hard wired limit is it? Stack overflow? heap exhaustion?
cognominal but I will accept books on an iPad so I am not a passeist for everything
BrowserUk Jnthn: I hit enter before looking up. 22:06
masak rakudo: say (grammar { regex TOP { foo } }).parse("foo")
p6eval rakudo e6863e: OUTPUT«foo␤»
jnthn :-)
masak \o/
BrowserUk But 989 is a weird number for a preset limit?
[Coke] you can override the default setting parrot has for call depth.
[Coke] finds the code....
22:07 gabiruh_ joined, huf_ joined
masak BrowserUk: it's conceivable that 12 levels were used up by Rakudo internals... 22:07
snarkyboojum it's actually 1000 in the parrot source from memory
22:07 Psyche^ joined
bkeeler There are probably a further 11 parrot subs above 22:07
masak snarkyboojum!
snarkyboojum masak o/
BrowserUk mask: good thought.
[Coke] github.com/partcl/partcl/blob/maste...b.pir#L326
22:08 frooh left, arnsholt left, Arroz_ left, colomon left, Patterner left, Maddingue left, huf left, gabiruh left, oskie left, sunnavy left, krakan left, frettled left, Psyche^ is now known as Patterner
[Coke] jnthn: I can apply that to rakudo if you like. 22:08
bkeeler Actually, ever sub you write generates two parrot subs I think, so the limit might be 2000 parrot subs?
22:09 colomon joined
BrowserUk [Coke] link says 10,000 -- or was that a proposal? 22:09
[Coke] that's what partcl does.
(to override parrot's builtin limit.)
22:09 patrickas joined 22:10 Arroz_ joined
patrickas hello 22:10
BrowserUk has no idea what "partcl" is...but I'll take your word for it :)
jnthn [Coke]: Yeah, a lot of people hit it. And it's easy to change again when we need to debug stuff that fails that way and want it to bottom out faster. 22:11
BrowserUk I don;t suppose there's anyway to get the memory used figure for a non-faulting run?
snarkyboojum bkeeler: #define RECURSION_LIMIT 1000 in include/parrot/sub.h
BrowserUk .oO( Download, build, install, run; check memory) 22:13
22:15 peter_ joined, peter_ is now known as Guest91312
BrowserUk Is setup-parrot-2.4.0-rakudo-29.exe all I need for win32? 22:18
masak dunno. depends on what you need, I guess. 22:20
diakopter BrowserUk: I think that's just the rakudo install, it mentions parrot-2.4 in the filename to indicate its dependency; you also need parrot
masak diakopter++ 22:21
jnthn Yes, what diakopter++ said.
BrowserUk Oh, okay. 22:22
But it says "The repository of the binaries for Windows of Parrot (Perl6 VM). The Parrot speaks your language but lives on www.parrot.org/" above the dwnload link? 22:23
diakopter yeah
dog and mirrors
BrowserUk confused. No mention of "rakudo"...no hint that this isn't Parrot. 22:25
diakopter oh
well, install it :) and if it install parrot along with rakudo, great!
but if not, also download/install the parrot installer .exe 22:26
22:26 Guest91312 left
masak rakudo: my &marine = *; marine(marine, marine(marine)); say 'done' 22:26
p6eval rakudo e6863e: OUTPUT«done␤»
diakopter heh heh heh
masak diakopter++ # filling my day with examples like this 22:27
"it's not just weird, it's... diakopter-weird!"
diakopter thought of a new infix logical operator "whether" 22:28
masak spelled '?!'
then `if * ?! * { ... }` would read 'if Whatever whether Whatever, yadda yadda yadda' :P 22:29
diakopter std: say 1 if 2 if 3 { say 3 } 22:30
cognominal jnthn, maddingue who has root access to the act service run a sql script to see the top attendants : nopaste.snit.ch/20606
p6eval std 30732: OUTPUT«ok 00:01 111m␤»
masak o.O 22:31
cognominal so I miscounted, that 27 for you
jnthn :-)
masak runs to viv to check that
diakopter rakudo: say 1 if 2 if 3 { say 3 }
p6eval rakudo e6863e: OUTPUT«1␤3␤»
jnthn o_O 22:33
Well, at least we're consistent.
(with STD)
:-)
diakopter o!O
rakudo: say 1 if 0 if 1 { say 3 } 22:34
p6eval rakudo e6863e: OUTPUT«3␤»
Maddingu1 same thing with the names (because we don't always know who is behind a login): nopaste.snit.ch/20607
22:35 Maddingu1 is now known as Maddingue
masak hey, int32 is a valid Perl 6 type name! 22:35
diakopter yar
jnthn Aww. jnthn ain't :(
diakopter std: class jnthn is YOYOYOYO {} 22:37
p6eval std 30732: OUTPUT«ok 00:01 110m␤»
masak so you can't write 'my jnthn $wrthngtn;' :/ 22:39
diakopter rakudo: say 1 if 0 if 1 { say 3 } # masak
p6eval rakudo e6863e: OUTPUT«3␤»
masak diakopter: I got yakshaved asking viv. surely that's wrong, no? 22:40
masak submits rakudobug 22:41
bkeeler Anyone else getting failures in t/spec/S05-mass/properties-derived.t? 22:45
22:46 justatheory joined
masak bkeeler: haven't checked, but that sounds familiar. those failures might be intermittent and of unknown origin. 22:46
BrowserUk Hm. I followed the windows link from rakudo.org/how-to-get-rakudo to sourceforge.net/projects/parrotwin32/files/. I've download & installed the big green button at the top...found nothing matching *rakudo* ; So I downloaded & installed setup-parrot-2.4.0-rakudo-29.exe into the same directory. *Still* nothing matching *rakudo* in the entire subtree. How do I get this beast? 22:47
bkeeler masak: thanks. I'll ignore em them
masak BrowserUk: I usually run Rakudo with 'perl6', not 'rakudo'.
'Rakudo' is the name of the implementation; 'perl6' is the name of the executable. 22:48
BrowserUk Yup. Perl6.exe is there after the second download. 22:50
But, it it crashes immediatly with missing dll libgcc_s_sjlj-1.dll :( 22:51
snarkyboojum "the big green button at the top" is a windows help file (chm)? 22:52
BrowserUk: from my reading of the instructions you'll need "setup-parrot-2.4.0-rakudo-29.exe" and "setup-parrot-2.4.0.exe" 22:53
BrowserUk: one is under "parrot-rakudo addon" and the other under "parrotwin32 setup"
BrowserUk Snarky...: Yep. That's the two I've pulled and installed 22:54
22:54 masak left
snarkyboojum ah sweet 22:54
22:54 masak joined
snarkyboojum you didn't mention setup-parrot-2.4.0.exe, so I was just checking 22:54
BrowserUk For me, the "big green button" contains the text "Download now! setup-parrot-2.4.0.exe (8.2 MB)" and links to 'sourceforge.net/projects/parrotwin3...download'. I see no .chm file? 22:57
masak std: sub circumfix:<☃ ☄> ($x) {...}; say ☃ 42 ☄; # TimToady++ -- enabling 'use Snowman::Comet;' 22:58
p6eval std 30732: OUTPUT«ok 00:01 115m␤»
BrowserUk And that missing dll doesn't appear to be a part of the MinGW setup either.
22:59 Psyche^ joined
snarkyboojum BrowserUk: weird - we see different "big green buttons" then :) 22:59
jnthn masak: Aww! Really want that in Rakudo now! :-)
masak alpha: say "foo" ~~ m☃foo☄ 23:00
p6eval alpha 30e0ed: OUTPUT«foo␤»
jnthn I'm not going to re-introduce a bug. :P 23:01
BrowserUk Probably detects different systems from browser sig. If you aren't on Win, then it probably doesn't offer you the .exe download (though a .chm probably wouldn't be much use to you either:)
jnthn: What do you use to build Parrot/perl6? 23:02
23:02 Patterner left, Psyche^ is now known as Patterner, masak left 23:03 masak joined
jnthn BrowserUk: Microsoft VC++ compiler and toolchain, plus ActiveState Perl. 23:03
23:03 masak left
BrowserUk the 2005 or 2008 SDK? 23:03
jnthn Think I have 2005 on my desktop and 2008 on my laptop. 23:04
23:04 gbacon left
BrowserUk Okay. I guess I'll try the sources. (But if anyone knows who controls that source forge project, they should be told that it doesn't work--or the Rakudo.org page should be clearer about what is needed.) 23:06
23:09 quietfanatic joined
diakopter ,,,,,,,,, 23:12
BrowserUk Hm Seems the missing dll is a MinGW problem--bugs.debian.org/cgi-bin/bugreport.c...=539033... So, I guess the sourceforge project uses an automated build and no one actually checks that the results run. (That can't be good for the image of P6) 23:16
23:16 pmurias left 23:17 patrickas left 23:18 BrowserUk left 23:23 Maddingue left, Maddingue joined 23:24 justatheory left 23:31 cdarroch left 23:46 Limbic_Region joined
Limbic_Region salutations all 23:46
23:47 ash___ left
quietfanatic rakudo: @*INC = @*INC, 'x' 23:48
p6eval rakudo e6863e: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 18058 (src/builtins/Junction.pir:381)␤»
quietfanatic That's not supposed to be readonly, is it?
sorear (on setting enums) let's just implement protolexpads and have done with it 23:49
ah, I see already mentioned 23:50
23:50 rv2733 joined
quietfanatic rakudo: @*INC.push: 'x' 23:52
p6eval rakudo e6863e: ( no output )
quietfanatic rakudo: @*INC.push: 'x'; say @*INC 23:53
p6eval rakudo e6863e: OUTPUT«./home/p6eval/.perl6/lib/home/p6eval//p2/lib/parrot/2.4.0-devel/languages/perl6/liblibx␤»
quietfanatic but that works. I guess it's infix:<=>'s bug
sorear no, it's not
.push is being buggy there 23:54
@*INC is readonly
23:54 rv2733 left
quietfanatic You mean @*INC should be readonly? 23:54
sorear no, I mean it is readonly
quietfanatic How am I to manipulate my include dirs then?
sorear the fact that you can modify it with .push is an independant bug
my @*INC ::= @*INC ~ "foo" or something like that 23:55
it's a contextual
you shadow it, you don't change it
quietfanatic That makes sense now that you mention it, but it seems a bit unintuitive.
jnthn Note that ::= is, iirc, now readonly binding, not compile time binding. 23:56
quietfanatic yeah
'::= binding not yet implemented at ...' 23:57
:= doesn't work either.
So, I just can't do it right now?
snarkyboojum you could use push (temporarily) :) 23:58
quietfanatic I suppose that's what I'll do.