»ö« | 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 What's 2010 for {*}? 00:07
jnthn 00:08
(nothing)
diakopter I think nothing
empty space
sorear Is Perl 6 going to support inplace reblessing? I have Perl 5 code which relies on it
diakopter I don't think there's a "bless" at all. 00:09
Juerd Does it do blessing at all?
$self := $other, perhaps?
diakopter to me, p6 has a very traditional C++-ish OO model, just with tons of metamodel stuff bolted on, and much dispatch/binding done at runtime instead of compile-time. 00:10
jnthn The default model you get is fairly typical OO - which is fine for most people - but the metamodel stuff lets you create other things too. 00:11
PerlJam diakopter: that's not how I view the Perl 6 object model at all.
sorear pmichaud: Have you any reaction to the thought of me implementing non-PMC locals and upward type inference in NQP?
diakopter PerlJam: how do you view it 00:12
00:12 lestrrat is now known as lest_away
PerlJam diakopter: the meta-model stuff (to me) is perhaps most important because it's how you build the default object model and is what allows you to create other object models "safely" 00:12
diakopter what's an example of another object model 00:13
PerlJam there's the "no model" model. There's the prototype-based model. There's the class-based model. et cetera 00:15
diakopter what's the no-model model
PerlJam (There's the "model I haven't thought of yet" model ")
er, :)
diakopter jnthn: you should implement the bikini model. 00:16
sorear jnthn: oh, it just magically finds the actions in some oter file? 00:20
sorear finish backlogging
pausenclown_ FWIW, XML::Parser now supports namespaces. 00:21
diakopter PerlJam: p6's model isn't class-based?
PerlJam: what's the "no model" model?
PerlJam diakopter: yes, the default model is class-based 00:22
the "no model" is where each object is a hand-crafted work of art that bears no relation to any other object. 00:23
lue why hello there everyone (sorry, I suddenly caught (a lisp. don't know where `(it comes)) from)
jnthn sorear: No, when the grammar is instantiated you specify the class.
PerlJam lue: fingernail clippings and oatmeal!
jnthn I have a much-of-the-way-there patch for hash slices, but I need sleep now. 00:24
diakopter PerlJam: ok, b/c I asked for examples of "another object model" and you mentioned the default one in the list.
jnthn Will finish it up tomorrow.
o/ for now
lue goodnight o/ 00:25
diakopter I still don't see how the "no model" model is different from class-based
the prototype-based one can be implemented by the class-based one (as shown by Chrome & IE9) until objects are used as hashes/dictionaries, and the class-based one can naively be implemented in the prototype-based one. 00:27
but.. what are the underlying attributes of "no model" that makes it different from class-based or prototype-based? I don't see any. 00:28
I mean, you either limit the members or you don't 00:30
they're either strongly typed at one level or strongly typed at another level with another dispatching layer added on.
00:32 jhuni joined 00:39 christine joined 00:41 lichtkind left
lue elisp is weird. False is nil, and everything else (even 0 !) is true. 00:44
sorear so... there's nothing analagous to reblessing in Perl6?
I've got some intesting code with objects that change nature at runtime
00:50 nihiliad joined 00:52 eternaleye joined 01:00 muixirt_ joined 01:01 lest_away is now known as lestrrat 01:02 muixirt_ is now known as muixirt 01:07 holli_ joined 01:08 pausenclown_ left
lue afk 01:10
ruoso sorear, Perl 6 has a much richer meta-oo API 01:12
which means that everything you do with your reblessing is already doable by meta-oo
but keep in mind that in Perl 6 attributes are really private, so if you change an object hierarchy, a lot of data will simply become inaccessible 01:13
(private in the sense that they are stored in per-package slots and their access is package-dependant) 01:14
I just had an insight... 01:22
diakopter waits to read it
ruoso few years ago, perl5 simply didn't support the semantics of Perl 6
all the perl6-on-perl5 efforts blocked on missing semantics 01:23
but after perl 5.10 and 5.12, a lot, and I really mean *a LOT* of things were added to perl5
like pluggable mro
diakopter pluggable lexing 01:24
ruoso I'm actually starting to think that a perl6-on-perl5 implementation is starting to be viable 01:25
diakopter well, there's already a front-end in Perl 5
(STD)
ruoso I mean a p5 backend 01:26
diakopter I know
ruoso if we add a new c data structure in perl5 01:31
like OV* (object value)
we can consider the other SV* as native types
that autoboxes depending on context 01:32
01:34 yinyin left, rv2733 joined 01:37 muixirt left 01:44 mikehh joined
sorear ruoso: that's ok 01:47
O 01:48
I'm just looking for something like Moose's rebless_instancew
ruoso well... you can always use the meta api to manipulate the isa hierarchy 01:50
sorear but I only want to rebless instances
not reorder the entire hierarchy 01:51
it's a simulation enviroment with partial information - as information becomes available, the reflection objects rebless into more specific forms
sorear will be suprised if attributes stay purely private forever 01:53
even Java supports breaking abstraction barriers, and Perl is a rope-oriented language
diakopter in that case you wouldn't use attributes; you'd use a hash, imho 01:54
01:57 Psyche^ joined 01:58 Psyche^ is now known as Patterner 02:01 agentzh joined, wknight8111 left
ruoso sorear, if you're reblessing into more specific types, it could work, just a matter of using the rw meta-oo api 02:08
02:09 plobsing joined
ruoso okay... after a bit more reasoning... perl6-on-perl5 is not just a matter of translating Perl 6 code into Perl 5 optree 02:13
but... 02:14
if we implement some new lowlevel types and ops in p5
it would support Perl 6 just fine
these specialized lowlevel types would present themselves as tied, overloaded and any other magic available 02:15
so regular perl5 code would know how to handle them
02:15 Kyril joined
sorear why would anyone want to run perl6 on perl5 02:19
02:20 molaf joined
sorear Kyril: hello 02:20
ruoso sorear, to be able to use all CPAN, including XS-based code, without trouble in Perl 6? 02:22
sorear, to be able to use Perl 6 modules from Perl 5?
Kyril sorear : hi
ruoso I think a proof-of-concept of this idea would be to implement Parcel in Perl 5... 02:24
including it being able to expose itself as both a hash and as an array
diakopter sounds like a Tie::
ruoso and with a custom keyword to build the non-flattening list 02:25
sorear be aware that others are currently implementing the ability of 6 and 5 to call each other, without touching the 5 codebase
personally I will continue to stay as far away from hacking the P5 VM as I can 02:26
ruoso I'm aware of the interoperability efforts...
02:29 TiMBuS left
TimToady er, parcels don't do hash 02:32
not unless converted to capture
diakopter ok, now I'm wanting a hashish role, so TimToady can say "parcels don't do hashish" 02:34
02:35 peng_ joined
ingy greetings 02:37
diakopter salutations 02:38
ingy :)
02:42 meppl joined
lue rakudo: my $nine+four = 3; say $nine+four # checking 02:42
p6eval rakudo 78faa0: OUTPUT«Could not find sub &four␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
lue good, so operators can be used as part of names :) 02:43
ingy Not sure if I mentioned it before but C'Dent can now compile a Perl 6 dialect into 8 or so different languages... cdent.org/examples/hello-world/
diakopter well, no
lue: no?
ingy Perl 6 is a lot nicer of a target syntax than Perl 5. :)
diakopter ingy: you mentioned it but the churn here is high throughout the day
ingy :) 02:44
lue *cough* can not *cough* 02:45
ingy My goal is to write a useful module in C'Dent that is available to 12 different languages by the end of the summer...
diakopter lue: you made me laugh just now 02:46
lue that's good, it makes syntax highlighting a bit easier :) 02:47
emacs seems to be set up for dynamic highlighting (after all, you do use a fully-featured language for highlighting `(,I guess it's great . I get to learn (Lisp)!)) 02:49
sorear ingy: Do you have any tips for someone who might design Inline6? 02:52
ingy sorear: make it sexy :) 02:54
actually I do...
but in the middle of something else... 02:55
brb
03:01 meppl left 03:02 peng_ left
ingy sorear: I think I would tie Inline6 into the Perl 6 parser 03:07
sorear: nopaste.snit.ch/paste 03:08
sorear: I'm not sure I got the lexical parsing correct, but from what I've seen of TimToady's talks, something like that should be possible... 03:09
ruoso ingy, I think you pasted the wrong link 03:10
ingy sorear: my only other advice would be to use SWIG (and maybe C'Dent) to make Inline truly Acmeist :) 03:11
sorear: nopaste.snit.ch/20283 (thanks ruoso)
ruoso ingy, note that this kind of inlining probably requires implementing the grammar for the inlined language 03:12
ingy In other words, I think it should be possible, with SWIG, to make an Inline framework (at least for C) that works in many langs
ruoso: of course :)
ruoso typemapping is always a bitch 03:13
it might work for simple types
ingy ruoso: actually... I can't remember what Inline.pm does, but I think it passes most of the burden to the C compiler and XS 03:14
ruoso yeah... so it works for simple types
ingy so maybe you don't need to parse C at all
unless the Perl 6 stuff doesn't detect syntax ending
but I kinda thought it did :\ 03:15
ruoso if you assume there won't be an unbalanced brace that is valid in the inner language (like inside a string, or a comment)
otherwise, you need to parse the inner language... or at least tokenize it... 03:16
ingy well I would think that Perl6 would allow you to specify container ending
not sure though
ruoso the thing is that the inner language might contain your "container ending" inside its code...
{ use Inline 'C'; /* } */ } 03:17
ingy yeah, I totally understand
but a friendly parser could detect simple stuff like the indenting in my example
it's just a game of agreement :)
ruoso yeah... it could make assumptions like that 03:18
ingy I gots to go eat with friends...
ttul :)
lue does perl 5 (yes, 5) have the multiline #`() style comments? 03:25
rakudo: my #`(my, my) $hello = 3; say $hello
p6eval rakudo 78faa0: OUTPUT«Malformed my at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue rakudo: my $hello = 3; #`(my, my␤, my); say $hello 03:26
p6eval rakudo 78faa0: OUTPUT«Confused at line 12, near ", my); say"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
spinclad lue: they are a Perl 6 innovation, not in perl 5 03:30
lue alright. just wondering (trying to program a major mode for emacs) 03:32
plobsing lue: you can acheive the equivalent, but it is generally dirty.
say 1 + ("This is a comment. Wheeee!!!!", 2); 03:33
03:35 molaf left
lue std: my $hello = 3; #`(my, my␤, my); say $hello 03:35
p6eval std 30394: OUTPUT«ok 00:01 110m␤»
lue std: my #`(my, my) $hello = 3; say $hello
p6eval std 30394: OUTPUT«ok 00:01 108m␤»
lue I'm assuming any set of brackets { (), [], «» and so on } can be used for multiline comment (joy :D) 03:36
03:39 rv2733 left
TimToady std: foo #`【【【 nothing here 】】】 bar 03:40
p6eval std 30394: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'bar' used at line 1␤ 'foo' used at line 1␤Check failed␤FAILED 00:01 107m␤»
lue that didn't fail because of the comment, did it? 03:42
(brackets ought to be a lot of fun, considering Perl 6 probably supports more than most sane text editors :D) 03:43
spinclad std: 'foo' #`【【【 nothing here 】】】, 'bar' 03:52
p6eval std 30394: OUTPUT«ok 00:01 108m␤»
TimToady no, if failed on both foo and bar *because* the comment worked right 03:57
lue How am I supposed to get a list of operators and such from STD.pm6 ? I'm going insane :) 04:00
04:07 alester joined
lue rakudo: my @a = ﴾3,5,7﴿; say @a; say @a[1] 04:07
p6eval rakudo 78faa0: OUTPUT«Confused at line 11, near "my @a = \ufd3e3"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue std: my @a = ﴾3,5,7﴿; say @a; say @a[1]
p6eval std 30394: OUTPUT«===SORRY!===␤Bogus term at /tmp/aLtAPGSfKF line 1:␤------> my @a = ⏏﴾3,5,7﴿; say @a; say @a[1]␤Parse failed␤FAILED 00:01 110m␤»
TimToady #11901 04:08
04:08 am0c joined
lue I can't load that ticket :( 04:08
TimToady I'm referring to MJD #11901 04:10
lue aaah 04:11
well, they are parentheses! they are supposed to work (unless ﴾﴿ has some special property that excludes them) 04:12
PerlJam That has got to be some sort of status symbol. When the most quoted person in the community starts quoting you, you're either doing something incredibly right or horribly wrong.
lue .u ﴾﴿ 04:13
phenny U+FD3E ORNATE LEFT PARENTHESIS (﴾)
U+FD3F ORNATE RIGHT PARENTHESIS (﴿)
PerlJam guesses MJD is doing something incredibly right :)
diakopter .mjd 11901 04:14
where's phenny when you need it
lue in std_hilite (the css style file of it), what does ._scalar mean when you already have .sigil and .variable? Does it affect the 3 in my $x = 3 ? 04:15
TimToady you would have to ask the author 04:17
am0c o hai, where can i find STD.pm? it seems it has been moved from pugs archive. 04:18
TimToady it's now STD.pm6
diakopter am0c: howdy
PerlJam <?foo> is the same as <?before <.foo> > is it not?
TimToady what link did you follow?
am0c I see.
from here: perl6.org/
TimToady I thought that got fixed
PerlJam: yes
lue who was the author? 04:19
diakopter heh; I could add an apache redirect
lue I assumed it was you TimToady.
TimToady it wasn't
PerlJam lue: svn blame is your friend :)
am0c thanks, i found it '~'
lue
.oO('azawawi'. hm...)
04:20
TimToady #11927 A good approach to that problem would be to hire a computer programmer. 04:22
#11930 Would you like to see my rate card? 04:23
diakopter I got return statements working. 04:24
lue then again, I don't have to support that particular highlighting method (esp. if I can't discern what the difference between .sigil and ._scalar is) 04:25
PerlJam still can't understand why people get so angry and worked up about Perl 6 not being "ready" 04:26
lue neither 04:27
PerlJam and they're angry at *Perl*
(and because I happen to like Perl, now they're angry at me)
diakopter perlesque: my int $a = 2; sub foo (int $b, int $c) { System::Console.WriteLine($b); return $c; }; System::Console.WriteLine(foo(55, 3)); System::Console.WriteLine(foo(444444 + 332, 3113 / 43));
p6eval perlesque: OUTPUT«55␤3␤444776␤72␤»
diakopter whee. 04:28
TimToady perlesque: my int $a = 2; sub foo (int $b, int $c) { System::Console.WriteLine($b); { return $c; }; 42; System::Console.WriteLine(foo(55, 3)); System::Console.WriteLine(foo(444444 + 332, 3113 / 43)); 04:29
p6eval perlesque: OUTPUT«␤Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object␤at (wrapper dynamic-method) Sprixel.Grammar. (Sprixel.Matcher,Sprixel.UTF32String,int,uint,Sprixel.State) <0x2cb85>␤at (wrapper delegate-invoke)
..Sprixel.Func`6<Sprixel.Matcher,…
diakopter heh
I dunno what happened there 04:30
oh
TimToady perlesque: my int $a = 2; sub foo (int $b, int $c) { System::Console.WriteLine($b); { return $c; }; 42; } System::Console.WriteLine(foo(55, 3)); System::Console.WriteLine(foo(444444 + 332, 3113 / 43)); 04:31
p6eval perlesque: OUTPUT«parsefail␤»
TimToady perlesque: my int $a = 2; sub foo (int $b, int $c) { System::Console.WriteLine($b); { return $c; }; 42; }; System::Console.WriteLine(foo(55, 3)); System::Console.WriteLine(foo(444444 + 332, 3113 / 43));
p6eval perlesque: OUTPUT«55␤3␤444776␤72␤»
diakopter oh ok, parser failure
the first time
TimToady missing }
diakopter ahah. yeah I can fix that quickly 04:32
luckily I control the entire stack :D
TimToady the stack is decked against you...
diakopter at least it's not swabbed against me. 04:33
er.
punfail
TimToady I think my T61 battery has croaked :(
PerlJam wonders how you obtain power from a frog 04:34
TimToady with jumper cables
diakopter here's what that first example compiles to (and then disassembled into C#) 04:35
perlesque: my int $a = 2; sub foo (int $b, int $c) { return $c / $b; }; System::Console.WriteLine(foo(3,55)); System::Console.WriteLine(foo(11,33)) 04:38
p6eval perlesque: OUTPUT«18␤3␤»
diakopter oops.
forgot to paste the link.
perl6.pastebin.com/mP7rsCBf
and yes, it is simulating an entire framebuilding/binding/returning callstack system with GC'able objects 04:39
04:39 uniejo joined
diakopter of continuable frames. 04:39
well I'd better get to Chipotle before it closes 04:42
TimToady o/
time to try a power down and see if my battery resets 04:43
&
lue bye 04:44
04:54 alester left 04:56 Kyril left 05:01 snarkyboojum joined
sorear lue: the list of operators isn't defined in the grammar 05:05
in Perl 6, operators are something that exists in a namespace
you can define them in the setting, you can import them from modules, you can bind them as parameters
they can come into scope like any other lexical name
05:06 snarkyboojum left
sorear ingy: perhaps I should explain more where I'm coming from 05:07
Perl 6, with its diverse implementation technology, poses a ... unique challenge to anyone who wants to do library bindings 05:08
lue well, where do the standard operators get defined in STD?
sorear didn't I just get done telling you 05:11
lestrrat Pl 05:12
sorry, wrong window.
lue I didn't catch you telling me where they are in STD. They must be there, or else STD could not function. 05:18
05:22 nihiliad left 05:24 astinus left
lue goodnight moon 05:24
05:25 astinus joined 05:37 jaldhar joined
ingy back 05:46
05:54 kaare joined, kaare left 05:57 kaare joined, kaare is now known as Guest95543 06:30 jaldhar left, jaldhar joined
am0c o hai, is 'subroutine' equal to 'user defined function' in both perl5 and perl6 ? 06:41
06:44 JimmyZ joined 06:48 am0c left
moritz_ not quite 07:01
for example some subroutines are built in, not user defined 07:02
07:37 REPLeffect joined 07:43 pmurias joined 07:44 iblechbot joined 07:54 eiro is now known as chewphi 07:55 chewphi is now known as eiro 08:02 JimmyZ left 08:03 masak joined
masak oh hai, #perl6 08:03
moritz_ oh hai 08:09
masak rakudo: -> *@a { @a[+0] }.() 08:10
p6eval rakudo 78faa0: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
masak submits rakudobug
moritz_ oh
masak hm, but that's not the error I got. maybe I should update to latest rakudo...
moritz_ rakudo: -> *@a { @a[0] }.() 08:11
p6eval rakudo 78faa0: ( no output )
moritz_ rakudo: say (+0).WHAT
masak something with + that makes it not a good index.
p6eval rakudo 78faa0: OUTPUT«Num()␤»
masak that, probably :)
moritz_ :-)
masak alpha: class A { my $b; method c { $A::b = 5; say $A::b } }; A.new.c
p6eval alpha 30e0ed: OUTPUT«5␤»
masak rakudo: class A { my $b; method c { $A::b = 5; say $A::b } }; A.new.c
p6eval rakudo 78faa0: OUTPUT«Null PMC access in getprop()␤current instr.: '&infix:<=>' pc 16989 (src/builtins/Junction.pir:245)␤» 08:12
masak submits rakuodbug
rakudo: multi foo(Int $x is rw) { say "writable" }; multi foo(Int $x) { "readonly" }; foo(42)
p6eval rakudo 78faa0: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:(Int $x)␤:(Int $x)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak submits rakudobug
S06: "To allow modification, use the C<is rw> trait. This requires a mutable object or container as an argument (or some kind of type object that can be converted to a mutable object, such as might be returned by an array or hash that knows how to autovivify new elements). Otherwise the signature fails to bind, and this candidate routine cannot be considered for servicing this particular call. (Other multi candidates, if any, may 08:13
succeed if they don't require C<rw> for this parameter.)"
moritz_ now you're just showing off :-)
masak :P
I'm done now, by the way.
08:14 pjcj_ joined
masak re the first bug, 08:15
the funny thing is that it works with non-slurpy arrays:
rakudo: -> @a { say @a[+0] }.([5])
p6eval rakudo 78faa0: OUTPUT«5␤»
moritz_ yeh knew, we've had lots of trouble with slurpy params 08:16
colomon and me
masak ok.
moritz_ but I was never able to reduce it far enough to be useful for a bug report
08:18 pjcj left 08:21 iblechbot left
sorear note: predefined subroutines are a new feature in 6, not present in 5 08:30
08:31 ejs joined 08:32 ejs1 joined, ejs left 08:36 renormalist left, renormalist joined, miyagikd joined 08:38 ejs1 left 08:39 dakkar joined 08:42 miyagikd left 08:43 ejs1 joined
dalek ok: 8eaad70 | moritz++ | (2 files):
require the latest Pod::PseudoPod::LaTeX, which fixes various rendering bugs and now likes B<...> inside programlistings
08:44
masak \o/ 08:49
moritz_++
08:54 Trashlord joined, Trashlord is now known as Guest91082 09:15 iblechbot joined
dalek ok: 9c2ebf3 | moritz++ | src/regexes.pod:
markup fixes and typos found by sorear++
09:19
IllvilJa o 09:41
masak O.o/ 09:43
moritz_ rakudo: state $x = 3; say $x 09:44
p6eval rakudo 78faa0: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
moritz_ alpha: state $x = 3; say $x
p6eval alpha 30e0ed: OUTPUT«3␤»
moritz_ alpha: sub a { state $x = 5; $x--; return if $x <= 0; print $x; a(); print $x } 09:45
p6eval alpha 30e0ed: ( no output )
moritz_ alpha: sub a { state $x = 5; $x--; return if $x <= 0; print $x; a(); print $x }; a()
p6eval alpha 30e0ed: OUTPUT«43210000»
moritz_ perl 5 does the same
masak visualizations++ # everytimezone.com/ 09:46
someone port that application to Rakudo and Web.pm :)
09:46 lestrrat is now known as lest_away 09:49 clintongormley joined
moritz_ looks like the client side JS is the most work 09:50
the rest could even be a static HTML page
masak aye. maybe there won't be so much interesting DateTime math for Perl 6 to do, on second thought. 09:51
for some reason, I don't have any problem at all with the kind of nerd rage expressed in cpansearch.perl.org/src/PODMASTER/A...cme/MJD.pm 09:55
I guess that's because it's grounded in the expectation that people should think for themselves, not have the same opinions as someone.
they're meant to encourage free thinking, not conformity. 09:56
09:57 pmurias left 10:31 masak left
TimToady #11944 Yes, that's what it's supposed to do when you say that. 10:35
10:41 IllvilJa joined 10:45 ruoso left 10:56 M_o_C joined 10:59 pmurias joined
m6locks free thinking is overrated 11:04
11:05 uniejo left
Juerd m6locks: I'm not paying for that thought. 11:09
11:11 Alias joined
m6locks i hear ya 11:12
11:35 rv2733 joined 11:37 iblechbot left 11:39 pmurias left 11:40 agentzh left
moritz_ jnthn++ # closing a ticket from 2008 11:48
jnthn I did the interpolation bits at the masakathon over easter, but only fixed the zen slices that the ticket used as an example yesterday so I could actually close it. :-) 11:49
(Ticket used zen slices in example.)
moritz_ I know
jnthn Need to do $dayjob bits now - accidentally the whole morning with unconciousness - but hope to get us hash slicing later on today. :-) 11:50
moritz_ o/
11:53 gabiruh left 11:55 gabiruh joined 11:59 masak joined
masak kinda likes the term 'masakathon' :) 11:59
let's have more of those. 12:00
jnthn: [backlog] yay, hash slicing later on today! \o/
moritz_ masak: sure... want to visit southern Germany? :-)
masak moritz_: at some point, sure! 12:01
moritz_ masak: we have a three room appartment and an internet connection... and pizza delivery, and pizza restaurants in walking distance :-) 12:02
is there anything else one could need for a hackathon? :-)
masak don't think so :) 12:03
moritz_: right now all my moneu is sunk on air trips that might now even happen due to (!) volcanic ash.
s/moneu/money/
jnthn moritz_: beer! 12:05
12:05 sbp is now known as julie8
jnthn moritz_: But since you're in the south of Germany, that's not a problem either ;-) 12:05
moritz_ :-)
jnthn (German beer)++
moritz_ masak: no hurry, you'll get fresh money from gsoc (if it works out) :-)
colomon :) 12:06
jnthn readies his whip of GSoC mentoring
masak not only that, but I'd get to do something I want with Rakudo :)
jnthn: :)
jnthn would really love to see those bits done in Rakudo too.
colomon admits he'd prefer cider for hacking, and occasionally mixing in Chinese with the pizza. ;)
masak jnthn: a whip? is that pent-up frustration over 600 RT tickets I sense? :P
12:06 envi^home joined
masak is not a masakist in that sense 12:07
moritz_ colomon: downtown is 10 minutes away by bike => lots of asian food within reach
and there's a very good Vietnamese restaurant, which is quite affordable at lunch time... */me becomes hungry* 12:08
colomon we're actually very well situated here for that sort of thing... two pizza places within a mile, and plenty of good asian foodw\i 12:12
within two.
should have a nice guest bedroom set up in another week or two. :) 12:13
moritz_ colomon: where are you located?
colomon good beer might be an issue, though, not sure what is readily available... 12:14
Midland Michigan
moritz_ isn't fueld by beer anyway
12:19 SmokeMachine joined
takadonet morning all 12:20
masak speaking of 'fueled by', maybe we should all pick up an old Perl 6 tradition, and make sure we have an entry here: svn.pugscode.org/pugs/VICTUALS
takadonet: \o
masak does it to set an example 12:21
12:23 M_o_C left
pugssvn r30395 | masak++ | [VICTUALS] I like rooibos and pancakes. 12:24
moritz_ oooh, pancakes
jnthn glances the file and realizes that at least he won't be the first one to mention an alcoholic substance in the file. :-) 12:27
12:28 julie8 is now known as sbp
masak stand by for the exciting resolution as to which alcoholic beverage jnthn is actually referring to! 12:28
jnthn Borovička, of course... ;-) 12:32
Served alongside a plate of Bryndzové Halušky.
:-)
rgrau` HAI #perl6, I've just seen emerginglangs.com/ and thought that perl6 would be a good thing to add there.
jnthn
.oO( Mmm...if I find a recepie and feta cheese, I could cook try to cook halušky tonight )
12:34
masak rgrau`: 'add' in which sense?
moritz_ probably doing a presentation there 12:36
rgrau` well, in the schedule, somewhere... lots of language designers talking about their projects, and I see perl6 nowhere :/
moritz_ too far away
rgrau` yup
jnthn Wow. That looks like a really interesting conf. 12:37
jnthn ain't so fussed about OSCON, but would probably enjoy that one.
masak reads and listens to www.perl.com/pub/a/2000/10/23/soto2000.html 12:49
lots of very topical quotes in there.
"We are really jazzed about this. It is our belief that if Perl culture is designed right, Perl will be able to evolve into the language we need 20 years from now."
"Now, this is not going to happen quickly."
"we intend to proceed at the fastest speed at which we can efficiently propagate our cultural values to newcomers in our culture, but no faster" 12:50
CokeBot9000 masak: do you have a script that grabs the last N lines of log when you say "submits rakudobug" ? ^_^ 12:52
moritz_ masak: do you happen to know if SVG.pm works with alpha? 12:54
erm, master
pmichaud good morning, #perl6 12:55
moritz_ \o/ it's pmichaud!
pmichaud (emerging languages camp) wonder if I should talk about nqp :-) 12:56
arnsholt The Perl 6/Parrot ecosystem would be a good addition, IMO 12:57
pmichaud well, Perl 6/Parrot has already received tons of coverage at OSCON in the past :)
at least 3-4 presentations per conference
takadonet pmichaud: morning
pmichaud it would be interesting to see more languages _on_ Parrot. 12:58
if only there was some sort of book that described how to write a languag.... oh, wait, that's me. :-|
arnsholt True, true. I'm hacking away at that more languages thing, though =)
moritz_ would be more interested to see more complete language implementations on parrot
CokeBot9000 pmichaud: morning! 12:59
moritz_ it's not only the "how many?", but also "how good are they?"
CokeBot9000 moritz_: Mine sucks!
moritz_ CokeBot9000: then go improve it!
jnthn o/ pmichaud 13:00
arnsholt I'm going to try to write up my experiences with NQP's grammars at some point. Prolog has some funky requirements that I need to figure out
colomon pmichaud: o/
pmichaud well, so far I hadn't been planning on attending oscon on mon/tue, but I might switch my schedule around a bit.
CokeBot9000 moritz_: my main problem at this point is that I don't speak enough perl6 yet. :P 13:01
moritz_ CokeBot9000: we're writing a book to help you with that :-)
13:01 betterworld joined
pugssvn r30396 | colomon++ | [VICTUALS] I like cider, Scotch, and buns. 13:04
CokeBot9000 what? 13:06
CokeBot9000 is confused by that commit message. =-)
colomon not all at the same time. 13:09
svn.pugscode.org/pugs/VICTUALS
I blame masak.
CokeBot9000 moritz_: is there a preference on US vs UK spellings? 13:10
colomon++ # nice selection. 13:11
13:11 _jaldhar joined, jaldhar left 13:17 lest_away is now known as lestrrat
masak was pulled away by his professor who felt the need to explain, yet again, how screwed up and dog-eat-dog the academic world is 13:19
CokeBot9000: no, I am that script. I've thought about making a small app which pipes the last N lines of log into $EDITOR, but even that would give very little benefit compared to what I already do by hand. 13:21
moritz_: no idea, but probably not.
there's also some talk (in State of The Onion 2000) about 'working groups with meaningful charters and meaningful goals'. I'm too young to know what that referred to, maybe this: dev.perl.org/perl6/lists/historical.html 13:24
did that model ever work? it seems what we have now is much closer to controlled anarchy.
13:25 kcwu_ joined
masak remembers looking at that VICTUALS file somewhere back in 2005, and deciding that he was far too fringe and lowly to add his entry there 13:26
colomon masak++
masak if anyone else had that thought today, get a grip and just add yourselves! :P
ooh, what do you know: perl6-language-datetime! :) 13:27
masak reads the archives of that one
13:28 frettled_ joined, solarion_ joined, sorear_ joined
CokeBot9000 moritz_: ah, I see there's a spelllang in some files. wee. 13:28
13:30 M_o_C joined, rurban joined
rurban Hi! I''m tyring to update cygwin packages 13:30
Last stable is #25? => Parrot revision r44954 required. 13:31
That cannot be
I see. that was #27 and #27 was not stable. #25 is stable, but fails to build for me. 13:32
13:32 dakkar left, justatheory left, drbean left, tylerni7 left, justatheory_ joined 13:33 justatheory_ is now known as justatheory
masak rurban: #25 was the last release from the old branch, now called 'alpha'. 13:35
pmichaud ...what is this "stable" of which you speak? 13:36
rurban rakudo-2010.02 says Parrot revision r44147 required (currently r0). rakudo-2010.03 says Parrot revision r44954 required (currently r0)
I want to provide updated cygwin packages.
So I need a match parrot for rakudo. And please no svn parrot releases.
pmichaud rakudo-2010.02 would work with Parrot revision 2.1.0 13:37
rakudo-2010.03 would work with Parrot revision 2.2.0
rurban Should I try #27 on latest unstable parrot 2.2?
pmichaud if you mean "developer parrot 2.2", then yes. 13:38
We don't have "stable" and "unstable" releases. 13:39
rurban Ok, will try that now.
unpatched rakudo #25 /usr/bin/parrot.exe -o perl6_s1.pbc perl6.pir error:imcc:syntax error, unexpected '\n', expecting '(' in file 'perl6.pir' line 29
(installed parrot-2.0.0)
Or should I wait for the April release?
pmichaud since it's just next week, you might wait, yes. 13:40
rurban Unfortunately we didn't meet in Minneapolis, frozen-perl. I heard about your wife. I'm sorry 13:41
CokeBot9000 Does the version that needs parrot 2.2.0 fail the same way?
dalek ok: b7aa7a8 | Coke++ | src/ (6 files):
Various typos/grammar related cleanup.
rurban just trying...
13:42 allbery_b joined 13:43 dakkar joined 13:45 ruoso joined 13:48 dalek joined
colomon just used @loops>>.points>>.perl>>.say; and it mostly worked... 13:50
13:51 ejs1 left
colomon makes me think we need a metaop that can do something like >>.say but properly in-order... 13:53
pmichaud colomon: this was discussed a couple of weeks ago, iirc
masak thinks that 'for' is enough
pmichaud and I think we decided it wasn't worth a metaop. Instead it was .sayall
colomon pmichaud: I vaguely remember it, but I don't remember a result... 13:54
.sayall ?
masak blech. :)
pmichaud @loops.sayall
afk
masak it's optimal already. time to stop fiddling with it, methinks.
.say for @loops
moritz_ wasn't the conjectural each() junction the result? 14:01
colomon moritz_: ah, that sounds more familiar...
14:03 Guest95543 left
masak the State of the Onion 2000 transcript on perl.com was transcribed by someone who doesn't know programming terms. it took me a while to realize which programming language 'Cobalt' was. :) 14:06
colomon Wasn't that the programming language of the ancients on BSG? 14:08
;)
Is there an easy way to get all the permutations of an array in p6?
masak besides writing a short sub? none that I've found. 14:09
jnthn Maybe something with the X operator
*meta-operator
colomon is imagining something involving X, but that sounds ugly and likely to not work atm
That's X, the op, not X comma.
14:10 iblechbot joined
moritz_ colomon: combinations are easy with X, but permutations are not 14:11
colomon yeah, just concluded that myself. 14:12
colomon ponders stopping $work for a moment to ... crap, HOP is still in a box somewhere at my in-laws.
masak rakudo: sub infix:<mix>($v, @a) { map { @a[0..^$_], $v, @a[$_..*] }, ^@a }; multi perms(@a[]) { say "empty" }; multi perms(@a[$h, *@t]) { $h mix @t }; say perms([1,2,3,4]).perl 14:13
p6eval rakudo 78faa0: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
masak aww :)
that might work in theory, though :) 14:14
is it possible that 'Int' is too narrow a type for indexing? 14:15
of arrays, I mean.
jnthn I think so
colomon jnthn: I've been meaning to ask, what is up with the Mu's in there? (for instance, crops up all over.)
jnthn I mean, consider my $idx = prompt "Index? "; say @foo[$idx]
masak right.
colomon Rats are supposed to work as indices as well, I believe... 14:16
masak I agree that it needs to be coerced to an Int.
jnthn colomon: It should really be the type of the class that's defining it.
masak: Right, but at the moment it dispatches based on having an Int. I found that awkward.
I think that area needs some tweaks.
moritz_ the typical postcircumfix:<[ ]> probably has a signature like *@@a, or whatever that's called these days
masak **@a, I think.
colomon is glad HOP is on-line.... 14:17
moritz_ **@@a :-)
masak oo.OO
colomon assumed moritz_ was joking, but is now afraid that might be real p6...
jnthn I think it's not. :-) 14:18
**@foo
is latest, iirc.
moritz_ colomon: I was 14:19
colomon is relieved...
14:19 miyagikd joined, ejs joined
masak rakudo: multi foo($x) { "general" }; my &c; { &c = { foo(42) }; multi foo(Int $x) { "specific" } }; say c 14:20
p6eval rakudo 78faa0: OUTPUT«specific␤»
masak jnthn++
rakudo: multi foo($x) { "general" }; my &c; { &c = { foo(42) }; multi foo(Int $x) { "specific" } }; say c; say foo(42) # just to make it clearer 14:21
p6eval rakudo 78faa0: OUTPUT«specific␤general␤»
masak the more I think about subs having 'my' scope by default, the saner it feels. a while ago, I was slightly skeptical. 14:22
jnthn is relieved that Rakudo is getting that stuff right now. 14:28
14:28 cognominal joined 14:29 miyagikd left
arnsholt I agree that my scope makes a lot of sense 14:33
masak am I understanding the 'multi' and 'proto' keywords correctly in that they say "all subs with this name in this scope AND in all inner scopes not hidden by an 'only' routine, share the same name"? 14:34
arnsholt I'm probably going to spend some time screaming while getting used to it, but it does seem to be the right thing
14:34 rgrau joined, cognominal left
masak arnsholt: I've yet to be bitten by it in actual practice. but yeah, it'll probably happen. 14:34
arnsholt In particular, it makes exporting nice and explicit
jnthn masak: Sounds about right. 14:35
masak and it makes subs-in-subs much saner.
arnsholt Oooh. Excellent point, that
masak I remember some discussions about that about a year ago. pmichaud++ tried to figure out how it all fit together.
14:35 cognominal joined
masak there were some nontrivial horrors caused by subs being 'our' by default, IIRC. 14:35
arnsholt I can imagine
In an unrelated note, I think I'm going to have to do something horrid in my grammar to parse Prolog operators 14:36
moritz_ masak: like being called before the surrounding lexical scope is initialized 14:37
arnsholt For example "X '=' foo." means the same as "X = foo." Whee.
masak PARROT_REVISION is at 45386, and I'm running 45704. I'm getting a LA error than the one in rt.perl.org/rt3/Ticket/Display.html?id=74410 , and I predict it'll happen when we bump PARROT_REVISION. just a heads-up. 14:38
moritz_: aye. ouch.
moritz_ '=' | \' ~ \' =
arnsholt Yeah. But it has to generalize to all operators, including the user-specified ones
jnthn masak: What do you get? 14:39
masak: Maybe a Parrot regression we should report.
arnsholt ATM I'm thinking of doing something with matching against an atom (all operators are valid atoms), and asserting that it is indeed an operator
moritz_ arnsholt: that's what Perl 6 meta operators also do
erm, not that technique 14:40
arnsholt Yeah, but \' ~ \' <op> won't work for all the ops
masak jnthn: 'Cannot substr on a null string' in perl6;Any;substr
arnsholt The \/ operator is '\\/' when quoted, for example
moritz_ \\o/ 14:41
arnsholt Yeah. Tenatcular, tentacular? =)
jnthn masak: Oh.
That does sound a tad schiese. 14:42
masak even the future has work to do! :) 14:43
TimToady std: 1 [+] 2 14:49
p6eval std 30396: OUTPUT«ok 00:01 109m␤»
TimToady std: 1 [[[+]]] 2
p6eval std 30396: OUTPUT«ok 00:01 107m␤»
masak jnthn: actually, the rest of the backtrace might be of interest too: gist.github.com/368502 14:50
looks like code you might have written :)
14:52 alester joined
masak looks like it's coming from line 42 in src/core/Signatures.pm 14:53
14:54 rv2733 left
TimToady how often is the perl6.org page supposed to update? the STD.pm -> pm6 change hasn't propagated yet, seemingly 14:57
rurban same rakudo-2010.03 eror with parrot-2.2: /usr/bin/parrot.exe -o src/gen/perl6.pbc src/Perl6/Compiler.pir error:imcc:syntax error, unexpected '\n', expecting '(' in file 'src/Perl6/Compiler.pir' line 25 14:59
jnthn rurban: Probably means dynops are messed up.
rurban: cygwin?
rurban yes 15:00
jnthn oh, cygwin is just a pile of annoyane.
*annoyance
masak rakudo: class A { class B {} }; A::B.new # this should work, shouldn't it?
jnthn But it's almost certainly a linking issue or something with the dynops library.
p6eval rakudo 78faa0: OUTPUT«Can not find sub A::B␤current instr.: 'perl6;Perl6Exception;throw' pc 14818 (src/builtins/Seq.pir:41)␤»
rurban how messed up? everything is binary. no crlf
masak alpha: class A { class B {} }; say A::B.new
p6eval alpha 30e0ed: OUTPUT«A::B()<0x2b1501b2e3e0>␤»
jnthn rurban: As in, the dynops ain't build properly.
rurban From an installed parrot if that matters 15:01
masak submits rakuodbug
rurban I see. I'll check
I don't trust an installed parrot anyway.
[particle] www.telegraph.co.uk/news/worldnews/...erman.html 15:02
i wonder if i'll wake up speaking fluent perl 6 some day
rurban watching German TV creates wonders :)
15:02 justatheory left
TimToady last I checked, cygwin was still in complete denial on the subject of Unicode 15:03
rurban Unicode you think? I used icu just fine all the time
masak en.wikipedia.org/wiki/Foreign_accent_syndrome
TimToady I mean in the tools
rurban LC and LANG is now also honored
TimToady good, sounds like progress, finally 15:04
about, oh, ten years late...
rurban yep. we have now finally all the wchar API in newlib
we do not use glibc neither the msvcrt for both political reasons 15:05
TimToady nods as if he understands politics
15:06 meppl joined
diakopter rurban: I'm curious as to your opinion toward mingw/msys 15:07
colomon rakudo: my @a = 1..10; @a.splice(3, 2); say @a
p6eval rakudo 78faa0: OUTPUT«123678910␤»
colomon rakudo: my @a = 1..10; @a.splice(0, 1); say @a
p6eval rakudo 78faa0: OUTPUT«2345678910␤»
rurban yes?
It's faster and has a lousy API 15:08
diakopter rurban: also, while you're here, I wanted to tell you that a very recent B::C dies on trying to compile Larry's Perl 6 frontend (STD.pm)
rurban "For limited usage"
Yes. I know. Thanks
diakopter ok; maybe you saw my tweet about it 15:09
rurban I'm writing now some B::C docs about the internals. so that other can understand it also
others
But I got Moose compiling, just MooseX::types not yet 15:10
15:11 nihiliad joined
jnthn For Rakudo, there's no reall reason to use cygwin or msys, imo. There's free versions of the MS C++ compiler available, you don't have to deal with abstraction layers and so forth, and it's a platform that Rakudo gets actively developed on. 15:12
colomon splice is failing in my code, with "No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'" :\
rurban But if you want more libs you can only use cygwin
diakopter jnthn: unless one already uses cygwin.
jnthn Well, there is that. 15:13
colomon rakudo: my @a = 1..10; say @a.PARROT; @a.splice(0, 1); say @a
p6eval rakudo 78faa0: OUTPUT«Array␤2345678910␤»
15:15 alester left
colomon rakudo: my @a = 'a'..'g'; say @a.PARROT; @a.splice(0,1); say @a; 15:18
p6eval rakudo 78faa0: OUTPUT«Array␤bcdefg␤»
colomon rakudo: sub foo(@items is copy) { @items.splice(0, 1); say @items; }; my @items = 'a'..'g'; foo(@items); 15:20
p6eval rakudo 78faa0: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
colomon bingo
bug?
jnthn huh, wtf. 15:21
Yes, I think bug.
is copy fail maybe?
pmichaud that'd be my guess.
colomon is copy fail of some sort, it seems.
jnthn Weird. 15:22
rurban I strace'd Compiler and saw no single occurence to load ./src/ops/perl6_ops.dll 15:23
colomon rakudo: sub foo(@items is copy) { @items[0] = 'z'; say @items; }; my @items = 'a'..'g'; foo(@items); say @items;
p6eval rakudo 78faa0: OUTPUT«zbcdefg␤abcdefg␤»
colomon So is copy basically works, but somehow leaves @items in a state where you cannot splice it. 15:24
rakudo: sub foo(@items is copy) { @items[0..^1] = 'z'; say @items; }; my @items = 'a'..'g'; foo(@items); say @items;
p6eval rakudo 78faa0: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
colomon rakudo: sub foo(@items is copy) { say @items[0..^1]; say @items; }; my @items = 'a'..'g'; foo(@items); say @items;
p6eval rakudo 78faa0: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
colomon There you go. 15:25
masak rakudobug?
pmichaud rakudo: sub foo(@items is copy) { say @items.PARROT; }; my @items = 'a'..'g'; foo(@items);
p6eval rakudo 78faa0: OUTPUT«Array␤»
colomon masak: totally.
masak submits
pmichaud rakudo: sub foo(@items is copy) { say PARROT(@items); }; my @items = 'a'..'g'; foo(@items);
p6eval rakudo 78faa0: OUTPUT«ObjectRef->Array␤»
colomon masak++
jnthn rakudo: sub foo(@items is rw) { say @items[0..^1]; say @items; }; my @items = 'a'..'g'; foo(@items); say @items; 15:26
p6eval rakudo 78faa0: OUTPUT«a␤abcdefg␤abcdefg␤»
pmichaud that "ObjectRef->Array" seems suspect. 15:27
jnthn yeah, moze byt
Perhaps a binder tweak is needed.
rurban Stupid error: the dynops builder still does not chmod +x the dynops/*.so,dll 15:28
Not it works
Now it works, sorry
CokeBot9000 ah, yah, that's all over the parrot makefile. 15:29
rurban Haven't I've fixed ages ago? I think so
CokeBot9000 I'd like for it to be be more automatic in the generated makefile so folks writing languages don't have to worry about it.
right, it should be fine in parrot, but I expect any HLLs using dynops to have this problem. 15:30
rurban++
rurban Makefile.in has very suspicious lines also (emacs refuses to save, no tabs, ...) 15:33
$(DYNEXT_TARGET): $(DYNPMC) $(DYNOPS) 15:34
$(CP) $(DYNPMC) $(DYNOPS) $(DYNEXT_DIR)
$(CHMOD) 755 $(DYNEXT_TARGET)
CokeBot9000 ... it's chmoding the original but not the copy? 15:36
rurban I dont think so 15:37
where's the rakudo tracker? 15:38
pmichaud [email@hidden.address] iirc
or rt.perl.org 15:39
moritz_ ask masak, he should know :-)
rakudobug is correct for submissions
masak it's perl.org 15:41
though I just type 'r' in Gmail and it gives me the right recipient :(
s/:\(/:)/ 15:42
rurban Oh no. My Maiefile.in patch does not work. 15:43
15:43 Guest91082 is now known as Trashlord, Trashlord left, Trashlord joined 15:45 MAK_ joined
pugssvn r30397 | lwall++ | Add a temporary STD.pm file directing people to STD.pm6 15:47
15:49 MAK_ left
rurban ExtUtils::Command -e cp removes the -x bit !!! aarg 15:52
masak gist.github.com/368600 # cute script to list all numbers that can be written as the sum of two squares in three or more ways 15:53
rurban Was this some Kennedy?
jnthn masak: söt! 15:54
masak :)
moritz_ masak: is that a Project Euler problem? :-) 15:55
TimToady issq really, really, really wants to be memoized... 15:56
masak TimToady: I'll try it that way.
15:59 ilogger2 joined
masak well, that totally ruins the suspense :) 15:59
takadonet masak: I have not ask a question since yesterday and you already answered it :)
TimToady horrors
masak takadonet: sorry, I mas-tabcompleted you instead of TCFToday. 16:00
takadonet masak:np
masak the confusion is all mine.
TimToady we should memoize all acronyms 16:01
rurban The rakudo-201003-1 cygwin package is now ready. I'll test it a bit more and upload it later.
TimToady rurban++
rurban First I have to wrangle Randy Kobes for ExtUtils-Command cp 16:02
TimToady masak: oh, wait, rakudo doesn't autoviv yet, so my idiom won't work...
hmm, maybe it doesn't need autoviv 16:03
masak don't think so.
TimToady should drink more coffee while he's behind.
masak benchmarking now.
16:04 nihiliad joined
TimToady we'll probably just discover how slow rakudo's indexing is :) 16:04
masak let's not speculate :)
TimToady hides his speculum. 16:05
masak I ran all numbers up to 1000: without the array: 47s. with the array 53s. 16:09
but I had to put the //= inside the sub, since putting it outside produced a behaviour I couldn't relate to.
investigating it now to see whether it is a bug.
rurban [cpan #56666] for cygwin cp -x 16:10
masak guess this only shows that array lookup is slower than two sqrt and a floor.
16:10 justatheory joined
jnthn two sqrt and a floor ain't going to be that expensive... 16:11
moritz_ sounds almost like a poem
a dozen, an index and a floor
come to a bar, knock at the door...
moritz_ has no poetry skill 16:12
rurban make install: and who's copies the docs and where's the man?
sigh
masak "I looked at your array lookup and said 'it's more expensive than two sqrts and a gloor...'"
s/gloor/floor/ 16:13
PerlJam is listening to a talk from a LIDAR guy from JPL
excuse me, he's in the "active optics" department.
masak gets bitten by having too many meanings for $_ in the same statement 16:15
16:15 justatheory left
masak folks, don't do 'take $_' inside an if inside a given. it probably won't do what you want. :P 16:15
PerlJam masak: or just remember to use -> $foo liberally rather than relying so much on $_ 16:16
TimToady well, not if you meant OUTER::OUTER::<$_>
masak PerlJam: can't do -> in statement modifiers. 16:17
TimToady maybe we should have "it", "this", "that", "yonder"
masak TimToady: you've been talking too much to lue lately :) 16:18
PerlJam masak: oh, then ... don't use statement modifiers so much! :)
masak PerlJam: now there's a wise word :)
fwiw, the suspected bug wasn't a bug, just an 1D10T error.
but doing it right (and thus avoiding the call as well) didn't speed things up either. 16:19
TimToady the parrot is still slothful at times 16:20
PerlJam at times?
CokeBot9000 hey, what happened to hug everybody? :P 16:21
[particle] CokeBot9000++
16:22 TimToady sets mode: +vvvv buubot dalek hugme iblechbot, TimToady sets mode: +vv ilogger2 IRSeekBot, TimToady sets mode: +vvv lisppaste3 p6eval phenny
moritz_ hugme: hug everybody 16:22
hugme hugs everybody
masak www.pbfcomics.com/?cid=PBF115-Hug_Bot.jpg 16:23
TimToady hugme: hug Parrot harder to try to squeeze out a bit more performance.
hugme TimToady:
[particle] bugme-- 16:24
masak being one of the lead Yapsi developers, I believe putting Perl 6 on a pure Perl 6 foundation will solve all our efficiency problems :P
TimToady hugme: hug Parrot harder to try to squeeze out a bit more performance.
hugme hugs Parrot harder to try to squeeze out a bit more performance.
masak my god, it's full of nbsps! 16:25
moritz_ masak: it will resolve all of your performance, yes
masak moritz_: "performance efficient" :)
[particle] dark matter
TimToady it will achieve perfect laziness, and you will achieve perfect impatience 16:26
[particle] does anyone else see the hubris here?
masak not until that too reaches perfection :)
TimToady it's between the lines
ruoso jokes aside, I still think we would need to have a Perl 6 implementation of every Perl 6 type, including the native ones, in order to support the actual Perl 6 semantics 16:27
masak *nod*
TimToady we need a software CPU!!!
and software bits 16:28
[particle] i've got soft bits.
moritz_ doesn't want to hear details
ruoso it probably means we need to define some subsets of Perl 6 that could be compiled down to C directly
jnthn is far from convinced. Everything should act like it's a Perl 6 thingy, but if it's guts are written in something else, so what.
TimToady what if you ask it to spill its guts? 16:29
[particle] seppuku?
masak I'll probably experiment with a Yapsi runtime written in C at some point. it won't have the tight integration to the compiler that I expect the Perl 6 one to have, but it'll be fast :)
TimToady actually, if the gut spiller lies and says what the Perl 6 code *would* look like, all we have to do is decompile the guts to get the pure Perl 6 implementation 16:30
ruoso maybe a "native int { ... }" package declarator
jnthn Yes, but what that means / compiles down to is up to the runtime.
TimToady where did I put my circularity unsaw....
[particle] i named mine humpty 16:31
jnthn Anyway, while I agree that writing as much as possible - or even all - in Perl 6 is a nice goal, it's probably post 6.0.
masak I've been thinking of how to implement infix:<+> in Yapsi. the best I can come up with is sub infix:<+>($a, $b) { #`( doing internal stuff here, don't look ) }
[particle] masak: call the + method on $a :P 16:32
masak [particle]: argh! :)
TimToady then call it on $b, and see if you get the same answer
masak :D
TimToady if not, average them
ruoso or multiply.. 16:33
[particle] ooh, self-correcting increment
ruoso remembers of a dilbert cartoon
[particle] that's dwidmy
jnthn masak: That's kinda what pir::foo is in Rakudo.
masak: I increasingly thing of it as vm::foo
*think
masak jnthn: yeah.
TimToady so 1+"2" would turn into, lessee, (3 + 21) / 2 == 12 16:34
PerlJam jnthn: just last night I was contemplating writing something like vm::foo that would abstract pir::foo out :)
masak jnthn: the issue gets raised because we'll have to show something in our class navigator (coming soon(TM))
[particle] you've trademarked 'soon'? 16:35
TimToady (if Perl were a language that overloaded + to mean cat)
masak TimToady: only if the '+' method on strings did concat. eww! :)
[particle]: no, but I will. soon(TM).
[particle] only pythoncatcat is crazy enough to do that
s/only// 16:36
rurban yes, rakudo looks fine now. I'll post missing docs and man patches also 16:37
masak and if you go visit the Lambdacats over at Y combinator, they stare at you for not treating strings as lists.
a blog post of mine talking about reverse/flip/invert ended up there, and got comments on the order of "that's just insane".
TimToady yes, most FPers think mere mortals are insane 16:38
diakopter awakens to an odd Friday on irc 16:39
TimToady and most quantum physicists think that chemists are insane 16:40
diakopter I guess I was awake earlier too. wait, was that I?
masak rakudo: class A {}; class B { method foo(A $foo:) { say $foo.WHAT } }; B.new.foo 16:44
p6eval rakudo 78faa0: OUTPUT«B()␤»
masak jnthn: can I submit this as a rakudobug?
TimToady the reductionists will (by definition) generally try to denigrate the importance of classifying and naming the emergent properties of larger systems
jnthn masak: Probably is one... 16:45
masak: Think we've seen it before...the nominal type isn't enforced for the invocant.
But don't recall seeing a ticket to go with it. 16:46
masak I can look for it in RT before I submit.
for some reason, I often guess a word in the RT ticket subjects right :)
this one is similar enough, I think: rt.perl.org/rt3/Ticket/Display.html?id=71476 16:47
jnthn Well
You are allowed to type the invocant parameter 16:48
It's just that Rakudo doesn't actual enforce it
masak sure!
jnthn I forget why.
The ticket seems to suggest you can't though.
masak oh
masak looks again
jnthn "Perhaps a compile-time error
saying that the user is not to type the invocant parameter, or else.@
TimToady what if the method is exported?
masak jnthn: I'll just add this conversation as a comment to that bug. 16:49
and maybe change its subject.
moritz_ "this ticket now says the opposite of what it said before"
jnthn TimToady: What about that? 16:50
TimToady the sig of the exported function has to let the old invocant particpate in multi dispatch with its type
jnthn I think if you override the invocant type, the sig of the exported function is whatever you said it is. 16:51
TimToady exporting is one of the reasons we say that methods are just subs if you rub them hard enough
jnthn Sure, I don't see the difficulty here though.
TimToady jnthn: that's what I'd expect
but if not specced, is already the type of the class
jnthn Oh, maybe I was unclear. When I said Rakudo didn't do it, my point was that it doesn't but should.
Rather than it never should. :)
TimToady that is, the default nominal type is $?CLASS or whatever 16:52
jnthn Right, that's what I expected.
It's been on my "to fix" list for a little bit. :-)
TimToady nodnodnod
TimToady falls asleep 16:53
TimToady sleepwalks to the coffee machine
masak food & 17:05
17:07 Trashlord joined 17:08 Trashlord is now known as Guest46112
PerlJam I wish I could understand why understand is so elusive 17:08
er, s:2nd/<after understand>/ing/
TimToady so I wish I could elude my elusive understanding... 17:09
PerlJam I just watched this guy talk about his 30Hz flash LIDAR system and it all made perfect sense. I was even able to help him answer a couple of questions that other people asked. 17:10
But looking at rakudo's guts ... some things just resist my understanding. 17:11
moritz_ PerlJam: the key is not to read them top to bottom
just try to understand how one particular thing is done works better, IME
TimToady slices, aka cross-sections 17:12
PerlJam moritz_: apparently I always pick the one thing that's hard :)
TimToady the stem-to-stern approach only works if you can keep everything in your head unanalyzed
and I rather suspect Parrot has gotten too big for any one person to hold in their head 17:13
moritz_ oh, it's not just parrot
jnthn Rakudo itself is just about the same.
moritz_ it's also NQP, these PAST:: nodes... 17:14
diakopter happens to excel at unanalyzed working set
17:14 pausenclown joined
TimToady but this is one reason why a compiler team of N people will tend to end up with an N-pass compiler 17:15
which leads me to believe that C# has about 50 people :)
PerlJam wait ... how many people are on the rakudo team? :)
17:16 dual joined
TimToady bbl & 17:17
diakopter everyone around me at $work today is very reflective.
also on irc.
odd.
jnthn Maybe there's something in the air.
PerlJam we're all mirrors
jnthn ...well, there certainly is over Europe. ;-)
pausenclown thinks he needs to do several passed too, in order to get DTD's parsed right
*passes 17:18
17:23 pmurias joined 17:29 molaf joined 17:38 alester joined 17:53 pmurias left
TimToady thinks jnthn can't tell the difference between smoke and mirrors.... 17:53
17:53 pmurias joined
jnthn I can't see my mirror for all the volcanic smoke! 17:55
17:59 alester left
TimToady you should have thought about that before you moved closer to Iceland 17:59
pausenclown yeah, yeah. a little dust and the whole air trave collapses. 18:00
noobs.
colomon btw, permute (justrakudoit.wordpress.com/2010/04/...utations/) did the trick for $work. \o/
18:03 alester joined 18:04 kerframil joined
rurban Just released 7+4 new packages. Off to beer now... Bye! 18:04
jnthn rurban: Nice! Happy beering!
colomon: Good post. Other option (core vs implement it yourself) is to put it into a module. ;-) 18:05
TimToady or into a core module :) 18:06
jnthn Huh...what's a core module... :-P
TimToady a module that wishes it were in core
but has been repeatedly snubbed for being fundamental rather than important :) 18:07
pausenclown speaking of modules, someone got more insight in cpan6 than "The first release of the CPAN6/Pause6 modules is planned for April 2010."? 18:08
TimToady we just have to find some way of requiring its use in the compiler for it to be both fundamental and important 18:09
18:09 rokoteko joined
TimToady "Unrecognized identifier 'sprixel' seen at line 42; did you mean its anagram 'perlsix'?" 18:10
colomon permute is lovely for exhaustive testing. ;)
rokoteko howdi. anyone mind telling me would this be absolutely silly, or brilliant? (quoted from #perl) erxz.com/pb/24807
TimToady looks like spam
rokoteko: can you be more specific before I visit a strange url? 18:11
rokoteko TimToady: well. what I discussed is in the paste. any reason why I should repeat it on the channel before someone reads it? 18:12
TimToady no, just checking to see if you're human. :)
I didn't recognize it as a known pastbot, is all
and people have been cracking security lately by human engineering redirects on tinyurl sites 18:13
rokoteko so now you think Im a human? brilliant. Ill share this info.
(with other non-humans) 18:14
TimToady yer welcome, but of course, the rest of us here are also bots, y'know
18:14 bkeeler_ joined, bkeeler_ left
CokeBot9000 . o O (we should get timtoady a necoro) 18:14
18:15 pausenclown left
rokoteko anyhow, no-one has yet told me this is idea is absolutely bad. so perljam adviced me to share it #here. 18:15
18:15 alester left
TimToady reading 18:15
CokeBot9000 see, I thought you had already read it and said that the thing in the nopaste looked like spam. 18:17
TimToady we tend to use zen slices for that already 18:18
$array[] and $haash{}
since people are already used to looking for the bracket dereferencers on that end
CokeBot9000 mmm, haaaaaash.
18:19 stephenlb joined
rokoteko TimToady: so *scalar{ARRAY}, *scalar{HASH} .. is better than $scalar:@, $scalar:% ? 18:20
TimToady: did you read the whole thing?
18:21 REPLeffect joined 18:25 dual_ joined, dual left 18:32 Kyril joined
[particle] rokoteko: in perl 6 there are no globs 18:34
so there's no built-in construct like perl5's *foo{HASH}
rokoteko [particle]: what are there? why not to have the identifiers at the beginning, and/or the end of the variable name instead of only at the beginning? 18:35
[particle] if you like, you can create your own syntax based on perl 6 standard syntax, by modifying the grammar in a 'slang' (roughly short for sublanguage)
rokoteko Ah. but I dont want to do that, mayb after 10-30 years when I got more experience. 18:36
I was just throwing out this idea.
[particle] so, you're free to modify your perl 6 programs to use a variant of the standard perl 6 grammar (currently in svn.pugscode.org/pugs/src/perl6/STD.pm6)
rokoteko about how human brain inteprets words and as I see perl was supposed to work. 18:37
but ok. thank you for this. :)
[particle] sigils are on the front of variables to keep all that syntax about typing in one place
rokoteko I was mainly thinking is this completely silly or not. it made sense to me.
thanks :)
18:37 rokoteko left
[particle] a little learning is a dangerous thing. 18:38
18:57 plobsing joined 19:18 chromatic joined
chromatic seen jnthn 19:19
Your bots are strange and different. 19:20
jnthn I saw him earlier in a mirror.
CokeBot9000 ?@bots.seen(:jnthn)
PerlJam jnthn: through the smoke? 19:21
jnthn Yeah...it was a bit hazy...but I'm pretty sure it was him.
Had the multi-colored beard and all.
chromatic jnthn, I'm having some trouble with the binder trying to update Rakudo for immutable Parrot strings. If I paste a patch to get Rakudo building against the branch, can you look into it? 19:22
jnthn Sure. Parrot branch name is? 19:23
.oO( oh no, svn...I can't just git checkout branchname :-/ )
chromatic immutable_strings_part1 19:24
gist.github.com/368832
jnthn chromatic: This should give us some performance win? 19:26
jnthn is checking out the branch now.
chromatic Without (much) tuning, it gave a 5% improvement building Rakudo. 19:27
19:27 fda314925 left
chromatic With some GC tuning, another 5% is within reach. 19:27
jnthn That's nice to have.
19:27 fda314925 joined
chromatic Another 3-4% may be possible if we give you a better way to handle string_from_literal(). 19:27
I also experimented with a function to ask "Is this substring contained within another string, starting at this offset?" to create fewer temporary strings. Without Rakudo passing its tests, I couldn't measure that, but it seemed like an improvement in the binder for sigil and twigil checking. 19:30
19:31 colomon joined
jnthn chromatic: It may but that's not a hot-path. 19:33
chromatic Yeah, I noticed that too.
jnthn It only impacts you on the first call to something. 19:34
chromatic If you have a lot of call sites and the ratio of sites to calls is high, it may be worthwhile... but I can't imagine such a program.
jnthn chromatic: I get a build failure with the patch you pasted. 19:37
bind.obj : error LNK2001: unresolved external symbol _Parrot_str_append
chromatic Are you building against a Parrot from the immutable strings branch?
jnthn Yes. 19:38
chromatic We changed a couple of C function signatures, so the headers need to match. That caught me a couple of times.
[particle] it probably needs PARROT_API or PARROT_EXPORT
jnthn I just checked out the branch, built/installed it, and have re-built Rakudo against it.
[particle] typical nmake
er, cl error
jnthn Was Parrot_str_append not going to be renamed to Parrot_str_concat?
chromatic I don't believe we did that yet.
jnthn s/append/concat/ in bind.c gets me through that, and it flags up another append in another place 19:39
chromatic You're right. Sorry about that. 19:40
jnthn Done those, we get to building the setting now. This'll take the usual bit of time. :-)
jnthn cleans the kitchen a bit from the halusky making while it does so 19:41
chromatic I see a runtime error that looks like it comes from Mu's say(), where it gets two params and expects one.
jnthn ouch, I fail the build. 19:44
C:\Consulting\rakudo\parrot_install\bin\pbc_to_exe.exe perl6.pbc
akudoparrot_install/lib/2.2.0-devel/include/config.fpmc' : Unknown error
current instr.: '_config' pc -1 ((unknown file):-1)
called from Sub 'handle_args' pc 161 (tools/dev/pbc_to_exe.pir:135)
called from Sub 'main' pc -1 ((unknown file):-1)
Anyway, I can run the .pbc 19:45
Oh, I think giving Configure.pl a --prefix=... with backslashes in screws it up.
(Parrot's Configure.pl)
Anyway, I see the same runtime error.
chromatic The one you pasted or the one I paraphrased? 19:46
jnthn The one you paraphased
The one I pasted is a build-time error
in pbc_to_exe
But the PBC is fine
chromatic Too many positional parameters passed; got 2 but expected 1
current instr.: 'perl6;Mu;say' pc 360749 (src/gen/core.pir:26361)
jnthn I think it's nothing to do with the branch.
Yup
$*OUT.say(42) gives the same error. 19:47
That's a clue.
chromatic I did some tracing and ended up finding that Parrot_binding_bind_signature returned a true value for bind_error.
jnthn I'm increasingly sceptical that the binder is the problem. 19:48
Sure it throws the error.
chromatic That's what I thought too.
jnthn Yeah, I think it's not the binder after all...
19:48 Chillance joined
jnthn ah, this is telling. 19:48
chromatic FWIW, it's the /* Do we have any left-over args? */ conditional that failed in the binder, whatever else went weird.
jnthn > die $*OUT.WHAT
Failure()
19:49 Chillance left
jnthn So $*OUT is not getting set up properly. That means that the call goes to Mu.say rather than IO.say 19:49
And that doesn't expect any arguments.
chromatic Ah, and that's the source of the second parameter.
jnthn So the binder is correct.
19:49 Chillance joined
jnthn But the thing we're calling is wrong. 19:49
Well, the thing we're calling a method on is wrong. 19:50
diakopter bzzt
chromatic How do we find out what we think we're calling a method on? 19:51
jnthn I pasted it above
It's the Failure() thingy
chromatic I mean "What isn't getting found and makes the Failure?" 19:52
jnthn $*OUT
It should get set up by an INIT block.
chromatic Yes, but why isn't $*OUT there? Is it getting misparsed? Is it not getting stored correctly? Is the twigil not getting stripped off?
jnthn No idea. 19:53
The bit of code doing it is PIR though.
$P0 = getstdout
$P0.'encoding'('utf8')
$P0 = IO.'new'('PIO'=>$P0)
set_hll_global ['PROCESS'], '$OUT', $P0
Let me check if it's actually getting run, first of all.
chromatic Right.
jnthn Building something with some say's in now to see if it sheds any light on it. 19:55
Also will check the contextual name it goes looking for.
ah
That code does a:
substr pkgname, 1, 1, ''
That looks like something that could feasibly have gotten busted in the immutable strings branch. 19:56
pmichaud good afternoon, #perl6
jnthn oh hai, pmichaud
chromatic I'll check that op in Parrot. 19:57
PerlJam greets Pm
moritz_ smells missing test coverage
jnthn chromatic: The init code is indeed being run and looks to be working.
pmichaud (vm::foo) actually, I've been thinking of nqp::foo
jnthn pmichaud: ...because? :-) 19:58
pmichaud: Could work though.
:-)
pmichaud that way nqp can define common operations and do translation to whatever the lower-level vm provides
jnthn You thinking that nqp ...ah.
I like that.
chromatic: Also doing some before/after say statements for that. 19:59
pmichaud also, the existing rakudo code seems to have a lot of pir::opcode__XYZ where the __XYZ is really not needed (and thus shouldn't be there)
chromatic I'm testing a rewrite of those two PIR statements in Rakudo. The clone should be unnecessary.
pmichaud plus there's a lot of places where people have put in uppercase register types
jnthn # before $*OUT 20:00
# after $OUT
PerlJam pmichaud: and there's lots of Q:PIR too
jnthn Hmm, that doesn't look wrong.
chromatic My fix didn't do much either. 20:02
The --target=PIR also has $P23 = "!find_contextual"("$*OUT")
jnthn That's fine.
It's meant to.
chromatic $*OUT is correct there, I mean. 20:03
jnthn It's in !find_contextual that we strip the * out.
20:04 tylerni7 joined, tylerni7 left, tylerni7 joined 20:06 molaf left
jnthn Ah 20:06
$P0 = get_hll_global ['PROCESS'], pkgname
On this line, $P0 comes back as null. 20:07
chromatic Yes.
jnthn But oddly
> die $PROCESS::OUT
IO()<0x3333b2c>
moritz_ bikeshedding question: should Date use ISO 8601 weekday numbers (1 = Monday ... 7 = Sunday) or the traditional 0 = Sunday ... 6 = Saturday? 20:08
pmichaud perhaps the get_hll_global is happening before PROCESS::<$OUT> is initialized.
moritz_ oh
jnthn > Q:PIR { $P0 = get_hll_global ['PROCESS'], '$OUT' }; Q:PIR { say $P0 }
IO()<0x3333b2c>
moritz_ DateTime already uses the ISO 8601 thing
jnthn That's...bizzare.
arnsholt moritz_: As far as I'm concerned, the week starts on monday
pmichaud why are the PROCESS:: vars being initialized twice? 20:09
src/gen/core.pm and src/cheats/setup-io.pm ?
jnthn pmichaud: ?
pmichaud: oh
pmichaud: src/cheats/setup-io.pm is one of the files that goes in to core.pm
pmichaud oh 20:10
core.pm is now generated
jnthn core.pm is generated from a bunch of files, that's one of them. See Makefile.in.
pmichaud evil, it should be in gen
jnthn It is.
pmichaud oh, it is.
nm.
moritz_ :-)
jnthn :-)
colomon :)
pmichaud you all will have to bear with me as I try to catch up on 7+ weeks of development that occurred in my absence. :-)
PerlJam rakudo: my @a = "a".."z"; say "blah @a[0] foo @a[7]" 20:11
p6eval rakudo 78faa0: OUTPUT«blah a foo h␤»
jnthn rakudo: my @a = "a".."z"; say "blah @a[]" 20:12
p6eval rakudo 78faa0: OUTPUT«blah a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
jnthn chromatic: It couldn't be about pre-computed hash values?
chromatic: And the hash value not getting updated?
(in the in-place substr)
PerlJam rakudo: my %h = "foo" => sub { my @a = 1..10; }; say "foo %h{'foo'}.().[4] bar"; 20:13
p6eval rakudo 78faa0: OUTPUT«foo 5 bar␤»
chromatic I don't *think* so. The string doesn't get updated in place; the op updates the register with the new string.
PerlJam jnthn: that's *sweet*
jnthn PerlJam: Isn't it. :-)
20:14 ruz joined
ruz jnthn: ping 20:14
seen jnthn
jnthn ruz: o/ 20:15
ruz are you ok, were you able to leave moscow before delays? 20:16
CokeBot9000 chromatic: but is the new string getting a new hash? (or is that not stored?)
jnthn ruz: Yes, I was! :-)
ruz: I got back to Copenhagen about 11:30am local time.
ruz: And airspace closed here 16:00
ruz ok
chromatic The new string should have a hashval of 0. 20:17
jnthn At the time I was sad to be leaving so soon, but in hindsight it was a good thing!
ruz glad you could make it, recall you had something important planned
jnthn Some $DAYJOB thingies. They'd have re-scheduled without me, but nice to keep to commitments. :-)
pmichaud rakudo: my %h = 'foo' => 'bar'; say "foo %h"; 20:18
p6eval rakudo 78faa0: OUTPUT«foo %h␤»
ruz yeah, few minutes ago I thought that it might be good if you couldn't make it
so I would have a chance to invite you to dinner
jnthn Getting stuck and having to spend more time in Russia wouldn't have made me sad. :-)
20:19 ShaneC joined
jnthn chromatic: OK, if I change the line from 20:19
$P0 = get_hll_global ['PROCESS'], pkgname
to
$P0 = get_hll_global ['PROCESS'], '$OUT'
Things work.
ruz anyway, I'm glad you're ok and didn't stuck after passing custody :)
sorear [particle]: Do slangs actually work in Rakudo yet? If so, how do I use them?
jnthn Even though a say pkgname gives $OUT
PerlJam std: my %h = 'foo' => 'bar'; say "foo %h"; 20:20
p6eval std 30397: OUTPUT«ok 00:01 110m␤»
20:20 ShaneC left
jnthn std: say "foo %h"; 20:20
chromatic Hm. Now that's curious.
p6eval std 30397: OUTPUT«ok 00:01 108m␤»
jnthn std: say "foo %h{}";
p6eval std 30397: OUTPUT«===SORRY!===␤Variable %h is not predeclared at /tmp/MYqjYwFwS5 line 1:␤------> say "foo %h⏏{}";␤Check failed␤FAILED 00:01 108m␤»
jnthn rakudo++, std++
sorear: No 20:22
chromatic: checked that the length changes between the two. It does. 20:23
moritz_ phenny: ask masak what he thinks about a WeekDay enum for DateTime and Date - I kinda don't like the 1 to 7 magic (and arbitrary) numbers
phenny moritz_: I'll pass that on when masak is around.
chromatic Does the length change *correctly*? 20:24
jnthn Yes
oh
yes.
:-)
5 to 4.
sorear chromatic: Can I use strings which hash to 0 to mount an algorithmic complexity attack against Parrot? 20:25
jnthn Which matches $*OUT to $OUT
20:25 ejs joined
chromatic sorear, if you can deal with the semi-predicate problem perhaps. 20:25
plobsing sorear: in theory, probably yes, but the hash seed keeps changing so it might be hard to make that happen. Also if you're picking strings to attack parrot through hashing, some hash seeds + sequences of hash ops can cause arbitrary memory to be overwritten (TT#1499), which is a much better exploit 20:29
20:29 PerlStalker joined
jnthn chromatic: And (another data point) changing it to: 20:32
$S0 = substr name, 0, 1
$S1 = substr name, 2
pkgname = concat $S0, $S1
Makes it work.
lisppaste3 moritz_ pasted "Add 'Date' class to Temporal.pod" at paste.lisp.org/display/97893
chromatic That inplace subst op is suspect then.
jnthn chromatic: Seems so.
chromatic: I need to look at something else for a little bit now. 20:33
moritz_ would welcome some eyes on that patch before submitting
jnthn chromatic: But I think we've narrowed it down substantially.
chromatic Any objection to making that change in Rakudo for now?
jnthn Well, we could perhaps, but maybe we use that form of substr elsewhere too.
chromatic I didn't see anything with ack. 20:34
That op may be destined for deprecation anyhow.
jnthn OK
chromatic Thanks for your help.
jnthn Well, let me try a build without the prefix backslashed
And I can run a spectest while I do the other bits.
What are we looking at in terms of merge schedule for the branch? 20:35
chromatic Post 2.3.
No sooner.
jnthn Ah, OK 20:36
chromatic Any op deprecations will take place after that.
jnthn So I should perhaps take the patches to get Rakudo to work under this and pop them in a branch?
sorear plobsing: oh dear
jnthn And then we just merge that and bump when Parrot merges.
chromatic I'm happy to commit them to the branch.
sorear plobsing: I've done a fair amount of hair pulling with blizkost on vtables full of 0 and 0x80000 20:37
I blamed it on virtual address space randomization affecting GC order
but I think now I was wrong...
20:38 ejs left 20:39 nadim left
pugssvn r30398 | moritz++ | [S32/Temporal] spec Date type 20:40
r30398 |
r30398 | This is heavily inspired by Date::Simple on CPAN, and mostly implemented
r30398 | at github.com/moritz/Date/ as an external module, that currently works
r30398 | fine with Rakudo (but is really compiler agnostic).
moritz_ enough spec hacking for today, now it's zzZZZzz time 20:42
jnthn night o/ 20:44
diakopter night
20:49 justatheory joined
diakopter ... in theory 20:49
justatheory …in bed
plobsing sorear: vtables with 0s and 0x80000s is Parrot's way of saying "please retry your test at a later time" :p 20:50
sorear plobsing: Do you know what 0x80000 means? 20:54
I was struck by the oddity of that number, but couldn't trace it 20:55
plobsing I have absolutely no idea where it comes from. The test case in TT#1499 was in rakudo spectest, so setting a global memory watch would have taken days
CokeBot9000 was it 0x80000 or 0x800000 ? 20:57
sorear CokeBot9000: I don't recall, I'll check 20:58
20:59 ilogger2 joined, ReiniUrban joined
sorear oh wow awesome apparently my stack frame list is *circular* 20:59
20:59 SmokeMachine joined
jnthn Congrats! 21:00
21:00 ejs joined
sorear jnthn: yes, it brings whole new meaning to "stack smashing" 21:00
the same 6 stack frames have their backlinks arranged in a circle 21:01
21:01 ReiniUrban is now known as rurban
sorear gdb doesn't seem to notice and thinks I'm in an infinitely nested call 21:01
PerlStalker Is MAIN() supposed to be called automatically if it exists or do I need to call it?
jnthn Automatically. 21:02
sorear Is MAIN implemented in any current implementation?
PerlStalker jnthn: That's what I thought.
jnthn sorear: Rakudo alpha had it working, iirc.
PerlStalker I'm using Rakudo pulled from git this morning but it isn't calling it. 21:03
jnthn PerlStalker: Yeah, I think just not yet implemented there yet. 21:05
We'll get to it. :-)
PerlStalker No worries.
I thought I'd take some time today and play with perl6 since I haven't looked at it in a while. 21:06
sorear CokeBot9000: I'm having trouble reproducing the exact crash from earlier, could you explain where both values could come from?
PerlStalker I saw the docs on MAIN() for the first time was playing around with it.
s/was/and was/ 21:07
CokeBot9000 sorear: I was just grepping through the parrot source.
if you have any details, open a new ticket with trac - less code the better, parrot only a plus. 21:08
sorear I have just done something I should have done long ago 21:12
experimentally disabled address randomization
and... the crashes are still intermittent
so it has to be hash seeding doing it
21:15 TiMBuS joined 21:20 SmokeMachine left 21:24 masak joined
masak ahoy, #perl6 21:25
phenny masak: 20:23Z <moritz_> ask masak what he thinks about a WeekDay enum for DateTime and Date - I kinda don't like the 1 to 7 magic (and arbitrary) numbers
masak moritz_: only problem I see with a weekday enum is that it's a bit hardcoded, i18n-wise.
jnthn ahoj, masak...ako sa mas?
sorear ... this is BOTH hash seeding AND destruction order
jnthn Varil som bryndzové halušky!
masak dobry, vd'aka.
jnthn: yes, I read that. congrats! 21:26
moritz_: also, we don't have named enums yet :/ doesn't prevent it being spec'd, 'course.
jnthn The feta seems to be pretty close in taste to the sheeps cheese that the Real Thing uses.
masak nice. 21:27
I've got to try that some day.
well, I won't be long. just wanted to talk to phenny a bit. 21:29
see you sometime before 2038. :)
21:29 masak left 21:42 SmokeMachine joined 21:45 nadim joined 21:49 wknight8111 joined 21:52 SmokeMachine left 22:28 ejs left 22:50 M_o_C joined 22:51 arlinius left 23:08 ruoso joined 23:09 orafu joined 23:21 ruoso left
lue oh hello there. It appears that there has been no activity (bar leaving/entering #perl6) for a couple hours. 23:34
sorear :/ You broke it.
lue D: oh no! I broke the silence! :) 23:37
TimToady you'd think it was friday night or something 23:48
23:49 rv2733 joined 23:50 fhoahf38771 joined, fhoahf38771 left 23:55 jhuni joined
lue oh, hm, you'd think... 23:58
(tomorrow is new Doctor Who! :D) 23:59