»ö« | perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is your friend! Set by Tene on 14 May 2009. |
|||
Eevee | but with say python you get set/odict/defaultdict, datetime, miscellaneous math/functional stuff, pickle, zlib, curses, a dozen different protocols, etc | 00:00 | |
TimToady | but really, there ought to be a link from "rot13" to caesar somewhere that can teach these folks | ||
DanielC | 17 functions to connect to a database in the standard library... | ||
Eevee | perl those would all be different tiny cpan modules, which are all tiny potential points of failure with possibly unsynchronized releases etc | 00:01 | |
DanielC: of course! one for every type of database! how else would you possibly do it | |||
DanielC | :-) | ||
TimToady | we're hoping to have a distribution model that bundles these things in ready-to-use packages | 00:02 | |
but it's not the job of "kernel" p6 to provide these distributions | |||
pmichaud | TimToady: that's a conversation that came up this last month -- do you have an opinion on whether rakudo should aim to be a kernel p6 implementation or a distribution? | 00:03 | |
TimToady | one of these distributions should be "what any ISP should install" | ||
Eevee | well, thinking of the pov of $enduser who doesn't care who does what | ||
pmichaud | (currently it's a kernel implementation, obviously) | ||
Eevee | a broader reliable base library would be nice, however it ends up being distributed | 00:04 | |
DanielC | PHP's == operator is not transitive... It doesn't guarantee that if $a == $b and $b == $c then $a == $c... | 00:05 | |
TimToady | certainly, we want eventually to have organizations supporting distributions like RedHat, Ubuntu do for linux | ||
or Microsoft does for Windows :) | |||
DanielC | TimToady: Really? You want "distributions" of Perl? | ||
TimToady | for some value of "supporting"... | ||
yes, that's been the plan for years | 00:06 | ||
DanielC | ok | ||
TimToady | it scales better than the p5 model | ||
perhaps CPAN6 should be viewed as a "distribution" in this sense | |||
or a bunch of distributions | 00:07 | ||
DanielC | It seems a bit odd. I can't think of any other language that does that. A language like C may have multiple compilers, but those are not distributions. | ||
TimToady | but certainly the current CPAN model has its limitations | ||
Eevee | TimToady: how would this work in practice? if I, joe developer, just want to get perl 6 and don't care what that means, what can I be sure I'm getting? | ||
DanielC | On the other hand, it means it's a novel idea. | ||
TimToady | yes, but one group supplies gcc, while another supplies glib | ||
pmichaud | Eevee: for most such questions, I substitute "perl 6" with "linux" and see how that works | ||
"if I, joe developer, just want to get linux and don't care what that means..." | 00:08 | ||
TimToady | it's only novel to navel gazers :) | ||
DanielC | TimToady: yes, so there is no "C distribution" that gives you a compiler plus the distributor's favourite C libraries. | ||
Eevee | pmichaud: wait 20 years for a particular distribution to become a shining star and overtake the name "linux" in mindshare? :( | ||
TimToady | well, arguably cygwin kinda works that way | 00:09 | |
pmichaud | so does MSVC | ||
Eevee | pmichaud: there is still an LSB too | ||
pmichaud | and Turbo Pascal certainly worked that way | ||
DanielC | ok | ||
unitxt | <-- newbie, nuff said....thanks for the rakudo.org/how-to-get-rakudo link...wrote my 1st p6 program and smiled....thanks for that resource everyone...that's all i wanted to say. :) | ||
Eevee | linux-plus-OS and C both have some list of things that ought to work in any distribution | ||
pmichaud | unitxt: you're welcome | ||
TimToady | unitxt: ditto | ||
sjohnson | rakudo: $A = 'MOOSEHEAD'; $B = 'MOOSEHEAD'; my @B_array; push (@B_array, $B); foreach (@B_array) { print "Testing [$_]\n"; if (grep(/$_/, @A)) { print "true"; } else { print "false"; } } | 00:10 | |
p6eval | rakudo 92c78f: ( no output ) | ||
sjohnson | rakudo: $A = 'MOOSEHEAD'; $B = 'MOOSEHEAD'; my @B_array; push (@B_array, $B); for(@B_array) { print "Testing [$_]\n"; if (grep(/$_/, @A)) { print "true"; } else { print "false"; } } | ||
p6eval | rakudo 92c78f: OUTPUT«Statement not terminated properly at line 2, near "{ print \"T"in Main (src/gen_setting.pm:0)» | ||
sjohnson | we should stick a Perl5 interpreter up here too | 00:11 | |
DanielC | TimToady: So you are thinking of things like ActiveState Perl having their own set of libraries? | ||
pmichaud | I would say "selecting which libraries to bundle" instead of "own set" | ||
DanielC | ok | ||
pmichaud | there would be a common cornucopia of libraries, but different distributions would select the subset that best fits their clients' needs. | 00:12 | |
and perhaps develop a few special-purpose libraries that can be added to the cornucopia | |||
DanielC | subset or superset? | ||
pmichaud | subset | ||
I don't know anyone who wants to install all of CPAN | |||
DanielC looks up cornucopia | 00:13 | ||
pmichaud | "universe" could be another term. | ||
DanielC | ah | ||
DanielC 's first guess was "core" | |||
Eevee | that will be great as long as CPAN6 is perfect 8) | 00:14 | |
00:14
patman000 joined
|
|||
DanielC | So Oracle might make Solaris' Perl come with the DBI module. | 00:14 | |
Bad example. | |||
Linux distributions already do that sort of thing I'm sure. | |||
Eevee: PHP has all those egrep* vs preg_* functions. What's up with that? And then they added mb_egrep* | 00:16 | ||
pmichaud | egrep_* uses one regex engine | ||
preg_* uses PCRE, a different regex engine | 00:17 | ||
DanielC | I know... | ||
pmichaud | mb_egrep_* is a regex engine that can work on various charsets | ||
DanielC | Earlier Evee and I were talking about why PHP is broken :-) | ||
preg_* are supposed to emulate Perl. | 00:18 | ||
pmichaud | different languages just break in different ways. | ||
DanielC | "3079 core functions in PHP" | ||
ascent_ | so you can give some real example of module that can be other in two distributions? | 00:19 | |
00:19
xinming joined
|
|||
DanielC | 15x more than Perl 5 (and Perl 5 makes no particular effort to make the core small) | 00:19 | |
ascent_: Maybe a "web developer's" distribution will come with Mason and DBI. | 00:20 | ||
pmichaud: I don't think PHP is all bad. There are things I like about it (it's a great templating language). | 00:22 | ||
00:24
amoc left
|
|||
skids | Well, my 2 cents is it would be really silly to package stripped down versions of those parts of the functionality that is needed anyway to load modules. Might as well have those parts fully functional. | 00:32 | |
So e.g. to load a module you have to find a file, so filesystem stuff should be fully included. | 00:33 | ||
(Instead of just the minimum FS stuff module loading needs) | 00:34 | ||
meppl | good night | 00:36 | |
sjohnson | see ya | ||
meppl | ;) | 00:37 | |
00:38
payload joined
00:40
meppl left
00:42
nihiliad joined
00:48
jferrero left
00:52
eternaleye joined
|
|||
pugs_svn | r26970 | lwall++ | [STD] allow bare v6 as version number | 01:02 | |
01:09
cognominal left
01:11
amoc joined
01:12
wayland76 left
01:13
wayland76 joined
|
|||
wayland76 | @tell DanielC PHP is not as good a templating language as Mason, due to lack of autohandlers and dhandlers | 01:17 | |
lambdabot | Consider it noted. | ||
PerlJam gets an error that doesn't make much sense: Could not find non-existent sub die | |||
01:18
patman000 left
|
|||
PerlJam | wayland76: except that PHP is ubiquitous because almost every instance of apache comes with mod_php | 01:18 | |
(which, in a way, makes it a better templating language than Mason :) | 01:19 | ||
01:20
amoc left
|
|||
wayland76 | I'd argue that that doesn't make it a better /language/. | 01:20 | |
If you put the more general case that PHP is easier to set up than Mason, I'd agree, though | 01:21 | ||
When I wanted a CMS, I used Drupal | 01:22 | ||
PerlJam | wayland76: you're in oz, right? | 01:26 | |
01:28
DanielC left
|
|||
wayland76 | That's right | 01:28 | |
sjohnson | PHP is not a good scripting language either imo | 01:29 | |
if i had a nickel for everytime i had to use (preg_replace and preg_match)... | |||
01:30
DanielC joined
|
|||
PerlJam | wayland76: what part? | 01:30 | |
wayland76 | PerlJam: About an hour from Melbourne | 01:32 | |
PerlJam | sjohnson: PHP is just not a good language. It's got lots of foibles. But it is good enough apparently. | ||
wayland76 | Well, maybe a bit more | ||
sjohnson | since we're being honest here | ||
may i say that using PHP as opposed to Perl for scripting is like using a coathanger for a 2.4ghz wifi router antenna compared to a yagi | 01:33 | ||
DanielC | PerlJam: Are we talking about PHP again? :-) | ||
lambdabot | DanielC: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
wayland76 | sjohnson: Two words; legacy code :) | ||
DanielC | wayland76: One of these days I'd like to learn Mason and autohandlers and stuff. | 01:34 | |
PerlJam | sjohnson: yeah, but a coat hanger is something that the masses can relate to. They've seen it before. If they need to adjust their signal strength, they wiggle and bend the hanger. Et cetera. :-) | 01:35 | |
sjohnson: *and* they just don't know any better because the don't understand the difference between the coat hanger and the yagi | |||
sjohnson | coat hangers are readily available | ||
PerlJam | sjohnson: never mind the yagi gives them excellent signal quality and gain, their coat hanger had been working forever :) | 01:36 | |
01:39
Chillance left,
araujo left
|
|||
sjohnson | PerlJam: you can ask your grandma what a coathanger is, and even she'll heard of it being used | 01:40 | |
01:40
DanielC_ joined
|
|||
DanielC_ | Sigh... I hate my wireless connection. | 01:40 | |
PerlJam | sjohnson: DanielC must be using a coat hanger ;) | ||
DanielC_ is back in the room with the good connection | |||
DanielC_ tries to remember how to get his nick back. | |||
Can anyone remind me how to kill DanielC so I can become DanielC again? | 01:41 | ||
01:42
DanielC is now known as Guest74016
01:43
DanielC_ is now known as DanielC
|
|||
DanielC | Ok, I am me again. | 01:43 | |
I guess I missed the PHP bashing session :-) | 01:44 | ||
PerlJam | We can bash PHP all day long, but it doesn't get us anywhere. | 01:46 | |
JDlugosz_ | On "Make TV" on PBS they showed how to make a real antenna, suitable for Hi-def, out of coat hangers. | 01:47 | |
sjohnson | heh | ||
01:47
Whiteknight left
|
|||
skids | DanielC: www.freeantennas.com/projects/template/ | 01:47 | |
DanielC | *click* | ||
JDlugosz_ | Anyone want to be the first to read my latest ? | ||
skids | How can I be sure I'll be the very first? :-) | 01:48 | |
JDlugosz_ | I _just_ pushed it up to my web site. Not linked in to the content yet, just getting reviews and discussion. | ||
I'll tell you the URL in a msg. | |||
a minute before I tell everyone else. | |||
sjohnson | anyone here have any experience with Term::ReadKey? | ||
skids | haha. | ||
sjohnson | i'm trying to just parse a simple keystroke easily | ||
JDlugosz_ | <www.dlugosz.com/Perl6/web/lvalues.html> | 01:49 | |
skids | sjohnson: keys are actually not simple. | ||
sjohnson | the cpan module might not be what i need, or is this simple request is buried deep within its man pages | ||
JDlugosz_ | Yea, my keys have springs and plastic domes and metal parts in them. | ||
Hmm, I seem to have a _ suffix today. | |||
skids | Well, I was referring mainly to keycode mapping tables and modifiers. | 01:50 | |
01:50
JDlugosz_ is now known as JDlugosz
|
|||
JDlugosz | I've done key codes in the raw before, on PC hardware. | 01:50 | |
Like, 15 years ago. | |||
skids | JDlugosz: "$x.meth" doesn't interpolate (at least under rakudo) in first example. | 01:53 | |
PerlJam | JDlugosz: IMHO, the first part up until the sentence | ||
"That is what we mean by an lvalue" is confusing | |||
JDlugosz | Hmm, PerlJam, what is it about it? | 01:54 | |
skids: Is it supposed to? I think the rules have changed more than once, re needing parens or whatever. | |||
PerlJam | JDlugosz: just too many words to get to the point of lvalue-ness. The words don't seem to serve clarity | 01:55 | |
01:55
sri_kraih left
|
|||
PerlJam | $x.meth() should interpolate in double quoted strings. (But probably still doesn't in rakudo) | 01:55 | |
JDlugosz: anyway, you can use this: say "My Dog's name is {$d.get_name}"; | 01:57 | ||
JDlugosz | The issue, why the explaination, is because "changed" can mean different things. | ||
DanielC | Ok, I'm going to hit the sac. | ||
night y'all | |||
01:57
DanielC left
|
|||
JDlugosz | Ah, found it in S02. Needs parentheses. | 01:59 | |
PerlJam | JDlugosz: maybe if you just started with a simple assignment rather than subs and instantiating objects and calling methods and such. | ||
02:00
Guest74016 left
02:01
davidad left
|
|||
JDlugosz | It would be difficult to make a non-lvalue without using a parameter list. Would need to introduce more concepts. And functions are so common. | 02:01 | |
skids | The examples seem to have bits in them that don't serve to advance the point. | 02:02 | |
JDlugosz | Maybe I can streamline them some. Might be left over from earlier editing... | ||
skids | Have lvalue-returning subs been changed from "is rw" to "is lvalue"? When did that happen? | ||
02:03
dukeleto joined
|
|||
JDlugosz | skids: let me check. | 02:03 | |
skids | rakudo: my $a = 1; my $b = 1; ($a, $b) -> $c, $d { $c = 2; }; $a.say; $b.say; | 02:05 | |
p6eval | rakudo 92c78f: OUTPUT«Statement not terminated properly at line 2, near "-> $c, $d "in Main (src/gen_setting.pm:0)» | ||
JDlugosz | Yes, S06 shows is rw. Maybe I remembered wrong. Maybe changed to that a long time ago... ambiguous to have a trait that may be applied to a routine or the type if using the "returns" (now "of") form? | ||
Whatever. Thanks for catching that. | |||
skids | rakudo: my $a = 1; my $b = 1; for ($a, $b) -> $c, $d { $c = 2; }; $a.say; $b.say; | 02:07 | |
p6eval | rakudo 92c78f: OUTPUT«Cannot assign to readonly variable.in Main (/tmp/Re84l0a1X3:2)» | ||
skids | rakudo: my $a = 1; my $b = 1; for ($a, $b) -> $c is rw, $d { $c = 2; }; $a.say; $b.say; | ||
p6eval | rakudo 92c78f: OUTPUT«21» | ||
skids | easier example than a predeclared sub. | 02:08 | |
JDlugosz | skids: in your rakudo example, $c=2 should be an error, since it is read-only. | 02:09 | |
I guess it's output errors is not the point, though. | |||
I see what you mean. | 02:10 | ||
So is rakudo supposed to catch that at compile time? Maybe the error message was just the wrong one. | 02:11 | ||
skids | The error messages look right to me. | 02:12 | |
(?) | |||
JDlugosz | "statement not terminated properly" means "you can't assign to a read-only variable"? | ||
skids | That first one was a bad attempt -- it didn't like just ($a,$b) -> $c, $d without the for loop. Not sure if that's right, but the others look OK. | 02:13 | |
JDlugosz | Oh, you need a "do" in front to make it call it. But should just sit there as written. | 02:16 | |
Same as writing 2; on a statement by itself. Big deal. But it must parse. | |||
pmichaud isn't following this very well. | 02:18 | ||
So far rakudo seems to have responded "correctly" (or at least not wrongly) to each of the above. | |||
skids | I don't think it's specced that ro parameters inside a function are containerless. I think implementations are free to wrap in a new readonly container. | ||
JDlugosz | skids, would that be of some benifit? | 02:19 | |
Or should such a choice be invisible to the program? | 02:20 | ||
skids | Better ask an actual implementor on that one :-) | 02:21 | |
pmichaud | my $b = 5; sub foo($a) { $b++; say $a; }; foo($b); | 02:23 | |
rakudo: my $b = 5; sub foo($a) { $b++; say $a; }; foo($b); | |||
p6eval | rakudo 92c78f: OUTPUT«6» | ||
pmichaud | (there's actually a pugs spectest that requires this behavior) | ||
JDlugosz | I'm trying to separate the way any real implementation might choose to do things from the view from inside the Perl 6 program. that is, what can you perceive using Perl itself, using the accessors provided to chase the data structures? | 02:24 | |
Yes, you can't change the object through $a but it must realize that it can be changed along a different access path. | 02:25 | ||
Ah, you mean that since the Int is immutable, that would not happen as I drew it. | 02:26 | ||
pmichaud | oh, I hadn't looked at the page yet. | ||
I've just been following the conversation here. | |||
skids | Good, then for once you are as confused as everyone else :-) | ||
JDlugosz | Thanks for pointing it out. I guess a container is needed. | ||
Does that mean that you want any change in value, e.g. reference assignment, to be reflected in the function's view? | 02:28 | ||
I guess that's why it's worded the way it is in the synopses. | |||
skids | "If you are annoyed that you can’t assign to the parameter, this is what you need." -- might want to add "but do not want to change the caller's copy of it" | 02:30 | |
JDlugosz | skids -- thanks. | 02:32 | |
02:33
DemoFreak left
|
|||
skids | wrt is ref -- it makes more sense if you think of passing the is ref paramter through to another call to an multi than can distinguish between is rw anf is ro. | 02:34 | |
PerlJam | pm: I just had the weirdest experience in the perl6 interactive mode | 02:37 | |
See gist.github.com/120337 | 02:38 | ||
JDlugosz | skids: You mean foo calls bar, which is multi, and foo also reads the value but doesn't care about trying to change it? | 02:39 | |
skids | Or some variation on that theme, yes. | 02:40 | |
On the "is copy" part I think S06 is trying to distinguish the behavior of @a is copy ... @a[1]="foo"; from @a is copy shift @a. | 02:42 | ||
JDlugosz | OK. | ||
skids | Doubtless some of that is going over my head, too, though :-) | 02:43 | |
JDlugosz | If the array is copied, how does @a[1] do anything to the original? | ||
pmichaud | PerlJam: looking. | 02:47 | |
PerlJam: that's.... weird. | 02:48 | ||
it might be because foo() keeps getting redefined. | 02:49 | ||
PerlJam | That "Could not find non-existent sub die" part was a stray mouse click. When I tried to replicate it more simply, I get this: gist.github.com/120338 | 02:50 | |
JDlugosz | I thought rackudo forgets between lines. | ||
pmichaud | JDlugosz: it forgets lexicals, yes. | ||
but the subs aren't lexical. | |||
skids | JDlugusz: I think the point might be that @a[1] is pointing to the same thing, not a copy of that thing, but then when you assign to @a[1] it is no longer. | ||
JDlugosz | OK, then you get an error to redefine it if it wasn't {...}. | ||
PerlJam | JDlugosz: try "class A {}" on two separate lines in the iteractive mode :) | 02:51 | |
pmichaud | correct, we should be getting an error. | ||
JDlugosz | re @a[1] you mean the read-only "copy" actually copies all the lvalues? | ||
pmichaud | Rakudo doesn't yet have a good way to detect sub redefinitions outside of the same eval string. | ||
JDlugosz | What's the point? | ||
If you want to prevent shifiting or extending ONLY, why describe it as a copy? | |||
pmichaud | PerlJam: here's what I get: gist.github.com/120339 | 02:52 | |
so I'm a little suspicious of your build. | 02:53 | ||
skids | No I think the opposite happens. I dunno, I'll defer to the experts. But I think it's saying it copies the structure of @a but not the stuff inside it. | ||
JDlugosz | I updated the page. Care to refresh your cache, skids? | ||
PerlJam | pm: I mean that "Could not find ..." part was accidental but that it is apparently integral to the error | ||
skids | JDlugisz: Synopes? :-) | 02:54 | |
PerlJam | skids: it sounds like you just described "is ref" rather than "is copy" | ||
pm: if I do it by itself as you did, it works as expected. | |||
JDlugosz | hmm, I wonder why the spell checker didn't catch that. Can't blame that one on the Brits. | 02:55 | |
PerlJam: why would ref prevent some kinds of modification to the container? | |||
skids | No, is ref would be just a pointer to the buckets, as opposed to a copy of the buckets, as opposed to a copy of the buckets and the water inside the buckets. | ||
JDlugosz | I'm pretty sure, from discussion long long time ago, that the point of ref is an optional rw. | 02:56 | |
skids: better draw a picture. | |||
skids | What, you think I fully understand it? :-) | 02:57 | |
JDlugosz | Oh, if you want to work over any of my pics, the SVG is the same url name as the png but with the different extension. | ||
I used InkScape for portability. | |||
And I hope browsers will handle SVG images properly some day. Maybe before Perl 6 is finished, at this rate. | |||
skids | First example, you migh want to put the expected output of the say in a comment there. | 02:58 | |
JDlugosz | I think nobody fully understands it. At least nobody has publicly explained it all with no contradictions. | 02:59 | |
output: OK. | |||
skids | I'm sure there's a good explanation hidden back in the IRC log or p6l somewhere. | ||
JDlugosz | BTW, do you like my style sheets? Subtle style on comments, yellow marker, etc. | ||
skids | Looks fine. | 03:00 | |
JDlugosz | Back in the day, I had editors to do that kind of stuff, at magazines. But now I have complete creative freedom. And it means more work to make a final presentation tht looks good. | 03:01 | |
03:02
pjcj left
|
|||
JDlugosz | Ah! | 03:03 | |
The R-O proxy does need to be more invisible. Example: what should VAR($d) give you? Object #1, not object #5. Right? | 03:04 | ||
Why do you use VAR anyway, except to figure out what's going on here? | |||
skids | Just to prevent more of them, if you are ever tempted to use Dog and Cat, don't because Cat is actually a builtin type in Perl6. | ||
JDlugosz | What is the built-in Cat? | 03:05 | |
skids | What has made searching for references to the builtin type in the synopsis a bit annoying :-) | ||
Cat is a lazy string. | |||
JDlugosz | A lazy Str needs a different type, but a lazy Array doesn't? | ||
dalek | kudo: 7d75524 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to get some more speed improvements. |
||
JDlugosz | Oh, the lazy Array is the Dog. | ||
Do I have to write functions to take (Str|Cat) ? | 03:06 | ||
skids | Cat eagers in Str context probably (don't quote me on that) | ||
JDlugosz | So, what is the more general Role when you don't care what it is and don't want to force eagerness? | 03:07 | |
Well, I've got to do something else for a while. | |||
Thanks for the feedback and the discussion. | |||
skids | no problem. | ||
Thanks for writing. | 03:08 | ||
03:18
andreasg_ joined
|
|||
wayland76 | pmichaud: Did you get that Makefile stuff done that (IIRC) put pmc and ops stuff in dynext? | 03:21 | |
pmichaud | wayland76: I was going to work on it this morning, but ended up having to fix Parrot instead (as Rakudo was getting lots of errors) | 03:22 | |
so that's one of my goals for the weekend now. | |||
wayland76 | ok, just checking | 03:25 | |
03:26
wayland76 left
03:33
wayland76 joined
03:35
jonh left
03:36
skids left
03:39
synth joined
03:44
kcwu joined
|
|||
eternaleye | wayland76: Do you think it would be a good idea to try and get a quick-n-dirty 'throw-away' metadata spec for CPAN 6 packaging drawn up, so we can put it into source control and let people hammer out a description of what fields are needed, how to represent dependencies, etc? | 03:54 | |
wayland76 | Has MarkOv not done that? | ||
(I haven't carefully checked, but I assumed he had) | |||
Personally, if I'm contributing somewhere, it will be to Software::Packager | 03:55 | ||
Software::Packager will try to support everything that could reasonably be supported by more than one package manager, and allow extra metadata on a per-package basis | 03:56 | ||
(sorry, per-format, not per-package) | |||
I'm expecting that the Perl Metadata spec will be completely independant, and will have to be translated into Software::Packager metadata | 03:57 | ||
03:57
justatheory joined
|
|||
eternaleye | wayland76: Some of it, but other parts (like the syntax for dependencies) seems totally uncovered outside of S22, which seems to be stagnant (last edited Dec 08) | 03:57 | |
As far as dependencies go, exherbo.org/docs/exheres-for-smarti...pendencies is interesting | |||
_Very_ flexible syntax | |||
wayland76 | Ok, well, dependencies are definitely something that Software::Packager has to worry about | 03:58 | |
I'll read it | |||
eternaleye | It even permits annotating dependencies with descriptions, etc | ||
wayland76 | S22 is a draft. If you want to go hacking on the Metadata in it, be my guest | ||
eternaleye | So an optional or select-one-provider dependency could have a description of the advantages | ||
s/$/ fo each option/ | 03:59 | ||
wayland76 | I want to avoid scope creep on S22 (it shouldn't define everything), but Metadata definitely belongs there if anything does | ||
eternaleye | wayland76: It does specify a syntax for dependencies, but it's a rather minimalistic system with little flexibility | 04:00 | |
wayland76 | Have you read my document on Package Meta-managers? | ||
eternaleye | wayland76: Yep | ||
wayland76: Although, some distros have _only_ a meta-manager | |||
wayland76 | Such as? | ||
eternaleye | Exherbo | 04:01 | |
wayland76 | Ok | ||
eternaleye | Gentoo, to a degree | ||
wayland76 | But you saw how I wanted the thing more modular? | ||
eternaleye | Yeah | ||
wayland76 | And wanted the dependancy resolver to be swappable for something highly configurable? (Not sure if I wrote that in...) | 04:02 | |
dalek | kudo: 764684b | pmichaud++ | src/builtins/op.pir: Fix cross-meta for user-defined infix ops. |
||
wayland76 | That link you sent me doesn't make sense. Can I put a couple of questions to you? | 04:03 | |
eternaleye | wayland76: Sure | ||
wayland76 | Looking at the first "code snippit"... | ||
What is foo/bar? | |||
A package? A path? A "service" provided? Something else? | 04:04 | ||
eternaleye | wayland76: That link is pretty sparse, the Package Manager Specification for Gentoo explains some underlying concepts, but Exherbo and Gentoo have diverged on a few points | ||
wayland76: Gentoo and Exherbo name packages as category/package-version | |||
wayland76: That could be changed for CPAN 6 to use any separator, though | 04:05 | ||
wayland76 | Ok, so foo/bar would be something like Applications/Games or something? | ||
No, wait... | |||
eternaleye | wayland76: More like games-roguelike/nethack-4.42 | ||
wayland76 | Ah, ok, I see | ||
eternaleye | wayland76: One interesting thing with that method is that this enables multipart category and package names, whereas the naming system in S22 limits namespace and such to single atoms due to using the same separator everywhere | 04:06 | |
wayland76 | RPM uses Group, but it wouldn't be part of a unique package spec that way | 04:07 | |
(back in 3 minutes) | |||
eternaleye | S22 says: <prefix>-<package-name>-<version>-<authority>.<extension>, but perhaps better would be using a different separator between parts and allowing hyphens within parts. No ambiguity that way, allows numeric names, etc | 04:08 | |
04:09
Kisu left
|
|||
eternaleye | With S22's naming conventions, if I had a module named ACME::1337 and it was version 4, that would be p6-ACME-1337-4-cpan+ETERN.jib, which is ambiguous: does it mean ACME version 1337-4 (I'd read that as revision 4) or ACME::1337 version 4? | 04:10 | |
wayland76 | Well, we also have to take into account what characters are allowed in filenames on all systems | 04:11 | |
eternaleye | Even just using _doubled_ dashes as the field separators would solve it | ||
wayland76 | I'm sure of _ - and . but not of anything else | ||
eternaleye: Well, change S22 then :). | 04:12 | ||
Do you have access? | |||
eternaleye | ENOCOMMITBIT | ||
wayland76 | Ok, we need to fix that. I'm in favour of you having access | ||
I can't reemmber who to ask, though, except moritz_ | 04:13 | ||
eternaleye | wayland76: A lot of the stuff in the link I posted earlier has its grounding in this document: www.gentoo.org/proj/en/qa/pms.xml | ||
wayland76 | remember even | ||
eternaleye | (that's a boilerplate page for a PDF) | ||
wayland76 | I'm looking at the HTML version | 04:14 | |
eternaleye | wayland76: Also, S22 is slightly out of sync wrt the use-spec stuff (aut being cpan+NAME as opposed to cpan:NAME) | 04:15 | |
wayland76 | Double dashes are a good idea, though | ||
eternaleye | *auth | ||
wayland76: It works because no existing packages (for any lang, AFAIK) have doubled dashes _in_ any field | |||
wayland76 | lambdabot: @tell moritz_ Can eternaleye have a commit bit for the Specs so he can work on S22 please? | 04:16 | |
lambdabot | Consider it noted. | ||
eternaleye | wayland76: And we can forbid them going forward | ||
wayland76 | Although what c/c-- is going to do I don't know :) | ||
eternaleye | wayland76: Well, since C-- is a subset of C (and is really only useful to compilers as an output language AFAIK) we may be able to lump them in together | 04:18 | |
wayland76: Also, phenny++ is more reliable than lambdabot these days, it seems | 04:19 | ||
wayland76 | Maybe we could use ¡ as a separator :) | 04:20 | |
phenny: tell moritz_ Can eternaleye have a commit bit for the Specs so he can work on S22 please? | |||
phenny | wayland76: I'll pass that on when moritz_ is around. | ||
eternaleye | wayland76: Wasn't there some haskell package with a complex version number? | ||
wayland76 | Maybe, but I don't know anything about it :) | 04:21 | |
eternaleye | Oh wait, that's an inverse exclamation not an i | ||
TimToady | that wasn't an I | ||
eternaleye | EBADFONT | ||
wayland76 | Or something else... ¤€¼½¾¹¯£˛ | 04:22 | |
eternaleye | Also, good evening TimToady | ||
wayland76 | Any of those would be a fine separator | ||
TimToady: Who do we ask to get eternaleye a commit bit? | |||
eternaleye | wayland76: UTF-8 or UTF-16? | ||
TimToady | as soon as you move into Latin-1, POSIX is not your friend | ||
eternaleye | Commas! | ||
wayland76 | Yah, I'm being silly again :) Sorry | ||
eternaleye | Actually, commas might be really good | 04:23 | |
TimToady | anything that is a shell meta tends to be a problem | ||
wayland76 | TimToady++ | 04:24 | |
That's why I'm thinking that eternaleye's original idea of double dashes is probably our best bet | |||
eternaleye | TimToady: Yeah. That's why we were discussing doubled dashes, although I don't think commas are a metacharacter in any shell I know of | ||
TimToady | well, just inside {} | 04:25 | |
eternaleye | oof, forgot that | ||
TimToady | and I use , for a history char, but that's idiosyncratic | ||
wayland76 | After all, you could use € for a history char :) | 04:26 | |
eternaleye | TimToady: publish your .*shrc somewhere, and there will be a community among whom it becomes idiomatic ;D | ||
TimToady | you have to shift !, but not , | ||
so it's easier :) | |||
wayland76 | I use Ctrl+R to deal with history, usually | 04:27 | |
eternaleye | ditto | ||
s1n | set -o vi | 04:28 | |
eternaleye | Using ^ and ! requires remembering what you typed in that terminal last, and I usually have enough terminals (and am absentminded enough) that I can't | ||
wayland76 | Anyway, I'm going to be afk for a bit | ||
eternaleye | s1n: vi's my favorite editor, but I like my modifier keys sometimes | 04:29 | |
s1n | eternaleye: see your PM | 04:33 | |
04:36
justatheory left,
FurnaceBoy left
04:39
hercynium joined
04:44
araujo joined
|
|||
s1n | Tene: ping | 04:48 | |
05:07
hercynium left
05:18
azawawi joined
|
|||
azawawi | fabulous morning :) | 05:19 | |
05:21
bkeeler left,
azawawi left
05:22
finanalyst joined
|
|||
wayland76 | I don't know any fables about this particular morning :) | 05:22 | |
PerlJam | wayland76: that's your cue to invent one. | 05:24 | |
05:26
brunov left
|
|||
wayland76 | Well, the fable is that it's morning, because it's 3:32 in the afternoon :) | 05:35 | |
pugs_svn | r26971 | azawawi++ | [S:H:P6] version 0.59 contains the latest STD | 05:41 | |
Tene | s1n: pong | 05:42 | |
JDlugosz | The best separator is a control char with no ligimate reason for being used in a name. In fact, some separates were invented in the ancient days and used in ASCII. Names like "Unit Separator", etc. | 06:01 | |
eternaleye | JDlugosz: Yes, but will the shell a.) split on it (whitespace) b.) use it as a metacharacter (i.e. any of <, >, [, ], {, }, (, ), ;, ', ", |, \, etc) | 06:07 | |
(and the metacharacter list was nowhere near comprehensive) | 06:08 | ||
JDlugosz | So it's not being processed as data? | ||
eternaleye | JDlugosz: `cpan install <package>` | ||
from the commandline | |||
Making them escape the string is a usability nightmare | |||
06:11
justatheory joined
|
|||
JDlugosz | install --name xxx --version yyy --platform zzz | 06:11 | |
No need to encode the internal encoding manually. | |||
06:18
c9s left,
c9s joined
|
|||
eternaleye | JDlugosz: But that's a good bit more typing than `cpan i p5--Lingua-Romana-Perligata--1.1--cpan:dconway` | 06:19 | |
JDlugosz | Yuck. You have to "encode" a string that really consists of multiple fields. Really, who types? I click on the list on the installer, or a link from a web page. | 06:20 | |
eternaleye | JDlugosz: Your way would be `install --lang p5 --name Lingua-Romana-Perligata --version 1.1 --auth cpan:dconway` | ||
Very verbose, that | |||
JDlugosz | Yes, isn't that so much better? | ||
eternaleye | JDlugosz: I type. | ||
wayland76 | Can I make a suggestion? | ||
I like JDlugosz's idea, but | 06:21 | ||
eternaleye | JDlugosz: Also, we were discussing filenames for the archives of source, rather than commandlines | ||
JDlugosz | Do you run everything together for _all_ commands? | ||
wayland76 | I think the "name" should be a positional, rather than a named parameter | ||
Also, I think there should be defaults | |||
JDlugosz | Oh, eternaleye, I see. IN that case, a 40-character SHA1 hash of the contents is the only way to go. | ||
wayland76 | so that "install Lingua-Romana-Perligata" picks the recommended version and installs it | 06:22 | |
eternaleye | JDlugosz: And if you want to manually extract an archive so you can modify it for your own authority? Also, sha1 hashes are non-reversible, so you can't tell the server what categories you want it put in while you upload. This complicates creating modules. | ||
JDlugosz | Seriously, if it is internal concern rather than command line, why not use URI encoding for non-alpha characters? | ||
eternaleye | JDlugosz: It's best to be consistent in multiple environments. If we have five ways of encoding the name of a module, who will remember when to use which one? | 06:23 | |
JDlugosz | I would think the server stores it however it likes, and indexes them. That should be opaque. | 06:24 | |
eternaleye | JDlugosz: Then how does uploading a new package work? If there's a canonical, single-string naming convention, you can just upload everything with wget using a POST command. VERY simple for people who live on the commandline. Also, one major use environment is on servers, which often have no GUI at all and _must_ be used via the commandline | 06:25 | |
So that (frequent!) use case /requires/ a shell-sensible naming convention | 06:26 | ||
JDlugosz | So you manage the directory yourself using file tools because the database isn't opaque enough or provide the tools to do it. | 06:27 | |
06:29
justatheory left
|
|||
JDlugosz | I would think that I would give it the package, and the metadata to associate with it, and it sucks it in and stores it in some way that's none of my business to mess with directly. | 06:29 | |
eternaleye | JDlugosz: But the database is _required_ by the Perl 6 standard because of multi-version and multi-authority needs | 06:32 | |
JDlugosz: One main advantage of the current CPAN online archive system _is_ its transparency. | 06:33 | ||
JDlugosz | So you're designing a portable concrete application, not an abstraction. | ||
eternaleye | I can clone the entire archive with one rsync command, and have a local mirror | ||
JDlugosz | Ah, so you are interested in all implementations using the same file-based storage system. | ||
Therefore, it needs to be specified. | 06:34 | ||
eternaleye | JDlugosz: For distribution, yes. For already installed modules, that's out-of-scope | ||
JDlugosz | I still like using URI encoding to get rid of anything non-alphanumeric. | ||
That way you don't have to worry about Unicode chars on whatever platform. | 06:35 | ||
And stupid distrabutions (cough "Activestate") that decide that Unicode file names support is unnecessary in Perl. | |||
eternaleye | JDlugosz: And that's perfectly doable. However, the main concerns here are a.) unambiguity b.) usability c.) functionality (not necessarily in that order) | ||
finanalyst | pmichaud: ping | 06:36 | |
JDlugosz | Unambiguity. All chars that are not ASCII letters and numbers are URI encoded, except for the field delimeters. | ||
06:36
sparc joined
|
|||
eternaleye | Where functionality means enabling automatic distro-specific packaging etc | 06:36 | |
JDlugosz | usability: it rsyncs, across platforms, without encoding issues. | 06:37 | |
You don't type those names when using the front end to submit or install. | |||
eternaleye | JDlugosz: But % is a shell metacharacter, which needs escaped | ||
JDlugosz | You don't type those into the commands. So why is the shell bothered? | ||
eternaleye | JDlugosz: Then how do you unambiguously identify a unicode name on the commandline? | 06:38 | |
If we allow unicode names, the need to be specifiable everywhere | |||
If you can install package <unicodename> froma GUI but not from the shell, that's REALLY bad | 06:39 | ||
JDlugosz | The command program could take escape sequences. Anything perl does, actually: \x[nnnn] or character names. | ||
06:39
cognominal joined
|
|||
eternaleye | ...and _that_ is very, very user-hostile (especially since \ is a shell metacharacter too!) | 06:39 | |
So you'd need to escape your escapes | 06:40 | ||
JDlugosz | Easy enough to first take the parameter you got from the user and run it through Perl's literal stuff. Then put it into normalized form. | ||
Is there anything that's not an escape on somebody's shell? | |||
eternaleye | But the shell gets first whack at it - before the perl executable is even run! | ||
TimToady | limiting the module names to ASCII is p6-user-hostile | 06:41 | |
eternaleye | JDlugosz: Alphanum, hyphens, underscores, commas (usually), colons, slashes (although they may be OS path identifiers), and that's about it. | ||
TimToady | we need to drag unix systems kicking and screaming into the 21st century | 06:42 | |
eternaleye | TimToady: I agree, but we need a shell-friendly way of escaping unicode | ||
JDlugosz | The front-end program should be configurable as to what the esape char is. It will vary by platform and culture, and be handy as different things on different shells. | ||
TimToady | screw the shell :) | ||
eternaleye | o.0 | ||
eternaleye meeps | |||
JDlugosz | I have no trouble with backslashes in my shell. After all, they are in every file name. | ||
eternaleye | JDlugosz: On windows only. | 06:43 | |
In _every_ unix/posix/etc system, backslashes are the symbol used to escape everything else. | |||
JDlugosz | What about VMS? | ||
eternaleye | JDlugosz: Never used it, coulnd't say | ||
JDlugosz | Or pre-unix Macs. | 06:44 | |
eternaleye | They used colons. | ||
AS path identifiers. | |||
same as Unix uses / and windows uses \ | |||
JDlugosz | Point is: be configurable. If the front-end UI command line is portable in terms of running, it still needs to be culture-aware in terms of taking input from the user. | 06:45 | |
eternaleye | JDlugosz: The problem then is that someone who uses Windows and Linux needs to learn two syntaxes | 06:46 | |
JDlugosz | So I'll type \x[2603] on my command line if I'm not at my regular keyboard, but you might prefer <ctrl-g>2603<ctrl-g> (that being ctrol char, not angle literals), etc. | ||
TimToady | interfaces that don't support Unicode properly should be made to suffer :) | 06:47 | |
eternaleye | No matter how we slice it, there'll be a loss somewhere. It's really something that needs community bikeshedding, probably | ||
JDlugosz | Any given platform and environment might need some mixture of Input Method and shell text processing to get the job done, and they latter should keep from conflicting with the former. | ||
TimToady | the loss *won't* be in limiting Perl 6 module names to some least-common-denominator, if I can help it | 06:48 | |
JDlugosz | Just assume that the command line UI will be designed to handle Unicode as argument names. However. That won't affect the internal structure of the application. | ||
eternaleye | TimToady: Agreed. I want at least one module with a heart in the name. | ||
TimToady | at least from the viewpoint within P6 | ||
JDlugosz | Module names don't have to be legal identifier names? That is, Chinese OK, dingbats not. | 06:49 | |
TimToady | well, as long as it's in the :<♥> part, it doesn't have to be identifier | ||
eternaleye | ACME::<heart>, the only one that doesn't blow up in the Coyote's face | ||
JDlugosz | So you would use quotes in the "use" statement, and any package variables, etc. | 06:50 | |
That would make it difficult to use it as a type. | |||
TimToady | and there's always "use ::('♥')" | ||
06:51
beggars joined
|
|||
JDlugosz | ACME::Bleach could be renamed to something that only has invisible characters in it, like the different typographic space chars. | 06:51 | |
That will make the first line match the rest of the encoded form better. | 06:52 | ||
wayland76 | Another exciting thing would be to name something as a space followed by a whole bunch of combining diacritics :) | ||
eternaleye | wayland76: You evil person you | ||
JDlugosz | Hmm, you can stack the combining marks as high as you want. Make a veritcal name. | 06:53 | |
and put the whole thing in a surrounding circle. | |||
wayland76 | Well, I seem to have picked up bits of Unicode somewhere; not sure how | ||
06:53
LadyLuna1y joined
|
|||
JDlugosz | I was born with it. My name is not ASCII. | 06:53 | |
So, nobody knows how to pronouce it unless I'm in a Polish community. | 06:54 | ||
wayland76 | Οη ωελλ | ||
(apologies for Greeklish :) ) | |||
JDlugosz | So: Extreme Unicode names go into the critical test cases. Other than that, open issue. | 06:55 | |
TimToady | for pulling in math operations we could say use μ or some such, just to help with the golf | ||
wayland76 | That would be aμsing | 06:56 | |
JDlugosz | But my "extreme" is my wife's newspaper. | ||
wayland76 | I've never even been to a non-English-speaking country, unless the English-speaking part of Canada counts :) | 06:57 | |
TimToady | but certainly it must be possible to have a module named 日本語 | ||
Tene | use Ferma͒ta; | 06:58 | |
JDlugosz | "Japanese", written in simplified Chinese. | ||
06:58
Muixirt joined
|
|||
eternaleye | JDlugosz: Also as written in Japanese, funny enough | 06:58 | |
TimToady | I don't think any of those characters are particularly simplified... | 06:59 | |
JDlugosz | I guess they don't get their own Unicode block for their use of Han. | ||
06:59
frew|work joined
|
|||
JDlugosz | It must natively look more like Simplified than Traditional? | 07:00 | |
TimToady | much though it gives them heartburn | ||
simplified would be 日本语 | 07:01 | ||
JDlugosz | Ah, sorry. I'm out of practice. | ||
eternaleye | Argh, SCIM stopped working, I can't respond in Japanese! | 07:02 | |
JDlugosz | Bus routes are the hardest to read. Very compact, just a grid of letterforms. | ||
Strangely enough, most signs are bilingual. They have English everywhere in China. | |||
TimToady | same in Japan | ||
but it was gratifying to be able to read most of the Japanese signs, nonetheless | 07:03 | ||
JDlugosz | Well, Japan was "occupied", and more reciently was big into English for business. | ||
TimToady | troo | ||
JDlugosz | But China is supposed to be hostile now, right? | ||
TimToady | some of that was the olympics | ||
Tene debates between sleep and staying up all night hacking. | 07:04 | ||
JDlugosz | But meanwhile resigning everything to cater to international visitors, using English as the global standard. | ||
eternaleye | sleep? | ||
ENOPURL | |||
<purl> sleep is for the weak | |||
JDlugosz | I don't just mean in 北京. Every city, even off the beaten path. | 07:05 | |
Patterner | DESTROY::كافر | ||
eternaleye | Patterner: Arabic? | 07:06 | |
Patterner | kinda | ||
wayland76 | Is that destroy the infidel> | ||
? | |||
eternaleye | Farsi? Urdu? | ||
wayland76 | םוךג נק שמטאיןמע ֲ֝ | ||
Patterner | wayland76: kinda :) | ||
eternaleye | wayland76: Hm, the diacritics aren't composing properly here | 07:07 | |
wayland76 | eternaleye: I've had IRC clients like that | ||
TimToady | yeah, well, gnome-term isn't exactly using pango... | ||
JDlugosz | "complex layout" languages need special support. The app must use the right API, not just TextOut. | ||
wayland76 | The one I'm using now for example, won't let the keyboard do it | ||
eternaleye | Quassel _should_ do it right, but I guess not :( | 07:08 | |
JDlugosz | ChatZilla. | ||
Does as well as web pages. | |||
wayland76 | May have to look into it | ||
TimToady | but does ChatZilla run under screen? :) | 07:09 | |
eternaleye | TimToady: X11 over SSH! | ||
07:09
LadyLunacy left
|
|||
TimToady | yeah, right | 07:09 | |
that runs slow even here on my lan | 07:10 | ||
eternaleye | Quassel is split into client viewer and daemon irc-connector, so it stays online between user absences | ||
QT4, works on everything, etc | |||
07:10
wayland76_ joined
|
|||
wayland76_ | Well, this thing doesn't like Unicode, anyway | 07:11 | |
TimToady | ah well, google will just turn it all into a wave | ||
wayland76_ | Even the topic has it confused | ||
07:11
wayland76_ left
07:14
chromis joined
07:16
cognominal left
07:17
chromis left
07:19
iblechbot joined
|
|||
TimToady | another camelia: >ᵖö⁶< | 07:20 | |
wayland76 | I'm getting a box with an X in it | 07:24 | |
Maybe I should try different fonts again | 07:25 | ||
Tene | it's >, superscript P, o with .. over it, superscript 6, < | ||
wayland76 | Ok, I'm missing the superscript P | 07:26 | |
(The rest came through) | |||
07:28
frew|work left
|
|||
TimToady | 休む、よ! | 07:32 | |
ℤℤℤ & | 07:33 | ||
wayland76 | 'night! | ||
08:02
mberends left
08:15
DanielC joined
|
|||
DanielC | o/ | 08:16 | |
wayland76 | time? | ||
ENOPURL | |||
DanielC: What time is it there? | |||
DanielC | 10:17 AM | 08:17 | |
wayland76 | ok | ||
You missed TimToady by about 45 minutes, that's all :) He was going to bed | |||
So I was just checking :) | 08:18 | ||
DanielC | ah | ||
TimToady is in California, isn't he? | |||
wayland76 | That's right | ||
DanielC | Btw, I commented on S22, which I believe you are in charge of (email to the list). | ||
wayland76 | Me? Not really. I keep people for dumping stuff in it that doesn't belong there, but that's about it | 08:19 | |
DanielC | ok | ||
Well, at least it's related to the stuff we've been talking about recently? | 08:20 | ||
wayland76 | eternaleye has some ideas about the metadata, so I'm getting him a commit bit so he can do stuff to it | ||
(it being S22) | 08:21 | ||
DanielC nods | |||
wayland76 | Anyway, I'm being called for food, so I'll disappear for a bit | ||
DanielC | k | ||
wayland76 | Oh, nice. My Rakudo RPM build just finished; I should have libraries in it now :) | 08:22 | |
afk & | |||
08:24
davidad1 joined
08:25
DemoFreak joined
08:27
iblechbot left
08:30
sjohnson left
08:35
sjohnson joined
|
|||
eternaleye | wayland76++ # RPM building (even though I don't use RPM) | 08:37 | |
DanielC | wayland76: Who is working on S22 and the new package format? I thought it would be related to what you are talking about with making the cpan installer produce an RPM/DEB. | 08:43 | |
wayland76: Oh, right, you are afk... :-) | 08:44 | ||
08:49
alexn_org joined
09:06
beggars left
|
|||
eternaleye | DanielC: Primarily the discussion seems to be among you, me, wayland76, and Mark Overmeer, with TimToady pointing out things that Are Not Up For Discussion occasionally | 09:09 | |
09:09
snarkyboojum joined
|
|||
DanielC | ok | 09:09 | |
finanalyst | rakudo: rule x {'name =' $<capt> = .*? $ }; 'name = aperlhacker' ~~ /<x>/;say $/<capt> | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
DanielC figures out who eternaleye is | |||
eternaleye | Alex | ||
DanielC | yeah :) | 09:10 | |
eternaleye | rakudo: rule x {'name =' $<capt> = (.*?) $ }; 'name = aperlhacker' ~~ /<x>/;say $/<capt> | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
DanielC | What is your role in the Perl 6 world? I'm still learning who is who. | ||
finanalyst | could someone explain why $<capt> isnt being put into $/ ? | 09:11 | |
eternaleye | DanielC: Mainly lurker until now, but I want to make sure that packaging for distros is easy. I use a source-based distro, so I have some different needs from (the majority of people here) who are using binary distros | ||
finanalyst | is my syntax wrong? | ||
eternaleye | rakudo: rule x {'name =' $<capt> = (.*?) $ }; 'name = aperlhacker' ~~ /<x>/;say $/<x> | 09:12 | |
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
eternaleye | rakudo: rule x {'name =' $<capt> = (.*?) $ }; 'name = aperlhacker' ~~ /<x>/;say $<x> | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
eternaleye | I know why now! | ||
DanielC | eternaleye: Ok. I use Ubuntu, so I'm DEB-biased. | ||
eternaleye | rakudo: rule x {'name ='$<capt>=(.*)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x> | 09:13 | |
p6eval | rakudo 764684: OUTPUT«name = aperlhacker» | ||
snarkyboojum | hi all, I've downloaded and built parrot '1.2.0-devel built for nojit' on OS X and am trying to 'make' rakudo, but it's dying in the first step 'make: *** [perl6_s1.pbc] Segmentation fault' - how do I begin to debug? | ||
eternaleye | rakudo: rule x {'name ='$<capt>=(.*)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x><capt> | ||
p6eval | rakudo 764684: OUTPUT« aperlhacker» | ||
eternaleye | finanalyst: in "rule" and "regex", whitespace is significant. It isn't in "token" and something else I can't remember. Also, capturing nests. | 09:14 | |
finanalyst | i see. | ||
eternaleye | rakudo: rule x {'name = '$<capt>=(.*)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x><capt> | ||
p6eval | rakudo 764684: OUTPUT«aperlhacker» | ||
finanalyst | also i used .*? | ||
09:15
blas joined
|
|||
eternaleye | finanalyst: Yeah, it tries to match as little as possible. With the $ at the end, though, it still would have done the right thing. | 09:15 | |
rakudo: rule x {'name = '$<capt>=(.*?)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x><capt> | |||
p6eval | rakudo 764684: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'» | ||
eternaleye | Eh? | ||
rakudo: rule x {'name = '$<capt>=(.*?)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x> | 09:16 | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
eternaleye | Hm. That's not what I expected. Other people know more about the regex engine, they might be better to ask about that one | 09:17 | |
finanalyst | rakudo: rule x {'name = '$<capt>= (.*) $}; 'name = aperlhacker' ~~ /<x>/;say $/<x><capt> | 09:20 | |
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
finanalyst | rakudo: rule x {'name = '$<capt>=(.*)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x><capt> | 09:21 | |
p6eval | rakudo 764684: OUTPUT«aperlhacker» | ||
09:21
ZuLuuuuuu joined
|
|||
finanalyst | i find the significance of white space in this context to be odd | 09:21 | |
09:29
pjcj joined
09:38
DanielC is now known as DanielC_away
|
|||
finanalyst | STD: rule x {'name = '$<capt>=(.*)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x><capt> | 09:40 | |
09:47
hanekomu joined
09:50
davidad1 left
|
|||
wayland76 | Back for a while | 09:55 | |
The CPAN discussions seem to be converging nicely, and it seems like many of us are interested in different areas, so hashing out the interfaces between those is what we need to keep working on | 09:56 | ||
For example, I'm interested in working on the generic package managing stuff | |||
MarkOv seems to mostly be interested in the server software | 09:57 | ||
I'm not quite sure where eternaleye and DanielC_away fit in yet :) | |||
eternaleye | wayland76: I'm interested in the actual metadata format and the automation machinery of conversion | 09:59 | |
wayland76 | finanalyst / eternaleye: I think the significance of the whitespace is that any whitespace = \s+ basically | 10:00 | |
eternaleye | finanalyst: In "rule" declarations, whitespace inside the rule is taken as a directive to add a call to the <.ws> rule there | ||
wayland76 | But I could be wrong | ||
eternaleye | where <.ws> is a non-capturing rule that matches any whitespace | ||
wayland76 | But <.ws>+ not <.ws>* | ||
10:01
tulcod joined
|
|||
wayland76 | eternaleye: I'd started guessing that. | 10:01 | |
finanalyst | rakudo: rule x { 'name = ' $<capt>=(.*)$ }; 'name = aperlhacker' ~~ /<x>/; say $/<x><capt> | ||
p6eval | rakudo 764684: OUTPUT«aperlhacker» | ||
wayland76 | And it seems DanielC_away is interested in the format that the files will be layed out in inside the package | ||
So if we can agree on a set of protocols to talk to each other, we should have things fairly well in hand | 10:02 | ||
eternaleye | finanalyst: see perlcabal.org/syn/S05.html#Regexes_...ot_strings | ||
finanalyst | whitespace is not significant in rule (currently?) except where there is an assignment to a named variable | ||
eternaleye | Actually, it may well be the reverse | 10:03 | |
rakudo: rule x { 'name = ' $<capt> = (.*?)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x> | |||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
eternaleye | rakudo: rule x { 'name = '$<capt> = (.*?)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x> | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
eternaleye | rakudo: rule x {'name = '$<capt> = (.*?)$}; 'name = aperlhacker' ~~ /<x>/;say $/<x> | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
eternaleye | rakudo: rule x {'name = '$<capt>=(.*?) $}; 'name = aperlhacker ' ~~ /<x>/;say $/<x> | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
eternaleye | Weird | ||
I guess I don't have my head wrapped around the new regexes yet | 10:04 | ||
10:04
mberends joined
|
|||
finanalyst | eternaleye: you are using .*? which doesnt work well | 10:04 | |
eternaleye | Ah | ||
finanalyst | or it might be working well, but i dont understand why. its the whitespace that seems inconsistent | 10:05 | |
rakudo: rule x { 'name = ' $<capt>=(.*)$ }; 'name = aperlhacker' ~~ /<x>/; say $/<x><capt> | |||
p6eval | rakudo 764684: OUTPUT«aperlhacker» | ||
finanalyst | rakudo: rule x { 'name = ' $<capt> = (.*)$ }; 'name = aperlhacker' ~~ /<x>/; say $/<x><capt> | ||
p6eval | rakudo 764684: OUTPUT«Use of uninitialized value» | ||
10:06
M_o_C joined
|
|||
eternaleye | rakudo: token var { \w+ }; token lval { \w+ }; rule assign {^<var> '=' <lval>$}; 'name = aperlhacker' ~~ /<assign>/; say $<assign><lval> | 10:06 | |
p6eval | rakudo 764684: OUTPUT«aperlhacker» | ||
eternaleye | rakudo: token var { \w+ }; token lval { \w+ }; rule assign {^<var> '=' <lval>$}; 'name = aperlhacker' ~~ /<assign>/; say $<assign><var> | 10:07 | |
p6eval | rakudo 764684: OUTPUT«name» | ||
eternaleye | For me, I prefer subrules rather than assignments | ||
Same result, cleaner syntax in my view | 10:08 | ||
finanalyst | wayland76: is the .parse method for a grammar defined somewhere in the setting specs? | 10:10 | |
eternaleye | finanalyst: perlcabal.org/syn/S05.html#Grammars - A string can be matched against a grammar by calling .parse on the grammar, and optionally pass an action object to that grammar | 10:11 | |
finanalyst | so what does .parse return? | 10:12 | |
eternaleye | A Match object, IIRC. Same as m// | ||
rakudo: grammar Stuff { token var { \w+ }; token lval { \w+ }; rule TOP {^<var> '=' <lval>$}; }; my $foo = Stuff.parse('name = aperlhacker' ); say $foo<assign><var> | 10:13 | ||
p6eval | rakudo 764684: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'» | ||
finanalyst | what if there is not a match? | ||
eternaleye | rakudo: grammar Stuff { token var { \w+ }; token lval { \w+ }; rule TOP {^<var> '=' <lval>$}; }; my $foo = Stuff.parse('name = aperlhacker' ); say $foo | ||
p6eval | rakudo 764684: OUTPUT«name = aperlhacker» | ||
eternaleye | rakudo: grammar Stuff { token var { \w+ }; token lval { \w+ }; rule TOP {^<var> '=' <lval>$}; }; my $foo = Stuff.parse('name = aperlhacker' ); say $foo<lval> | ||
p6eval | rakudo 764684: OUTPUT«aperlhacker» | ||
eternaleye | rakudo: grammar Stuff { token var { \w+ }; token lval { \w+ }; rule TOP {^<var> '=' <lval>$}; }; my $foo = Stuff.parse('name = aperlhacker' ); say $foo.WHAT | 10:14 | |
p6eval | rakudo 764684: OUTPUT«Stuff()» | ||
eternaleye | rakudo: grammar Stuff { token var { \w+ }; token lval { \w+ }; rule TOP {^<var> '=' <lval>$}; }; my $foo = Stuff.parse('name = aperlhacker' ); say $foo.^WHAT | ||
p6eval | rakudo 764684: OUTPUT«too many arguments passed (4) - 1 params expectedin Main (/tmp/mDrRzBdNzw:2)» | ||
eternaleye | rakudo: grammar Stuff { token var { \w+ }; token lval { \w+ }; rule TOP {^<var> '=' <lval>$}; }; my $foo = Stuff.parse('name = aperlhacker' ); say $foo.HOW.WHAT | ||
p6eval | rakudo 764684: OUTPUT«Stuff()» | ||
eternaleye | rakudo: grammar Stuff { token var { \w+ }; token lval { \w+ }; rule TOP {^<var> '=' <lval>$}; }; my $foo = Stuff.parse('name = aperlhacker' ); say $foo ~~ Match | ||
p6eval | rakudo 764684: OUTPUT«1» | 10:15 | |
eternaleye | So the grammer is a subclass of Match, and returns an instance of itself IIUC | ||
*grammar | |||
Or at least 'does Match' | |||
10:19
alexn_org left
10:25
pmurias joined
|
|||
eternaleye | Oh hai, pmurias | 10:25 | |
10:30
DanielC_away left
|
|||
wayland76 | pmichaud lu_zero, mugwump (?) and others: The Rakudo-on-installed-Parrot-as-RPM bug is now rt.perl.org/rt3/Ticket/Display.html?id=63360 | 10:31 | |
10:34
hanekomu left
|
|||
pmurias | eternaleye: hi | 10:39 | |
10:41
payload left
10:50
sjohnson1 joined,
sjohnson left,
makkabutta left
|
|||
eternaleye | I wonder if Inverse Japhs will catch on | 10:51 | |
rakudo: my @alnum = 'a'..'z', 'A'..'Z', '0'..'9'; my %trans; %trans{ @alnum } = @alnum.pick(*); say "Just Another Perl 6 Hacker".trans( %trans.pairs.sort ).comb.pick(*).join('') | |||
p6eval | rakudo 764684: OUTPUT«HM Zlpb GKcdbdull0UigqX d » | 10:52 | |
wayland76 | eternaleye: No, they're too easy for people like Damian | 10:54 | |
If you don't believe me, see Selfgol | 10:55 | ||
eternaleye | wayland76: I have seen SelfGOL. What has been seen cannot be unseen! | ||
Also, that argument is invalid - Japhs semm to be just as easy to Damian | 10:56 | ||
10:58
eMaX joined
|
|||
wayland76 | I guess what I mean is that Japhs are to separate Damian from the rest of us. Inverse Japhs don't do that | 11:03 | |
11:04
mikehh joined
|
|||
wayland76 | Does anyone have any tips on matching all works not surrounded by quotes? | 11:04 | |
With a regex in P5? | |||
Ah, I think I know; don't worry | 11:05 | ||
11:05
jferrero joined
|
|||
wayland76 | Wait, I'm not so sure. | 11:06 | |
pmurias | std: map( sub ($failure) { },self.failures); | 11:07 | |
p6eval | std 26971: OUTPUT«ok 00:02 38m» | ||
eternaleye | wayland76: if you could paste an example with comments on what should/shouldn't match, I can make one | ||
wayland76 | No, I've got it | 11:08 | |
eternaleye | 'kay | ||
wayland76 | s/{(.*?)}/$t = $1; $t =~ s#([\w"]+)#$u = $1; $u =~ m!^"! ? $u : "<$u>"#eg; "{$t}"/e | ||
Takes rule SimpleForClause { "for" "$" VarName .... | 11:09 | ||
And transforms it to rule SimpleForClause { "for" "$" <VarName> | |||
Note the angle brackets around VarName | |||
eternaleye | cool | 11:10 | |
wayland76 | Anyway, I had 72 lines of the stuff to do, so I did that | ||
I'm transforming the XPath BNF grammar into a Perl Grammar | 11:11 | ||
But then I'm going to rip stuff out of it that duplicates functionality that Perl has, and use the rest for my Tree slang | |||
11:15
lichtkind joined
|
|||
wayland76 | That was a one-liner. That's not my usual in-file programming style :) | 11:15 | |
lichtkind | cheers | ||
wayland76 | hiphip HOORAY! :) | 11:16 | |
lichtkind | :) | ||
where there any changes in syntax on more basic level in last year beside Meta R, prefix<=> => .lines method and the : twigil ? | 11:17 | ||
wayland76 | Don't know -- try maybe moritz_ | 11:19 | |
11:20
sri_kraih joined
|
|||
eternaleye | lichtkind: XopX => Xop | 11:21 | |
lichtkind | eternaleye: thanks that i know but forgot :) | ||
any other? | 11:22 | ||
11:26
iblechbot joined
11:28
skids joined
11:30
jlaire left
|
|||
wayland76 | Does anyone know what the business with the ( --> Chaining ) stuff in STD.pm is? | 11:31 | |
lichtkind | nope never looked into working p6 code :) | 11:35 | |
pmurias | jnthn: is the parrot metamodel described somewhere? | 11:39 | |
s/parrot/rakudo/ | |||
11:42
eMaX left
|
|||
jnthn | pmurias: No single place, but see in Parrot P6object.pir which is a lot of the core of it. | 11:51 | |
pmurias: A lot is in the process of getting refactored at the moment though. | |||
Want to support writing custom meta-classes (knowhow) in the not too distant future. | 11:53 | ||
11:55
fridim_ joined
|
|||
skids | wayland: Chaining: A > B >= C | 11:56 | |
wayland76 | skids: Was that directed at lichtkind? | 11:57 | |
Oh, no I see | |||
What I want to know is, the part that says "( --> Chaining )" -- is that valid syntax | 11:58 | ||
(you'd have to see it -- search for eg. where the === operator is defined) | |||
skids | I don't know. But --> is usually return value. | ||
11:59
fridim_ left
|
|||
wayland76 | Yeah, I know that. But I just don't understand what it's achieving in this case | 11:59 | |
jnthn | Aye, I'm pretty sure it's return value in this context too. | ||
wayland76 | And I don't see it specced anywhere in S05 | ||
skids | Well, regexe are subs | ||
wayland76 | And it could be useful | ||
ah, ok | |||
So does that mean that it returns one value of type "Chaining"? | |||
jnthn | wayland76: Aye, and I guess that is related to: | 12:00 | |
class Chaining does PrecOp { our %o = %chaining; | |||
} | |||
wayland76 | Ah, yes, I just found that | ||
Great. That's fairly cool :). | |||
skids | It means that inside the sub, when it gets to return, the stuff it wants to return is coerced to constrained/coerced to Chaining | ||
(before it is returned.) | 12:01 | ||
wayland76 | Ok, thanks. I still don't understand the class definition, but that can wait for some other time. Just knowing the possibility is there could be useful :) | ||
jnthn | wayland76: Don't worry, nor do I. :-) | 12:04 | |
skids | constant %chaining = (:dba('chaining') , :prec<m=>, :assoc<chain>, :diffy, :iffy); | 12:06 | |
That ought to clear things up >-) | |||
wayland76 | It clears up everything except what happens to the === :) | 12:07 | |
jnthn | skids: Oh, that I follow, it's more what is defined in the class PrecOp that I didn't get my head around yet. :-) | ||
skids | Ah, but that clears up what happens to Chaining::o at least :-) | 12:10 | |
12:11
xinming left
12:13
beggars joined
|
|||
jnthn slept all morning...and feels a lot better for having done so | 12:15 | ||
skids | The "===" gets stuffed in the match. That part of the match is coerced to Chaining. I don't know if the "coerce" method is called immediately then, or later, but whenever it is called it loads the extra keys from %Chaining::o, into the match object, and also sets the key <kind> to Chaining(). | 12:17 | |
jnthn | skids: That sounds completely plausible. | ||
skids: However, I'd always seen --> as a type check rather than a coercion. | 12:18 | ||
skids: It may be something in the operator precedence parser that calls coerce. | |||
12:21
azawawi joined
|
|||
azawawi | hello | 12:21 | |
jnthn | use.perl.org/~korpenkraxar/journal/ is rather distressing... | 12:25 | |
skids | jnthn: S06 uses "coerce" . Though I seem to remember seeing a more verbose paragraph than what is in S06 somewhere. | 12:28 | |
As far as performance goes, as much as it pains my optimization-loving self I have to admit that Parrot is still at the point where too much optimization would slow progress. | 12:29 | ||
jnthn | skids: I think our problem here is not so much performance as it is an EPIC memory leak. | 12:30 | |
skids | Just, they do need the GC work badly. Preferably an out of band one using address math, to keep the caches clean. | ||
jnthn | (OK, it is performance too. But I'd imagine fixing the leak might help with the performance issue too.) | ||
skids | Leaked memory really shouldn't result in the >1s runtimes, since leaked memory just sits there harmlessly. | 12:31 | |
(never pulled into cache) | 12:32 | ||
12:32
xinming joined
|
|||
jnthn | skids: Yes and no. There are things that I think Parrot allocates out of memory pools that it mananges, and it may be hitting pathological cases there too. | 12:33 | |
Also, Rakudo has an epic fail when run under -G. | 12:34 | ||
:-S | |||
Oh, we already did ticket that issue. | 12:35 | ||
*sigh* | |||
skids | dream GC -- 1) you never have to touch a leaf node's memory to do anything GC related to it, 2) it has a throttled visit cycle not just for reaping but also time budgeted to shrink idle structures. | ||
12:38
sri_kraih_ joined,
sri_kraih left
|
|||
azawawi | jnthn: feather.perl6.nl/~azawawi/padre-perl6-exe.png | 12:39 | |
jnthn | azawawi: a funguje teraz? | 12:41 | |
oh gah | |||
azawawi: Does it work now? | |||
Oh, I see the output pane. | |||
The awesome! | |||
azawawi | jnthn: it generates but the executable is broken :) | 12:42 | |
jnthn | azawawi: I think I might just know why. | ||
skids | anyone know if I can stop adding --gen-parrot-options=--optimize yet? | ||
azawawi | jnthn: see rt.perl.org/rt3/Public/Bug/Display.html?id=65994 | ||
jnthn | azawawi: Once I get done with the dispatcher refactor, I'll have a crack at fixing it. | 12:43 | |
azawawi: Yeah. It appears the PIR we generate is actually missing .loadlib directives. | |||
Or something. | 12:44 | ||
Anyway, will try and hunt it down. Just wanna get the current big refactor done first. | |||
12:45
kate21de joined,
payload joined
12:46
Whiteknight joined
|
|||
azawawi | jnthn: a useful thing to have is to annotate generated pir with the perl6 code (as comments) | 12:46 | |
jnthn | azawawi: It could be done if you have both the PIR and the Perl 6 source because you can just look for .annotate directives in the generated PIR. | 12:47 | |
azawawi | jnthn: yeah i know; i was thinking to do it on the padre perl6 plugin side. | 12:51 | |
jnthn: where can i find more information about parrot debugging (to build a simple perl6 debugger)? | |||
jnthn | azawawi: I'm really not so sure what the state of debugging stuff with HLLs is just yet. | 12:52 | |
azawawi: There is a program pdb.exe I think, which is the Parrot debugger. | |||
Or maybe it's parrot_debug these days. | |||
I guess look in the docs directory in Parrot for info. Also #parrot on magnet is probably a good place to find people who would know. | 12:53 | ||
azawawi | jnthn: parrot_debugger.exe | 12:54 | |
skids | rakudo: 'class A { has $!v is rw; multi method infix:<=> (Int $a) { $!v = +$a; } }; my $f of A = A.new; $f = 4; | ||
p6eval | rakudo 764684: OUTPUT«Syntax error at line 2, near "'class A {"in Main (src/gen_setting.pm:0)» | ||
skids | rakudo: class A { has $!v is rw; multi method infix:<=> (Int $a) { $!v = +$a; } }; my $f of A = A.new; $f = 4; | ||
p6eval | rakudo 764684: OUTPUT«Type mismatch in assignment; expected something matching type A but got something of type Int()in Main (/tmp/mriqMaHXGk:2)» | ||
jnthn | azawawi: Right. That's how behind I am on it. ;-) | 12:55 | |
13:08
meppl joined,
snarkyboojum left
|
|||
wayland76 | o/ bye for a while | 13:13 | |
13:13
wayland76 left
13:14
kate21de left
13:15
Patterner left
13:16
Whiteknight left
|
|||
skids | rakudo: class A { has $!v = 5; method Str () { "{$!.v}" }; }; my $a of A = A.new; $a.say; # $!.v is wrong yes I know, just the segv... | 13:18 | |
p6eval | rakudo 764684: OUTPUT«» | ||
skids | hrm, evalbot doesn't show segv's? | ||
13:21
pjcj left
|
|||
pmichaud | good morning, #perl6 | 13:22 | |
skids | hola. | ||
jnthn | ahoj | ||
13:24
Psyche^ joined,
Psyche^ is now known as Patterner
13:28
beggars left
|
|||
pmichaud | (from backscroll -- specifying modules to install from command line) Why wouldn't it be: "install Dog:ver<1.2.1>:auth<cpan:JRANDOM>" ? | 13:31 | |
13:32
jferrero left
|
|||
pmichaud | azawawi: the problem isn't that we're missing .loadlib directives, the problem is that Parrot isn't loading them. | 13:33 | |
(and jnthn) | |||
jnthn | pmichaud: Oh? | ||
pmichaud | we generate "load_bytecode 'perl6.pbc'" | 13:34 | |
jnthn | pmichaud: That's too late. | ||
pmichaud: Or at least, it's going to be if it isn't already. | |||
pmichaud | it's not too late at present | ||
jnthn | pmichaud: OK, it's about to become too late. :-) | ||
pmichaud | I'm a little concerned about that, then. | ||
I don't want Parrot loading the libraries multiple times. | |||
jnthn | I'd rather hope Parrot is smart enough not to... | 13:35 | |
pmichaud | I wouldn't assume that is the case. | ||
jnthn | Then some sense must be beaten into the bird's thick skull. | ||
pmichaud | why will that be too late, ooc ? | ||
jnthn | Because now we have dynops (which need to be loaded at the time we parse a PIR file) but their appearance has mostly been restricted to within libraries. | 13:36 | |
Soon we'll have one that is emitted. | 13:37 | ||
pmichaud | Hmm. | ||
is that the only reason, or are there others? | |||
skids | rakudo: class A { our $cvar = "foo"; has $!v; method infix:<=> ($d) { $!v }; }; | 13:38 | |
p6eval | rakudo 764684: OUTPUT«No such attribute '$!v'in Main (/tmp/jkswgyY4BI:2)» | ||
jnthn | Well, in theory once I get the hll_map'd Perl6MultiSub stuff in place we may need to do that too, otoh we can use an :immediate block to load those. | ||
(those = dynpmcs) | |||
pmichaud | but every generated PIR would need that :immediate block | ||
yes? | |||
jnthn | Yeah, I'd figured as much. | 13:39 | |
Well | |||
The other option is that the immediate block is what load_btyecode's perl6.pbc | |||
And then we don't have to worry aobut the multiple loading problem, perhaps. | |||
pmichaud | yes, I was just thinking of that. I think I like that much better. | ||
jnthn | Yeah, there's more than one way to do it. :-) | ||
skids | rakudo: class A { our $cvar = "foo"; has $!v; method infix:<+> ($d) { $!v }; }; | ||
.oO(that last one doesn't hose rakudo back here...) |
|||
pmichaud | wait, I don't think that helps. | ||
p6eval | rakudo 764684: ( no output ) | ||
pmichaud | iirc, :immediate blocks don't get stored in the bytecode. | 13:40 | |
skids | rakudo: class A { has $!v; method infix:<=> ($d) { $!v }; }; | ||
p6eval | rakudo 764684: ( no output ) | ||
13:40
rindolf joined
|
|||
jnthn | pmichaud: Oh, no, they don't. | 13:40 | |
rindolf | Hi all. | ||
jnthn | pmichaud: So it only solves half of the problem. :-| | ||
pmichaud | oh, hey! | 13:41 | |
azawawi | im back from lunch :) | ||
pmichaud | mapping Perl6MultiSub is already built-in. | ||
as part of the pmclass definition | |||
pmclass Perl6MultiSub extends MultiSub maps MultiSub hll perl6 ... { | 13:42 | ||
jnthn | pmichaud: If that stkill works yes. | ||
pmichaud | I'm pretty sure it must work, as partcl uses it. | ||
jnthn | pmichaud: Still leaves us the dynops. | ||
rindolf | What's up, everybody? | 13:45 | |
pmichaud | Yes, we may be stuck with generating .loadlibs for those. But we need to make sure that multiple .loadlibs don't cause us an issue. | 13:46 | |
pmichaud works on speeding up assign.t | 13:47 | ||
skids | rindolf: the usual, pmichaud and jnthn talk tech and code, the rest of us dance around them in a circle chanting. | 13:49 | |
rindolf | skids: ah. | ||
I released a new version of Games-Solitaire-Verify, with support to Simple Simon. | 13:50 | ||
s/support to/support for/ | |||
13:50
abra joined
13:52
iblechbot left
|
|||
jnthn | pmichaud: Have you got a good idea of why assign.t is so slow? | 13:54 | |
14:01
om454545445 joined
|
|||
om454545445 | hi | 14:02 | |
guys i need help with a script | |||
can anyone help me understand this because it never works when i configure it. | 14:03 | ||
skids | perl5 or perl6? | ||
14:03
alester joined
|
|||
pmichaud | jnthn: unicode | 14:03 | |
rindolf | om454545445: is this script written in Perl 6? | 14:04 | |
om454545445 | #!/usr/bin/perl | ||
use vars qw(%config %category %form); | |||
use strict; | |||
#-########################################################################### | |||
# | |||
# In accordance with the GPL, this copyright notice MUST remain intact: | |||
# | |||
# EveryAuction Release Version 1.53 (2/17/02) | |||
rindolf | om454545445: don't flood. | ||
om454545445 | # Copyright (C) 2000-2002 EverySoft | ||
# Registered with the United States Copyright Office, TX5-186-526 | |||
# www.everysoft.com/ | |||
# | |||
#-########################################################################### | |||
# | |||
# This program is free software; you can redistribute it and/or | |||
# modify it under the terms of the GNU General Public License | |||
# as published by the Free Software Foundation; either version 2 | |||
14:04
om454545445 was kicked by pmichaud (flooding, use nopaste!)),
omega was kicked by jnthn (please don't flood))
|
|||
jnthn | oh fuck | 14:04 | |
skids | oopsie | ||
jnthn | @tell omega sorry, tab completion fail... | 14:05 | |
lambdabot | Consider it noted. | ||
pmichaud | /kick jnthn please be careful about kicking! :-) | ||
azawawi | flood victims :) | ||
pmichaud | "collateral damage" | ||
14:05
om454545445 joined
|
|||
om454545445 | sorry | 14:05 | |
pmichaud | om454545445: try pasting to gist.github.com | ||
then give us the url here | |||
om454545445 | try pasting at gist.github.com | ||
skids | also, it looks like perl5 so you might get better help on channel #perl | ||
om454545445 | what is this website | 14:06 | |
pmichaud | yes, this channel is primarily for Perl 6 discussions | ||
andreasg_ | þw 8 | ||
om454545445 | so where should i go | ||
pmichaud | try #perl | ||
om454545445 | ok | ||
bye | |||
skids | It is a place to paste things, then just paste the URL back in IRC | ||
14:06
alester left
14:08
pjcj joined
14:13
barney joined
|
|||
pmichaud | jnthn: (assign.t) check out line 7 of assign.t -- there's a non-breaking space in "Perl 5" (more) | 14:19 | |
Because of that non-breaking space, the string remains encoded as utf8 when parsed | |||
14:20
abra left
|
|||
pmichaud | Because of that, assign.t takes 2m36 to compile and run. With it converted to a normal space, it requires 0m38 | 14:20 | |
jnthn | !!! | ||
pmichaud | (that's the only non-ascii character in the file) | ||
jnthn | pmichaud: What did you make of chromatic's suggestion to transcode to UTF-16 (or whichever it was)? | 14:21 | |
pmichaud | that's what I'm doing this morning. | ||
jnthn | oh, nice :-) | ||
pmichaud | currently Rakudo attempts to transcode to ascii and use that... but if it fails, it leaves the string alone and works with whatever it has. | 14:22 | |
jnthn hopes for a decent win :-) | |||
I'm working on the last missing feature in the dispatcher refactor. Then I'm down to debugging. | 14:23 | ||
pmichaud | I'm going to have it try to transcode to ascii, if that fails try to re-encode to ucs-2, and then if *that* fails we just go with whatever we have. | ||
jnthn | Will there be a big performance difference between going to ucs-2 always and skipping trying ASCII? | 14:24 | |
That is, does ucs-2 carry sufficient overhead that it's worth trying ASCII first? | |||
Or just the "ASCII is a common enough case" thing? | |||
pmichaud | it's not performance so much as that ucs-2 doesn't work without icu present | ||
jnthn | Oh. | ||
pmichaud | so on systems without icu, ucs-2 fail would mean everything parses slow. | 14:25 | |
lichtkind | can hygeniec macros change vars that are not defined in them? | ||
hygienic | 14:26 | ||
pmichaud | beyond that, I suspect that ASCII will be a bit faster. We'll have an idea of how much faster once I complete this conversion, as I can then measure all three. :-) | ||
oh, wait, I think I can measure it now. | 14:27 | ||
oops, no I can't. | |||
(wrong option processing) | |||
jnthn | OK, was just curious. :-) | 14:28 | |
jnthn cranks up the Opeth and digs into fixing up delegation.t | |||
14:37
azawawi left
14:53
om454545445 left,
LadyLunacy joined
|
|||
skids | .oO(we need a builtin sub OHAI { "OH HAI".say }) |
15:01 | |
jnthn | use LOL6; | 15:03 | |
skids | .oO(default in evalbot...) |
15:04 | |
rakudo: class A { method postfix:<++> () {"OHAI".say}}; A.new++; # only postcircumfix got the fix? | 15:07 | ||
p6eval | rakudo 764684: OUTPUT«Method 'succ' not found for invocant of class 'A'» | ||
jnthn | rakudo: class A { multi method postfix:<++> is export () {"OHAI".say}}; A.new++; | ||
p6eval | rakudo 764684: OUTPUT«Method 'succ' not found for invocant of class 'A'» | ||
jnthn | skids: Oh, I know why that isn't working yet... | 15:08 | |
pmichaud | I don't think we support operators-as-methods yet | ||
15:09
LadyLuna1y left
|
|||
pmichaud | I'm not even sure it's in the spec, though. | 15:09 | |
jnthn | pmichaud: We do, I added that; it's just that the invocant is not set to the correct type yet. | ||
pmichaud | wtf? | ||
jnthn | yarly | 15:10 | |
pmichaud | I know that postcircumfix:<( )> is supported, but postfix:? | ||
jnthn | Been wanting to fix that for *ages*. | ||
pmichaud: I think so. | |||
pmichaud | I can't find any information about it in the spec. | ||
jnthn | I'm sure I've see such things... | ||
pmichaud | beyond that, I have no clue how we're supposed to turn $a++ into both a method call and a sub call. | 15:11 | |
one *might* be able to do 'is export' on such a method to get it to appear as part of the mmd sub | 15:12 | ||
jnthn | pmichaud: Oh, I only expected it to work with is export. | ||
pmichaud: I didn't expect it to work without that. | |||
And yes, that would just add it to the multi-sub as a candidate. | 15:13 | ||
skids | Hrm, is postcircumfix supposed to work without "is export" (because it does, and I was wondering why) | 15:14 | |
jnthn | pmichaud: Just declaring a method postfix:<++> { } without exporting it would afaik not change $x++ | ||
pmichaud | okay, I can accept that. | ||
jnthn | skids: Yes, that one is because it's dispatched as a method call. | ||
15:14
beggars joined
|
|||
pmichaud | fwiw, I think we have a problem in our import routine with respect to that | 15:15 | |
oh, perhaps not -- let me look | |||
eval.pir:245 | 15:16 | ||
$S0 = shift it | |||
$P0 = export_ns[$S0] | |||
import_ns[$S0] = $P0 | |||
is the keyed access to import_ns smart enough to add a MultiSub instead of replacing ? | |||
or is that just clobbering whatever MultiSub might have been there already? | |||
jnthn | pmichaud: I *think* the logic to be smart about that stuff is in NameSpace | 15:18 | |
pmichaud: The problems we have are 1) when we mix up MultiSub and Perl6MultiSub and 2) not setting type of invocant properly in the signature | 15:19 | ||
pmichaud | I thought we were doing 2 already. | 15:20 | |
as in, I thought I added it. | |||
can't remember now. | |||
15:22
barney left
|
|||
jnthn | I don't remember us ever having it. | 15:23 | |
pmichaud | I think I did it shortly after NPW. | ||
Looking. | |||
jnthn | rakudo: class Foo { multi method m() { } }; say &Foo::m.signature.perl | 15:24 | |
p6eval | rakudo 764684: OUTPUT«undef» | ||
jnthn | rakudo: class Foo { multi method m() { } }; say &Foo::m.candidates>>.signature.perl | ||
15:24
Chillance joined
|
|||
p6eval | rakudo 764684: OUTPUT«[:(Object self)]» | 15:24 | |
pmichaud | okay, guess not. | 15:25 | |
is that something we can easily put into !add_implicit_self ? | 15:26 | ||
jnthn | Well, really we need a way to get at the proto-object for the class | 15:27 | |
e.g. $?CLASS | |||
pmichaud | maybe pass it to !add_implicit_self ? | ||
jnthn | Well, yes, that's easy enough apart from we aren't setting $?CLASS yet AFAIK. | ||
pmichaud | no, I mean from actions.pm | 15:28 | |
not as a lexical lookup | |||
jnthn | And I worry how it'll look lexically | ||
Oh, you mean look it up at runtime? | |||
by name? | |||
pmichaud | that, or pass the metaclass object | ||
jnthn | Remember it's in the loadinit for the signature that we have this. | ||
pmichaud | exactly | ||
thus the metaclass object | |||
jnthn | ? | ||
Isn't that just available in the :load :init that sets up the class? | 15:29 | ||
pmichaud | oh. | ||
jnthn | It's not a lexical, just a register, iirc. | ||
pmichaud | yes, perhaps. | ||
I'm already thinking the loadinits are combined :-| | |||
jnthn | If you write the thingummy to smash 'em all into one then...yes. ;-) | ||
pmichaud | (which they aren't, and which I'd not like to rely upon) | ||
oh, duh! | 15:30 | ||
Just use the sub's namespace | |||
(the one we're attaching the signature to) | |||
jnthn | Is the proto findable from that? | ||
We can get the parrotclass... | |||
pmichaud | yes, the proto is always findable from the parrotclass | 15:31 | |
jnthn | OK. | ||
That'll work. | |||
15:34
om454545445 joined
|
|||
pmichaud | time to process ascii version of assign.t: 30.287 sec | 15:34 | |
time to process utf8 version of assign.t: 2m28.611 | |||
time to process utf8 version of assign.t transcoded to ucs2: 30.667 sec | 15:35 | ||
jnthn | :-O | ||
\o/ | |||
skids | pmichaud++ | ||
pmichaud | looks like a win if we pass the spectests :-) | ||
15:36
om454545445 left
|
|||
skids | And it'll be the first application to ever run faster ith ICU support compiled in :-) | 15:36 | |
jnthn | yeay, damm, now I want ICU | 15:37 | |
pmichaud: Is actions.pm something we did as ASCII? | 15:38 | ||
pmichaud | jnthn: I'm pretty sure it's ASCII, yes. | ||
jnthn | Or do we win on that too? | ||
pmichaud | just a sec | ||
jnthn | Ah, OK. | ||
jnthn had been hoping for a win on that | |||
pmichaud | It's ASCII already. | ||
jnthn | aww. | 15:39 | |
pmichaud | now to make spectest both with and without icu (sigh) | 15:43 | |
15:48
FurnaceBoy joined
|
|||
pmichaud | darn, epic fails. | 15:52 | |
jnthn | :-( | ||
pmichaud | time to track those down. | ||
jnthn | My handles handling hasn't exactly worked it first time either. | ||
pmichaud | well, given that the change gives us a ~2 minute win on just one spectest file, it's worth pursuing a bit further :-) | 15:53 | |
but I'm guessing I'm likely to uncover a bunch of nasty Parrot string-handling bugs here, too :-| | 15:54 | ||
jnthn | :-( | 15:56 | |
Yes, worth pursuing. | |||
pmichaud | oh, "make realclean" seems to have cleared it up. | ||
jnthn | oh, nice | ||
pmichaud | oh, spoke too soon. | ||
got a failure. | |||
and another... | |||
uh oh | 15:57 | ||
I think string_equal is failing when comparing ucs2 versus ascii | |||
jnthn | oh hrovno. | 15:58 | |
pmichaud | oh, that's not entirely it. | ||
hrm. | |||
TimToady | \⚉ | 16:00 | |
pmichaud | ugh. Looks like I have to transcode the ucs2 strings back to ascii prior to calling ICU (e.g., for converting Unicode names) | 16:03 | |
16:03
DanielC_away joined
16:04
DanielC_away is now known as DanielC
|
|||
DanielC | Is it OK if I add a page to the Perl 6 wiki? I have some ideas I'd like to document. | 16:05 | |
skids | perfoundation? I added a bunch. Nobody complained. | ||
TimToady | as long as they're not libelous | ||
sbp | 16:34 <pmichaud> time to process ascii version of assign.t: 30.287 sec | ||
16:34 <pmichaud> time to process utf8 version of assign.t: 2m28.611 | |||
DanielC | TimToady: Ok. | 16:06 | |
TimToady | or violate community standards of decency... | ||
sbp | pmichaud: dunno if it'd help, but a friend of mine came up with a devastatingly fast utf-8 decoder | ||
skids | Or solicit donations :-) | ||
sbp | pmichaud: bjoern.hoehrmann.de/utf-8/decoder/dfa/ | ||
TimToady | wait, I could use some donations... | ||
sbp | maybe that's something the parrot folk need though | ||
DanielC | i won't do any of the above :-) I just want to write about the CPAN package format. | ||
skids | TimToady: then take camelia over to cafe press. | ||
TimToady | tis an idea | 16:07 | |
pmichaud | sbp: the cost isn't in decoding | ||
skids | You have to work on that trademark defense anyway, right> | ||
TimToady | do they do mugs too? | ||
skids | Yep | ||
pmichaud | sbp: the cost is in indexing to the middle of a utf8 string | ||
16:07
Chillance left
|
|||
sbp | aha | 16:07 | |
TimToady | filling corporate america with a million camelia mugs would be my idea of a cultural hack :) | 16:08 | |
jnthn | Hey, what about corporate Europe? | ||
pmichaud | I'd be happy to set up a few camelia mugs on CafePress and send TimToady the proceeds :-) | ||
(I already have an account, although I've not used it) | |||
TimToady | yes, and corpulent Europe too | 16:09 | |
maybe even Antarctica, if you can find any corpuscular entities there | |||
funny how the continental congress was not on the same continent as most continentals | 16:12 | ||
skids | .oO(incontinental congress?) |
16:14 | |
jnthn | .oO( never mis-parse corpulent again ) |
16:15 | |
pmichaud | jnthn: in C, any ideas about the best way to get a ucs2 string into a cstring? | 16:16 | |
(assume the ucs2 string only has ASCII codepoints) | 16:17 | ||
16:17
brunov joined
|
|||
jnthn | Did you try string_to_cstring? | 16:18 | |
sbp | TimToady, or whoever: what's the license of camelia.pdf? | ||
jnthn | erm, string_to_cstring_nullable | ||
but looking at it, hmm | |||
sbp | I've converted it to SVG; I was thinking about adorning wikipedia:Perl6 with it | ||
jnthn | pmichaud: Actually more likely Parrot_str_to_cstring | 16:19 | |
pmichaud | jnthn: that's what I'm using now. | ||
jnthn | pmichaud: But it appears to just give you the buffer and do no transcoding. | ||
pmichaud | right. | ||
and ICU wants an ASCII cstring. | |||
(for looking up character names) | 16:20 | ||
skids | sbp: /pugs/misc/camelia.txt | ||
jnthn | pmichaud: Ah, I see. | 16:21 | |
skids | Isn't that a bit hypocritical of ICU? | ||
sbp | skids: yeah, saw that. seems to say it's at least usable for the moment | ||
but also neglects to mention a license | |||
(need to be specific when uploading to Wikimedia Commons) | 16:22 | ||
(can't just say "yeah, yeah, it's free, get off my case, [handwaving]") | |||
skids | "permission is | 16:23 | |
granted for non-exclusive use to label anything related to Perl 6, | |||
provided the image is labeled as a trademark when used as a main logo | |||
on a page." <-- license? | |||
sbp | oh, Artistic License 2.0. thanks | 16:24 | |
I must be looking at a mouldy old revision of camelia.txt | |||
skids++ | |||
pmichaud | skids: it's not hypocrticial of ICU -- after all, ICU gives you the tools to be able to change the encoding quickly if you want :-S | 16:25 | |
jnthn | pmichaud: It's maybe not the intended purpose but | 16:28 | |
Parrot_str_escape_truncate looks like it might do what you want ;) | |||
pmichaud | will look at it | ||
jnthn | pmichaud: Maybe more sensible is Parrot_str_change_charset | 16:29 | |
or Parrot_str_change_encoding | |||
lichtkind | TimToady: do macros can change vars permanently, that are defined outside of their scope ? | 16:32 | |
pmichaud | jnthn: probably has to be Parrot_str_change_charset | 16:33 | |
does it throw an exception? | |||
TimToady | they can change anything a BEGIN block can change, but they can't add variables to a completed lexical scope | ||
jnthn | pmichaud: I can only see it doing so if you pass in an invalid charset, but it may call something else that will. | 16:34 | |
sbp | there, done | 16:35 | |
despite WC's fiery hoops | |||
lichtkind | TimToady: you say i cant define our variables inside a macro? | 16:36 | |
pmurias | you can't add my variables to an already closed scope | 16:37 | |
ZuLuuuuuu | when we write a class with an instance variable like "has $.name is rw;" then does this variable have any difference than a public instance variable in behaviour? | ||
pmurias | even normal subs can define our variables | ||
TimToady | there's really no such thing as a public instance variable in p6 | 16:38 | |
it's an illusion | 16:39 | ||
ZuLuuuuuu | all instance variables behave as private by default then? | ||
and we write getters and setters to reach them? | |||
TimToady | the only real instance variable is $!name, and that is of course private | ||
$.name is the name of a rw accessor | |||
so you can use the accessor as if it were a variable | 16:40 | ||
we don't separate getter from setter at that level | |||
ZuLuuuuuu | TimToady: then we can reach it both with $.name and $!name inside methods right? | ||
TimToady | and accessor establishes *identity*, not lvalue vs rvalue | ||
reach "it" means two different things here | 16:41 | ||
lichtkind | no our in p6 ? strange | ||
ZuLuuuuuu | I mean to use it as lvalue for example | ||
TimToady | $!name reaches a concrete storage location | ||
$.name reaches an abstract storage location that a derived class could override | 16:42 | ||
lichtkind | ah it was no answer fo me :) | ||
TimToady | my answer was to you | ||
package variables aren't lexical, so what I said doesn't apply | 16:43 | ||
rindolf | Hi all. | ||
TimToady: have you seen www.reddit.com/r/programming/commen...heosis_of/ ? | |||
16:43
eMaX joined
|
|||
ZuLuuuuuu | I guess I understood, thanks | 16:44 | |
16:44
Psyche^ joined
|
|||
TimToady | rindolf: at least in Perl 6, we could name it G-d :) | 16:44 | |
sbp | “The best way to get god is via rubygems” | 16:45 | |
rindolf | TimToady: heh. | ||
sbp | not a sentence I expected to see today | ||
rindolf | TimToady: are you one of those people who call "God" "G-d"? | 16:46 | |
TimToady | well, more people expect the spanish inquisition than the japanese inquisition... | ||
sbp | heh | ||
rindolf | TimToady: no-one expects the Spanish inquisition! | ||
lichtkind | TimToady: thanks a lot but still chewing on that :" can't add variables to a completed lexical scope" isnz the outer scope still open when macro is called? | 16:47 | |
rindolf | TimToady: so a negative number of people expect the Japanese one. | ||
jnthn | Gah. | ||
TimToady | rindolf: nope, I show my reverence in (hopefully) more productive ways, like being a creator created in God's image | ||
jnthn | The problem when you stop lying is that you've gotta start dealing with the truth... | ||
class A { has $.x handles * }; A.new(x => -1).abs.say | |||
rindolf | TimToady: ah, that's good. | ||
jnthn | If it handles * does it also handle the new? I'm figuring not... | ||
araujo wonders if Perl6 got God blessing | |||
rindolf | I hate the word "G-d" with a passion. | ||
TimToady | lichtkind: yes | 16:48 | |
sbp | rindolf: some friends of mine were trying to get the tetragrammaton added to unicode | ||
rindolf: see std.dkuug.dk/JTC1/sc2/WG2/docs/n1740/n1740.htm | |||
pmichaud | I thought that handles * handles those things that aren't already defined | ||
rindolf | "All truth is God's truth" | ||
jnthn | pmichaud: Yeahbut defined where? | ||
sbp | rindolf: didn't go through though | ||
pmichaud | jnthn: "anywhere"? | ||
jnthn | pmichaud: In the curernt class, or in teh current class or any parent class? | ||
pmichaud | jnthn: basically, if method dispatch would otherwise fail? | ||
jnthn | pmichaud: OK. So does that apply to all handles expressions then? | ||
pmichaud | (I'm just guessing here -- I'd need to review the spec) | 16:49 | |
lichtkind | TimToady: so what you mean by completed lexical scope? | ||
DanielC | Does anyone know how to highlight something in red in the Perl foundation wiki? | ||
TimToady | one whose block has finished parsing the closing }, or equiv | ||
jnthn | ah, from the spec | 16:50 | |
Wildcard matches are evaluated only after it has been determined that | |||
there's no exact match to the method name anywhere. | |||
TimToady | this tends to be more of an issue for eval than for macros though | ||
pmichaud | ah, so my "anywhere" was directly from the spec then. :-P | ||
jnthn | pmichaud: :-P | ||
pmichaud: Heh. I'd translated the existing code rather than re-read the spec and assumed that I'd bothered to read it at some point int he past. ;-) | 16:51 | ||
16:52
jferrero joined
|
|||
pmichaud | These days I almost always re-read the spec, if only because the spec changes. :-) | 16:55 | |
and often the changes make the resulting code much easier to deal with :-) | |||
TimToady | \⚉/ | ||
16:56
Patterner left,
Psyche^ is now known as Patterner
16:57
jferrero left
|
|||
DanielC | Can anyone tell me how to do formatting on the wiki? The WYSISYG interface doesn't include support for pre-formatted text or coloured text. | 16:58 | |
pmichaud | DanielC: I don't think there are many fans of the wiki. | ||
sbp | DanielC: I did look at the official documentation for you | 16:59 | |
pmichaud | We like the wiki as an idea, but the engine is a pain. | ||
sbp | DanielC: and it was completely rubbish and didn't tell me anything | ||
DanielC: so I didn't pass on the bad news :-) | |||
DanielC | pmichaud: I certainly don't like it, but I figure that I wouldn't help by making a page on my own site... | ||
sbp | for what it's worth, it was here: | ||
www.socialtext.net/help-en/index.cg...formatting | |||
DanielC | pmichau: Is the wiki the best option if I want to write a proposal for the new CPAN package format? | 17:00 | |
sbp: *click* | |||
pmichaud | DanielC: unless you're really hoping people will co-author the text with you, perhaps a page on your site is fine (with a link to that page from the perl6 wiki) | ||
another possibility would be to put it on a wiki that does serve your purposes better (the perl6 wiki at github comes to mind), and link to it from the other perl6 wiki | 17:01 | ||
DanielC | There is another perl 6 wiki at github? | ||
Is it better? Can I use that one directly? | |||
pmichaud | oh, I guess github wikis are per-repository. | ||
But we could certainly set up a repository and use its wiki :-) | 17:02 | ||
DanielC | perl6-examples is already there, would that work? | ||
sbp | why isn't the perlfoundation wiki using November? :-) | ||
pmichaud | for example: wiki.github.com/perl6/perl6-examples | ||
DanielC: sure, that could work. | |||
DanielC | CPAN is not related to perl6-examples, but who cares? | 17:03 | |
pmichaud | or I could create a "spec" or "design" or "docs" repository in the perl6 account and we could sue that. | ||
s/sue/use/ | |||
DanielC | pmichaud: Ok, sounds good, if it's not a lot of trouble. | ||
pmichaud | there's been some musings from time to time that we might move some of the docs/design information out of the pugs repos and into the perl6 github account | ||
*another* possibility would be to put your proposal into the pugs repo | 17:04 | ||
and link to it there. | |||
DanielC | I'll use whichever wiki you think has the best features. I'd like pre-formatted text and coloured text (to highlight differences between my proposal an S22). | ||
17:05
icwiener joined
|
|||
DanielC | Hmm... do you know where the documentation for the github wiki is? | 17:06 | |
pmichaud | I don't know which of the available wikis has the best features. | 17:07 | |
I'd use the github wiki, though. | |||
DanielC | I'll pick the first one that I can find useful documentation for (useful == preformatted text and coloured text) | 17:08 | |
pmichaud | it appears to use textile | ||
hobix.com/textile/quick.html | |||
it does support red text :-) | |||
and preformatted | |||
DanielC | Excellent. I'll take it. | ||
jnthn | delegation.t all passes again. \o/ | ||
pmichaud | of course, there's another wiki that I tend to use quite frequently, but it's not really used in the p6 community :-P :-P | 17:09 | |
DanielC | jnthn++ | ||
pmichaud | because it's written in (egads!) PHP! Aiiiiigh! | 17:10 | |
DanielC | :) | ||
jnthn | So, that means my re-written dispatcher is feature complete. | 17:11 | |
Which "just" leaves working out the various remaining bits of collateral damage. | |||
ZuLuuuuuu | does emacs have perl 6 syntax highlighting? | 17:12 | |
DanielC | pmichaud: github is good enough. Should I use per6-examples or do you want to make a new docs or spec repository? | 17:13 | |
pmichaud | I'll make a new repo, just a sec. | ||
I'll just call it "misc" for now. :-) | 17:14 | ||
DanielC | ok | ||
17:16
ejs joined,
jferrero joined
|
|||
pmichaud | wiki.github.com/perl6/misc | 17:17 | |
DanielC | thanks | ||
pmichaud | time for lunch here | 17:18 | |
bbiaw | |||
lichtkind | TimToady: does that return 4? macro a4 {$a = 4}; my $a = 3; a4; say $a; | 17:30 | |
TimToady: excuse but no implementation touches that | 17:31 | ||
17:32
eMaX left
17:34
sjohnson1 is now known as sjohnson
17:41
sjohnson1 joined
17:42
sjohnson left,
sjohnson1 left,
sjohnson joined
|
|||
jnthn | gist.github.com/120573 # current dispatcher progress | 17:43 | |
17:44
sjohnson left
|
|||
jnthn -> dinner | 17:46 | ||
17:50
beggars left
17:51
alanhaggai joined
|
|||
pochi | rakudo: say :2<1.1> | 18:07 | |
p6eval | rakudo 764684: OUTPUT«1» | ||
pochi | rakudo: say +":2<1.1>" | ||
p6eval | rakudo 764684: OUTPUT«1.5» | ||
18:13
Chillance joined
18:15
unitxt_ joined
18:26
unitxt left
18:28
iblechbot joined
18:29
beggars joined
|
|||
TimToady | lichtkind: no, that wouldn't work at all, a macro must either return a string or an AST | 18:35 | |
so you could say macro a4 { '$a = 4' } though that wouldn't be hygienic | 18:36 | ||
or you could say macro a4 { quasi:COMPILING { $a = 4 } } and that would be hygienic | 18:37 | ||
lichtkind | but the final say would then say 4? | ||
TimToady | yes | ||
in either case | |||
lichtkind | thanks a lot i slowly get it | ||
TimToady | but setting outer vars like that is not good practice | ||
lichtkind | im currently reading into the slang stuff | 18:38 | |
TimToady: of cource not but i comprehend things by stressing edges | |||
TimToady | usually it's better to use state vars if you can | ||
lichtkind | i had no practical usage in mind | 18:39 | |
thanks | |||
TimToady | note that by default a4 would likely parse as a listop | 18:40 | |
you can force it differently with macro term:<a4> and such | 18:41 | ||
or with "is parsed" | |||
18:41
sjohnson joined
|
|||
TimToady | not that anyone really implements that yet | 18:41 | |
lichtkind | why would it parse as listop? | 18:42 | |
i know | 18:43 | ||
TimToady | pochi: you should rakudobug that | 18:47 | |
18:49
Chillance left
|
|||
TimToady | pugs: say :2<1.1> | 18:51 | |
p6eval | pugs: OUTPUT«1.5» | ||
TimToady | pugs: say +":2<1.1>" | ||
p6eval | pugs: OUTPUT«0» | ||
TimToady | pugs has the opposite problem :) | ||
jnthn | If you feed your code to enough Perl 6 implementations, one of them will probably give the right answer. ;-) | 18:52 | |
TimToady | throw in a few rands, and one of them will probabl give the right answer eventually | ||
use MONKEY_TYPING | 18:53 | ||
that's funnier than MONKEY_PATCHING, so we should change it | 18:54 | ||
18:54
sjohnson left
|
|||
jnthn | ;-) | 18:54 | |
TimToady | and it's supposed to be a joke on DUCK_TYPING anyway | ||
18:55
sjohnson joined
|
|||
sjohnson | èè | 18:55 | |
jnthn | Well, you has a commit bit. ;-) | ||
(Plus we didn't implement MONKEY_PATCHING yet in Rakudo ;-)) | |||
pugs_svn | r26972 | masak++ | [S05-regex.pod] moved ending paren for clarity | 18:56 | |
18:59
wknight8111 joined
|
|||
pugs_svn | r26973 | lwall++ | s/MONKEY_PATCHING/MONKEY_TYPING/ because it's funnier, and goes with duck typing | 19:00 | |
19:01
kate21de joined
|
|||
pochi | it seems the :N<...> has a long way to go before it complies to the spec | 19:01 | |
rakudo: say pi - e | |||
p6eval | rakudo 764684: OUTPUT«0.423310825130748» | ||
TimToady | but then how does + do it? | ||
pochi | rakudo say e - pi | 19:02 | |
rakudo: say e - pi | |||
p6eval | rakudo 764684: OUTPUT«2.71828182845905» | ||
TimToady | rakudo: say e() - pi | 19:03 | |
p6eval | rakudo 764684: OUTPUT«-0.423310825130748» | ||
TimToady | there's your bug | ||
e is a sub, not a value | |||
not suposed to look for arguments | |||
rakudo: say pi() | |||
p6eval | rakudo 764684: OUTPUT«3.14159265358979» | ||
TimToady | that should fail, really | ||
say 3.14() | 19:04 | ||
rakudo: say 3.14() | |||
p6eval | rakudo 764684: OUTPUT«invoke() not implemented in class 'Float'in Main (/tmp/FCUa04pOcY:2)» | ||
TimToady | rakudo: say e(pi) | 19:05 | |
p6eval | rakudo 764684: OUTPUT«2.71828182845905» | ||
TimToady | rakudo: say e(-pi) | ||
p6eval | rakudo 764684: OUTPUT«2.71828182845905» | ||
TimToady | say e("what is the signature of e?") | ||
pochi | rakudo: say pi(1) | ||
p6eval | rakudo 764684: OUTPUT«too many arguments passed - 0 params expectedin Main (/tmp/ud1JiCDIDV:2)» | ||
TimToady | rakudo: say e("what is the signature of e?") | ||
p6eval | rakudo 764684: OUTPUT«2.71828182845905» | ||
TimToady | still, pi should parse as a listop even if it's a sub () | 19:06 | |
perl 6 doesn't play parsing tricks on normal subs like perl 5 does | 19:07 | ||
sub foo ($) isn't a unary prefix like it is in p5 | |||
anyway, pi and e should be parsing as terms, not function calls | 19:08 | ||
pochi | seems like it's known: ## XXX: cheat until we get term:pi, term:rand, term:undef, etc. | 19:10 | |
19:11
masak joined
|
|||
masak does a somersault, and lands on his feet in #perl6 | 19:11 | ||
MONKEY_TYPING++ | 19:12 | ||
jnthn: ping | |||
19:12
renormalist joined
|
|||
jnthn | masak: ahoj! | 19:13 | |
masak: or, "hej hej" :-) | |||
masak | jnthn: whoz op? weather still rainy? | ||
jnthn | Well, not rainy as much as forecast today. | ||
19:13
[particle]2 left
|
|||
jnthn | But still not invitingly sunny. | 19:14 | |
masak | jnthn: the weather is forecast today? I should hope so! :P | ||
19:14
renormalist left
|
|||
masak | jnthn: anyway, what I really wanted to bug you about was this new change to bless. | 19:14 | |
TimToady: and maybe you, depending on whether you're involved. :) | 19:15 | ||
jnthn | masak: OK. :-) | ||
masak | jnthn: the simplest question first: is the description on bless in S29 out-of-date? | 19:16 | |
(S29:236) | |||
er, S29:263... | |||
jnthn | masak: I only updated S12 and didn't know S29 has a reference so most probably | ||
let me confirm | 19:17 | ||
masak: yes | |||
masak | ok. | ||
I can fix... | |||
jnthn | Actually very wrong | ||
masak | ...provided you explain to me what changed. :) | ||
jnthn | C<bless> is only available as a method which can be called on a prototype | ||
object | |||
Muixirt | are multidimensional arrays on the horizon? | 19:18 | |
jnthn | You can call bless on anything, so far as I'm aware. | ||
our Object multi method bless( Object::RepCandidate $candidate ) | |||
That's...eww. | |||
OK, bless is not multi | |||
masak | Muixirt: have you checked docs/ROADMAP? | 19:19 | |
jnthn | method bless(Object::RepCandidate $candidate, *@protos, *%init_args) | ||
Muixirt | last time i looked there was nothing | ||
masak | Muixirt: I just did, and while it doesn't explicitly mention multidimensional arrays, there might be additions (in the past week, I think) that relate to that. | 19:20 | |
jnthn | And if you pass * for $candidate it'll call self.CREATE() for you. | ||
masak | Muixirt: pmichaud updated the ROADMAP before the release last Thursday. | ||
jnthn: that's nice. | |||
jnthn | masak: But the big thing is that you can't not pass a candidate now. | ||
masak | jnthn: exactly. the errors in Druid yesterday made that quite clear for me. | 19:21 | |
jnthn | masak: There was just no good way to have it not getting confused with a possible auto-vivifying proto. | ||
masak | I see. | ||
probably for the best anyway. | |||
jnthn: btw, do we have BUILD yet in any usable sense? | |||
hm, maybe I should just try it and see... :) | 19:22 | ||
jnthn | masak: Various other things have been cleaned up in that area too. Once I get this dispatcher refactor checked in, BUILD is very high on my hit list. | ||
masak | ok. | ||
jnthn | BUILD is less broken but still wrong. | ||
masak | jnthn++ | ||
jnthn | I did one refactor that was needed to be able to do BUILD right. | ||
But BUILD itself now needs fixing. | |||
masak | aha. | 19:23 | |
jnthn | The dispatcher refactor is going to land soonish, I hope. | ||
I've done on features, just tracking down bugs. | |||
masak | ok, I'll go ahead and change S29 now as per your clarifications. | ||
jnthn | I've get deference working reasonably well now. | ||
masak | jnthn: I always have problems with deference. :P | 19:24 | |
jnthn | nextsame/nextwith/callsame/callwith etc | ||
:-P | |||
masak | ooh, nextsame! \o/ | ||
jnthn | It defers up the hierarchy but also through the multi candidates. :-) | ||
As in, both. | |||
And lazily builds the deference list too. | |||
So we only have to go produce it when someone does nextsame etc. | 19:25 | ||
masak | that's nice. | ||
aren't "prototype objects" called "type objects" nowadays? | 19:28 | ||
pmichaud | weather is beautiful here today. I'm not sure why I'm still indoors. | ||
masak | weather is lovely here. I've been out biking for a total of more than an hour, I've helped a colleague move house, and I've had sushi. this might be one of the top 20 best days of my life. | 19:29 | |
er, thus far. | 19:30 | ||
19:30
jan_ joined
|
|||
jnthn tries not to spoil it | 19:30 | ||
19:31
unitxt_ left
|
|||
masak | jnthn: I'm sure you won't. :) yesterday was nice too. I'm aware that the hackathon wasn't too noticeable here in #perl6, but I do think people came away with a very positive picture of Perl 6 and Rakudo. | 19:33 | |
Tene | masak: :) | 19:34 | |
jnthn | Great. :-) | ||
19:34
unitxt joined
|
|||
masak | jnthn: the *@protos param in the new bless signature, wut's it do? | 19:34 | |
masak makes some rooibos | 19:35 | ||
jnthn | masak: Holds things like Animal{ :blood<warm> } | ||
masak: Basically auto-vivifying protos used to initialize parent classes. | 19:36 | ||
masak | whoa, so that's not just syntactic sugar? :) | ||
jnthn | No. | 19:37 | |
masak | jnthn: does that restrict the order of pairs given? must one pass the *@protos args first? | ||
19:37
sjohnson left,
sjohnson joined
|
|||
jnthn | masak: It's just a call, so whatever the normal answer is for arg passing. :-) | 19:39 | |
I think you would need them first but I can't remember exactly. | |||
masak | I think so too... | ||
at least, you wouldn't be allowed to mix them, I'm pretty sure of that... | 19:40 | ||
19:41
sjohnson left,
sjohnson joined
19:42
synth left
19:43
synth joined
|
|||
masak | jnthn: so, an Object::RepCandidate is some sort of starting state of a not-yet-blessed object? | 19:44 | |
jnthn: I've written self.CREATE() there in all three calls in Druid. | 19:45 | ||
is there a good example of when I would want to write something else? | |||
jnthn | masak: That's probably not really right either. | ||
masak | jnthn: well, it worked. | ||
mberends teleports between computers | |||
jnthn | When you wanted a different underlying representation. | ||
19:45
mberends left
|
|||
jnthn | Rather than P6opaque | 19:45 | |
masak | jnthn: yes, but when would that be? | ||
19:46
mberends joined
|
|||
jnthn | For example, if you were doing some GTK interop thing and wanted to have a GObject rather than a P6opaque | 19:46 | |
TimToady | or you want a P5hash to share with P5 | ||
masak | aha. that's very social of Perl 6. | ||
jnthn | Right. | ||
TimToady | or a PyDict, or whatever | ||
jnthn | It doesn't Just Happen right off of course, there's an (implementaiton specific) representation API. | 19:47 | |
TimToady | or a Cstruct | ||
Matt-W | I hadn't thought of using a GObject as the underlying object type for bindings there | ||
I kind of assumed you'd have a member which points to the GObject and proxy to it | |||
TimToady | we're trying to avoid the P5 difficulty of having to translate objects back and forth | ||
Matt-W | It's a very interesting idea | 19:48 | |
TimToady | yes, but if you're going to delegate to another object that's identical in the abstract, why not just *be* that object? | ||
Matt-W | Yes indeed, why not | ||
TimToady | as long as the accessors all work as expected from the outside | 19:49 | |
Matt-W | I'm used to working in languages where you can't do that though | ||
TimToady | me too, which is why p6 is different :) | ||
Matt-W | :) | ||
masak | :) | ||
jnthn | In Rakudo, the glue code around the object to make it match the repr API will probably be a PMC that has a GObject as its underlying struct in this case, I suspect. | 19:51 | |
19:52
finanalyst left
|
|||
pugs_svn | r26974 | masak++ | [S29-functions] chasing spec changes to C<bless> | 19:52 | |
Matt-W | mmm | ||
mberends | masak: updated bless calls in proto with self.CREATE() | 19:53 | |
Matt-W | hopefully it won't prove too difficult to ensure that gobject bindings are usable for all parrot hlls | ||
and are also generated from gobject introspection data, of course :) | |||
masak | mberends: bless you, sir. | ||
jnthn | mberends: Well, if the introspection data there is sufficient to let you look up a method by name, you'd probably not need a binding as such to use it from Perl 6. | 19:54 | |
Matt-W | it's enough to let the javascript bindings work without having to pregenerate anything at all | ||
jnthn | oops, I meant Matt-W :-) | 19:55 | |
mberends stops frowning ;) | |||
jnthn | At least I wasn't doing /kick this time when I got the wrong nick. :-/ | ||
Matt-W | the curse of the m<tab> strikes again | ||
yes I think kicking is a slightly severe penalty for mentioning javascript | |||
jnthn | Yeah, then I just tried ma<tab> and got masak :-P | 19:56 | |
Matt-W | sorrrrry | ||
masak | it's too crowded here at M. | ||
jnthn | Matt-W: I kicked somebody by accident earlier today because I did /kick, tab complete, had tab-completed them before and knew they were first hit...but pmichaud++ had already kicked them so I kicked somebody else by mistake. | ||
Matt-W | woops | ||
19:56
Matt-W is now known as maw
|
|||
TimToady | masak: there are a couple of bugs noted about an hour ago, if you're in bug submission withdrawal | 19:56 | |
maw | no that doesn't help | 19:57 | |
19:57
maw is now known as mw
|
|||
masak | TimToady: oi, denk je wel! | 19:57 | |
TimToady | rakudo: say :2<1.1> | ||
p6eval | rakudo 764684: OUTPUT«1» | ||
masak | TimToady: that's the bug? | 19:58 | |
TimToady | rakudo: say pi("wtf") | ||
p6eval | rakudo 764684: OUTPUT«too many arguments passed - 0 params expectedin Main (/tmp/oECZKc8km6:2)» | ||
TimToady | rakudo: say e("twf") | ||
p6eval | rakudo 764684: OUTPUT«2.71828182845905» | ||
TimToady | that one | ||
masak | twf? | ||
TimToady | yes, vs | ||
rakudo: say +":2<1.1>" | |||
p6eval | rakudo 764684: OUTPUT«1.5» | ||
TimToady | which is correct | ||
masak | oh. | ||
masak submits that one | |||
TimToady: and the pi vs e thing? which one is the bug? | 19:59 | ||
TimToady | neither pi nor e should really be looking for arguments | ||
both, really | |||
masak | I see. | ||
masak submits one more | |||
TimToady | but e seems to have a sig of ($) or some such | ||
pochi | I think that is RT#56366 | ||
TimToady | rakudo: say e(1,2) | ||
p6eval | rakudo 764684: OUTPUT«2.71828182845905» | ||
TimToady | actually, probably no sig | ||
so *@_, but that's wrong too | 20:00 | ||
20:00
mw is now known as Matt-W
|
|||
TimToady | rakudo: say e - pi | 20:00 | |
p6eval | rakudo 764684: OUTPUT«2.71828182845905» | ||
masak | pochi: aye, you're right. I'll put it under that #56366. | ||
TimToady | thanks | ||
pochi | masak: e can be "fixed" in the same way as pi has been fixed | ||
mberends | is that being evaluated as e( - pi ) ? | ||
TimToady | yes | 20:01 | |
mberends | thx :) | ||
pochi | I tried playing with the grammar rules, but couldn't figure it out :) | ||
20:01
sjohnson left
|
|||
TimToady | they need to parse as a simple term, like type names | 20:01 | |
20:01
sjohnson joined
|
|||
TimToady | only they happen to be defined | 20:02 | |
masak | they remind me a lot about some kind of singletons. | 20:04 | |
pochi | rakudo: say :2<3> | ||
p6eval | rakudo 764684: OUTPUT«3» | ||
pmichaud | in earlier versions of the spectests, both e() and pi() were treated as functions. | ||
TimToady | yes, brainrot carried over from p5 :) | ||
pmichaud | so rakudo implemented that way. | 20:05 | |
We haven't updated to avoid that yet. | |||
TimToady | rakudo: say True - True | ||
p6eval | rakudo 764684: OUTPUT«0» | ||
TimToady | they should work like enums too | ||
rakudo: say True() | |||
p6eval | rakudo 764684: OUTPUT«invoke() not implemented in class 'Boolean'in Main (/tmp/FrHCVeoCrC:2)» | ||
TimToady | good | ||
pmichaud | rakudo: True = 4; say True; | 20:06 | |
p6eval | rakudo 764684: OUTPUT«4» | ||
pmichaud | :-P | ||
TimToady | so basically pi is a singleton enum | ||
Matt-W blinks | |||
pmichaud | Matt-W: they're just not constants yet :-) | ||
TimToady | rakudo: constant Foo = 3; Foo = 4; say Foo | ||
p6eval | rakudo 764684: OUTPUT«Cannot assign to readonly variable.in Main (/tmp/6esXlNKQMN:2)» | ||
pmichaud | right -- another place where a feature came later and we haven't fixed up booleans yet | 20:07 | |
masak | pmichaud: I won't submit that one. | ||
pmichaud: I know there are already tickets about constants. | |||
(and their current inconstancy.) | |||
pmichaud | I can fix True/e/pi to be readonly, no problem. | ||
masak | "constants aren't what they used to be..." | ||
TimToady | anyway, these are all implemented differently, and they should tend to converge | ||
pmichaud | Rakudo lives by the principle of "constants arent, variables won't" :-) | 20:08 | |
TimToady | all named constant values should pretty much work the same | ||
sbp | rakudo: say 3.sign | ||
p6eval | rakudo 764684: OUTPUT«Method 'sign' not found for invocant of class 'Int'» | ||
pmichaud | I think it's Pisces :-) | ||
20:08
sjohnson left
|
|||
TimToady | not since we got into Aquarius | 20:08 | |
sbp | hehe | ||
rakudo: say sign(3) | 20:09 | ||
p6eval | rakudo 764684: OUTPUT«1» | ||
sbp | ah, there we go | ||
20:09
sjohnson joined,
alanhaggai left
|
|||
sbp | oh, chuckle | 20:09 | |
sign(...) is implemented in src/builtins/math.pir | |||
and apparently so is sin(...), which I've been tracking down | 20:10 | ||
but it's commented in the code as being "conjectural" | |||
pmichaud | sbp: I'd be very happy to see those move into setting/ | ||
sbp | I like that. conjectural-sin | ||
pmichaud: what is setting/ for? | |||
masak | rakudo: say sign(1i) | ||
p6eval | rakudo 764684: OUTPUT«1» | ||
pmichaud | Perl 6 encoded representations of builtin functions. | ||
masak | we still haven't fixed that. :/ | ||
sbp | pmichaud: oh, you want to migrate from .pir -> .p6? | 20:11 | |
rakudo: say roots(5) | |||
p6eval | rakudo 764684: OUTPUT«No applicable methods.in Main (/tmp/oYo7rZacuR:2)» | ||
20:11
abra joined
|
|||
sbp | rakudo: say roots(25) | 20:12 | |
p6eval | rakudo 764684: OUTPUT«No applicable methods.in Main (/tmp/olrvXwlQB7:2)» | ||
sbp | hmm | ||
masak | mberends: I look forward to not having to overload our .new methods at all in proto. (and in Druid) | ||
sbp | rakudo: use Math::Basic; | ||
p6eval | rakudo 764684: OUTPUT«Can't find ./Math/Basic in @*INCin Main (src/gen_setting.pm:438)» | ||
pochi | rakudo: say roots(25,2) | ||
p6eval | rakudo 764684: OUTPUT«5+0i-5+0i» | ||
sbp | ah | ||
rakudo: say roots(i, 2) | |||
p6eval | rakudo 764684: OUTPUT«Could not find non-existent sub i» | ||
sbp | rakudo: say roots(1i, 2) | 20:13 | |
p6eval | rakudo 764684: OUTPUT«0.707107+0.707107i-0.707107-0.707107i» | ||
20:13
viklund joined
|
|||
masak | rakudo: 1i.roots(4).say | 20:13 | |
p6eval | rakudo 764684: OUTPUT«Statement not terminated properly at line 2, near ".roots(4)."in Main (src/gen_setting.pm:0)» | ||
viklund | masak: is proto supposed to work with release? | ||
masak | viklund: yes, especially the one it downloads... | 20:14 | |
viklund | masak: well, it doesnt :/ | ||
masak | rakudo: say 1i.sign() | ||
p6eval | rakudo 764684: OUTPUT«Statement not terminated properly at line 2, near ".sign()"in Main (src/gen_setting.pm:0)» | ||
masak | viklund: nopaste? | ||
TimToady | "No applicable methods" could be a lot more forthcoming in what it thought it was doing and why it failed | 20:15 | |
pmichaud | TimToady: I agree; I wish Parrot gave us a way to do that. | ||
viklund | my guess is it's mberends latest commit... | ||
sbp | oh hey, pi is in here too: | ||
.sub 'pi' | |||
.param pmc x :slurpy | |||
## 0-argument test, RT#56366 | |||
the bug's already noted inline | |||
jnthn | pmichaud: Well, Perl6MultiSub goes to some effort. | ||
TimToady | slurpy!?! | ||
jnthn | pmichaud: Only in the ambiguous case though. | ||
masak | viklund: oh, you're right, of course. | ||
pmichaud | Yes, slurpy :-) | ||
mberends | viklund, masak: yes, it's this bless change :/ | 20:16 | |
masak | viklund: the jnthn++ changes were post-release. | ||
pmichaud | Parrot doesn't give us a way to detect when a 0-arg sub is called with arguments. | ||
sbp | for what it's worth, here's e: | ||
.sub 'e' | |||
$N0 = exp 1 | |||
.return ($N0) | |||
.end | |||
pmichaud | So pi() was doing a slurpy, and throwing an exception if called with args | ||
masak | mberends: we need to, um, revert that improvement. :/ | ||
pmichaud | that's why | ||
rakudo: pi(3) | |||
p6eval | rakudo 764684: OUTPUT«too many arguments passed - 0 params expectedin Main (/tmp/Hopgsh7MWn:2)» | ||
pmichaud | and | ||
viklund | oh well. | ||
masak | mberends: or we move it to a branch. | ||
pmichaud | rakudo: e(3) | ||
p6eval | rakudo 764684: ( no output ) | ||
jnthn | PCC SUCKS! | ||
pmichaud | the pi() case does the check. The e() case didn't do that yet. | 20:17 | |
jnthn | uh, did I just shout that out loud? | ||
pmichaud | Fortunately I can eliminate it all and just make them constants now. | ||
jnthn | :-) | ||
masak | jnthn: PCC? is that a political party? | ||
viklund | masak, you could have a bleeding branch that you merge over at every release | ||
jnthn | masak: Parrot Calling Conventions | ||
TimToady | so maybe you should just register pi the way you register True | ||
masak | viklund: yes, let's try that. | ||
pmichaud | TimToady: right. As I said, we just hadn't gotten around to that yet. | ||
And I was also sorta waiting to see how the other boolean issues fleshed out. | 20:18 | ||
mberends | masak, viklund : yes we'll need proto release and bleading branches | ||
pmichaud | Which I'm not sure they did yet :-| | ||
masak | jnthn: I hear those conventions can be quite lively. but it's nothing people want to be reminded of afterwards. :P | ||
mberends: master is the release branch per default. | |||
mberends | nod | ||
masak | right now, November and proto target Rakudo releases. | 20:19 | |
(for somewhat different reasons) | |||
viklund | I'll fix that | ||
masak | viklund++ | ||
viklund | with proto | ||
masak | nod. | ||
suggested branch name: 'bleeding' | |||
jnthn | pmichaud: I'm getting weird exit-time segfaults in a few tests. | ||
mberends | whoz proto op rite nao ? | 20:20 | |
pmichaud | jnthn: it's possible, yes. | ||
masak | mberends: I think the pumpkin sort of got lost, and re-materialized at your place when you made your last commit... | ||
jnthn | pmichaud: I'm not sure if it's my dispatcher work that's triggered them or if they indicate something wrong in it. | ||
pmichaud | jnthn: Lots of stuff happening in parrot-land that might be a cause | ||
masak | would anyone be terribly displeased if I just changed Num.sign to return something other than '1' for complex values? | 20:21 | |
sbp | yeah, but I'd soon get over it | ||
masak | sbp: :) | ||
sbp | hmm. perhaps it should be 1i for imaginary values, and 1i+1 for complex values? | 20:22 | |
because it'd seem strange making all the degrees of the aragand plane except for the reals a kind of homogenised second class citizen | 20:23 | ||
argand, even | |||
aragand was a LotR character. or something | |||
masak | sbp: well, I'd argue that if one wants something like that, one shouldn't call the method 'sign'. | ||
sbp | okay; then why return anything for complex values at all? | 20:24 | |
masak | sbp: my thought exactly. | ||
sbp | hmm | ||
masak | sbp: 'undef' would suit my expectations. | ||
because the meaning of 'sign' for a complex value is kind of not very defined. | |||
pmichaud | probably should fail somehow. | 20:25 | |
(as in "return a failure condition") | |||
masak | good idea. | ||
is that !FAIL in PIR? | |||
pmichaud | I suspect that Parrot's sign operation is returning a value | ||
so I wonder if it should fail in Parrot :-) | |||
masak | pmichaud: it does a cmp_num. | ||
rakudo: say 1i <=> 0 | 20:26 | ||
pmichaud | so, it thinks that 1i > 0 | ||
p6eval | rakudo 764684: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp_num', with signature 'PP->I'in Main (/tmp/v090QWXFmg:2)» | ||
mberends | viklund, masak: proto patch pushed for Rakudo Stockholm release | ||
masak | interesting... | ||
sbp | hmm | ||
masak | viklund: seems mberends beat you to it. | ||
mberends | pumpkin++ | 20:27 | |
masak | 哈哈 | ||
sbp | masak: check this out: | ||
en.wikipedia.org/wiki/Negative_and_...m_function | |||
viklund | ahh, well maybe he doesn't run tests. | ||
TimToady | rakudo: say +1i | ||
p6eval | rakudo 764684: OUTPUT«0+1i» | ||
masak | sbp: I've seen that. | ||
sbp: note the wording "it's possible to..." | |||
TimToady | rakudo: say Num(1i) | ||
p6eval | rakudo 764684: OUTPUT«invoke() not implemented in class 'Float'in Main (/tmp/Dw0RMuchEN:2)» | ||
pmichaud | we don't do coercers like that yet | ||
rakudo: say +1i > 0 | 20:28 | ||
p6eval | rakudo 764684: OUTPUT«1» | ||
TimToady | well, but if + is coercing to Num, how does it make a complex? | ||
masak | sbp: I'd prefer to think about what people will use 'sign' for, rather than how it can be beautifully extended. | ||
pmichaud | TimToady: I don't know what Parrot is doing with Complex numbers at the moment. | ||
masak | sbp: myself, I'll probably use 'sign', expecting -1, 0, or 1. and nothing beyond that. | ||
sbp | masak: well the problem is that you can use csgn for sgn tasks too | ||
pmichaud | TimToady: earlier in Dec/Jan the whole Parrot MMD system was redone, and our Complex number handling has never recovered. | 20:29 | |
sbp | so if csgn is supported in future, that'll mean there's more than one way to d... oh, nevermind | ||
masak | sbp: :P | ||
sbp: someone will write a module that re-allows sign to work on complex numbers, and everyone will be happy. | |||
sbp | :-) | ||
masak | except the ones who wanted it to be like that in core, but hopefully those will only be a minority, albeit a vocal one. :P | 20:30 | |
sbp | I'll be happy as long as π works for pi | ||
jnthn | pmichaud: Heh, and I suspect Parrot's compex number handling might have changed again with the recent "oh yeah those MMD changes made verything slow let's change stuff" work. | ||
pmichaud | and Parrot's MMD handlers are all being changed again (even as we speak -- new commits this morning) so I'm not _too_ eager to try to decipher it | ||
TimToady | some people are never happy unless they have something to be unhappy about | ||
jnthn | lol | ||
pmichaud | jnthn: yes, exactly. | ||
TimToady | sbp: that's what 'use *' is for | ||
masak | o_O | ||
sbp | use *? is this like STAR? | 20:31 | |
pmichaud wants a "use happy;" directive. Oh wait, we already have that -- it's "use v6;" | |||
masak | :D | ||
sbp | [[[ | ||
Seriously, it's durn near impossible for one language to be better than | |||
another language at absolutely everything. My favorite language is | |||
call STAR. It's extremely concise. It has exactly one verb '*', which | |||
does exactly what I want at the moment. You know, kinda like the | |||
control box for Gigantor. | |||
]]] - groups.google.com/group/comp.lang.p...4ae85fcbe4 | |||
mberends | that's DWIM in Perl, not (fully) implemented yet, but P6 gets close :) | 20:32 | |
masak | Perl 6's DWIM is more refined than Perl 5's. | 20:33 | |
pmichaud | jnthn: okay, I'm totally and utterly confused. | ||
masak | it's a posh kind of DWIM. | ||
pmichaud | jnthn: when I switch Rakudo to use ucs2 for parsing instead of utf8 | ||
jnthn: then "use Test; plan 10;" outputs "1..1" | |||
jnthn | wtf | 20:34 | |
pmichaud | yeah. | ||
20:34
lichtkind_ joined
|
|||
TimToady | 1\00 | 20:34 | |
something cheating on the bytes | |||
pmichaud | TimToady: sure, I get that part. | ||
jnthn | pmichaud: I can see what would cause some...failures... :-S | ||
pmichaud | But I'm totally lost as to what would be cheating on the bytes. | ||
Because when we compile the code, the ucs2-ness "goes away" | |||
jnthn | pmichaud: The emitted PIR is incorrect, right? | 20:35 | |
pmichaud | jnthn: I can't see where. | ||
ohhhhh wait, yes I can. | |||
jnthn | Oh. | ||
pmichaud | I know what it is. | ||
jnthn | So this happens when we run it? | ||
Ah, OK. | |||
pmichaud | TimToady++ FTW | ||
Rakudo doesn't know how to numify ucs2 strings. | |||
jnthn | Oh. | ||
Oops. | 20:36 | ||
TimToady | types, who needs 'em... | ||
jnthn | And doesn't check the encoding of the thing it's numifying? | ||
pmichaud | jnthn: right. | ||
jnthn | Encodings. Who needs 'em. | ||
masak | apparently not Rakudo. | 20:37 | |
masak ducks | |||
TimToady monkeys | |||
pmichaud | I wonder if I can get Latin-1 to work. | ||
sbp | ugh, heathen encoding | 20:38 | |
pochi concurs | |||
TimToady | no, not heathen, just infidel | ||
masak likes heaths | |||
pochi aims and shoots | |||
sbp | .ety infidel | ||
phenny | "1460 (adj., n.), from M.Fr. infidèle, from L. infidelis 'unfaithful,' later 'unbelieving,' from in- 'not' + fidelis 'faithful' (see fidelity)." - etymonline.com/?term=infidel | 20:39 | |
masak | .ety heathen | ||
phenny | "O.E. hæðen 'not Christian or Jewish,' merged with O.N. heiðinn." - etymonline.com/?term=heathen | ||
pmichaud | In my weak defense, I don't think Parrot can numify ucs2 strings either, and I cargo-culted my code from Parrot. | 20:40 | |
confirmed. | 20:41 | ||
TimToady | you shouldn't parrot Parrot | ||
pmichaud | I think I'm going to put that on my wall. | ||
from one Wall to another. | |||
masak | pmichaud: you have a Wall wall? | ||
pmichaud | masak: I will soon. | ||
20:42
lichtkind__ joined,
rindolf left
|
|||
pmichaud | gist.github.com/120630 # ucs2 encoding FAIL | 20:42 | |
jnthn | FAIL | 20:43 | |
pmichaud files parrotbug | 20:44 | ||
jnthn | pmichaud: maybe it'd be good to quickly commet on use.perl.org/~korpenkraxar/journal/39051 given you made some progress into working out why it's so slow? | 20:45 | |
pmichaud | sure, I'll comment. | ||
I was going to reply once I had the bug fixed and had new timings to report, but maybe I'll reply now and then again when we do have the fix in place. | 20:46 | ||
jnthn | OK, just thought it might be good to be responsive-ish. :-) | ||
pmichaud | Agreed totally. | ||
thanks for the excellent suggestion. | |||
jnthn | OK, I'm down - other than the exit crash bug - to two test files with failures. | 20:47 | |
One fails in a minor way (2 tests fail and I think it shouldn't be so hard to debug why). | 20:48 | ||
The other gets two tests in to its plan of 70 and segfaults. | |||
So that could be rather harder to debug. | |||
mberends | re parrot optimization - does anyone ever test Rakudo on faster parrots? should it work? | 20:49 | |
pmichaud | if Parrot works then Rakudo should. | ||
I've often found Parrot's optimized form to be not entirely stable on anything but x86 (32-bit) | 20:50 | ||
FurnaceBoy | :| | ||
mberends | ok, I'll give some of those parrot flags a try. | ||
pmichaud | much appreciated. | ||
FurnaceBoy | pmichaud, that's borne out by test suite,right? | ||
jnthn | I don't build optimized because AFAIK I can choose between faster or having debug symbols | 20:51 | |
And I kinda like to have the latter handy. :-) | |||
pmichaud | FurnaceBoy: how do you mean? | ||
FurnaceBoy | pmichaud, that should be observable in test results? | 20:52 | |
pmichaud, or is it anecdotal? just curious | |||
pmichaud | FurnaceBoy: that's my (anecdotal) experience when trying to use Parrot on 64-bit | ||
I haven't tried recently, but I haven't seen much to indicate that it would have changed. | 20:53 | ||
FurnaceBoy | pmichaud, are there tests which would quantify the failures between platforms? | ||
pmichaud | FurnaceBoy: I suspect yes, but I don't know if that's the case. | ||
FurnaceBoy | ah | ||
ok thx:) | |||
pmichaud | We just need people on 64-bit platforms to try Parrot with the --optimize flag and see what happens, I guess. | ||
Last time I tried --optimize on a 64-bit platform, Parrot didn't even build. | 20:54 | ||
YMMV | |||
FurnaceBoy | hell I could do that if I knew what to run to exercise it :) | ||
FurnaceBoy has access to sparc64 and amd64 | |||
pmichaud | in a parrot directory | ||
make realclean; perl Configure.pl --optimize; make # I think | |||
FurnaceBoy | oh, and ppc64 | ||
pmichaud | look at the options to Parrot's Configure.pl for more details | ||
the parrot binary also has a -O flag, I think -- to use it: | 20:55 | ||
"parrot/parrot -O perl6.pbc hello.p6" | |||
jnthn afk for a bit | 20:57 | ||
mberends | that may be --output-pbc. -O is Optimize according to parrot/docs/running.pod | 20:59 | |
oh, -O means same as -O1 (optimizations without life info (e.g. branches)) | 21:01 | ||
21:03
ZuLuuuuuu left,
lichtkind left
21:05
fridim_ joined
21:10
cognominal joined
|
|||
pmichaud | jnthn: use.perl.org/comments.pl?sid=43083&cid=68873 | 21:10 | |
21:11
lichtkind_ left
|
|||
mberends | pmichaud: more on features than speed, surely | 21:12 | |
pmichaud | mberends: see my reply to my own comment at the bottom :-) | ||
(I already caught that, but too late to edit it ) | 21:13 | ||
DanielC | pmichaud: Rakudo development has been focused on speed?? | 21:14 | |
mberends | pmichaud++ # DanielC, the typo is corrected at the end | ||
21:15
amoc joined,
amoc left
|
|||
DanielC | mberends: Which typo? | 21:15 | |
mberends | features <-> speed | ||
DanielC | ah | ||
masak | mberends: I assume that you've also been following the recent installer/packager CPAN-replacement discussiong with some interest. | ||
mberends | masak: yes, including an invitation to proto developers to interact with CPAN developers :) | 21:16 | |
pmichaud | yes, I wish use.perl gave me a way to edit my comment. Oh well. | ||
masak | mberends: indeed. :) | 21:17 | |
pmichaud | that's what I get for writing a post while I had three other things going on :-| | ||
masak | mberends: don't know what the CPAN developers might gain from interacting with us, though. maybe they too have been reached by the Nobel Peace Prize disinformation... | 21:18 | |
mberends: it would be another thing entirely if proto did the version/author tricks that S11 promises. | |||
but it doesn't. and I doubt it ever will. | |||
DanielC | pmichaud: Is the postfix thing fixed? Or is it something the devs still need to look at? | 21:20 | |
s/postfix/postfix:<++>/ | |||
masak -> sleep | 21:22 | ||
21:22
masak left
|
|||
pmichaud | DanielC: not fixed yet -- I'll look at it later tonight or early tomorrow. | 21:25 | |
21:25
abra left
|
|||
DanielC | ok | 21:25 | |
pmichaud: It's amazing that ++ would have such a drastic effect in performance. | |||
If you got 80% savings by removing it, then that means it slows down Rakudo by a factor of 5... | 21:26 | ||
pmichaud | DanielC: it's just because the implementation has had several things piled on top of it as the spec has changed | ||
DanielC: well, it only slows down Rakudo in those places where Rakudo heavily depends on ++ | |||
that's not as much as you might think :-) | |||
DanielC | Does that include substr() and regexes by any chance? Those are dog slow on Rakudo. | 21:27 | |
21:27
dfort joined
|
|||
pmichaud | in this case postfix:<++> dominated the time simply because there aren't that many operations in the program | 21:27 | |
a much larger program that doesn't use postfix:<++> wouldn't see as significant a slowdown | |||
DanielC | substr() is *especially* slow on Rakudo. It is incredible. | 21:28 | |
pmichaud | yes, we know about that. That's partially due to Parrot's implementation of strings. It's also partially due to the substr function not being written especially well. | ||
21:29
payload left
|
|||
DanielC | I noticed the problem when I wrote k-nucleotide benchmark (which is all about substr). | 21:29 | |
I had to cut the input file by 80% just to make the benchmark run in less than 3 minutes. | 21:30 | ||
pmichaud | where's the benchmark? That could be another case of where we think the slowdown is is actually somewhere else. | ||
DanielC | perl6-examples/shootout/k-nucleotide.* | 21:31 | |
21:31
wknight8111 left
|
|||
DanielC | perl6 k-nucleotide.p6.pl < k-nucleotide.input | 21:31 | |
The benchmarks all include the Perl 5 version so you can compare. | 21:33 | ||
pmichaud | why the .subst? | ||
$sequence = $sequence ~ lc $line.subst(/\n/,''); | 21:34 | ||
DanielC | To get rid of \n characters. | ||
pmichaud | lines from input are autochomped | ||
DanielC | No they are not. | ||
pmichaud | then that's a bug. | ||
DanielC | Remove the .subs and add a "say $sequence" | ||
pmichaud | well sure, say outputs a newline | 21:35 | |
DanielC | no, no no | ||
I mean it will output a newline for every line of input. | |||
pmichaud | okay, checking. | ||
(I need to rebuild rakudo first) | |||
DanielC | k | 21:36 | |
21:36
explorer__ joined
|
|||
DanielC | Just put a "say $sequence; exit;" after the while loop (so you are not left waiting for 3 minutes for the benchmark to finish). | 21:36 | |
pmichaud | yes, .substr will be very slow in this case because we're dealing with large utf8 strings. | 21:39 | |
heh | |||
*and* we're using ++ | 21:40 | ||
DanielC | :-) | ||
indeed | |||
Will += 1 run faster? | 21:41 | ||
pmichaud | it might, but let me fix ++ first | ||
DanielC | yeah | ||
pmichaud | the big speed improvement would come from switching to ascii instead of utf8 | ||
DanielC | how do you do that? | ||
pmichaud | I'm not sure there's a way to do that yet. | ||
DanielC | ok | 21:42 | |
pmichaud | But we can add one. | ||
when I remove the .subst, it still comes out as all one line. | 21:43 | ||
DanielC | ??? | ||
DanielC tests | |||
pmichaud | gist.github.com/120644 | 21:44 | |
DanielC | I don't understand... | 21:45 | |
pmichaud | are you on win, mac, or linux? | ||
DanielC | I swear that I had \n's before. | ||
Linux, and the \n's are gone. | |||
pmichaud | okay then. | ||
DanielC | Wait, does $*IN.slurp retain the \n's? | ||
pmichaud | yes. | ||
DanielC | ah | ||
pmichaud | .slurp gives the entire file. | 21:46 | |
.get and .lines autochomp | |||
DanielC | I added that .subst earlier on, when I was using .slurp | ||
pmichaud | also, it might be quicker to do the lc at the end instead of on each input line | ||
21:46
amoc joined
|
|||
pmichaud | but probably not a significant difference here | 21:46 | |
DanielC | But I found that the two while-loop method made the program run faster. | ||
pmichaud | reading the file runs reasonably quickly on my system | ||
DanielC | Reading the file is not the slow part of the program. It's the rest. | 21:47 | |
I trimmed the input by 80%, don't forget that. | 21:48 | ||
pmichaud | right, I'm not forgetting it. | ||
DanielC is waiting for the program to finish | |||
Ok on my system it takes... 112.66s user 1.92s system 80% cpu 2:22.13 total | 21:50 | ||
pmichaud | on mine it takes 1m0 real 0m59 user 0m0.8 sys | 21:51 | |
DanielC | Perl 5 takes 0.04s user 0.01s system 89% cpu 0.053 total | ||
pmichaud | (and this is my slow computer :-) | ||
DanielC | My machine is probably slower than yours. | ||
pmichaud | well, I'm sure perl will be a lot faster at the moment. :-) | ||
okay, let's see if I can fake ascii encoding. | |||
DanielC | Yeah, Perl 5 will be faster, but a factor of 11,266 times faster is a bit more than I'd expect. :) | 21:52 | |
pmichaud | it's not more than I'd expect | ||
pmurias | perl6: role Foo {has $!foo} | ||
p6eval | elf 26974: OUTPUT«Parse error in: /tmp/Eps0ETju5zpanic at line 1 column 10 (pos 10): Missing right braceWHERE: role Foo {has $!foo}WHERE: /\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:255:in `_block_rest' STD_red/std.rb:242:in `block in block' | ||
..STD_red/prelude.rb:52:i… | |||
..pugs, rakudo 764684: ( no output ) | |||
21:53
jferrero left
|
|||
pmurias | rakudo: role Foo {method hi {say $!foo}};class Bar does Foo {has $.foo};Bar.new(foo=>"hi").hi; | 21:54 | |
p6eval | rakudo 764684: OUTPUT«hi» | ||
pmurias | rakudo: role Foo {has $!foo;method hi {say $!foo}};class Bar does Foo {has $.foo};Bar.new(foo=>"hi").hi; | ||
p6eval | rakudo 764684: OUTPUT«Conflict of attribute '$!foo' in composition of role ''in Main (/tmp/mnWzvOMvYg:2)» | ||
pmichaud | hmmm, switching the encoding didn't change things much. | ||
DanielC | pmichaud: My bad, Perl 5 is only 2,680 times faster. | 21:55 | |
pmichaud: re ascii: :-( | |||
pmichaud | I'm very surprised it didn't make a difference. | 21:56 | |
That means something else is slowing it down. | |||
21:56
meppl left
21:57
jan_ left
|
|||
pmichaud | it wouldn't surprise me too much if it's the ranges that are slowing things down | 21:57 | |
checking. | |||
actually, the way ranges are handled now, it's even *more* postfix:++ | 21:58 | ||
mberends | rakudo 'make test' using parrot -O1 perl6.pbc is not significantly faster, and -O2 fails many tests | ||
pmichaud | I guess I'll have to clean up postfix:++ when I return :-) | ||
DanielC | heh | ||
pmichaud | mberends++ # thanks, that's what I suspected | ||
(we're about to leave for dinner in 10 min) | |||
DanielC | pmichaud++ for finding the problem. | ||
enjoy your meal | 21:59 | ||
21:59
ejs1 joined
|
|||
DanielC | It really annoys me when Mark O. implies that I'm being lazy by not reading his papers. | 22:04 | |
When I post a proposal, I try very hard to be succinct and clear, and not waste the reader's time. | 22:05 | ||
He also gives me the impression that he has already decided everything and is just waiting for people to follow along. | 22:06 | ||
22:08
explorer__ left
|
|||
Khisanth | how else are you going to get people to implement stuff you don't have time for? :) | 22:10 | |
DanielC | :-) | ||
22:12
payload joined
|
|||
viklund | ahh, finally, now there's a "bleeding" branch of proto | 22:13 | |
22:15
tulcod left
|
|||
mberends | viklund: had proto been broken for you on other occasions before today? | 22:16 | |
viklund | mberends: might have happened, yes | 22:18 | |
no, it has definitely happened | |||
can't say exactly when or how though, I've always fixed it by changing to bleeding... | 22:19 | ||
22:19
ejs1 left
|
|||
mberends guessed so. glad a branch will help :) | 22:19 | ||
viklund | I'm thinking of making the default config file for the bleeding branch set Rakudo revision to bleeding aswell | 22:20 | |
mberends | that makes sense | 22:21 | |
viklund | yes, I commited that too now... | 22:22 | |
viklund thinks that sweden is too hot right now... | 22:24 | ||
DanielC | viklung: What's the temperature? Where in Sweden are you? | ||
viklund | oh, today it was around 25 degrees Celsius here in Uppsala | 22:25 | |
mberends | having worked in Riyadh at 50 deg Celsius, hot Sweden is hard for me to imagine :) | 22:26 | |
DanielC | 25 isn't so bad... its warm, but tolerable. | ||
jnthn | 25 dry and 25 humid can be quite different though. :-) | ||
DanielC | true | ||
viklung: 25 dry or 25 humid? | 22:27 | ||
viklund | it's not particularly humid here | ||
jnthn | :-) | ||
viklund | I like it when I can clothe meself, ~17 is the sweetspot | ||
colder is ok | |||
warmer, not so much | |||
DanielC | I like ~17 a lot. | ||
jnthn | viklund: I kinda know how you feel. I'm starting to think I prefer cold weather to hot weather. | ||
DanielC | I definitely prefer cold weather to hot weather. | 22:28 | |
jnthn | What I do _not_ like is wet weather. | ||
Where snow only half counts as wet. ;-) | |||
But rain...bleh. | |||
DanielC | My favourite is the 15-20 region. | ||
jnthn | For me: warm enough to be able to sit outside, in a t-shirt, and enjoy a beer without feeling boiling but without feeling chilly, is just nice. | 22:29 | |
20ish is fine for that. | |||
viklund | wet is ok as long as it's raining and the temperature is above 15 | ||
DanielC | For my honey moon we are going to Venezuela (where all my family is). Close to sea level the temperature is 35 or so. | ||
jnthn | I holidayed in Arizona in July once. | ||
That was...hot. | 22:30 | ||
viklund | I've been thinking of moving to Bergen, they almost bet their rainrecord a couple of years ago | ||
jnthn | Bergen is very pretty. | ||
But the rain would drive me nuts. | |||
viklund | over 100 consecutive days of raining | 22:31 | |
DanielC | jnthn: I never thought I'd mind rain much, but after living 3 years in Washington D.C. (a swamp region) I got to realize how much I truly hate regular rain. | 22:32 | |
jnthn | DanielC: The rain was one of the things that irked me most about British weather. | ||
mberends | Edinburgh gets only about 5 totally dry days per year | ||
viklund | no I tell a lie, it was 85 days | ||
jnthn | Much more so than the temperatures. | ||
DanielC | jnthn: I lived in Britain for 2 years. It rains a lot more in Washington D.C. | ||
hate it | 22:33 | ||
22:33
xinming_ joined
|
|||
DanielC | It felt like it rained every other day | 22:33 | |
jnthn | DanielC: I lived in Britain for 22 years, and can only imagine... | ||
Actually closer to 23... | |||
DanielC | My perception may be skewed by the fact that in D.C. I used my bicycle to go everywhere (I didn't have a car). | 22:34 | |
So the rain really affected me. | |||
But I still think that D.C. is worse. | |||
jnthn | I don't (can't) have a car, so anywhere I go from home is on foot, at least so far as the tram/bus/train stop. | ||
DanielC | May I ask why you can't have a car? | 22:35 | |
Technically I don't have a car either, but my fiancee has a car, so I get most of the benefit. | |||
jnthn | I have an eye condition (retina rather than lens, so unfixable) that means I don't have sufficient vision to safely drive. | 22:36 | |
DanielC | ok | ||
jnthn | Basically, a lower density of effective rods/cones than people normally have, so I essentially see in low resolution. | 22:37 | |
DanielC | I have a retina condition, but it doesn't (yet) prevent me from being able to drive. | ||
ah | |||
jnthn | Mine is genetic, so I've always had it. Thankfully, so far, it's been stable. | ||
DanielC | my one is very different (my retina is getting very thin, so it could one day detach) | ||
jnthn | Yes, very different. | 22:39 | |
DanielC | y | ||
afk | 22:40 | ||
viklund | good night | 22:47 | |
22:47
viklund left
22:54
LadyLuna1y joined
23:01
LadyLunacy left
23:02
xinming left
23:07
fridim_ left
23:10
beggars left
23:14
mberends left
23:15
snarkyboojum joined,
Muixirt left
23:26
[particle] left,
FurnaceBoy_ joined,
iblechbot left,
[particle] joined
23:27
icwiener left,
pmurias left
|
|||
lichtkind__ | when i see something like "...".perl , will be there a command like " ... ".ruby inside a rakudo program? | 23:29 | |
good night | 23:30 | ||
23:30
lichtkind__ is now known as lichtkind
|
|||
Khisanth | seems like that would be something a separate module would provide ... | 23:31 | |
23:32
kate21de1 joined
|
|||
jnthn | Aye, it could easily monkey type and add a .ruby to everything... ;-) | 23:32 | |
23:35
meppl joined,
kate21de left
23:39
sjohnson left,
sjohnson joined
23:42
FurnaceBoy left
23:52
FurnaceBoy_ left
|
|||
lichtkind | jnthn: what means monkey type? | 23:52 | |
23:53
[particle]1 joined
|
|||
jnthn | lichtkind: Adding methods to an existing class. | 23:55 | |
lichtkind | why sounds that term that bad :) ? | 23:56 | |
23:56
[particle] left
|
|||
lichtkind | isnt what roles are for? :) | 23:56 | |
23:56
M_o_C left
|