»ö« | 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 &fourcurrent 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 1Check failedFAILED 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 failedFAILED 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«55344477672» | ||
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 objectat (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«55344477672» | ||
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«183» | ||
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«specificgeneral» | ||
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::Bcurrent 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«Array2345678910» | ||
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«Arraybcdefg» | ||
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«zbcdefgabcdefg» | ||
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«aabcdefgabcdefg» | ||
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 failedFAILED 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 |