»ö« | 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.
sorear the cloning IMO should be done in PAST::Compiler; PAST::Block should have a :closure(1) parameter that Rakudo sets when appropriate 00:00
I'm going to ping pmichaud about that for tommorrow's #rs
TimToady um, q:s doesn't turn subst mode 00:01
sorear q:s is quote with scalar interpolation, isn't it?
TimToady :s would turn on scalar interpolation
masak sorear: I was looking more for an implementation-independent answer. :) I'm trying to ready myself for doing this in Yapsi.
00:02 lue left
TimToady (there's also no trans slang now, since it turned out to be the same as character class slang) 00:03
masak that mostly makes sense. 00:04
sorear TimToady: where did subst and trans come in?
masak the only difference, it seems, is that charclasses don't care about ordering. 00:05
sorear masak: Oh. The cloning should be done at the execution time of the block statement.
masak: { $p } compiles into a NEWCLOSURE instruction, which constructs a closure / PAP / trampoline object in the heap, using an entry pointer (static data) and an environment block 00:06
masak swoons
I guess I asked for it.
sorear why?
I'm trying to talk as abstractly as I can
masak you're doing a fine job. :)
sorear there are lots of ways lexical scope has been implemented
TimToady actually, clones are supposed to be done on entry to the surrounding scope 00:07
sorear it's funny, really; when lexical scope was first introduced, it was derided as ivory tower nonsense too inefficient to be used in the real world
masak TimToady: so the 'foo' block in this case?
sorear: and now they're everywhere.
sorear real programmers used dynamic variable lookup for everything and suffered
yeah, well, eventually somebody invented frame pointer + offset 00:08
and lexical scopes weren't inefficient anymore
masak in Yapsi we use hashes of hashes :) 00:09
TimToady masak: see S04:1618 00:10
errands &
masak yay, specref!
sorear ponders patching grok to generate a [####] in front of every paragraph 00:15
TimToady: &:: is sensitive to lexical scoping? wow there's so much I don't know! 00:16
00:16 eternaleye joined
masak sorear: why a [####] ? 00:18
oh, you mean a first-line indent?
sorear I mean with the original line number. 00:19
masak oh.
sorear grok, like any good POD6 renderer, rewraps lines, so line numbers in output are meaningless
00:21 eternaleye left
masak sorear: twice in a row now, I've tried and failed to clone your rakudo repo. 00:25
I'm getting this error: gist.github.com/388783 00:26
00:33 snarkyboojum left 00:34 envi^home joined
masak 'night, #perl6 00:35
00:35 masak left 00:38 alester left
sorear now that is strange 00:41
00:43 snarkyboojum joined
sorear phenny: tell masak - that exact command worked fine for me 30 minutes after you pasted. Could be a race, or a bug fixed before / introduced after git 1.6.6 00:44
phenny sorear: I'll pass that on when masak is around.
01:00 nihiliad joined 01:04 lue joined
lue Hello there! 01:04
01:06 envi^home left 01:07 eternaleye joined
snarkyboojum hi lue 01:08
lue: what are you working on re perl 6 atm? 01:20
lue Right now, I'm trying to code a DNA parser :) 01:21
on contributing to Rakudo, nothing. Can't think of anything.
01:26 nihiliad left, yinyin joined, nihiliad joined 01:30 wknight8111 left 01:34 k23z__ left
snarkyboojum lue: DNA parser? Using Perl 6? :) 01:38
sorear lue: you'll need about 1PB of RAM for that.
what's the going price on that thesedays?
sorear looks through the roadmap for cool things to break (in) 01:39
lue no, it takes the base pairs (DNA code) and converts it to binary code, ready for conversion to readable characters! 01:40
if anything pops up in the noncoding DNA (which is what I'm going for), it'll be very creepy 01:41
such as a string of "42 42 42 42 42 "(etc.) or a message, i.e. "WE ARE SORRY FOR THE INCONVENIENCE". 01:43
TimToady "MIND THE GAP" 01:44
snarkyboojum sorear: fix the REPL to remember variables from one line to the next? :)
lue ooh! that'd be nice :) 01:45
sorear that... ties into other projects of mine
lue TimToady: the gaps in the human genome could mean I get "The Question to Life, the Universe, and Everything is [gap]. Happy?" 01:46
01:46 tylerni7 left
snarkyboojum does there exist a working "play with rakudo" web gui type app? 01:48
there used to for pugs apparently... 01:49
lue I just need to know: if I type «my $filein = open("textfile.txt")», will I get all the contents of textfile.txt in $filein?
TimToady no 01:51
but if you add a .slurp you wil
will
sorear try slurp("textfile.txt")
TimToady that too :)
snarkyboojum was about to say that :) 01:52
TimToady my @lines = lines('textfile.txt') is also supposed to work
sorear thinks he just figured out how to do crazy lexical persistence stunts
lue a simple s/open/slurp/ then.
01:52 tylerni7 joined
snarkyboojum slurp does an open for you 01:52
sorear lines should work too
TimToady and a close
01:53 alester joined
TimToady rakudo: say lines('/etc/passwd') 01:53
p6eval rakudo 1eef08:
..OUTPUT«root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/shman:x:6:12:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmail:x:8:8:mail:/var…
TimToady wahoo
sorear theoretically, p6eval runs in a chroot
snarkyboojum and lines is lazy?
TimToady in theory
snarkyboojum it uses gather in rakudo by the looks of it 01:54
colomon lue: the difference between lines and slurp is that lines creates a lazy array of lines from the file, and slurp creates a single string for the entire file.
lue I'd prefer the string for my case. Good to remember though.
sorear and our strings aren't fully lazy
TimToady which could, conceivably, someday, really be a lazy string on the order of cat(lines($file))
colomon I'm looking forward to cat, actually. :) 01:55
sorear (gawking at the 24 byte per character String representation in Haskell was so much fun)
colomon TimToady: is it presumed that operations like match and split on a cat string will be fully lazy?
01:55 nihiliad left
TimToady yes, well, that's still not grapheme based 01:55
01:55 nihiliad joined
snarkyboojum lazy cats eh 01:55
sorear TimToady: oh? lazy strings ARE planned for Rakudo? 01:56
s/Rakudo/Perl 6/
TimToady colomon: presumably, as long as you don't ask for the length of the string
lue sb: what Andrew Lloyd Webber didn't have :)
colomon TimToady: \o/
TimToady but not necessarily for 6.0
colomon snarkyboojum: just don't get me started thinking about lazy Rats.
;) 01:57
sorear I prefer lazy infinite continued fractions, personally
snarkyboojum colomon: :)
TimToady just so you don't ask for the last digit of pi
lichtkind TimToady: is there a hidden difference between the metoops: zipwith and hyper ? 01:59
colomon TimToady: I don't know what anyone else has planned (and maybe this is totally impractical) but I was kind of hoping to see Cat in Rakudo later this year.
snarkyboojum isn't Mu the last digit of pi? :)
colomon lichtkind: explicit differences, even.
01:59 Psyche^ joined
colomon zipwith is lazy. hyper is hyper. 01:59
lichtkind colomon: what please?
lue
.oO(lazy length of string...)
lichtkind ah thanks
colomon: hyper meaning eager? 02:00
colomon lichtkind: yes.
snarkyboojum or hyperactive? :)
sorear colomon: @*ARGS.map(&slurp).each.say ?
colomon (Though the implementation might be lazy at the moment, now that I think about it.) :)
sorear s/say/print/
snarkyboojum is this the inspiration for Mu in Perl 6? en.wikipedia.org/wiki/Mu_(negative) 02:01
sorear studies YOU ARE HERE
colomon also, zipwith stops when either source list runs out. hyper either extends the shorter list to be the same length as the long one, or fails if they are different lengths, depending on how the >>s point. 02:02
snarkyboojum gosh, there are going to be some curly Perl 6 interview questions one day
colomon rakudo: ((1, 1, *+* ... *) Z/ (1, 2, 3 ... 20)).perl.say 02:03
p6eval rakudo 1eef08: OUTPUT«(1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1, 1/1)␤»
colomon whoops, gather bug
rakudo: ((1, 1, *+* ... *) Z/ (1 .. 20)).perl.say
p6eval rakudo 1eef08: OUTPUT«(1/1, 1/2, 2/3, 3/4, 1/1, 4/3, 13/7, 21/8, 34/9, 11/2, 89/11, 12/1, 233/13, 377/14, 122/3, 987/16, 1597/17, 1292/9, 4181/19, 1353/4)␤»
02:03 Patterner left, Psyche^ is now known as Patterner
lichtkind colomon: thank you 02:04
colomon sorear: if you could figure out how to get closures working correctly, you'd be a hero of the revolution.
snarkyboojum colomon: was that the bug biting your church numbers post?
colomon snarkyboojum: yes. 02:05
sorear colomon: tomorrow, I'll persuade pmichaud to implement closures in PAST::Compiler
colomon sorear: that will work too, of course. ;)
sorear the problem is very simple
closures need to be explicitly constructed in Parrot
PAST::Compiler... doesn't do it
look at --target=pir output
colomon snarkyboojum: and its the gather bug, too.
02:05 nihiliad left, nihiliad joined
colomon *it's 02:06
lue what about binary IO? (in other words, buf)
colomon lue: that's masak's GSoC project.
sorear the sequence to generate a new closure is:
snarkyboojum masak++
sorear .const Sub $P1 = "..."
$P1 = newclosure $P1
capture_lex $P1
if you leave out the second line, you get a lighter-weight lexically scoped block that doesn't close
colomon so that's our problem? one missing line? 02:07
sorear yes
lue GSoC++ for helping us help ourselves
sorear quite probably a deliberate optimization
which is why I'm not proposing to "fix" it without pmichaud consultation
02:07 JimmyZ joined
colomon and it's in PAST::Compiler, so none of us can have permission to change it? 02:07
s/can have/have/
sorear it's in PAST::Compiler. anybody with a parrot commitbit can change it 02:08
but... I suspect this is not a simple oversight
(talking before editing)++
colomon might be worth making the change locally just to see what happens. 02:09
sorear we can work around it at the Rakudo level, by adding a PAST::Op( newclosure PP ) around every PAST::Block
this, however, is 1. wrong 2. not threadsafe
colomon afk # being called to dry dishes
lue grr... rakudo should ignore BOMs (\ufeff) 02:12
.rnd(blender is a niiice program. Too bad you can only script in python) 02:16
lichtkind colomon: S is also eagerß 02:23
?
colomon lichtkind: the S metaop? 02:24
lichtkind yes
colomon I don't know. I've never quite understood what it is intended to do.
lichtkind colomon: its like reduce, but only without autothreading 02:25
colomon which is why I haven't tried to implement it yet. ;)
do you mean like hyper, only without autothreading? reduce doesn't autothread, as far as I know
lue the Perl 6 Programming wikibook has a (uncreated) page on save states. What is that about?
lichtkind lue: i dont know 02:26
colomon lue: no clue
lichtkind colomon: right but reduce has no guaranteed order of execution
snarkyboojum lue: link?
lue Yes, it's a redlink on their ToC 02:27
colomon colomon: reduce certainly does have a guaranteed order of execution.
lue oh! URL. just a second...
colomon [+] 1, 2, 3, 4 = (((1 + 2) + 3) + 4)
lue en.wikibooks.org/wiki/Perl_6_Progra...oncurrency 02:28
that's the scene of the crime, colomon ^^^ 02:31
colomon lue: okay, now I know they're related to multitasking some how. :) 02:33
snarkyboojum software transactional memory? :) 02:34
02:34 wolverian left, fda314925 joined, alester left
snarkyboojum that's my guess anyway :) 02:34
02:34 Danny-xh5ij2 joined 02:35 wolverian joined
lue I know full well the concept of save states, they'd just be interesting to implement in P6 :) 02:36
colomon time for bed... 02:37
lue g'night o/
02:41 synth left 02:53 snarkyboojum left 02:56 xinming_ joined 02:58 plobsing joined, xinming left 03:01 snarkyboojum joined 03:02 alester joined 03:03 Danny-xh5ij2 left, alester left, alester joined
lichtkind good night 03:04
03:04 lichtkind left
snarkyboojum lue: I don't know anything about save states, I was just hazarding a guess :) 03:06
lue yeah. In video game emulation, they allow you to save everything going on in the console at that exact moment. It can be quite a lifesaver. 03:09
03:13 huf joined 03:21 k23z__ joined
snarkyboojum it could be something like Smalltalk's ability to save the state of the virtual machine, but I doubt it :) 03:22
or application state rather
sorear is it just me, or does Rakudo actually not use the lexical referencing environment at compile time? 03:24
03:26 JimmyZ_ joined 03:27 JimmyZ left, JimmyZ_ is now known as JimmyZ
sorear I'm 65% sure that declaring lexical classes in the setting will not work 03:31
the save state mechanism we use is ineffective at compile time, causing Perl6::Actions.is_lexical and Perl6::Grammar.is_name to return false negatives for lexicals inherited from the setting 03:32
those two seem to be only used with ::-ish identifiers, though 03:33
03:34 nihiliad left 03:36 rv2733 joined 03:40 molaf joined
sorear I now understand how to persist lexicals in the REPL. 03:42
03:43 JimmyZ_ joined, JimmyZ left, JimmyZ_ is now known as JimmyZ 04:00 agentzh joined
spinclad [00:08 < sorear> yeah, well, eventually somebody invented frame pointer + offset]: back in Algol 60, no? i saw lexical scopes derided long after that! it took a while to catch on. 04:06
(persisent lexicals)++ 04:08
04:10 JimmyZ_ joined
sorear (being old enough to actually know what you're talking about)++ 04:13
04:13 JimmyZ left, JimmyZ_ is now known as JimmyZ
sorear Algol 60 ... that's 30 years older than me. 04:13
04:16 kaare joined 04:17 kaare is now known as Guest3008 04:18 lestrratz joined, lestrratz is now known as lestrrat, dual_ joined 04:19 christin1 joined
snarkyboojum young whippersnappers :) 04:20
04:22 justatheory_ joined 04:25 justatheory left, christine left, colomon left, alexn_org left, lest_away left, Kovensky left, dual left, justatheory_ is now known as justatheory 04:27 colomon joined, alexn_org joined, ascent_ joined 04:35 molaf left 04:38 jhuni left, jhuni joined 04:39 BrowserUk left
lue goodnight 04:46
diakopter been coding in my head for a few days... sometime soon I should type it out. 04:55
04:56 h joined, h is now known as Guest16604 04:57 Guest16604 left 04:58 jhuni left 04:59 jhuni joined
sorear I could use some clarification on exactly what constitutes void context 05:01
sink, excuse me
05:01 szabgab joined
sorear take, for instance, '@x = big lazy list' 05:01
the return value of infix:<=> is ignored!
so... should the lazy list be forced?
TimToady sink is eager 05:02
sorear exactly
&infix:<=> returns the RHS
05:03 justatheory left
TimToady sez who? 05:03
sorear using &infix:<=> as the top of an expression, therefore, would seem to indicate evaluating the RHS eagerly
TimToady rakudo: (my $x = 2)++; say $x
p6eval rakudo 1eef08: OUTPUT«3␤»
05:05 kst left 05:06 kst joined, eternaleye left
sorear ok, returns the LHS 05:07
either way, the value is exposed to a sink evaluation
TimToady perhaps assignment to an array defeats the eagerness of sink context somehow 05:08
05:10 Sanitoeter left, thowe left, kcwu left, cognominal left, dhoss left, PerlJam left, pnu left, moritz_ left
TimToady the point of sink context being eager is to force side effects; arguably the assignment is the side effect desired 05:10
05:11 Sanitoeter joined
sorear TimToady: I'm wondering how that would work in an implementation, though 05:12
Be eager unless the top node is &infix:<=> doesn't seem very robust 05:13
05:14 deco joined, deco left 05:15 thowe joined, kcwu joined, cognominal joined, dhoss joined, PerlJam joined, pnu joined, moritz_ joined, card.freenode.net sets mode: +ooo cognominal PerlJam moritz_ 05:24 eternaleye joined 05:27 kaare joined, kaare is now known as Guest67868 05:31 [mark] joined 05:32 Guest67868 left 05:33 araujo left 05:47 jonasbn joined 06:04 uniejo joined 06:05 kst left 06:06 kst joined 06:07 meppl joined 06:09 alester left 06:24 iblechbot joined
spinclad sorear: istm that sink pulls eagerly on the top node, whatever it be, and it's fairly natural that &infix:<=> will eagerly deliver the LHS, which lazily consumes the RHS... 06:27
sorear Unfortuately, TimToady hasn't defined WHNF yet.
spinclad WHNF? 06:28
sorear Weak head normal form
the technical term for "pulls eagerly on the top node"
spinclad ah. thanks, i'll go ponder WHNF some then. (/me knows the term 'head normal form', at least.) 06:31
sorear weak head normal form basically just means that it doesn't look inside lambdas 06:34
-> $x { 2 + 2 } # this is WHNF but not HNF
(full disclosure: my programming background involves Haskell quite a bit) 06:35
spinclad (makes sense -- HNF etc are at the roots of lambda-calculus theory) 06:36
06:37 eternaleye left
spinclad i hear the suggestion here that defining WHNF, and the reduction that gets you to it, would be the right step to clarify the normal form that sink context attaches to, and what it does. 06:45
06:45 eternaleye joined
spinclad that it might cut through some of the ambiguity by clarifying the picture. 06:46
06:47 krakan joined 06:48 riffraff joined
sorear the real question is what WHNF means in the context of Perl 06:48
you'll want to consider cases like '$*RNG = slurp "/dev/random"' 06:49
spinclad (does slurp slurp eagerly forever? it produces a single string -- can that string be lazy? slurp's definition defines this...) 06:51
(or the definition of (lazy) strings) 06:52
moritz_ spinclad: it might return a Cat object
06:53 plobsing left
spinclad i'm wondering if the definition of WHNF will be composed of these piecemeal definitions, or is there some more synoptic guidance 06:54
(Cat object: a Rope-like string, a List of segments?) 06:55
moritz_ seems like, yes 06:57
spinclad (when everything is translated to lambdas, the different normal forms are well-defined. we don't have well-defined translation to lambda, at this point; i wonder if it will/may be implementation-defined.) 06:58
06:58 meppl left 07:01 kst left, lestrrat left, athomason left, kst joined, mdxi_ left, jql left
spinclad (a shared STDlambda form would be worth pursuing then, somewhere along the line.) 07:03
07:03 mdxi joined, athomason joined
spinclad (/me babbles away in his ivory tower) 07:03
07:04 lestrrat joined
spinclad (sorear: i don't know how much my babbling intersects with what you intend; i hope at least that it doesn't actively impede your argument.) 07:07
spinclad -> bed & o/ all
07:18 proller joined 07:23 eternaleye left 07:24 rgrau left 07:28 tylerni7 left 07:34 eternaleye joined 07:35 yinyin left 07:36 rgrau joined 07:38 proller left 07:41 araujo joined 07:49 eternaleye left 08:02 eternaleye joined 08:14 lisppaste3 left 08:15 proller joined 08:38 dakkar joined 08:41 riffraff left 08:47 rv2733 left
dalek kudo: 961589a | moritz++ | (10 files):
build on latest parrot

   * loading 'os' and 'file', which are now DynPMCs it seems - Coke++
   * marking all PMCs as either manual_attrs or auto_attrs - cotto++
   * bumping PARROT_REVISION
08:50
moritz_ it seems that perl6.pir isn't used in the build process at all 08:54
can somebody please confirm that?
mathw move it and try again...
:)
dalek kudo: 168024a | moritz++ | src/pmc/objectref_pmc.template:
fix attribute specification in objectref
08:56
08:58 jql joined 09:11 masak joined
masak oh hai, potentials and exponentials. 09:12
phenny masak: 00:44Z <sorear> tell masak - that exact command worked fine for me 30 minutes after you pasted. Could be a race, or a bug fixed before / introduced after git 1.6.6
masak could be.
masak tries again
dalek kudo: e3153ad | moritz++ | perl6.pir:
rm perl6.pir since it is not used anywhere
09:13
moritz_ would welcome feedback on the two soon-to-be blog posts in svn.pugscode.org/pugs/misc/helpnow/drafts/
masak sorear: now it all worked fine.
moritz_: 'are are certain' in the announcement 09:14
sorear hello masak 09:15
masak oh hai
moritz_: I like the idea. this is the kind of thing that got me seriously involved with Rakudo.
sorear What's the easiest way to set a global variable in PAST?
moritz_ maybe a PAST::OP that caslls &infix:<=>? 09:16
seems tehre should be something easier though
arnsholt Isn't there a PAST::Var :scope parameter that gives you set_hll_global?
sorear arnsholt: yes, there is
masak that first task seems very worthy. I hope someone jumps on the challenge. 09:17
arnsholt But that's not what you want? =)
sorear arnsholt: but I'm not past-leet enough to to go from a PAST::Var to an assignment op
arnsholt Oh, right. I think you can use PAST::Op with :pasttype assign
And a PAST::Val or PAST::Var as the RHS
sorear thanks 09:20
moritz_ arnsholt++ # Past::Fu
arnsholt There's also :pasttype set, which is subtly different (but I'm not quite sure how)
sorear oh that's easy 09:21
arnsholt Hehe, thanks. I've been fighting with this a bit myself for Parrotlog
sorear I have Parrot::Fu
and set vs assign is a Parrot thing
set is :=, assign is =
arnsholt Ah, right
sorear assign attempts to modify the existing container
arnsholt Oh, spiffy
sorear Me, I'm just going down the list of 4/4 star ROADMAP items :) 09:22
arnsholt sorear++ # Parrot::Fu =)
sorear hmm 09:25
I've made the REPL behave differently from -e
and now...
no backtraces :(
arnsholt sorear: REPL != -e? Fun ;)
sorear arnsholt: I'm implementing lexical continuity.
In principle it's quite simple. 09:26
I've factored out the YOU_ARE_HERE mechanism into a system of lexical continuations
arnsholt moritz_: You're missing an "a" before "list of known projects [...]" in the third paragraph
sorear at any point in a source file, you can save the lexical environment to a named continuation 09:27
code can be started within the context of a lexical continuation
arnsholt (in the proto article)
moritz_ arnsholt: thanks (the a is in <a> :-)
fixed locallz
locally
sorear we've still got the old YOU_ARE_HERE lexcont, which is used to inject user code into the SETTING
arnsholt moritz_: Also, "woorks" in the end of the first paragraph 09:28
sorear additionally, every comp_unit processed with $*IN_REPL == 1 gets an implicit lexical continuation at the end
so that every line is effectively within the lexical scope of all preceding lines
masak phenny: tell lue that I don't know if it corresponds exactly to what you're working on, but this might interest you: use.perl.org/~masak/journal/39238
phenny masak: I'll pass that on when lue is around.
moritz_ masak: did you notice that rough named enums are back in rakudo? 09:29
cosimo noob question, is there a perl6/rakudo deb to make 'apt-get install perl6' do what I want? 09:30
moritz_ cosimo: I think somebody wants to package parrot 2.3 + Rakudo #28 for debian, but I'm not sure
cosimo: allison usually works on the parrot .deb packages
masak moritz_: I did, and I praised jnthn++ for it in the middle of the night. :) 09:31
cosimo moritz_: parrot is in ubuntu (v1.4.0) 09:32
sorear version *1*? 09:33
moritz_ cosimo: well, that's pre-historic
sorear Symbol '' not predeclared in 'namespace' scope in <anonymous>
arnsholt! I need you.
ah, it should be 'package' scope 09:39
JimmyZ rakudo: my @a = (1,2,3,4); @a>>.say 09:44
p6eval rakudo 1eef08: OUTPUT«1␤2␤3␤4␤»
JimmyZ rakudo: my @a = (1,2,3,4); @a.>>.say
p6eval rakudo 1eef08: OUTPUT«Confused at line 11, near "@a.>>.say"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
09:45 ruoso joined 09:49 k23z__ left 09:51 agentzh left
sorear > my sub foo() { say "hi" } 09:57
> foo
hi
moritz_ does it work with sigiled variables too?
sorear no 09:58
it *should*
but I'll need to find a way to inject symbol knowledge into the PAST compiler
what happens now is that compile-time is blind to settings 09:59
$x statically checks scope, so it fails 10:00
foo dynamically checks scope, so it succeeds
it's just the YOU_ARE_HERE mechanism
pugssvn r30547 | moritz++ | [helpnow] fixes from masak++ and arnsholt++ 10:01
sorear publishes & zzz 10:02
masak now has a built macro-rakudo o/ 10:05
mathw macro-rakudo? 10:06
should I be excited?
moritz_ makrudo? 10:10
masak: sorear++ hacked some basic macro support into his rakudo tree on github 10:11
masak moritz_: that's the one I've now built.
moritz_ erm, I meant to talk to mathw, sorry 10:12
mathw ooh
heh, m<tab> strikes again
viklund makrudo reminds me of the 'bulbous bouffant' song
moritz_ has double-blogged at perlgeek.de/blog-en/perl-6/ 10:14
mathw It makes me think of a big scotsman called Willie McRude'o, the Insulting Inhabitant of Inverness 10:15
masak I always planned to call the macro preprocessor to Rakudo 'makrudo'.
sushi & 10:16
10:18 jhuni left 10:20 kst left 10:21 kst joined
moritz_ $othernom& 10:26
10:30 JimmyZ left 10:39 agentzh joined 10:46 ruoso left 10:49 agentzh left 11:11 kst left 11:12 kst joined 11:29 IllvilJa left 11:30 iblechbot left
moritz_ back from nom 11:36
11:39 chitragupt left 11:43 chitragupt joined 11:48 fridim joined
Guest3008 Whatever happened to cpan6? 11:53
Is that a loaded question?
masak no, just a premature one :)
moritz_ Guest3008: currently the development has stalled 11:54
Guest3008: and we're looking for/building alternatives
Guest3008: see www.perlmonks.org/?node_id=837538 and perlgeek.de/blog-en/perl-6/contribu...bsite.html
takadonet morning all 11:55
masak takadonet: \o
11:59 envi^home joined 12:00 bluescreen joined, bluescreen is now known as Guest29502
colomon o/ 12:01
takadonet Wish I had time to work on bioperl6 today :( 12:02
masak moritz_: when you say 'the development has stalled', are you referring to cpan6.org/ ? 12:03
it was last updated in Januray, and says 'The first release of the CPAN6/Pause6 modules is planned for April 2010.'
moritz_ masak: ooh, I didn't notice that
moritz_ should stop to spread FUD 12:05
moritz_ selfslaps
masak well, it'd help if we actually had any real-time contact with the cpan6.org guy.
I mostly see him at conferences.
moritz_ or any information flow at all. Like blog posts 12:06
masak and the last thing he told me was that he believes that the auth/ver thing of Perl 6 will prove to be a mistake.
snarkyboojum any source code available?
"CPAN6 is under heavy development"
masak snarkyboojum: seems he's putting modules on CPAN, at least.
but whether those tell the whole story, I don't know.
masak tries `macro term:<ohhai> { q[say "OH HAI"] }; ohhai` in sorear++'s makrudo 12:09
it worked! \o/
masak tries `macro term:<LOL> { q[say "LOL"; last] }; for 1..10 { .say; LOL if $_ == 5 }` 12:12
this is awesome. 12:13
takadonet macro term???? 12:16
takadonet waits for his url from masak or moritz_ to explain what is 'macro term'..... 12:17
moritz_ wonders if 'macro LOL' should be shortcut for macro term:LOL
takadonet: when parsing code, Perl roughly distinguishes between terms (literals, control structures etc.) and terms 12:18
masak er.
moritz_ takadonet: macro term:<thing> { ... } builds a macro with name 'thing' that can appear whenever a term is expected
masak should that be 'between terms [...] and operators'?
moritz_ masak: it's a *very* broad simplification
yes 12:19
sorry
masak then I agree :)
moritz_ (and I know, not all control structures are in term position)
masak well, realizing the mechanics of expecting-term and expecting-operator is a vary good first approximation of the Perl 6 parser, if you ask me.
Guest3008 moritz_: That's the blog that led to my question :-) (and sorry for the answer delay ...) 12:20
moritz_ it's just that some operators (prefix, circumfix) appear when terms are expected
Guest3008: ah, great
masak it can then be fleshed out with details, such as prefix ops being in term position, and some control structures being special forms.
moritz_ Guest3008: my current position is that I don't want to wait for cpan6, because I don't understand it, and the development process is opaque to me 12:21
masak moritz_: right, and both prefix and circumfix restore the term expectation in the parser.
moritz_ and statement modifying control flow is expected in terminator position, or so :-)
Guest3008 moritz_: No, don't wait, of course. The challenge looks good; right now it's not easy to find the Perl6 projects. 12:25
12:25 _jaldhar left
masak that's true. the thesholds to entry are still way too high. 12:26
12:27 Guest3008 is now known as kaare, kaare is now known as Guest80365 12:29 IllvilJa joined
moritz_ well, and I'm trying to lower tresholds where I can 12:29
12:30 jonasbn left
takadonet thanks for the explaination guys 12:32
moritz_ takadonet: so no more blog post necessary? :-)
takadonet moritz_: I take one if you have one or a pointer to which perl 6 spec doc 12:33
moritz_ std: 4++<foo>
p6eval std 30547: OUTPUT«ok 00:01 109m␤»
moritz_ takadonet: not yet, but I might write one some day
takadonet: in the back of my mind I'm always collecting ideas for new posts
takadonet moritz_: sounds good
moritz_ sometimes I'm in this state where I want to be productive, but don't want to do any heavy coding - that's when I write blog posts 12:34
12:39 synth joined 12:42 rv2733 joined
masak moritz_++ # Perl 6 challenges 12:46
12:47 ruoso joined
colomon moritz_++ indeed 12:49
masak std: 4++while &o.O 12:50
p6eval std 30547: OUTPUT«ok 00:01 108m␤» 12:51
masak tries `macro term:<][> { q[ "two" ] }; say "Apple ", ][` 12:54
it prints "Apple two" !
moritz_ woot
masak but `say ][` doesn't work...
I think that's a bug.
sorear: I think I may have found a bug. 12:55
12:58 chitragupt left 13:22 chitragupt joined 13:25 fridim left 13:28 viklund left
pugssvn r30548 | kyle++ | ran util/purge-empty-dirs.pl -- old v6/mildew gone 13:33
13:37 JimmyZ joined 13:43 plobsing joined, lrnperl6 joined
lrnperl6 good morning all 13:46
moritz_ good morning lrnperl6 13:47
PerlJam lrnperl6: nice nick :)
lrnperl6 moritz_ : just the guy i was looking for :)
PerlJam: thanks
masak morning, lrnperl6! 13:48
moritz_ lrnperl6: good. Though maybe others could help you too, I'm not omnipresent or anything :-)
lrnperl6 masak: morning
moritz_: it's regarding your today's blog post
masak welcome to our humble not-yet-evenly-distributed future! :)
13:49 constant left
PerlJam masak: are you saying we'll be evenly distributed at some point? that seems to be working against entropy. 13:49
:)
masak PerlJam: I have a hard time imagining something more evenly distributed than heat death... :P 13:50
moritz_ quite the contrary - right, what masak++ said
lrnperl6: sure, shoot
masak PerlJam: and given what Rakudo does to my processor fans...
lrnperl6 you asked for 3 things, i can do first and third one
a script to fetch all the info and dump into json 13:51
13:51 constant joined
moritz_ lrnperl6: that would be a great start 13:51
PerlJam heat death? that's just like believing in fairies or the FSM or string theory. We've got a whole bunch of unexplained stuff in the universe, so there's no telling the probability of heat death. 13:52
;)
moritz_ writing a small HTML template and feeding the data into it should really be a small effort, which I can do
masak: would it be allright to deposit the website building scripts in the proto repo at some point? 13:53
lrnperl6 moritz_: ok. so here is what i've thought
masak moritz_: certainly.
13:53 Lorn left
PerlJam moritz_++ masak++ lrnperl6++ 13:54
lrnperl6 moritz_: a script will fetch the data and will create a dir for each project containing json file for details
moritz_: parent dir of these dir will have a index file(that too can a json file) will have project name and it's dir
moritz_: will that be ok?
moritz_ lrnperl6: yes, sounds great
lrnperl6 moritz_: but it will a python script :) 13:55
masak yay! python! 13:56
PerlJam lrnperl6: we don't have any particular language prejudices.
masak slithers around doing the HSSSSSS sound
none whatsoever. :>
PerlJam lrnperl6: although COBOL is probably not looked upon with favor
moritz_ lrnperl6: I don't know python very well myself, but that's OK - then I'll have a good reason to learn it when I want to extend it :-)
lrnperl6 I think am at the right place 13:57
moritz_ there are many programming languages I don't know; most of them because I haven't had a good reason to learn them
13:58 alester joined
moritz_ others because I can't yet wrap my head around them (haskell) 14:00
14:01 Lorn joined
masak I suspect Haskell is like Git -- not really difficult, just consisting of primitives that don't mesh well with the primitives most of us have learned. so it takes a bit of unlearning. 14:04
moritz_ aye 14:05
masak in other news, continuations are really simple. really.
moritz_ they are 14:06
masak that's what I said.
moritz_ I can nicely imagine continuations in perl
I have more problems with monads
masak monads are simple too.
as evidenced by how many on the web are explaining them :)
moritz_ yes; but they don't make sense in perl
masak collects monad tutorials in his spare time 14:07
moritz_ well, everybody who understands monads writes a tutorial about them, at some point
masak they don't make much sense in a side-effect environment.
colomon I remember sailing through the Haskell book back in the early pugs days, only to hit monads and toss the book away with a big WTF?
moritz_ but the problem with monads is not the lack of tutorials 14:08
but that you have to stay with them for a while and play around
14:08 JimmyZ left
moritz_ and then you'll finally grok them, and ask yourself "why didn't anybody tell me this simple truth before?" 14:08
masak :) 14:09
moritz_ and the you re-read the tutorials, and you'll find that they actually do
you were just not ready to understand them
masak "if I have to understand category theory to write a program that does IO, IT IS A NON STARTER!" -- this is my main kvetch with monads. (from www.xent.com/pipermail/fork/Week-of...54578.html ) 14:10
moritz_ haskell isn't exactly a starter, in that sense :-)
14:11 SmokeMachine joined 14:14 plobsing left, JimmyZ joined
moritz_ lrnperl6: I'm curious how you found my blog post - have you beeen following Perl 6 development for some time already? 14:16
typically my readers are mostly perl 5 or perl 6 programmers 14:17
lrnperl6 moritz_: sort of. my google reader suggested me to subscribe to "planet perl six" feed 14:20
moritz_ cool
google++
14:25 SmokeMachine left
colomon random p6 question: 14:30
is there a good way to partition a list into to bits with something like a grep?
I mean, you can say my @even = @numbers.grep({ $_ !% 2 });
moritz_ colomon: classify 14:31
colomon my @odd = @numbers.grep({ $_ % 2 })
moritz_ grep for it in S32-list/
don't know if implemented in master, but should be trivial to port from alpha
colomon even used my example!
:)
moritz_++ 14:32
actually not trivial, I think
at least, the example uses binding....
masak that binding example is awesome.
moritz_ that's the usage example, not the implementation
colomon ah, yes.
moritz_ colomon: signature binding is implemented... you just have to formulate it as a smart match, or as a routine/block call 14:33
14:33 molaf joined
colomon alpha: (1..10).classify({ $_ !% 2 }).perl.say 14:34
p6eval alpha 30e0ed: OUTPUT«Method 'classify' not found for invocant of class 'Range'␤in Main (file src/gen_setting.pm, line 324)␤»
colomon alpha: (1...10).classify({ $_ !% 2 }).perl.say
p6eval alpha 30e0ed: OUTPUT«Method 'classify' not found for invocant of class 'List'␤in Main (file src/gen_setting.pm, line 324)␤»
moritz_ thought it was implemented at some point
alpha: Array.classify
p6eval alpha 30e0ed: OUTPUT«Method 'classify' not found for invocant of class ''␤in Main (file src/gen_setting.pm, line 324)␤»
moritz_ maybe I'm wrong
colomon alpha: my @a = 1..10; @a.classify({ $_ !% 2 }).perl.say
p6eval alpha 30e0ed: OUTPUT«Method 'classify' not found for invocant of class 'Perl6Array'␤in Main (file src/gen_setting.pm, line 324)␤»
colomon needs to remind himself he doesn't have time to implement this this morning.... 14:35
moritz_ maybe I can give it a shot later tonight
masak moritz_: I distinctly remember someone, probably you, starting to implement it.
colomon I was just translating the Perl 6 code where I wished I had that capability into C++...
14:37 uniejo left
colomon the reason it would be a bonus there is the classifying function is actually relatively slow, so calling it twice on all the array elements would be a pain. 14:37
masak seems it was frew, on 2009-03-03: irclog.perlgeek.de/perl6/2009-03-03#i_951396
frooh man, I don't remeber that at all 14:38
:-P
14:38 iblechbot joined
masak frooh! \o/ 14:39
frooh :-D
masak is anyone aware of a tool that starts from a grammar or EBNF-y thing, and generates interestingly distributed examples of things that parse according to the grammar? 14:41
I know jnthn has talked about starting such an effort.
moritz_ masak: I know that such a tool exists for regexes on CPAN 14:42
arnsholt Well, it's not a theoretically complicated thing to do, mostly
colomon seems like I recall discussion on that last year?
moritz_ masak: and that MJD talks about that in HOP too
colomon HOP++
arnsholt One thing that might be non-trivial is attaching probabilities to the different productions
masak moritz_: oh, right. HOP. 14:43
arnsholt Seeing how productions tend to not be equally likely
moritz_ masak: is there any topic it doesn't cover? :-)
masak arnsholt: indeed.
arnsholt But a first approximation would be to top-down recursively generate a parse 14:44
Should be pretty simple once you have a strategy for the probabilities and some data structures
masak arnsholt: a first prototype might just assign equal probabilities to each alternation alternative. 14:45
arnsholt Yeah, definitely
masak arnsholt: whether 'tis better to do it transitively (like Perl 6) or not (like Perl 5) is not something I have a good intuition for :) 14:46
arnsholt Transitively?
14:46 clintongormley joined
masak prepares an example 14:46
14:47 cotto left
masak regex foo { <bar> | 3 }; regex bar { 1 | 2 } 14:47
treating the alternatives transitively would mean hoisting up the 1 and the 2 to the same level as the 3.
14:47 SmokeMachine joined
moritz_ a *first* prototype would do it not transitively 14:48
because it's more work :-)
masak but in any case, the alternatives are always finite, so they're easy.
quantifiers may be unbounded.
and hence they cannot have a rectangular distribution.
moritz_ you need $n**$exp where $exp < -1 14:49
masak yah, something like that.
arnsholt Oh, modifying the grammar before you do stuff would definitely by a later addition
Cause that's definitely not trivial
Another question is which probabilities you want to maximise
masak arnsholt: the cool thing about Perl 6 grammars is that alternation transitivity is the default :)
arnsholt That's due to LTM, isn't it? 14:50
moritz_ for LTM, yes
14:50 chitragupt left
moritz_ LTM defines "declarational prefixes" 14:50
or so
and these are transitive
arnsholt Yeah, I remember reading about that when looking into the Quad thing
14:51 cotto joined
masak right. a declarational prefix is the part a rule that doesn't involve actions of some kind. 14:51
it's a have-the-cake-and-eat-it thing.
moritz_ perlgeek.de/en/article/longest-token-matching
delarative I've called it in there
14:52 ash_ joined 14:54 proller_ joined, proller left
masak @tell sorear that `macro postfix:<san> { q[~ "san"] }; say "sorear"san` just prints "san\n" 14:54
phenny: tell sorear that `macro postfix:<san> { q[~ "san"] }; say "sorear"san` just prints "san\n" 14:55
phenny masak: I'll pass that on when sorear is around.
moritz_ masak: time you start to write some tests, no? :-)
masak :)
14:56 christin1 left 14:57 christine joined
ash_ moritz_ i found a partial solution to the closure issues 14:58
phenny ash_: 03 May 23:25Z <sorear> tell ash_ - please contact me before raising more heckles over broken closures in PCT. You're duplicating a ridiculous amount of work I did a week ago.
ash_ ah, well sorear already knows about it, oops
moritz_ well, I don't know yet 14:59
ash_ its missing a pir::newclosure after you create the lambda, both nqp and rakudo are not currently calling newclosure so when you make lambda's they aren't retaining their lexical values properly 15:02
colomon #rs in 3.5 hours or 4?
moritz_ 4
ash_ here is the example we were working with yesterday:
nqp: sub foo($i) { return { $i } }; my $a := foo(4); my $b := foo(3); say($a(), $b()); 15:03
p6eval nqp: OUTPUT«33␤»
moritz_ do you know which component of the compiler should be patched to include the newclosure call?
ash_ nqp: sub foo($i) { return pir::newcolsure__PP({ $i }) }; my $a := foo(4); my $b := foo(3); say($a(), $b());
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P21')␤ in file 'EVAL_1' line 44␤Could not find non-existent sub newcolsure␤current instr.: 'foo' pc 83 (EVAL_1:0)␤»
ash_ oops, i can't spell 15:04
nqp: sub foo($i) { return pir::newclosure__PP({ $i }) }; my $a := foo(4); my $b := foo(3); say($a(), $b());
p6eval nqp: OUTPUT«43␤»
15:04 JimmyZ_ joined
moritz_ looks convincing 15:04
ash_ umm, i would imagine it needs to be after you create a lambda, but i haven't found the exact spot
masak ash_: S04:1618 15:05
ash_: when you enter the surrounding scope.
TimToady told me yesterday.
by the way, I've also independently discovered the need for pir::newclosure -- or rather, I discovered the symptoms and pmichaud++ showed me how to work around them. that was two or three weeks ago. 15:06
ash_ ah, there you go, i was just trying to find the place that made sense to me
masak we're rediscovering the same bug and the same fix a lot here :)
ash_ hehe
15:06 JimmyZ left
moritz_ and we'll keep doing that unless we fix it. 15:07
PerlJam now all that needs to happen is for someone to actually apply the fix!
15:07 JimmyZ_ is now known as JimmyZ
masak PerlJam: it's non-trivial. 15:07
ash_ yeah, but one question, should it be fixed in nqp? or rakudo? Or both independently?
PerlJam masak: For some reason, I'm not surprised :)
masak PerlJam: pmichaud started doing it the straightforward way, and got lots of spectest failures.
moritz_ ash_: I guess fixing it in nqp would be a good first step
unless it's really a PAST problem 15:08
PerlJam I guess sorear was working on the NQP fix?
moritz_ in which case it should be fixed in the PAST compiler
and then nqp and rakudo would magically work :-)
masak it might well be a PAST problem. 15:09
seems to me neither nqp nor Rakudo should behave like they do now.
ash_ sorear: ping?
masak nor any sane HLL, for that matter.
colomon sorear claimed it was PAST problem last night. 15:10
15:12 molaf left 15:15 nihiliad joined 15:19 skangas left 15:20 kst left 15:22 kst joined 15:25 Trashlord joined 15:38 _buno_ joined, _buno_ left 15:40 Trashlord left 15:41 Trashlord joined
masak rakudo: class A { multi submethod foo() { say "OH HAI" }; method bar { foo(self) } }; A.new.bar 15:43
p6eval rakudo 1eef08: OUTPUT«Could not find sub &foo␤current instr.: 'perl6;A;bar' pc 553 (EVAL_1:50381579)␤»
masak should that work? 15:44
S12 says 'Within a class, C<multi submethod> is visible to both method-dispatch and subroutine-dispatch.'
ash_ masak, should it be: 15:45
rakudo: class A { multi submethod foo() { say "OH HAI" }; method bar { self.foo } }; A.new.bar
p6eval rakudo 1eef08: OUTPUT«OH HAI␤»
PerlJam ash_: he was testing the sub-dispatch case.
masak ash_: that's the method-dispatch, no? 15:46
what about the sub-dispatch?
PerlJam masak: seems like it should work to me.
ash_ oh, got ya
masak submits rakudobug
ash_ i thought submethod was exactly the same as method except it is not inherited 15:47
TimToady we may revise that, and require a my or our for a submethod to be visible as a sub
masak I'll include that in the ticket.
TimToady that was written back before has did not imply my or our
PerlJam Though, the text from S12 may have been written when subs (and presumably submethods) were "our" and it was a natural consequence. 15:48
PerlJam needs to type faster
ash_ rakudo: class A { our multi submethod foo() { say "OH HAI" }; method bar { foo(self) } }; A.new.bar
p6eval rakudo 1eef08: OUTPUT«OH HAI␤»
TimToady in fact, it was written before we made explicit the fact that all methods are really subs in disguise
it's all just lambdas, really :)
masak TimToady: still, methods usually resist being called as subs in Perl 6. 15:49
TimToady merely security through obscurity :)
methods hide themselves by default
masak indeed. but my point is that S12 as it stands goes against that.
please change it :)
TimToady feel free
masak has been volunteered 15:50
TimToady I'm busy thinking about weak head normal forms, and how they might relate to Perl 6's monads :)
masak and the RT ticket vanishes in thin air! incredible!
PerlJam license to spec! Is there a designation like 00 for that? I guess it could be S0, but that could get confusing :)
masak S007 -- James OO Bind. 15:51
colomon S00
TimToady anyone with a pugs commit bit has a license to spec; we just don't tell 'em that at the start :)
15:52 lrnperl6 left
ash_ monads in perl 6? so, which paradaigm is perl 6 not going to support? or is there one? 15:52
PerlJam TimToady: there "can change the spec" and there's "TimToady said it's okay". The latter gets weighted a little more.
TimToady and pretty much anyone has a license to kill, provided it's "justifiable"
masak ash_: I believe it was a bit of a joke...
PerlJam ash_: Perl 6 is a 100 year language (give or take :-)
ash_ i know, i was joking too 15:53
masak oh. then I was joking too when I explained that it was just a joke. 15:54
TimToady it's just that for Mr. Bond, the notion of 'self-defence' kinda fuzzes into 'selves-defence'
masak rakudo: class A { our method foo { say "OH HAI" }; method bar { foo(self) } }; A.new.bar 15:55
p6eval rakudo 1eef08: OUTPUT«OH HAI␤»
15:56 JimmyZ left
masak so, is it the 'our' that makes methods (and submethods) participate in subroutine-dispatch nowadays? 15:56
or 'my', I guess.
it places the method in the lexical and/or package scope, and makes it callable as a sub.
TimToady depends on how much insecurity-through-non-obscurity you desire 15:57
masak are you saying I can spec it however I want? :)
PerlJam no, he /already/ said that ;)
masak *gasp*
TimToady however, remember there's such a thing as justifiable homocide... 15:58
15:58 justatheory joined
masak that takes of the pressure. 15:58
s/of/off/
TimToady so if you spec it wrong, we will merely evaluate your monad to completion of its computation 15:59
and then you will have no more side effects
PerlJam you'll be stable! 16:00
(and, as such, ready for release)
masak masak.0.0!
16:04 lichtkind joined 16:06 cdarroch joined, cdarroch left, cdarroch joined 16:09 M_o_C joined 16:11 nihiliad left, nihiliad joined 16:14 kaare joined, kaare is now known as Guest96979
lichtkind h 16:15
i
pugssvn r30549 | masak++ | [S12] dug out a fossil
r30549 |
r30549 | The paragraph was written a couple of OO changes back, and doesn't apply
r30549 | so much. Changing it to apply a bit more.
lichtkind what is the difference between reduce and S metaop?
moritz_ they do different things :-) 16:16
it's like asking "what's the difference between a banana and a telephone?"
PerlJam moritz_: DNA ;) 16:17
lichtkind haha 16:18
PerlJam lichtkind: the S meta-op just makes things happen sequentially that otherwise aren't guaranteed to happen sequentially. 16:19
lichtkind moritz_: but both get chained on a list and produce a skalar
ah thanks PerlJam 16:20
moritz_ so I don't see why it should produce a scalar
16:20 patrickas joined
lichtkind and S is eager? 16:21
moritz_ I don't think so, but the operations you apply it to usually are 16:22
PerlJam I don't think eagerness is a property of S at all.
colomon S meta-op does not necessarily produce a scalar.
moritz_ if you use a » or « meta op, they are eager (and even hyper)
and if you apply S to them, they are still eager 16:23
it doesn't really make sense to apply S to something like zip
masak moritz_: in your distributed-vcs post 'Fixed then link.' should be 'the'.
colomon might make sense if S goes down more than one level.
PerlJam But Perl is not about to deny you some nonsense if you really want it :)
masak: URL? 16:24
masak PerlJam: perlgeek.de/blog-en/perl-6/distributed-vcs.html
moritz_: "DVCS'" should probably be "DVCSes" or something.
PerlJam heh. s/anohter/another/ too
moritz_ updated
16:25 meppl joined, Guest96979 left
PerlJam audrey++ 16:25
moritz_ audreyt++ even
16:26 nihiliad left
PerlJam moritz_: 2 other minor things: s/By know it/By now it/ and s/done three thing/done three things/ 16:28
moritz_++ 16:29
git is very much like perl. The more I use it, the more it just seems to "fit"
moritz_ should learn how to type and spell some time
PerlJam++ # thanks, fixes are on their way
ash_ git is also written in perl, or bits of it are
moritz_ but not much, iirc 16:30
PerlJam what's really amazing (to me) is how well Perl 6 maintains the same "ability to fit" as Perl 5 and even enhances it.
ash_ i know parts of git-svn are written in perl, (as in macports they require perl 5 with the svn bindings)
moritz_ PerlJam: maybe related to some intersection of perl 5 and perl 6 language designer(s) :-)
ash_: ah, that can very well be true 16:31
I've also heard rumors that the test suite uses perl
16:31 skangas joined
ash_ sqlite's test suite still amazes me 16:31
moritz_ but I haven't bothered looking at the test suite and find out if it's true
ash_: agreed
PerlJam moritz_: sure, but even with all the things that have changed, the spirit is the same. (yes, I realize that was an explicit design goal. I just boggle at how well that goal was achieved :) 16:32
TimToady++
TimToady now just convince everyone else of that :) 16:33
16:34 patrickas left, patrickas joined
TimToady and Perl 6 is even still cork-brained in spots, just like Perl 5 :) 16:34
PerlJam TimToady: If I could find more than a fleeting passion for writing, I would turn out article after article that showed just how awesome Perl 6 is. 16:35
16:35 molaf joined
ash_ but at least it seems willing to evolve, unlike some other languages out there 16:35
TimToady that's the hubris of humility :) 16:36
PerlJam ash_: some languages paint themselves into a corner and the only way to "evolve" is through revolution
ash_: Generally the pain of revolution keeps them from taking that route
TimToady it's one thing the U.S.'s founding fathers got at least a bit right 16:37
PerlJam TimToady: the right to bear arms? :)
ash_ my arm's aren't very bear like 16:38
hejki the right FOR bear arms
ash_ personally
16:38 isBEKaml joined
hejki and i'm not meaning the verb either 16:38
moritz_ patrickas++ # first submission to This week's contribution to Perl 6 16:39
16:39 Guest29502 left
masak the founding fathers only talked about the right to bear arms, not actually possessing bear arms. 16:39
huf they probably kept the bear in the armpit 16:40
hence the confusion
hejki gun frenzy people are good people, and darwin usually takes care of his own
PerlJam For my high-school graduation, we themed everything on the Steppenwolf song "Born to be Wild". We had t-shirts made etc. #perl6 needs some "Born to Pun" t-shirts.
ash_ so... since i have a commit bit to pugs, could i add a bit to S12 & S14 about phasers for roles and object inheritance? what were their names again?
hejki they help us significantly to lower the overly populated planet
huf hejki: i prefer the aural method of heavy metal distribution 16:41
16:41 nihiliad joined
PerlJam huf++ 16:41
TimToady what did you say? can't hear ya!
masak ash_: phasers are usually about blocks, but your phasers are in connection to OO, which makes them feel a bit non-core. 16:42
huf get louder fonts? i've got nothing.
masak ash_: are you sure this can't be done through a clever module?
ash_ maybe? i haven't tried yet...
hejki huf: :)) 16:43
ash_ and since this school semester is about to end, i have free time soon, so i can try it
16:43 [mark] left
TimToady it seems perfectly fine for anyone to add a paragraph here or there as long as it's marked [Conjectural: ...] 16:44
svn blame will tell us whodunit
masak ash_: make sure to mention your new phasers in S04... :)
ash_ alright 16:45
16:46 chitragupt joined
moritz_ masak: since we now have a submission for the proto website project, we need to think about where to put the HTML file 16:47
masak: I can offer a subdomain or directory of perl6.org
masak moritz_: I was just about to suggest that.
moritz_ or rakudo.de
or perl6.biz :-)
masak I'd go with perl6.org :) 16:48
moritz_ I'll see what I can come up with
masak afk &
TimToady
.oO(Why do I keep reading Parrot::Fu as Parrot::Flu?)
16:56
hejki 20:00:09 <@yath > wait for perl6 to become finished ;) 17:00
20:00:24 <@yath > (duke nukem forever will be written in it)
PerlJam that's a joke that could become reality 17:04
moritz_ DNF development has been discontinued
diakopter which part
M_o_C Well, DNF got cancelled...
hejki so is it really a joke, or just a cunningly brilliant foresight of future?
most perl programmers are said to be able to travel in the time-space continuum with power of multiline regexps
[particle] i think Druid is an oss version of DNF
;)
17:05 Guest29502 joined
PerlJam Just because the *originaly* DNF has been cancelled doesn't mean someone else can't take up the bailiwick 17:05
s/y//
cosimo by any chance, is there anyone already working on rakudo deb packages?
speak now :)
moritz_ speak friend, and enter
erm, wrong movie
PerlJam melon 17:06
moritz_ I think there's an r somewhere in there, like melorn - no?
PerlJam no, just an accent.
(at least, that's how I remember it from the book)
17:07 uniejo joined
diakopter could someone please remind me where in the Snn the syntax for subroutines-as-strongly-typed-parameters is defined. Someone mentioned it a few weeks ago, but I can't find the reference. 17:07
moritz_ diakopter: you mean with subsignaturs for callable parameters? 17:08
PerlJam diakopter: um ... it would have to be in S06 I would think
diakopter ok; thanks 17:10
ahah :)
TimToady just grep for '&.*:(' 17:11
frooh pmichaud: ping?
PerlJam read that as "grep for an unhappy subroutine" 17:12
mdxi laughs
diakopter TimToady: a block that has no parameters..?
&block:(--> Bool) 17:13
?
(but does have a strongly-typed return value)
does anyone know? 17:16
if it's not spec'd, I'll go with (--> ReturnType)
moritz_ looks right 17:17
diakopter ok. it's not explicit in perlcabal.org/syn/S06.html#Closure_parameters
17:19 Trashlord left
moritz_ hugme: add patrickas to proto 17:20
hugme hugs patrickas. Welcome to proto!
17:20 Trashlord joined
patrickas whoa! thx :-) 17:21
moritz_ patrickas: thank *you* for contributing!
17:22 ash_ left 17:23 dakkar left
diakopter TimToady: I also need a way to declare a strongly-typed variable of closures with a full signature. 17:23
moritz_ let me announce... *drumroll* ... proto.perl6.org/ 17:24
dukeleto moritz_: cool 17:25
moritz_ dukeleto: and it's by patrickas++ who took the challenge from my blog
patrickas damn it you guys are fast!
dukeleto moritz_: is that static or dynamically generated somehow? 17:26
moritz_ but before I polish it more, i'll need to prepare some num
diakopter TimToady: such as: my $foo:(Int --> Int);
does that exist?
moritz_ dukeleto: it's generated by a script
diakopter: that means: takes one positional parameter Int, and returns an Iint
*Int
dukeleto moritz_: and is that publicly linkable?
diakopter moritz_: I figured. did you see my question? 17:27
moritz_ dukeleto: yes; going to be polished
colomon patrickas++
moritz_ diakopter: yes; afaict there's no syntax for that yet
diakopter: maybe invent one, such as :(-->Int):captures(Int :$x)
diakopter what's wrong with my $foo:(Int --> Int); 17:28
moritz_ where would you pot that? 17:29
in normal code?
I'm a bit confused
17:30 mikehh left
masak kudos on proto.perl6.org/ 17:31
patrickas++ moritz_++ 17:32
could we add a UTF-8 encoding to the HTML head? 17:34
PerlJam moritz_: the section at S06:1358 seems clear
diakopter what?
I was asking about how to declare variables that will store strongly-typed closures.
I don't know what you mean by "normal code"
PerlJam Hmm.
diakopter Hmm?
you have an idea? :)
PerlJam no, just reviewing my assumptions.
variable declaration is isomorphic with subroutine parameter declaration 17:35
diakopter "of the same shape"
17:36 ash_ joined
PerlJam so ... my $foo:(Int --> Int); seems fine to me 17:36
diakopter (if that's what you meant, then yes, that's why I was asking whether 'my $foo:(Int --> Int);' was the proper way to declare such a $foo 17:37
ah
PerlJam Though I'm not sure if you /need/ to say that it's a Code or Routine or whatever
diakopter oh
17:37 jotr joined
diakopter oops, I meant to have a & in there 17:37
colomon ack. does somewhere remember where the RT for the submitted patch to add laziness back to Seq and Array is? 17:38
I seem to have misplaced it on my system...
PerlJam diakopter: Perl could perhaps infer that $foo is code-thingy given that you've given it a signature 17:39
colomon hmmm, osdir.com/ml/perl6-all/2010-04/msg00011.html
masak moritz_: oh, oh, and maybe turn the ul into a dl?
PerlJam masak: I think the ul looks fine. a dl would just add a little more vertical scrolling :) 17:40
masak depends on the CSS, but yeah, point.
PerlJam right
colomon rt.perl.org/rt3//Public/Bug/Display...l?id=74008
masak likes <dl/>s
they're the hashes of HTML.
17:42 SmokeMachine left
masak oh, oh, and right now the projects are sorted Unicodibetically. should probably be alphabetically. 17:42
masak is so full of nits!
moritz_ masak: patches welcome 17:43
PerlJam didn't even notice that.
moritz_ masak: script is in proto/web
masak \o/
this changes everything! :) 17:44
I think I already have a commitbit to that repo.
17:45 cotto_work left
masak patrickas++ # 'spew' is an excellent opposite of 'slurp' 17:45
masak also loves the comment '#Please forgive me for parsing html this way' 17:46
hugme: hug patrickas
hugme hugs patrickas
patrickas :-) 17:47
PerlJam so ... does patrickas get a t-shirt? :) 17:48
moritz_ PerlJam: so far I only have sponsors for two t-shirts...
PerlJam (whose idea was it to have these challenges?)
17:48 stephenlb joined
moritz_ PerlJam: so if there'll be more than two successful submissions, we'll have to randomize :( 17:48
pmichaud frooh: pong 17:49
moritz_ I plan to contact TPF if they might contribute something
patrickas shipping tshirts to beirut lebanon might prove to be hard so it's ok :-)
PerlJam moritz_: I wonder if google might also.
moritz_ PerlJam: I have no contacts at google
PerlJam: if you have some, please try to active them
frooh pmichaud: hey, are you gonna be around next week? 17:50
PerlJam I wish
frooh pmichaud: s1n is kinda MIA and I wanna know if we should plan a meeting at all
pmichaud frooh: I don't know yet. Currently I'm planning yes, but it depends on how my wife's treatments go this week.
frooh pmichaud: ok, so you aren't at a conf or anything like that though 17:51
pmichaud frooh: definitely not. :)
frooh alrighty
pmichaud my next conference is German Perl Workshop in June; after that is OSCON.
moritz_ pmichaud: speaking of which... did you get my /msg? 17:52
pmichaud moritz_: yes, I did (more)
17:52 mikehh joined
pmichaud moritz_: Under other circumstances, I'd definitely make arrangements to stay extra days around the conference; under current circumstances I think I should be away from home as little as possible. Again, we should know more after this Friday (which is why I haven't booked flights yet). 17:53
moritz_ pmichaud: sure; I kinda expected that answer 17:54
17:54 ash_ left
pmichaud I am planning to do extra days around YAPC::EU, though. 17:54
moritz_ still wanted to make the offer, and it still stands
pmichaud thanks. I'll take you up on it if circumstances allow :)
and, in general, I'm planning to be back on Rakudo/nqp development a bit more full-time-ish starting next week 17:56
moritz_ \o/
pmichaud we should have everything taken care of around here by then (at least to the extent that things require my participation/active support) 17:57
moritz_ pmichaud: are you available for #rs tonight? (ie in one hour)
colomon \o/
pmichaud probably. I'll join in now.
but it's very likely I'll be called away from the keyboard at random
(okay, it's not really " 17:59
(okay, it's not really "at random" -- it's more of a poisson distribution that appears random.)
masak :P
TimToady thinks better of making a pun on "poison distribution"
masak that's a fishy pun. 18:00
moritz_: how does the proto.perl6.org thing update? 18:01
diakopter but, what pun would you have made? "poisson" or something?
moritz_ masak: currently not all... will install a cron job too
TimToady was referring to chemotherapy, which is why he thought better of it
moritz_ masak: for now ping me if you want an update 18:02
masak moritz_: ping! :)
moritz_ done.
pmichaud hadn't made the chemotherapy connection. :)
18:02 cotto_work joined
TimToady good, don't! :) 18:02
18:05 uniejo left
masak had 18:05
18:05 SmokeMachine joined
pmichaud alas, that connection is surprisingly accurate at times. 18:05
moritz_ also had
TimToady and Julian are quite in agreement
masak the rest of us are hoping we won't have to find out...
TimToady fortunately Julian is now in his maintenance phase, and things are looking good
pmichaud +10
I'm very happy to hear that.
bbiab
masak ok, I want someone to look at example 4 here: www.maxdesign.com.au/articles/definition/ 18:07
and tell me that isn't better than the current proto.perl6.org
I'm willing to change the script if I get the go-ahead from someone :)
moritz_ masak: I'm in the process of porting it to use HTML::Template::Compiled 18:08
masak moritz_: ok. I'll hold 'til you're done. 18:09
Tene masak: I like it.
masak \o/
(assuming you meant the proposed one.) 18:10
Tene That's right.
18:12 SmokeMachine left
moritz_ masak: I've pushed a basic HTML template - it's not yet used, but I need to nom first 18:13
masak moritz_: no rush. it's not like I don't have other things to do. :)
masak has a look at sigmund
18:21 molaf left 18:35 SmokeMachine joined 18:42 isBEKaml left, M_o_C left 18:43 isBEKaml joined
moritz_ masak, patrickas: version with templates pushed 18:46
patrickas ok I'll apply the style changes 18:47
masak patrickas++ did them while I was just idling. impressive. 18:48
rakudo: multi foo() { say "OH HAI" }; multi foo(*@a) {}; foo 18:56
p6eval rakudo 1eef08: OUTPUT«OH HAI␤»
masak the lack of an argument counts as narrower than a slurpy.
but what about a single optional?
rakudo: multi foo() { say "OH HAI" }; multi foo(Int $a?) {}; multi foo(Str $a?) {}; foo
p6eval rakudo 1eef08: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:()␤:(Int $a?)␤:(Str $a?)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak any reason one shouldn't count the lack of an argument as narrower there too?
spinclad diakopter: 'my Int &foo()' is like 'my (--> Int) $foo' is like 'my Int $foo' as 'foo' (short for 'foo()') is like '$foo()' is like '$foo' , /me thinks 18:57
masak it would be a nice way to resolve the ensuing ambiguity between Int $a? and Str $a?
spinclad masak: a definite nothing is narrower than a possible Int or Str, i agree 18:58
masak submits rakudobug
might need a bit of spec too, maybe.
spinclad #rs in 1? 18:59
masak yep.
TimToady
.oO(Radio Shack? :)
masak oh, oh, oh! an idea for the proto.perl6.org page: the script fetches a logotype (in .png or .svg or whatever) from a fixed location in the repo, and shows it along with the name.
spinclad (rakudoshack)
TimToady (MoPerl Six, we'll leave the light on fer ya.) 19:00
19:00 Unixmonkey joined
masak also, we could have small medal-or-cup icons for things the community likes, such as a README, or tests, etc. 19:01
19:09 ShaneC1 joined 19:10 ShaneC1 left
moritz_ masak: feel free to hack away :-) 19:11
19:11 sorear left, sorear joined
masak sure. just going to let patrickas apply his style patch first. 19:12
TimToady .u ⚱
phenny U+26B1 FUNERAL URN (⚱)
19:12 envi^home left
TimToady that's sort of a cup 19:12
masak I'm thinking one gold, one silver and one bronze. 19:13
isBEKaml sorta depressing... ;)
TimToady .u ⊔
phenny U+2294 SQUARE CUP (⊔)
isBEKaml trophy?
masak I was envisioning something with handles.
TimToady pity unicode stars don't come in gold 19:14
masak something like this. schools.bvsd.org/monarchhigh/athlet...hy-cup.jpg 19:15
isBEKaml .u ч
phenny U+0447 CYRILLIC SMALL LETTER CHE (ч)
isBEKaml looks sorta like a cup..
19:16 tri1 joined
isBEKaml .u Ч Ч 19:16
phenny U+0427 CYRILLIC CAPITAL LETTER CHE (Ч)
U+0020 SPACE ( )
U+0427 CYRILLIC CAPITAL LETTER CHE (Ч)
isBEKaml more beer! :)
19:16 clintongormley left
masak I think I like the funeral urn best so far, from an esthetic standpoint. 19:17
but dedicated .png icons would probably be even better.
isBEKaml Just don't show what that translates to... ;)
19:20 BrowserUk joined
masak I did not realize that patrickas++' style changes had already gone live. 19:20
isn't that beautiful? proto.perl6.org/ 19:21
man, the Perl 6 community rocks!
moritz_ masak: patrickas++ has his changes in, so now it's your turn :-)
masak 'spose so :)
vegard what's with the ++ everywhere?
moritz_ vegard: karma tracking 19:22
masak buubot: karma patrickas
buubot masak: patrickas has karma of 8
masak patrickas++
buubot: karma patrickas
buubot masak: patrickas has karma of 9
vegard o..k
patrickas oh!
moritz_ vegard: ++ also increments variables in both Perl 5 and Perl 6
isBEKaml proto.. neat-o, patrickas++ 19:23
19:25 meppl left
patrickas Thanks all, got to go ... It was great making my very first own tiny contribution :-) 19:26
19:26 cdarroch left 19:27 patrickas left 19:29 cdarroch joined, cdarroch left, cdarroch joined
isBEKaml moritz_: The proto link on getting-started page of perl6 doesn't point to the latest one. Shouldn't it be proto.perl6.org? 19:38
moritz_ isBEKaml: I'd like to see a paragraph about what proto is on that page first 19:40
(ie on proto.perl6.org)
and a link to the github repo
once that's done, we can change the link
isBEKaml ah, ok.. 19:43
moritz_ isBEKaml: but you're welcome to do that, you can even grab paragraphs for the proto readme and HTMLify it 19:44
19:45 tri1 left
isBEKaml moritz_: sure, I can do that! I was just reading szabgab's p5-6 blogs and yours too! :) 19:45
19:45 kiffin joined
isBEKaml moritz_: HTMLify it in the sense, just apply HTML, with styles thrown in? 19:46
masak this day is just so full of contribution! \o/
19:46 kiffin left
masak isBEKaml: yes, I'd guess in that sense. 19:46
mostly make it look not-crappy on the HTML page.
19:46 kgish joined
isBEKaml masak: I have done some web dev, not too much. ;) 19:46
moritz_ yes 19:47
19:55 kst left 19:58 kst joined 20:10 BrowserUk left
isBEKaml moritz_: I got a basic draft done. Where do I put it up? pastebin it? 20:11
moritz_ isBEKaml: we'll get you a proto commit bit, and you just push it directly
masak hugme: add isBEKaml to proto
hugme masak: ERROR: Can't add isBEKaml to proto: 404 Not Found
moritz_ isBEKaml: what's your github id? (create one if you don't have one)
masak rakudo: Any ~~ /foo/
isBEKaml moritz_: Basically, I grabbed the entire readme from masak's github page.. :)
p6eval rakudo 1eef08: OUTPUT«Method 'match' not found for invocant of class ''␤current instr.: 'perl6;Regex;ACCEPTS' pc 525570 (src/gen/core.pir:84244)␤»
isBEKaml moritz_: svatsan 20:12
masak I'm trying to understand the root of this error message.
which class is it that doesn't have a .match method?
moritz_ masak: .match is in Cool, not in Any
masak what's .match?
moritz_ hugme: add svatsan to proto
hugme hugs svatsan. Welcome to proto!
isBEKaml \o/ 20:13
20:13 BrowserUk joined
masak isBEKaml: welcome aboard! 20:13
rakudo: Any.new ~~ /foo/ 20:15
p6eval rakudo 1eef08: OUTPUT«Method 'match' not found for invocant of class 'Any'␤current instr.: 'perl6;Regex;ACCEPTS' pc 525570 (src/gen/core.pir:84244)␤»
masak ah; it omits the class name when talking about type objects. 20:16
moritz_ masak: .match is what regexes matches desugar to
isBEKaml masak: where do I commit to ? I got a basic HTML page done.
moritz_ isBEKaml: proto repo, file web/index.tmpl
20:18 buubot left 20:19 buu left 20:21 kensanata joined 20:25 kst left 20:26 kst joined 20:30 SmokeMachine left
colomon moritz_++ # p6c e-mail 20:31
I don't think list(SList) should just hand back its argument. 20:32
It should hand back an Iterator which yields the values in SList.
moritz_ that might be right, I forgot what we settled on 20:33
colomon I don't think we did settle on anything. :)
moritz_ I should have re-read the irc log
there's one potential problem with that
consider
colomon but we're a lot closer to the same wavelength now.
moritz_ my $x = $str.split; # $x now contains an SList
for $x { ... } # implicitly calls list() on $x 20:34
or for @($x) { ... } not sure
now 'for' exhausts the iterator that list($x) returned
are the items in $x automatically reified?
colomon yes, that's the job of the SList iterator. 20:35
just to be clear:
moritz_ so list($x) actually returns something which is still tied to to $x pretty tightly
colomon moritz_: has to be.
isBEKaml moritz_, colomon: sorry to butt in. Isn't the purpose of the iterator to be something of an use and throw? I can be sorely wrong here though. Coming from javaland, iterators are use-and-throw. 20:36
colomon you get weird interleaving combinations, with SList specified in terms of one iterator and giving you another iterator to process.
isBEKaml that is, once an iterator exhausts itself, it cannot reposition itself to the beginning of the lists.. 20:37
colomon isBEKaml: yes, that's the idea.
isBEKaml: right, but the idea is the SList type remembers the earlier values of the iterator.
In particular, you can store an infinite iterator in an "SList" (that's a temporary named moritz_ coined), and everything will work as long as you don't try to get all the elements. 20:39
isBEKaml colomon: so, SLists are essentially Lists-in-iterator's clothing..
pmichaud I read it as being iterators-in-lists clothing 20:40
i.e., looks like a list on the outside
colomon pmichaud++
moritz_ right
pmichaud I'm not sure the @ sigil means 'array', although perhaps it should.
colomon right now it means Positional
moritz_ pmichaud: @ means 'Positional', and defaults to 'Array'
pmichaud I disagree that gather/take should return an iterator
colomon but that's a big source of potential trouble IMO
pmichaud gather/take should return a Slist
moritz_ ie my @x # @x is an Array
pmichaud oh, wait, I need to read further 20:41
(reading further)
actually, I'll shut up until I read the whole thing
moritz_ :-)
isBEKaml I haven't seen the mail. I'm not on the mailing list. :)
gmane links?
pmichaud okay, I see one thing I disagree with :-) 20:42
"Assigning an Iterator to a variable automatically turns it into an SList" means there's no way to have a variable reference an iterator. 20:43
colomon moritz_: for maximal confusion, I think List should be your SList, and Seq should be your Iterator. :)
moritz_ pmichaud: binding
pmichaud: to a scalar
pmichaud moritz_: I don't think I like that sort of distinction.
20:43 smash_ joined
pmichaud it gives too much spooky behavior to assignment 20:43
smash_ hello everyone
masak smash_: \o 20:44
pmichaud in particulary, I think I should be able to do my $h = %hash.iterator; and know that $h is an iterator
moritz_ pmichaud: I thought it was the only sane-ish behavior that would solve the double iteration problem
colomon pmichaud: I don't think we can do this without some sort of spooky behavior.
pmichaud colomon: in which case binding should probably get the spooky behavior.
putting it with assignment is too... spooky.
also, it means filehandles would be a bit weirdish 20:45
my $fh = open(...); # don't convert me, please!
unless of course filehandles aren't iterators, but ...
moritz_ maybe we need another type? 20:46
auto-upgrading iterators, and iterators that don't
pmichaud that doesn't feel right to me either
I think we need Lists that can encapsulate iterators and are the common return case
and that gather/take returns a List
isBEKaml I don't see the mail here: www.nntp.perl.org/group/perl.perl6.compiler/
Takes upto a day?
colomon Lists that can encapsulate iterators and are common return case ++ 20:47
20:47 kgish left
moritz_ pmichaud: and then how do we solve the problem that for 1..1e6 doesn't store 1mio integers? 20:48
colomon the problem is, do those lists behave like moritz_'s Iteartor or SList?
masak rakudo: for 1, 2 { say $^a, $a } 20:49
p6eval rakudo 1eef08: OUTPUT«11␤22␤»
masak \o/
20:49 jonrafkind joined
moritz_ rakudo: for 1, 2 { say $^a, $^a } 20:49
p6eval rakudo 1eef08: OUTPUT«11␤22␤»
pmichaud moritz_: because the 1..1e6 isn't stored in an array or Slist ?
moritz_ pmichaud: you're right 20:50
so list(1..1e6) would return... what? an Iterator?
pmichaud an Slist
we want to hide iterators, in general
moritz_ which in turn would store the 1mio entries, right? 20:51
pmichaud only if it gets bound to something
(I'm still working out the details also)
moritz_ now you're talking about a different SList than my proposal :-)
pmichaud moritz_: sure. I just know that "assigning an iterator changes it" feels Very Wrong. 20:52
masak TimToady: S02:4013:
foo (bar()): # bar().foo(1) -- even if foo declared sub
TimToady: I think that's a stray '1'.
isBEKaml moritz_: in the case 1..1e6, they would behave like sequences in databases? Don't pre-calculate, do on need basis?
masak or I'm really missing something.
moritz_ isBEKaml: I'm not following you, but I'm probably just too tired
isBEKaml moritz_: And, we'd just be saving the position bit/marker? 20:53
20:53 tylerni7 joined
pmichaud note that 1..1e6 is neither a list nor an iterator :-) 20:53
colomon is not clear on how "only if it gets bound" differs from "assigning an iterator changes it"
pmichaud colomon: because it puts the magic in the binding, not in assignment
20:53 kst left
pmichaud assignment (to a scalar) shouldn't be magical 20:53
20:54 kst joined
isBEKaml moritz_: In the case of doing 1..1e6 and storing into an iterator (SList? ), it doesn't pre-calculate all the values upto 1 million and store, right? Rather, we just update the position marker and spit out the next value when the user requests for it? 20:54
pmichaud isBEKaml: correct, we don't pre-calculate all of the values. That's "laziness".
moritz_ isBEKaml: right... the question is how we can prevent it from storing all the *old* generated values 20:55
colomon so my $a = split (blah) makes $a a moritz_ Iteartor?
isBEKaml moritz_: discard? iterators are never meant to be reused, right?
pmichaud isBEKaml: sometimes the values they contain are. Consider my @a = 1..1e6
20:55 lisppaste3 joined
pmichaud we don't want that to calculate all 1 million elements either 20:55
colomon isBEKaml: the problem is that sometimes you do want to store all the old values.
pmichaud at least, not until they're needed.
colomon isBEKaml: we're trying to figure out how to cleanly handle both cases 20:56
pmichaud colomon: in my world, my $a = split (blah) should give back a list
isBEKaml IOW, you're seeking to find a way to bidirectionally traverse an iterator?
pmichaud isBEKaml: no, not really
colomon pmichaud: where a list is a wrapper around an iterator, with no memory.
? 20:57
pmichaud isBEKaml: we're trying to figure out how to make arrays lazy.
moritz_ calls it a day, and hope he finds the courage to backlog
pmichaud colomon: lists can have memory, if bound
colomon: we have cases where lists need to remember values also
isBEKaml pmichaud: I see now... as we move deeper into the iterator, the size just keeps growing and growing. We need to avoid that..
colomon pmichaud: this is why I liked moritz_'s terminology. 20:58
are you proposing there would be one type for wrapper the iterator, and sometimes it remembers and sometimes it doesn't?
pmichaud colomon: I don't have a formal proposal yet. I just know what pieces don't work :-| 20:59
and "assigning an iterator makes it something else" is in the Won't Work category for me at the moment.
so is "split returns an iterator"
(for similar reasons)
to me, split should return something that acts like a list (and therefore contains an iterator to handle the laziness part) 21:00
colomon yes, that's a moritz_ Iterator (e-mail terminology)
pmichaud no, because moritz_ Iterators don't act like lists
at least, I didn't see that part 21:01
21:01 orafu left
colomon how does a list act? 21:01
21:01 orafu joined
pmichaud mainly, you can .[] it 21:01
but you can also do things like ask for its elements, reverse it, etc
the other place that "iterator converts on assignment" is wrong is in passing arguments to functions 21:02
because function calls are binding operations, not assignment
masak rakudo: sub foo(@a) { @a[1] = "NOES" }; my @a = <OH HAI>; foo(@a); say ~@a 21:03
p6eval rakudo 1eef08: OUTPUT«OH NOES␤»
masak is this supposed to be allowed?
isBEKaml masak: I don't know how the page would appear online. How long before perl6.org gets updated?
masak moritz_: ping! :)
pmichaud masak: I haven't seen a clear answer to that question.
isBEKaml masak: I have never worked with tmpl.. :(
masak isBEKaml: have you pushed?
isBEKaml masak: yet to.. 21:04
masak I can take a look at the commit after you've pushed.
21:05 buu joined 21:06 buubot joined
arnsholt is starting to get adventurous with LaTeX 21:06
Which is interesting ^^
isBEKaml masak: done..
masak looks
21:06 SmokeMachine joined
masak isBEKaml: check again. I don't see a commit. 21:07
pmichaud: ISTR there was some wording in the spec about the readonlyness stretching 'one level down' into arrays/hashes, but I can't find it now, despite trying. 21:08
pmichaud masak: From an implementation perspective, I see nothing but pain in trying to make that happen.
isBEKaml masak: I get a return code 22 when I try to push it. I then tried git commit -a.
masak pmichaud: anyway, this already fails: 21:09
rakudo: sub foo(@a) { @a[0, 1] = <OH NOES> }; my @a = 0, 1; foo(@a)
p6eval rakudo 1eef08: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17868 (src/builtins/Junction.pir:393)␤»
masak so something is inconsistent, at least.
masak submits rakudobug
isBEKaml: the 'return code 22' doesn't tell me much. maybe nopaste the whole error situation somewhere?
isBEKaml: have you changed your repo location to the writable one? 21:10
21:10 Guest80365 left
colomon pmichaud: I guess I'm completely lost as how you expect split's return value to act like it has memory except when we want it to not to have memory. We've all been assuming that these were two such different functions it required two different classes to implement them. 21:10
pmichaud colomon: I think that if we have split(...).WHAT that we probably should not get "SomethingIterator" 21:12
isBEKaml masak: pastebin.com/xJ6JSYJE
colomon pmichaud: yes, I think we all agreed on that a month or two ago.
but I think most of us were assuming it would be something very close to an iterator, just cleaner. 21:13
isBEKaml masak: I'm right now thinking of forking..
pmichaud then split() can't return an iterator, it has to return something that encapsulates the iterator and makes it look more like a common list
I have an errand that must be done in the next 17 mins -- bbiaw
masak isBEKaml: I'm not 100% sure, but might be that svatsan@github.com/masak/proto.git/ is wrong. did you get it from the project page at github? 21:14
isBEKaml masak: yes.
masak then maybe fork. or nopaste your patch.
isBEKaml masak: I took it only after I saw something mentioning "This URL has read+write access"
masak sounds right to me. 21:15
21:16 Unixmonkey left
smash_ can't build rakudo on macosx ? i'm the only one having problems ? 21:17
masak worksforme. 21:18
21:19 kst left 21:20 kst joined
smash_ grr.. it works now :\ 21:20
21:21 molaf joined
isBEKaml masak: Can you check? I just committed to my repo. 21:21
masak: grrr.. I don't have command line access. Just now did via web interface. :/
masak looks 21:23
21:23 chitragupt left
masak isBEKaml: it looks sane. you accidentally the newline at the end, but it probably doesn't matter. 21:24
isBEKaml masak: I wasn't sure about float bits that I added to the about text. I couldn't try setting a trial run locally. 21:25
masak I'd suggest that, yes.
spinclad i can see the <omit/>s!
isBEKaml masak: mainly because I don't know how to work with tmpl files.. :| 21:26
masak: kind of like YAML? Then I need to go get a grip on it...
masak er, no HTML::Template isn't a lot like YAML... 21:27
isBEKaml: hm. I'm not sure floats are the right solution here, on second thought. 21:28
see, the table with the content is centered on the page. 21:29
that meshes badly with floating right.
...I'd imagine.
isBEKaml masak: divs are block elements and they are not centered. the margin styles are doing their work.
masak ok. 21:30
21:30 wknight8111 joined
isBEKaml masak: I'll try to set up something here to try view the page on a dry run.. 21:30
21:31 molaf left
isBEKaml masak: Can you tell me how the page looks like? 21:32
masak which page? URL?
isBEKaml it's updated? 21:33
masak is utterly confused
isBEKaml masak: I was referring to the index page for proto.. I was asking if that was updated on perl6.org yet?
masak I'll generate the page locally and get back to you :) 21:34
isBEKaml is setting up HTML::Template here
21:35 SmokeMachine left
masak isBEKaml: I've now finished generating it. 21:40
isBEKaml masak: I'm generating it here too.
masak the right float causes the centering to disappear here on Google Chrome.
isBEKaml hmmm, let me see..
masak I think I'd prefer a solution which didn't involve floats. 21:41
isBEKaml ah, yes, it's too far off..
masak floats have other problems as well. they cause things to jump around when the browser canvas is resized, for example.
but it was a good first attempt! :) 21:42
masak tries generating the HTML without the floats
isBEKaml masak: No! 21:43
they are block elements and would come one after another.
masak they do. 21:44
it looks much better.
but now it feels odd that only the headings are right-justified.
isBEKaml masak: hmm, in that case, I can push the about text right..
masak since all of the rest of the page is centered now. 21:45
isBEKaml let the proto listing come down further left indexed.
s/indexed/aligned/
masak it was left aligned when we started fiddling. we decided centering it looked nicer.
I still think it looks nicer. 21:46
diakopter .
isBEKaml masak: I'm trying to make the about text right aligned, with proto listing further down left aligned.. 21:47
masak isBEKaml: I know. I'm trying to convince you otherwise... :) 21:48
isBEKaml: is it alright with you if I adapt your patch without the floats, and commit it to proto?
21:49 ive joined
isBEKaml masak: I added floats since they were the first thing that came to mind. Now that I think about it, I could alter them to margins. :) 21:49
masak the margins were already there.
but they were canceled out by the floats.
isBEKaml masak: Plus the text isn't all that nicely done.. jagged right ends..
masak that can be improved later. :) 21:50
21:50 kst left
masak we probably want to change the text itself, too. but this is better than no text. 21:50
isBEKaml alright, first commit, 0320 hrs here.!
:) 21:51
21:51 kst joined
isBEKaml masak: to the #about style, just add one more property there. text-align: justify 21:52
masak isBEKaml: pushed: github.com/masak/proto/commit/e5928...f9b12ddf0d
isBEKaml: I'll try the justify thing locally.
isBEKaml masak: the justify thing is to smooten the jagged text.. 21:53
smoothen*
masak aye.
21:53 Guest29502 left
isBEKaml ah, looks much nicer. no floats, all worked to margins.. :) 21:54
21:54 iblechbot left
masak proto.perl6.org is doing the rounds at Twitter now, much thanks to alester++ and chromatic++ 21:54
isBEKaml nice.. 21:56
masak isBEKaml: the 'justify' did indeed look a bit better. I pushed a commit for that, too.
time for me to head home and sleep a bit.
isBEKaml me too. it's already 03:30 am here.. :)
gotta rush back to work in 3 hrs...
masak :) 21:57
isBEKaml++
'night
21:57 masak left
isBEKaml g'night 21:57
21:59 patrickas joined
smash_ where is ^^ operator defined ? or there is some trickery here with or/xor ? 21:59
sjohnson every day i learn something cool about perl 22:05
22:08 ive left 22:09 pjcj_ left 22:10 pjcj joined 22:12 chitragupt joined 22:16 smash_ left 22:17 isBEKaml left
colomon smash_: ^^ is defined in grammar.pm. 22:22
pmichaud: are you saying the List class should "has $.bound" flag, and only remember if it is set? 22:23
22:25 abbe joined
abbe Hi everyone 22:25
pmichaud colomon: you're trying to nail me to specifics where I don't have any yet. 22:26
colomon: Sorry.
abbe If a perl5 program doesn't use any other module except Data::Dumper, is it transformable into a perl6 code ?
pmichaud colomon: I don't have a detailed proposal down to the point of flags and the like yet. I know that binding is involved in the equation. I also know (from other discussions with jonathan) that binding has a strong impact on autovivification of array and hash elements 22:28
I know that having functions like split and gather/take return iterators directly is likely to leak details we don't want leaked
I know that Seq as defined in the specification currently leads down false paths
So, in many ways solving this problem is like carving an elephant out of a block of stone. We just remove pieces that we figure out aren't parts of the elephant. 22:29
and we don't keep pieces that we're fairly certain "can't work". 22:30
and lastly, having done this at least three times already, I know that it's pretty hard to get to a working solution via incremental changes in the existing code base. Each underlying change to some basic assumptions pretty much needs a branch to explore the full ramifications 22:32
</core_dump> 22:33
22:33 k23z__ joined, k23z__ left, k23z__ joined 22:36 PacoLinux left
lichtkind pmichaud: hej welcome back 22:36
diakopter agrees about gigantic refactorings in branches 22:38
lichtkind ist the defer block modifier still valid? 22:41
cant find him in syn
Juerd Would anyone object to using feather2 to host the Amsterdam PM website? 22:44
abbe any ideas how to read from a process output using perl6 ?
Juerd It's not directly Perl 6 related, of course. 22:45
22:45 patrickas left
diakopter I don't mind... 22:47
:)
22:55 nihiliad left 22:58 ruoso left 23:00 kensanata left
mikehh rakudo (e3153ad) builds on parrot r46288 - make test PASS, spectest_smolder -> #33630 (pugs r30549) PASS - Ubuntu 10.04 amd64 (gcc with --optimize) 23:06
t/spec/S05-mass/properties-general.rakudo - TODO passed: 4-6, 11-13, 544-546, 550
diakopter phenny: tell pmurias hi 23:09
phenny diakopter: I'll pass that on when pmurias is around.
23:15 jonrafkind left
spinclad Juerd: it's your machine, and your hospitality. we can join in that hospitality if we like, and i hereby do. 23:17
23:18 Dori10 joined 23:27 rv2733 left
Juerd spinclad: It's the community's machine 23:35
spinclad: My company provides for bandwidth and electricity but the current machine was paid for by The Perl Foundation, the Dutch Foundation for the Promotion of Perl (SPPN) and by private donors 23:37
23:43 rv2733 joined 23:46 BrowserUk left 23:47 BrowserUk joined
snarkyboojum sweeeet - proto.perl6.org/ :) 23:47
that happened so quickly :) 23:48
23:49 cdarroch left